Implement this key cipher Implement this key cipher
Goal
Use the algorithm (explained in the Algorithm section) to implement a certain cipher.
The program must read input from STDIN or the closest available equivalent, use the algorithm to generate the ciphertext and a key.
The ciphertext and the key will be written to STDOUT or the closest available equivalent. Any format is allowed, as long as it outputs the ciphertext and the key.
Algorithm
Convert the characters in the string into the respective ASCII values. For example:
Hello -&gt; 72 101 108 108 111
Next, you will need to generate a key as long as the string with random numbers in the range of 0-9.
Hello -&gt; 62841
Add the integers in the random number sequence to the ASCII values of the string. In the above examples, 72 would become 78, and 101 would become 104.
72 + 6 = 78, 101 + 2 = 103, 108 + 8 = 116, etc
Next, convert the new values back to characters. In the above examples, the text Hello has become Ngtpp.
Examples
(These are simply examples of what the output might look like. The output can and will vary.)
Hello World

Lfrlu)_supg
41606984343


This will be encoded
    
Zhjs$~koo gj$iuhofgj
60104723305544750226

Rules

You can assume that the input will only contain characters in the range a-z, A-Z, and spaces.
Submissions must be full programs or functions.
Submissions will be scored in bytes.
Standard loopholes are forbidden.
This is code-golf, so the shortest code wins.


(This is one of my first challenges, if there's something wrong with it, feel free to tell me how I could improve it.)
Python 3, 130 bytes
Thanks to @Rod for pointing out a bug
from random import*
def f(x):l=10**len(x);k=str(randint(0,l-1)+l)[1:];print(''.join(chr(ord(i)+int(j))for i,j in zip(x,k))+'\n'+k)

A function that takes input via argument as a string and prints to STDOUT.
How it works
from random import*  Import everything from the random module
def f(x):            Function with input string x
l=10**len(x)         Define l for later use as 10^length(x)
randint(0,l-1)+l     Generate a random integer in the range [0, l-1] and add l, giving a
                     number with l+1 digits...
k=str(...)[1:]       ...convert to a string and remove the first character, giving a key of
                     length l that can include leading zeroes, and store in k
for i,j in zip(x,k)  For each character pair i,j in x and k:
chr(ord(i)+int(j))    Find the UTF-8 code-point (same as ASCII for the ASCII characters),
                      add the relevant key digit and convert back to character
''.join(...)         Concatenate the characters of the ciphertext
print(...+'\n'+k)    Add newline and key, then print to STDOUT

Try it on Ideone