Cryptography Lecture 24.

Slides:



Advertisements
Similar presentations
Trusted 3rd parties Basic key exchange
Advertisements

1 Introduction CSE 5351: Introduction to cryptography Reading assignment: Chapter 1 of Katz & Lindell.
Public Key Algorithms …….. RAIT M. Chatterjee.
CS555Spring 2012/Topic 161 Cryptography CS 555 Topic 16: Key Management and The Need for Public Key Cryptography.
CMSC 414 Computer and Network Security Lecture 6 Jonathan Katz.
Cryptography1 CPSC 3730 Cryptography Chapter 10 Key Management.
CMSC 414 Computer and Network Security Lecture 5 Jonathan Katz.
How cryptography is used to secure web services Josh Benaloh Cryptographer Microsoft Research.
CMSC 414 Computer and Network Security Lecture 6 Jonathan Katz.
Cryptography1 CPSC 3730 Cryptography Chapter 9 Public Key Cryptography and RSA.
Fall 2010/Lecture 311 CS 426 (Fall 2010) Public Key Encryption and Digital Signatures.
1 Pertemuan 08 Public Key Cryptography Matakuliah: H0242 / Keamanan Jaringan Tahun: 2006 Versi: 1.
CSCI 172/283 Fall 2010 Public Key Cryptography. New paradigm introduced by Diffie and Hellman The mailbox analogy: Bob has a locked mailbox Alice can.
Introduction to Public Key Cryptography
Public Key Model 8. Cryptography part 2.
Lecture 19 Page 1 CS 111 Online Symmetric Cryptosystems C = E(K,P) P = D(K,C) E() and D() are not necessarily the same operations.
CMSC 414 Computer and Network Security Lecture 6 Jonathan Katz.
Cryptography and Network Security (CS435) Part Eight (Key Management)
Cryptography and Network Security Chapter 10 Fifth Edition by William Stallings Lecture slides by Lawrie Brown.
Public Key Cryptography. symmetric key crypto requires sender, receiver know shared secret key Q: how to agree on key in first place (particularly if.
Symmetric Cryptography, Asymmetric Cryptography, and Digital Signatures.
PUBLIC-KEY CRYPTOGRAPH IT 352 : Lecture 2- part3 Najwa AlGhamdi, MSc – 2012 /1433.
Chapter 3 (B) – Key Management; Other Public Key Cryptosystems.
Chapter 3 – Public Key Cryptography and RSA (A). Private-Key Cryptography traditional private/secret/single-key cryptography uses one key shared by both.
Cryptography services Lecturer: Dr. Peter Soreanu Students: Raed Awad Ahmad Abdalhalim
Key Management public-key encryption helps address key distribution problems have two aspects of this: – distribution of public keys – use of public-key.
Hash Functions Which of these problems is easier to solve:
Asymmetric-Key Cryptography
Topic 26: Discrete LOG Applications
Encryption and Integrity
Cryptographic Hash Function
Public Key Encryption Systems
Public Key Encryption and Digital Signatures
RSA and El Gamal Cryptosystems
Group theory exercise.
Cryptographic protocols 2014, Lecture 2 assumptions and reductions
Presented by: Dr. Munam Ali Shah
Cryptography Lecture 23.
Cryptography Lecture 4.
Cryptography Lecture 27.
Topic 25: Discrete LOG, DDH + Attacks on Plain RSA
Cryptography Lecture 5.
Cryptography Lecture 19.
Cryptography Lecture 6.
Asymmetric Cryptography
Introduction to Symmetric-key and Public-key Cryptography
Cryptography Lecture 25.
Cryptography: Basics (2)
Chapter 10: Key Management (Again) and other Public Key Systems
Cryptographic protocols 2016, Lecture 3 Key Exchange, CDH, DDH
Cryptography Lecture 5.
Cryptography Lecture 8.
DISSERTATION ON CRYPTOGRAPHY.
Cryptography Lecture 6.
CSCE 715: Network Systems Security
Asymmetric Cryptographic Algorithms
Cryptography Lecture 3.
The power of Pairings towards standard model security
Cryptography Lecture 21.
Cryptography Lecture 19.
Cryptography Lecture 21.
刘振 上海交通大学 计算机科学与工程系 电信群楼3-509
Public Key Encryption Systems
Cryptography Lecture 25.
Cryptography Lecture 24.
Cryptography Lecture 23.
Cryptography Lecture 26.
Lecture 6.2: Protocols - Authentication and Key Exchange II
Presentation transcript:

Cryptography Lecture 24

Concrete parameters? We have discussed two classes of cryptographic assumptions Factoring-based (factoring, RSA assumptions) Dlog-based (dlog, CDH, and DDH assumptions) In two classes of groups All these problems are believed to be “hard,” i.e., to have no polynomial-time algorithms But how hard are they, concretely?

Disclaimer The goal here is just to give an idea as to how parameters are calculated, and what relevant parameters are In practice, other important considerations come into play

Security Recall: For symmetric-key algorithms… Block cipher with n-bit key  security against 2n-time attacks Hash function with n-bit output  security against 2n/2-time attacks Factoring of a modulus of size 2n (i.e., length n) using exhaustive search takes 2n/2 time Computing discrete logarithms in a group of order 2n takes 2n time Are these the best algorithms possible?

Algorithms for factoring There exist algorithms factoring an integer N that run in much less than 2ǁNǁ/2 time Best known algorithm (asymptotically): general number field sieve Running time (heuristic): 2O(ǁNǁ1/3 log2/3 ǁNǁ) Makes a huge difference in practice! Exact constant term also important!

Algorithms for dlog Two classes of algorithms: Ones that work for arbitrary (“generic”) groups Ones that target specific groups Recall that in some groups the problem is not even hard Best “generic” algorithms: Time 2n/2 in a group of order  2n This is known to be optimal for generic algorithms

Algorithms for dlog Best known algorithm for (subgroups of) ℤ*p: number field sieve Running time (heuristic): 2O(ǁpǁ1/3 log2/3 ǁpǁ) For (appropriately chosen) elliptic-curve groups, nothing better than generic algorithms is known! This is why elliptic-curve groups can allow for more-efficient cryptography

Choosing parameters As recommended by NIST (112-bit security): Factoring: 2048-bit modulus Dlog, order-q subgroup of ℤ*p: ǁqǁ=224, ǁpǁ=2048 Address both generic and specific algorithms Dlog, elliptic-curve group of order q: ǁqǁ=224 Much longer than for symmetric-key algorithms! Explains in part why public-key crypto is less efficient then symmetric-key crypto

Back to cryptography…

Private-key cryptography Private-key cryptography allows two users who share a secret key to establish a “secure channel” The need to share a secret key has several drawbacks…

The key-distribution problem How do users share a key in the first place? Need to share the key using a secure channel… This problem can be solved in some settings E.g., physical proximity, trusted courier, … Note: this does not make private-key cryptography useless! Can be difficult or expensive to solve in other settings

The key-management problem Imagine an organization with N employees, where each pair of employees might need to communicate securely Solution using private-key cryptography: Each user shares a key with all other users Each user must store/manage N-1 secret keys! O(N2) keys overall!

Lack of support for “open systems” Say two users who have no prior relationship want to communicate securely When would they ever have shared a key? This happens all the time! Customer sending credit-card data to merchant Contacting a friend-of-a-friend on social media Emailing a colleague

“Classical” cryptography offers no solution to these problems!

New directions… Main ideas: Some problems exhibit asymmetry – easy to compute, but hard to invert (factoring, RSA, group exponentiation, …) Use this asymmetry to enable two parties to agree on a shared secret key via public discussion(!) Key exchange

Key exchange … … Enck(m) Secure against an eavesdropper who sees everything!

More formally… · · · transcript k{0,1}n k{0,1}n Security goal: even after observing the transcript, the shared key k should be indistinguishable from a uniform key

Formally Fix a key-exchange protocol  and an attacker (passive eavesdropper) A Define the following experiment KEA, (n): Honest parties run  using security parameter n, resulting in a transcript trans and (shared) key k Choose uniform bit b. If b=0, then set k’=k; if b=1, then choose uniform k’{0,1}n Give trans and k’ to A, which outputs a bit b’ Exp’t evaluates to 1 (A succeeds) if b’=b

Security Key-exchange protocol  is secure (against passive eavesdropping) if for all probabilistic, poly-time A it holds that Pr[KEA, (n) = 1] ≤ ½ + negl(n)

Notes Being unable to compute the key given the transcript is not a strong enough guarantee Indistinguishability of the shared key from uniform is a much stronger guarantee… …and is necessary if the shared key will subsequently be used for private-key crypto!

Diffie-Hellman key exchange G, q, g, h1 h2 k1 = (h2)x = gyx k2 = (h1)y = gxy (G, q, g)  G(1n) x  ℤq h1 = gx y  ℤq h2 = gy

In practice… G, q, g h1 h2 k1 = (h2)x = gxy k2 = (h1)y = gxy x  ℤq h1 = gx y  ℤq h2 = gy

Recall… Decisional Diffie-Hellman (DDH) problem: Given gx, gy, distinguish gxy from a uniform group element

Security? Eavesdropper sees G, q, g, gx, gy Shared key k is gxy Computing k from the transcript is exactly the computational Diffie-Hellman problem Distinguishing k from a uniform group element is exactly the decisional Diffie-Hellman problem  If the DDH problem is hard relative to G, this is a secure key-exchange protocol!

A subtlety We wanted our key-exchange protocol to give us a uniform(-looking) key k{0,1}n Instead we have a uniform(-looking) group element kG Not clear how to use this as, e.g., an AES key Solution: key derivation Set k’ = H(k) for suitable hash function H Requirements on H omitted here…

Modern key-exchange protocols Security against passive eavesdroppers is insufficient Want authenticated key exchange This requires some form of setup in advance Modern key-exchange protocols provide this We will return to this later

The public-key setting

The public-key setting A party generates a pair of keys: a public key pk and a private key sk Public key is widely disseminated Private key is kept secret, and shared with no one Private key used by the party who generated it; public key used by everyone else Also called asymmetric cryptography Security must hold even if the attacker knows pk

Public-key distribution I pk pk pk pk, sk

Public-key distribution II pk pk, sk

Public-key distribution Previous figures (implicitly) assume parties are able to obtain correct copies of each others’ public keys I.e., the attacker is passive during key distribution We will revisit this assumption later

Primitives Private-key setting Public-key setting Secrecy Private-key encryption Public-key encryption Integrity Message authentication codes Digital signature schemes

Addressing drawbacks of private-key crypto… Key distribution Public keys can be distributed over public (but authenticated) channels! Key management in large systems of N users Each user stores 1 private key and N-1 public keys; only N keys overall Public keys can be stored in a central directory Applicability in “open systems” Even parties who have no prior relationship can find each others’ public keys and use them

Why study private-key crypto? Private-key cryptography is more suitable for certain applications E.g., disk encryption Public-key crypto is roughly 2-3 orders of magnitude slower than private-key crypto If private-key crypto is an option, use it! Private-key crypto is used for efficiency even in the public-key setting

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