public key cryptography
play

Public Key Cryptography Diffie-Hellman Others CSS441: Security and - PowerPoint PPT Presentation

CSS441 Public Key Crypto Principles RSA Public Key Cryptography Diffie-Hellman Others CSS441: Security and Cryptography Sirindhorn International Institute of Technology Thammasat University Prepared by Steven Gordon on 20 December 2015


  1. CSS441 Public Key Crypto Principles RSA Public Key Cryptography Diffie-Hellman Others CSS441: Security and Cryptography Sirindhorn International Institute of Technology Thammasat University Prepared by Steven Gordon on 20 December 2015 css441y15s2l07, Steve/Courses/2015/s2/css441/lectures/public-key-cryptography.tex, r4295 1/29

  2. CSS441 Contents Public Key Crypto Principles RSA Principles of Public-Key Cryptosystems Diffie-Hellman Others The RSA Algorithm Diffie-Hellman Key Exchange Other Public-Key Cryptosystems 2/29

  3. CSS441 Birth of Public-Key Cryptosystems Public Key Crypto ◮ Beginning to 1960’s: permutations and substitutions Principles (Caesar, rotor machines, DES, . . . ) RSA ◮ 1960’s: NSA secretly discovered public-key Diffie-Hellman cryptography Others ◮ 1970: first known (secret) report on public-key cryptography by CESG, UK ◮ 1976: Diffie and Hellman public introduction to public-key cryptography ◮ Avoid reliance on third-parties for key distribution ◮ Allow digital signatures 3/29

  4. CSS441 Principles of Public-Key Cryptosystems Public Key Crypto ◮ Symmetric algorithms used same secret key for Principles encryption and decryption RSA ◮ Asymmetric algorithms in public-key cryptography use Diffie-Hellman one key for encryption and different but related key for Others decryption ◮ Characteristics of asymmetric algorithms: ◮ Require: Computationally infeasible to determine decryption key given only algorithm and encryption key ◮ Optional: Either of two related keys can be used for encryption, with other used for decryption 4/29

  5. CSS441 Public and Private Keys Public Key Crypto Public-Private Key Pair Principles RSA ◮ User A has pair of related keys, public and private: Diffie-Hellman ( PU A , PR A ); similar for other users Others Public Key ◮ Public, Available to anyone ◮ For secrecy: used in encryption ◮ For authentication: used in decryption Private Key ◮ Secret, known only by owner ◮ For secrecy: used in decryption ◮ For authentication: used in decryption 5/29

  6. CSS441 Confidentiality with Public Key Crypto Public Key Crypto Principles RSA Diffie-Hellman Others ◮ Encrypt using receivers public key ◮ Decrypt using receivers private key ◮ Only the person with private key can successful decrypt 6/29

  7. CSS441 Authentication with Public Key Crypto Public Key Crypto Principles RSA Diffie-Hellman Others ◮ Encrypt using senders private key ◮ Decrypt using senders public key ◮ Only the person with private key could have encrypted 7/29

  8. CSS441 Conventional vs Public-Key Encryption Public Key Crypto Principles RSA Diffie-Hellman Others Credit: Table 9.2 in Stallings, Cryptography and Network Security , 5th Ed., Pearson 2011 8/29

  9. CSS441 Applications of Public Key Cryptosystems Public Key Crypto ◮ Secrecy, encryption/decryption of messages Principles ◮ Digital signature, sign message with private key RSA ◮ Key exchange, share secret session keys Diffie-Hellman Others Credit: Table 9.3 in Stallings, Cryptography and Network Security , 5th Ed., Pearson 2011 9/29

  10. CSS441 Requirements of Public-Key Cryptography Public Key Crypto 1. Computationally easy for B to generate pair ( PU b , PR b ) Principles 2. Computationally easy for A, knowing PU b and message RSA M , to generate ciphertext: Diffie-Hellman Others C = E ( PU b , M ) 3. Computationally easy for B to decrypt ciphertext using PR b : M = D ( PR b , C ) = D [ PR b , E ( PU b , M )] 4. Computationally infeasible for attacker, knowing PU b and C , to determine PR b 5. Computationally infeasible for attacker, knowing PU b and C , to determine M 6. (Optional) Two keys can be applied in either order: M = D [ PU b , E ( PR b , M )] = D [ PR b , E ( PU b , M )] 10/29

  11. CSS441 Requirements of Public-Key Cryptography Public Key Crypto 6 requirements lead to need for trap-door one-way function Principles ◮ Every function value has unique inverse RSA ◮ Calculation of function is easy Diffie-Hellman Others ◮ Calculation of inverse is infeasible, unless certain information is known Y = f k ( X ) easy, if k and Y are known X = f − 1 ( Y ) easy, if k and Y are known k X = f − 1 ( Y ) infeasible, if Y is known but k is not k ◮ What is easy? What is infeasible? ◮ Computational complexity of algorithm gives an indication ◮ Easy if can be solved in polynomial time as function of input 11/29

  12. CSS441 Public-Key Cryptanalysis Public Key Crypto Brute Force Attacks Principles RSA ◮ Use large key to avoid brute force attacks Diffie-Hellman ◮ Public key algorithms less efficient with larger keys Others ◮ Public-key cryptography mainly used for key management and signatures Compute Private Key from Public Key ◮ No known feasible methods using standard computing Probable-Message Attack ◮ Encrypt all possible M ′ using PU b —for the C ′ that matches C , attacker knows M ◮ Only feasible of M is short ◮ Solution for short messages: append random bits to make it longer 12/29

  13. CSS441 Contents Public Key Crypto Principles RSA Principles of Public-Key Cryptosystems Diffie-Hellman Others The RSA Algorithm Diffie-Hellman Key Exchange Other Public-Key Cryptosystems 13/29

  14. CSS441 RSA Public Key Crypto ◮ Ron Rivest, Adi Shamir and Len Adleman Principles ◮ Created in 1978; RSA Security sells related products RSA ◮ Most widely used public-key algorithm Diffie-Hellman Others ◮ Block cipher: plaintext and ciphertext are integers 14/29

  15. CSS441 The RSA Algorithm Public Key Crypto Key Generation Principles RSA 1. Choose primes p and q , and calculate n = pq Diffie-Hellman 2. Select e : gcd ( φ ( n ) , e ) = 1 , 1 < e < φ ( n ) Others 3. Find d ≡ e − 1 (mod φ ( n )) PU = { e , n } , PR = { d , n } , p and q also private Encryption Encryption of plaintext M , where M < n : C = M e mod n Decryption Decryption of ciphertext C : M = C d mod n 15/29

  16. CSS441 Requirements of the RSA Algorithm Public Key Crypto 1. Possible to find values of e , d , n such that Principles M ed mod n = M for all M < n RSA 2. Easy to calculate M e mod n and C d mod n for all Diffie-Hellman values of M < n Others 3. Infeasible to determine d given e and n ◮ Requirement 1 met if e and d are relatively prime ◮ Choose primes p and q , and calculate: n = pq 1 < e < φ ( n ) (mod φ ( n )) or d ≡ e − 1 ed ≡ 1 (mod φ ( n )) ◮ n and e are public; p , q and d are private 16/29

  17. CSS441 Example of RSA Algorithm Public Key Crypto Principles RSA Diffie-Hellman Others 17/29

  18. CSS441 RSA Implementation Example Public Key Crypto ◮ Encryption: Principles C = M e mod n RSA ◮ Decryption: Diffie-Hellman M = C d mod n Others ◮ Modulus, n of length b bits ◮ Public exponent, e ◮ Private exponent, d ◮ Prime1, p , and Prime2, q ◮ Exponent1, d p = d (mod p − 1) ◮ Exponent2, d q = d (mod q − 1) ◮ Coefficient, q inv = q − 1 (mod p ) ◮ Private values: { n , e , d , p , q , d p , d q , q inv } ◮ Public values: { n , e } 18/29

  19. CSS441 Computational Efficiency of RSA Public Key Crypto ◮ Encryption and decryption require exponentiation Principles ◮ Very large numbers; using properties of modular RSA arithmetic makes it easier: Diffie-Hellman [( a mod n ) × ( b mod n )] mod n = ( a × b ) mod n Others ◮ Choosing e ◮ Values such as 3, 17 and 65537 are popular: make exponentiation faster ◮ Small e vulnerable to attack: add random padding to each M ◮ Choosing d ◮ Small d vulnerable to attack ◮ Decryption using large d made faster using Chinese Remainder Theorem and Fermat’s Theorem ◮ Choosing p and q ◮ p and q must be very large primes ◮ Choose random odd number and test if its prime (probabilistic test) 19/29

  20. CSS441 Security of RSA Public Key Crypto ◮ Brute-Force attack: choose large d (but makes Principles algorithm slower) RSA ◮ Mathematical attacks: Diffie-Hellman 1. Factor n into its two prime factors Others 2. Determine φ ( n ) directly, without determining p or q 3. Determine d directly, without determining φ ( n ) ◮ Factoring n is considered fastest approach; hence used as measure of RSA security ◮ Timing attacks: practical, but countermeasures easy to add (e.g. random delay). 2 to 10% performance penalty ◮ Chosen ciphertext attack: countermeasure is to use padding (Optimal Asymmetric Encryption Padding) 20/29

  21. CSS441 Progress in Factorisation Public Key Crypto ◮ Factoring is considered the easiest attack Principles ◮ Some records by length of n : RSA ◮ 1991: 330 bits (100 digits) Diffie-Hellman ◮ 2003: 576 bits (174 digits) Others ◮ 2005: 640 bits (193 digits) ◮ 2009: 768 bit (232 digits), 10 20 operations, 2000 years on single core 2.2 GHz computer ◮ Typical length of n : 1024 bits, 2048 bits, 4096 bits 21/29

  22. CSS441 Contents Public Key Crypto Principles RSA Principles of Public-Key Cryptosystems Diffie-Hellman Others The RSA Algorithm Diffie-Hellman Key Exchange Other Public-Key Cryptosystems 22/29

  23. CSS441 Diffie-Hellman Key Exchange Public Key Crypto ◮ Diffie and Hellman proposed public key crypto-system in Principles 1976 RSA ◮ Algorithm for exchanging secret key (not for secrecy of Diffie-Hellman data) Others ◮ Based on discrete logarithms ◮ Easy to calculate exponential modulo a prime ◮ Infeasible to calculate inverse, i.e. discrete logarithm 23/29

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