RSA Encryption William Lu
RSA Background Basic technique first discovered in 1973 by Clifford Cocks of CESG (part of British GCHQ) Invented in 1977 by Ron Rivest, Adi Shamir and Len Adleman
RSA Uses Public key encryption Digital signatures
RSA Algorithm Generate two large random primes, p and q, of approximately the same size –e.g. for 1024 bit encryption, p and q should be about 512 bits each Compute n = pq and φ = (p-1)(q-1) Choose e where 1<e<φ such that gcd(e,φ) = 1 Compute d where 1<d<φ such that ed = 1 mod φ
RSA Algorithm Public key = (e,n) Private key = (d,n)
Generate Primes Get a pseudo random number Use Fermat’s Little Theorem to test for prime –For prime n and any a, a n mod n = a –For composite n and any a, a n mod n ≠ a –BUT –If a n mod n = a, n could be a composite
Generate Primes Does Fermat’s Little Theorem guarantee primes? –NO! What is it for? –With enough rounds, n is probably prime –Much faster then testing with all primes < n
Generate Exponents e and d For public exponent, e, pick any prime –Common choices are 3, 17 and ( ) For secret exponent, d, compute the modular inverse of e mod φ –Use Extended Euclidean Algorithm
Extended Euclidean Algorithm To find inverse of e mod n: –Find quotient and remainder of n/e at each step –Also carry an auxiliary number u i = u i-2 – u i-1 q i-2 mod n –Initialize u 0 = 0 and u 1 = 1 –For each step use the previous e as the current n and the previous remainder as the current e –Repeat until e = 0 and the auxiliary number is the inverse of e mod n
Extended Euclidean Algorithm nequotientremainderauxiliary Inverse of 5 mod 72
Encryption/Decryption To encrypt message m –Public key = (e,n) –c = m e mod n To decrypt cipher c –Private key = (d,n) –m = c d mod n
Encryption/Decryption Public key = (5,91) Private key = (29,91) To encrypt message 17 –c = 17 5 mod 91 –c = 75 To decrypt cipher 75 –m = mod 91 –m = 17
Signature To sign message m –Private key = (d,n) –[m] = m d mod n To verify signature –Public key = (e,n) –{m} = m e mod n
References RSA Algorithm –DI Management Services Fermat’s Little Theorem –Mathworld Extended Euclidean Algorithm –Wolfgang Stöcher at Profactor Research –Bill Cherowitzo’s references at the University of Colorado at Denver Ph. D (1983) in mathematics at Columbia University