public key algorithms
play

Public Key Algorithms hash: irreversible transformation(message) - PowerPoint PPT Presentation

1 Public Key Algorithms hash: irreversible transformation(message) secret key: reversible transformation(block) encryption digital signatures authentication RSA yes yes yes El Gamal no yes no Zero-knowledge proofs no no yes


  1. 1 Public Key Algorithms � hash: irreversible transformation(message) � secret key: reversible transformation(block) encryption digital signatures authentication RSA yes yes yes El Gamal no yes no Zero-knowledge proofs no no yes Diffie-Hellman: exchange of secrets all: pair (public, private) for each principal

  2. 2 Modular Addition K ➠ (poor) cipher with key � addition modulo (mod) K � additive inverse : � x : add until modulo (or 0) � “decrypt” by adding inverse

  3. 3 Modular Multiplication � 0 1 2 3 4 5 6 7 8 9 0 0 0 0 0 0 0 0 0 0 0 1 0 1 2 3 4 5 6 7 8 9 2 0 2 4 6 8 0 2 4 6 8 3 0 3 6 9 2 5 8 1 4 7 � multiplication by 1, 3, 7, 9 works as cipher � 1 : � multiplicative inverse x y � x = 1 � only 1, 3, 7, 9 have multiplicative inverses (e.g., 7 $ 3) � use Euclid’s Algorithm to find inverse

  4. 4 Totient Function � x; m relatively prime = no other common factor than 1 � relatively prime 6 = prime (9 rel. prime 10) � e.g., 6 not relatively prime to 10: 2 divides both 6 and 10 � totient function � ( n ) : number of numbers less than n relatively prime to n 1 g are rp ➠ n prime, f 1 ; 2 ; : : : ; n � � ( n ) = n � 1 – if q distinct prime ➠ n = p � q , p; � ( n ) = ( p � 1)( q � 1) : – if � n = pq numbers in f 0 ; 1 ; 2 ; : : : ; n � 1 g ; exclude non-rp � ➠ exclude multiples of p or q � p multiples of q < pq (0,1,. . . ), q multiples of p < pq � thus, exclude p + q � 1 numbers – don’t count 0 twice � � ( pq ) = pq � ( p + q � 1) = ( p � 1)( q � 1)

  5. 5 Modular Exponentiation + n y y x mo d n 6 = x mo d n ! y x 0 1 2 3 4 5 6 7 8 9 10 11 12 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 2 4 8 6 2 4 8 6 2 4 8 6 3 1 3 9 7 1 3 9 7 1 3 9 7 1 4 1 4 6 4 6 4 6 4 6 4 6 4 6 5 1 5 5 5 5 5 5 5 5 5 5 5 5 6 1 6 6 6 6 6 6 6 6 6 6 6 6 7 1 7 9 3 1 7 9 3 1 7 9 3 1 8 1 8 4 2 6 8 4 2 6 8 4 2 6 9 1 9 1 9 1 9 1 9 1 9 1 9 1

  6. 6 Modular Exponentiation 3 works, 2 does not � encryption: x x x y � exponentiative inverse y of x : ( a ) = a � columns: 1 = 5 ; 2 = 6 ; 3 = 7 ; : : : y y mo d � ( n ) � x mo d n = x mo d n 9 g ➠ � r p (10) = f 1 ; 3 ; 7 ; � ( n ) = 4 � true for almost all n : any n = product of distinct primes ( square-free ) y � ( n )) ➠ � for any y with y = 1 (mo d x mo d n = x mo d n (e.g., 1, 5 and 9)

  7. 7 RSA � Rivest, Shamir, Adleman � variable key length (common: 512 bits) � ciphertext length = key length � slow ➠ mostly used to encrypt secret for secret key cryptography

  8. 8 RSA Algorithm Generate private and public key: � choose two large primes, p and q , about 256 bits (77 digits) each � n = p � q (512 bits), don’t reveal p and q � factoring 512 bit number is hard 1) ➠ e rp � ( n ) = ( p � 1)( q � h e; n i public key: � 1 ➠ d = ( e mo d � ( n )) h d; n i private key: e m < n : = m mo d n encryption: of d m = mo d n decryption: e m = s mo d n (signature s ) verification:

  9. 9 RSA example p = 47 q = 71 n = pq = 3337 e = 79 prime, i.e., rp to ( p � 1)( q � 1) � 1 d = 79 mo d 3220 = 1019 m = 688232687666683 m = 688 1 79 = 688 mo d 3337 = 1570 1 1019 p = 1570 mo d 3337 = 688 1

  10. 10 Why does RSA work? � n = pq , � ( n ) = ( p � 1)( q � 1) � 1 � de = 1 (mo d � ( n )) since e rp � ( n ) and d = e de � x = x (mo d n ) 8 x e � encryption: x e d ed � decryption: ( x ) = x = x � signature: reverse

  11. 11 Why is RSA secure? � factor 512-bit number: half million MIPS years (= all US computers for one year) � given public key h e; n i � need to find exponentiative inverse of e � need to know p , q to compute � ( n ) � abuse: if limited set of messages, can compare ➠ append random number � 2/2/1999: RSA-140 was factored.

  12. 12 RSA Efficiency: Exponentiating 54 � 123 mo d 678 = (123 � 123 � � � ) = 678 � modular reduction after each multiply: � ( a � b � ) mo d m = ((( a � b ) mo d m ) � ) mo d m 2 123 = 123 � 123 = 15129 = 213 (mo d 678) 3 123 = 123 � 213 = 26199 = 435 (mo d 678) 4 123 = 123 � 435 = 53505 = 435 (mo d 678) � 54 small multiplies, 54 divides 32 � exponent power of 2: 123 2 123 = 123 � 123 = 15129 = 213 (mo d 678) 4 123 = 213 � 213 = 45369 = 671 (mo d 678) 8 123 = 621 � 621 = 385641 = 213 (mo d 678)

  13. 13 2 x +1 2 x � 123 = 123 � 123

  14. 14 RSA Efficiency: Exponentiating 54 = 110110 2 ; start with exponent “1”. 2 10 - 123 = 123 � 123 = 15129 = 213 (mo d 678) 3 11 +1 123 = 213 � 123 = 26199 = 435 (mo d 678) 6 110 - 123 = 435 � 435 = 189225 = 63 (mo d 678) 12 1100 - 123 = 63 � 63 = 3969 = 579 (mo d 678) 13 1101 +1 123 = 579 � 123 = 71217 = 27 (mo d 678) 26 11010 - 123 = 27 � 27 = 729 = 51 (mo d 678) 27 11011 +1 123 = 51 � 123 = 6273 = 171 (mo d 678) 54 110110 - 123 = 171 � 171 = 29241 = 87 (mo d 678) 54 2 2 2 2 2 x = ((((( x ) x ) ) x ) x ) = 87 (mo d 678) or ➠ 8 multiplies, 8 divides ➠ linearly with exponent bits

  15. 15 RSA Implementation 2 3 4 O ( k ) , private key: O ( k ) , key generation: O ( k ) public key: DES Pijnenburg PCC101 CFB 90 Mb/s Vasco CRY12C102 CFB 22 Mb/s RSA Pijnenburg PCC202 512 40 kb/s 1024 25 kb/s Vasco PQR512 512 32 kb/s � fastest RSA hardware: 300 kb/s � 90 MHz Pentium: throughput (private key) of 21.6 kb/s, 7.4 kb/s per second with a 1024-bit modulus � DES software: 100 times faster than RSA � DES hardware: 1,000 to 10,000 times faster

  16. 16 Finding Big Primes p and q � infinite number of primes, probability 1 = ln n � ten-digit number: 1 in 23, hundred-digit: 1 in 230 � pick at random and check if prime p � bad: divide by all n � ( n ) n ➠ � Euler’s Theorem: a rp a = 1 (mo d n ) � if n prime, � ( n ) = n � 1 p � 1 p is prime and 0 < a < p , a = 1 Theorem 1 (Fermat’s Little Theorem) If (mo d p ) � if p not prime, does not usually hold ? n � 1 � ➠ pick some a < n , compute a mo d n ! 1 13 ➠ repeat � probability of accepting bad n : 10

  17. 17 Carmichael Numbers n � 1 � Carmichael numbers n : not prime, but a = 1 (mo d n ) 8 a (where a not a n ) factor in � infinitely many � first few: 561, 1105, 1729, 2465, 2821, 6601, 8911 16 � 246,683 below 10 560 560 � example: 7 mo d 561 = 1 , but 3 mo d 561 = 375

  18. 18 Finding Big Primes p and q : Miller and Rabin Variation on Fermat test: b � express n � 1 as 2 , where b � 0 b n � 1 2 � compute a (mo d n ) (Fermat) as ( a ) (mo d n ) � ➠ square b times � if not 1 ➠ not prime; if 1, test: 1 ➠ squaring not-1 a (mo d n ) 6 = ! 1 – if – ➠ square root of 1 p n is prime (mo d n ) , 1 are 1 and � 1(= n � 1) – rule: if p – ➠ if 1 6 = � 1 , n not prime a ; 75% of a fail the test if n not prime – try many values for

  19. 19 Big Primes: Implementation n 1. pick odd random number n= f 3 ; 5 ; 7 ; 11 ; : : : g and try again 2. check 3. repeat until failure or confidence: b a and compute a (mo d n ) , with n � 1 = 2 (a) pick random 2 , then a b times: ( a ) (b) compute � 1 ? ➠ no prime if not (c) if result = 1: operand =

  20. 20 Finding d and e � e = any number rp to ( p � 1)( q � 1) � ( n )) ➠ Euclid’s algorithm � ed = 1 (mo d e : Options for picking e is rp to ( p � 1)( q � 1) 1. pick randomly until e and pick p; q so that ( p � 1) ; ( q � 1) are rp to e 2. choose

  21. 21 Having a Small Constant e � e same small number � d can’t be small (searchable) � e = 3 or e = 65537 � can’t use 2: not rp to ( p � 1)( q � 1) p � message must be bigger than n 3 � send copies of message to three people: e = h 3 ; n i i i 3 (Chinese remainder) 3 m mo d n n n = m – Trudy: 1 2 3 – ➠ choose random/individualized padding

  22. 22 RSA: e = 3 � 1 � 3 rp to � ( n ) = ( p � 1)( q � 1) since d = e � each p � 1 , q � 1 must be rp to 3 x ➠ � 3 is factor of x mo d 3 = 0 1) rp 3 ➠ 3) ➠ � ( p � p = 2 (mo d ( p � 1) = 1 (mo d 3) 1) rp 3 ➠ 3) ➠ � ( q � q = 2 (mo d ( q � 1) = 1 (mo d 3) � choose p = r � 3 + 2 , r random, odd

  23. 23 RSA: e = 65537 16 n � 65537 = 2 + 1 , (Mersenne prime: 2 � 1 !) 16 2 � only 17 multiplies to exponentiate: x x � random 512-bit number: 768 multiplies � avoid “3” problems: 65537 m with m < n (512 bits) 1. few 2. have to send to 65,537 recipients � ( n ) ➠ reject n rp p; q = 1 (mo d 65537) 3.

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