Cryptography Lecture 25.

Slides:



Advertisements
Similar presentations
CS555Topic 191 Cryptography CS 555 Topic 19: Formalization of Public Key Encrpytion.
Advertisements

CMSC 414 Computer and Network Security Lecture 6 Jonathan Katz.
CMSC 414 Computer and Network Security Lecture 7 Jonathan Katz.
A Designer’s Guide to KEMs Alex Dent
Asymmetric Cryptography part 1 & 2 Haya Shulman Many thanks to Amir Herzberg who donated some of the slides from
CMSC 414 Computer and Network Security Lecture 9 Jonathan Katz.
CMSC 414 Computer and Network Security Lecture 6 Jonathan Katz.
CMSC 414 Computer and Network Security Lecture 7 Jonathan Katz.
Fall 2010/Lecture 311 CS 426 (Fall 2010) Public Key Encryption and Digital Signatures.
1 CIS 5371 Cryptography 9. Data Integrity Techniques.
Introduction to Public Key Cryptography
Public Key Model 8. Cryptography part 2.
8. Data Integrity Techniques
CS555Topic 211 Cryptography CS 555 Topic 21: Digital Schemes (1)
Cryptography Lecture 8 Stefan Dziembowski
Lecture 11 Chosen-Ciphertext Security Stefan Dziembowski MIM UW ver 1.0.
1 Lect. 13 : Public Key Encryption RSA ElGamal. 2 Shamir Rivest Adleman RSA Public Key Systems  RSA is the first public key cryptosystem  Proposed in.
CS526: Information Security Prof. Sam Wagstaff September 16, 2003 Cryptography Basics.
Lecture 3.4: Public Key Cryptography IV CS 436/636/736 Spring 2013 Nitesh Saxena.
Cryptography Lecture 9 Stefan Dziembowski
Cryptography Lecture 11 Stefan Dziembowski
Public Key Algorithms Lesson Introduction ●Modular arithmetic ●RSA ●Diffie-Hellman.
Revision. Cryptography depends on some properties of prime numbers. One of these is that it is rather easy to generate large prime numbers, but much harder.
Overview Modern public-key cryptosystems: RSA
최신정보보호기술 경일대학교 사이버보안학과 김 현성.
Cryptography CS 555 Topic 34: SSL/TLS.
Attacks on Public Key Encryption Algorithms
Asymmetric-Key Cryptography
Key Exchange References: Applied Cryptography, Bruce Schneier
Public Key Encryption Systems
B504/I538: Introduction to Cryptography
Public Key Encryption and Digital Signatures
Information Security CS 526
Public-key Cryptography
Chapters 14,15 Security.
Authenticated encryption
Topic 24: Finding Prime Numbers, RSA
Cryptography.
Digital signatures.
Digital Signatures Last Updated: Oct 14, 2017.
Cryptography Lecture 9.
Digital Signature Schemes and the Random Oracle Model
Cryptography Lecture 26.
Cryptography Lecture 12.
Cryptography Lecture 27.
Topic 25: Discrete LOG, DDH + Attacks on Plain RSA
Real-world Security of Public Key Crypto
Cryptography Lecture 10.
Security through Encryption
Introduction to Symmetric-key and Public-key Cryptography
Cryptography Lecture 25.
Symmetric-Key Cryptography
Cryptography Lecture 11.
Cryptography: Basics (2)
Information Security CS 526
Chapters 14,15 Security.
Cryptography Lecture 12.
Chapter 29 Cryptography and Network Security
Symmetric-Key Cryptography
Cryptography Lecture 9.
Cryptography Lecture 22.
Cryptography Lecture 11.
Oblivious Transfer.
Cryptography Lecture 10.
Cryptography Lecture 21.
Public Key Encryption Systems
Cryptography Lecture 24.
Cryptography Lecture 23.
Cryptography Lecture 26.
Presentation transcript:

Cryptography Lecture 25

RSA-based PKE

Recall… Let p, q be random, equal-length primes Compute modulus N=pq Choose e, d such that e · d = 1 mod (N) The eth root of x modulo N is [xd mod N] I.e., easy to compute given p, q (or d) RSA assumption: given N, e only, it is hard to compute the eth root of a uniform c  ℤN*

This suggests a public-key encryption scheme!

“Plain” RSA encryption N, e c (N, e, d)  RSAGen(1n) pk = (N, e) sk = d c = [me mod N] m = [cd mod N]

Is this scheme secure?

Plain RSA should never be used! Security? This scheme is deterministic Cannot be CPA-secure! RSA assumption only refers to hardness of computing the eth root of a uniform c c is not uniform unless m is Why would m be uniform? Easy to compute eth root of c = [me mod N] when m is small RSA assumption only refers to hardness of computing the eth root of c in its entirety Partial information about the eth root may be leaked (In fact, this is the case) Plain RSA should never be used!

Chosen-ciphertext attacks (Of course, plain RSA cannot be CCA-secure since it is not even CPA-secure… …but chosen-ciphertext attacks are devastating here) Given ciphertext c for unknown message m, can compute c’ = [e  c mod N] What does this decrypt to?

How to fix plain RSA? One approach: use a randomized encoding I.e., to encrypt m First compute some reversible, randomized mapping M = E(m) Then set c := [Me mod N] To decrypt c Compute M := [cd mod N] Recover m from M

PKCS #1 v1.5 Standard issued by RSA labs in 1993 Idea: introduce random padding E(m) = r|m I.e., to encrypt m Choose random r Compute the ciphertext c := [ (r|m)e mod N] Issues: No proof of CPA-security (unless m is very short) Chosen-plaintext attacks are known if r is too short Chosen-ciphertext attacks possible

PKCS #1 v2.0 Optimal asymmetric encryption padding (OAEP) applied to message first This padding introduces redundancy, so that not every c  ℤ*N is a valid ciphertext Need to check for proper format upon decryption Return error if not properly formatted

OAEP m | 0…0 r G H e c = s t mod N

Security? RSA-OAEP can be proven CCA-secure under the RSA assumption, if G and H are modeled as random oracles Widely used in practice…

RSA-based KEM Idea: use plain RSA as before… …but on a random value! Then use that random value to derive a key

RSA-based KEM Encaps: Decaps(c) Choose uniform r  ℤ*N Ciphertext is c = [re mod N] Key is k = H(r) Decaps(c) Compute r = [cd mod N] Compute the shared key k = H(r)

Security? This KEM can be proven CCA-secure under the RSA assumption, if H is modeled as a random oracle

Comparison to RSA-OAEP? The RSA-KEM must be used with a symmetric-key encryption scheme For very short messages (< 1500 bits), RSA-OAEP will have shorter ciphertexts For anything longer, ciphertexts will be the same length; RSA-KEM is simpler

Digital signatures

Digital signatures Provide integrity in the public-key setting Analogous to message authentication codes, but some key differences…

Digital signatures pk pk pk m,  pk pk, sk 1 = Vrfypk(m, ) ?  = Signsk(m)

Public-key encryption pk pk pk c pk pk, sk c  Encpk(m) m = Decsk(c)

Security (informal) Even after observing signatures on multiple messages, an attacker should be unable to forge a valid signature on a new message

Prototypical application pk patch’, ’ patch,  pk, sk pk  = Signsk(patch) pk

Comparison to MACs? t’ = Mack(patch’) k patch’, t’ patch, t k k

Comparison to MACs? patch, t1 k1 patch, t2 k1, k2, k3 patch, t3 k2 t1 = Mack1(patch) t2 = Mack2(patch) t3 = Mack3(patch) k3

Comparison to MACs? Public verifiability Transferability “Anyone” can verify a signature (Only a holder of the key can verify a MAC tag) Transferability Can forward a signature to someone else… Non-repudiation

Non-repudiation Signer cannot (easily) deny issuing a signature Crucial for legal applications Judge can verify signature using public copy of pk MACs cannot provide this functionality! Without access to the key, no way to verify a tag Even if receiver gives key to judge, how can the judge verify that the key is correct? Even if key is correct, receiver could have generated the tag also!