cryptography joining the rsa cryptosystem
play

Cryptography: Joining the RSA Cryptosystem Greg Plaxton Theory in - PowerPoint PPT Presentation

Cryptography: Joining the RSA Cryptosystem Greg Plaxton Theory in Programming Practice, Spring 2004 Department of Computer Science University of Texas at Austin Joining the RSA Cryptosystem: Overview First, Bob randomly chooses two large


  1. Cryptography: Joining the RSA Cryptosystem Greg Plaxton Theory in Programming Practice, Spring 2004 Department of Computer Science University of Texas at Austin

  2. Joining the RSA Cryptosystem: Overview • First, Bob randomly chooses two large (e.g., 512-bit) primes p and q • Then, Bob computes n = pq , φ ( n ) = ( p − 1)( q − 1) , and a positive integer d < n such that d and φ ( n ) are relatively prime – In particular, any prime exceeding max( p, q ) (and less than n ) is a valid choice for d • Then, Bob computes e such that de is congruent to 1 modulo φ ( n ) • Bob’s public key is ( e, n ) and Bob’s private key is ( d, n ) • We will discuss each of these steps in greater detail in the slides that follow Theory in Programming Practice, Plaxton, Spring 2004

  3. Primality Testing • Surprisingly, there exist efficient (and polynomial time) algorithms for “primality testing”, that is, for determining whether a given integer n is prime or composite • These algorithms do not work by factoring, since no efficient algorithms are known for factoring • Miller gave the first polynomial-time primality testing algorithm in 1976 – His work yields gives an efficient randomized algorithm – In fact, it yields a deterministic algorithm suvject to the extended Riemann hypothesis • In a theoretical breakthrough, the first deterministic polynomial-time algorithm for primality testing was discovered in 2002 by Agrawal, Kayal, and Saxena – Still, the primality testing algorithms used in practice are randomized, since they are faster (on average) Theory in Programming Practice, Plaxton, Spring 2004

  4. Prime Number Theorem • Prime number theorem: As n tends to infinity, the fraction of the first 1 n positive integers that are prime tends to ln n • For example, about a . 002818 fraction of the numbers less than 2 512 are prime, and about a . 002823 fraction of the numbers less than 2 511 are prime – Thus, about a . 002813 fraction of 512-bit numbers (i.e., with leading 1 bit in bit position 511, indexing from 0), or about one in 355.5, is prime – So if we pick a set S of a few thousand 512-bit numbers independently and uniformly at random, we are overwhlemingly likely to pick at least one prime – We can use an efficient primality test to find a prime in S – We can make this approach more efficient by, e.g., picking only odd 512-bit numbers Theory in Programming Practice, Plaxton, Spring 2004

  5. Joining the RSA Cryptosystem: Implementation • Given that we’ve seen how to generate random large primes, we now know how to compute p , q , and d – Of course, p and q also give us n = pq and φ ( n ) = ( p − 1)( q − 1) • All that is left is to compute e such that de is congruent to 1 modulo φ ( n ) – We will compute e using the extended Euclid algorithm, as discussed on the next slide Theory in Programming Practice, Plaxton, Spring 2004

  6. Joining the RSA Cryptosystem: Computation of e • Recall that given nonnegative integers x and y (at least one of which is nonzero), the extended Euclid algorithm calculates a and b such that ax + by = gcd( x, y ) • Set x to d and y to φ ( n ) • Since d and φ ( n ) are relatively prime, gcd( d, φ ( n )) = 1 • Thus, the extended Euclid algorithm gives us a and b such that ad + bφ ( n ) = 1 • Hence ad is congruent to 1 modulo φ ( n ) • So we can just set e to the unique integer in { 0 , . . . , φ ( n ) − 1 } that is congruent to a modulo φ ( n ) Theory in Programming Practice, Plaxton, Spring 2004

  7. Joining the RSA Cryptosystem: Example • Suppose we choose primes p = 47 and q = 59 (in practice, we would much larger primes) • Then n = 47 · 59 = 2773 and φ ( n ) = 46 · 58 = 2668 • Now suppose we choose d = 157 – Note that 157 is a prime greater than p and q and hence is relatively prime to φ ( n ) • Running the extended Euclid algorithm with x = 157 and y = 2668 yields e = 17 • Bob’s public key is (17 , 2773) and his private key is (157 , 2668) Theory in Programming Practice, Plaxton, Spring 2004

  8. RSA Encryption and Decryption • Next time we’ll see how to use Bob’s public key to encrypt messages sent to Bob • We’ll also see how Bob uses his private key to decrypt these messages Theory in Programming Practice, Plaxton, Spring 2004

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend