- 154 Views
- Uploaded on
- Presentation posted in: General

RSA Encryption

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

RSA Encryption

William Lu

- 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

- Public key encryption
- Digital signatures

- 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 φ

- Public key = (e,n)
- Private key = (d,n)

- Get a pseudo random number
- Use Fermat’s Little Theorem to test for prime
- For prime n and any a, an mod n = a
- For composite n and any a, an mod n ≠ a

- BUT
- If an mod n = a, n could be a composite

- 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

- For public exponent, e, pick any prime
- Common choices are 3, 17 and 65537 (216 + 1)

- For secret exponent, d, compute the modular inverse of e mod φ
- Use 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 ui = ui-2 – ui-1qi-2 mod n
- Initialize u0 = 0 and u1 = 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

Inverse of 5 mod 72

- To encrypt message m
- Public key = (e,n)
- c = me mod n

- To decrypt cipher c
- Private key = (d,n)
- m = cd mod n

- Public key = (5,91)
- Private key = (29,91)

- To encrypt message 17
- c = 175 mod 91
- c = 75

- To decrypt cipher 75
- m = 7529 mod 91
- m = 17

- To sign message m
- Private key = (d,n)
- [m] = md mod n

- To verify signature
- Public key = (e,n)
- {m} = me mod n

- 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