has become almost synonymous with public key cryptography. Lets first see how RSA works, and then examine why it works. Choice of Bobs public and private keys: 1. Choose two large prime numbers, p and q. (Larger the values, the more difficult it is to break RSA, and the longer it takes to encode/decode. It is recommended that the product of p and q be on the order of 1024 bits for corporate use and 768 bits for use with less valuable information. For a discussion on how to find large prime numbers, see http://www.utm.edu/research/primes/prove/). 2. Compute n = pq and z = (p-1)(q-1). 3. Choose a number, e, less than n, which has no common factors (other than 1) with z. (In this case, e and z are said to be relatively prime. The letter e is used since this value will be used in encryption). 4. Find a number, d, such that ed-1 is exactly divisible (that is, with no remainder) by z. (The letter d is used because this value will be used in decryption. Put another way, given e, we choose d such that the integer remainder when ed is divided by z is 1. The integer remainder when an integer x is divided by the integer n, is denoted as x mod n). 5. KB+ = (n, e); KB- = (n, d) RSAs Encryption/Decryption Algorithm: Suppose Alice wants to send Bob a bit pattern, or number, m such that m < n. To encrypt the message, Alice uses Bobs public key and determines the cipher text, c as: c = me mod n To decrypt the message, Bob uses Bobs private key and determines the plain text, m as: m = cd mod n.
Background: Assume Bob has selected the prime numbers p and q as 5 and 7 respectively. Assume Bob has selected e to be the number 5. Assume Alice and Bob interpret each letter in the English alphabet as a number between 1 and 26. That is, a = 1, b = 2, , n = 14,, z = 26. Assume Alice wishes to send the plaintext love to Bob, after encrypting using RSA. Question: a) Compute Bobs public key using RSA. b) Determine Alices cipher text using RSA algorithm.
Example (with small values for p and q): 1. 2. 3. 4. Suppose Bob chooses p = 5, and q = 7. Compute n = pq =35, and z = (p-1)(q-1) = (4)(6) = 24 Bob chooses e = 5; Note 5 and 24 have no common factors. Bob chooses d = 29; Note (ed-1) = (5x29 -1) = (145-1) = 144 is exactly divisible by z =24 (as 24 x 6 = 144) 5. Bobs public key is given by KB+ = (n, e) = (35, 5); Bobs private key is given by KB- = (n, d) = (35, 29) Suppose Alice and Bob interpret each letter as a number between 1 and 26. That is, a = 1, b = 2, c = 3,, n = 14,, z = 26. Assume plain text is: Love Alices RSA encryption with e = 5, and n =35 is as follows: Plaintext letter l o v e Cipher text is: 17152210 Bobs decryption with d = 29, and n = 35 is as follows: Ciphertext 17 15 22 10 cd 481968572106750915091411825223071697 12783403948858939111232757568359375 85164331908653770195619449972110603059 2 100000000000000000000000000000 m = cd mod n 12 15 22 5 Plaintext letter l o v e m (numeric representation) 12 15 22 5 me 248832 759375 5153632 3125 c = me mod n 17 15 22 10
Why does RSA work? Thanks to an amazing result from number theory that states the following: If p and q are prime, and n = pq, then xy mod n = x(ymod(p-1)(q-1)) mod n
This rule implies that (me)d mod n = m because, as per number theory rule (me)d mod n = m (ed(mod(p-1)(q-1)) mod n = m1 mod n (as the integer remainder when ed is divided by z is 1) =m Similarly, (md)e mod n = m.