1 / 14

Public Key Crytography From: Introduction to Algorithms Cormen, Leiserson and Rivest

Public Key Crytography From: Introduction to Algorithms Cormen, Leiserson and Rivest. Purpose. Privacy: to send encrypted messages over an insecure channel. Authentication: To digitally sign messages. Public Key Cryptography was first introduced by Diffie and Hellman in 1976.

chelsey
Download Presentation

Public Key Crytography From: Introduction to Algorithms Cormen, Leiserson and Rivest

An Image/Link below is provided (as is) to download presentation 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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Public Key Crytography From: Introduction to Algorithms Cormen, Leiserson and Rivest 95-712 OOP/Java

  2. Purpose Privacy: to send encrypted messages over an insecure channel. Authentication: To digitally sign messages. Public Key Cryptography was first introduced by Diffie and Hellman in 1976. 95-712 OOP/Java

  3. The RSA Public-Key Cryptosystem • Developed by Rivest, Shamir, and Aldeman in 1977 • Since then the field of cryptography has blossomed 95-712 OOP/Java

  4. The Cast of Characters • Eve - always peeking at messages she should not be seeing. • Mallory - always trying to manipulate messages she has no business manipulating. • Bob and Alice - always trying to communicate over insecure channels. • Trent - A trusted third party who tries to help Bob and Alice. 95-712 OOP/Java

  5. The RSA Public-Key Cryptosystem • Select at random two large prime numbers p and q. • These numbers would normally be about 500 digits • in length. • Compute n by the equation n = p X q. • Compute (n) = (p –1) X (q –1) • Select a small odd integer e that is relatively prime to • (n) 95-712 OOP/Java

  6. The RSA Public-Key Cryptosystem 5. Compute d as the multiplicative inverse of e modulo (n). A theorem in number theory asserts that d exists and is uniquely defined. 6. Publish the pair P = (e,n) as the RSA public key. 7. Keep secret the pair S = (d,n) as the RSA secret key. 95-712 OOP/Java

  7. The RSA Public-Key Cryptosystem 8. To encrypt a message M compute C = Me (mod n) 9. To decrypt a message C compute M = Cd (mod n) 95-712 OOP/Java

  8. Key Selection Phase • Select at random two large prime numbers p and q. • These numbers would normally be about 500 digits • in length. • p = 3 q = 11 • Compute n by the equation n = p X q. • n = 33 3. Compute (n) = (p –1) X (q –1) (n) = (2) X (10) = 20 95-712 OOP/Java

  9. Key Selection Phase p = 3 q = 11 n = 33 (n) = 20 4. Select a small odd integer e that is relatively prime to (n) e = 3 95-712 OOP/Java

  10. Key Selection Phase p = 3 q = 11 n = 33 (n) = 20 e = 3 5. Compute d as the multiplicative inverse of e, modulo (n). A theorem in number theory asserts that d exists and is uniquely defined (since e and (n) are relatively prime). We need a d so that ed mod  = 1 Let’s try 1. 3 X 1 mod 20 = 3 mod 20 = 3. Nope. 95-712 OOP/Java

  11. Key Selection Phase p = 3 q = 11 n = 33 (n) = 20 e = 3 We need a d so that ed mod  = 1 Let’s try 2. 3 X 2 mod 20 = 6 mod 20 = 6. Nope. Let’s try 7. 3 X 7 mod 20 = 21 mod 20 = 1. We found it! We need a better way….we’ll see this soon. 95-712 OOP/Java

  12. Key Selection Phase p = 3 q = 11 n = 33 (n) = 20 e = 3 d = 7 6. Publish the pair P = (e,n) as the RSA public key. “Hey everyone, my key pair is 3 and 33” 7. Keep secret the pair S = (d,n) as the RSA secret key. “I’m not telling anyone about 7 and 33!!” 95-712 OOP/Java

  13. Message encoding phase Bob’s public keys are e = 3 n = 33 Alice wants to send the letter ‘d’ to Bob. Suppose that we have a public code where ‘a’ = 0 ‘b’ = 1 ‘c’ = 2 ‘d’ = 3 and so on… Alice’s software knows that 8. To encrypt a message M compute C = Me (mod n) = 33 mod 33 = 27 mod 33 = 27 95-712 OOP/Java

  14. Message decoding phase Bob’s private keys are d = 7 n = 33 Bob receives a 27 from Alice: 9. To decrypt a message C compute M = Cd (mod n) = 277 mod 33 = 10460353203 mod 33 = 3 (which is ‘d’) 95-712 OOP/Java

More Related