This preview shows pages 1–2. Sign up to view the full content.
This preview has intentionally blurred sections. Sign up to view the full version.View Full Document
Unformatted text preview: CS 2800: Discrete Math Sept. 23, 2011 Lecture Lecturer: John Hopcroft Scribe: June Andrews Review See previous lecture notes. Public Key Encryption We are going to build up to RSA encryption. To do that, we need explain the general framework for encryption decrpytion and build up more understanding about primes. Let us say we have an algorithm that works for everyone and can be indiviualized by a pair of random numbers. The algorithms works by, given E a process for encoding a message, m , and D a process for decoding m : D ( E ( m )) = m E ( D ( m )) = m. We have to personalize the algorithm (ie, not everyone can have exactly the same E and D , otherwise everyone could read everyone elses messages and that is not very good encryption). We can personalize the algorithm by have everyone generate 2 large primes, p and q , say on the order of 10 50 . Now, we make p * q public, but keep p and q private. You would think if you knew pq , you could easily find p and q , however, the problem of factoring a large number into its two large prime factors is in fact very hard. So hard, it is considered impossible. Now, with these primes we can Bob can produce his own version of the encryption/decryption algorithms, E b and D b . Bob makes E b public and keeps D b private. The process of Alice sending Bob a message is as follows: 1. Alice creates m and looks up Bobs public E b 2. Alice sends Bob, E b ( m ) 3. Bob receives E b ( m ) and decrypts it with D b ( E b ( m )) = m ....
View Full Document
This note was uploaded on 11/11/2011 for the course CS 2800 at Cornell University (Engineering School).