Public-Key Cryptography Public-Key Cryptography Lecture 8 - - PowerPoint PPT Presentation

public key cryptography public key cryptography
SMART_READER_LITE
LIVE PREVIEW

Public-Key Cryptography Public-Key Cryptography Lecture 8 - - PowerPoint PPT Presentation

Public-Key Cryptography Public-Key Cryptography Lecture 8 Public-Key Encryption Public-Key Cryptography Lecture 8 Public-Key Encryption Diffie-Hellman Key-Exchange PKE scheme PKE scheme SKE: Syntax KeyGen outputs K K Enc: M K R


slide-1
SLIDE 1

Public-Key Cryptography

slide-2
SLIDE 2

Public-Key Cryptography

Lecture 8 Public-Key Encryption

slide-3
SLIDE 3

Public-Key Cryptography

Lecture 8 Public-Key Encryption Diffie-Hellman Key-Exchange

slide-4
SLIDE 4

PKE scheme

slide-5
SLIDE 5

PKE scheme

SKE: Syntax KeyGen outputs K ← K Enc: M ×K ×R →C Dec: C ×K → M Correctness ∀K ∈ Range(KeyGen), Dec( Enc(m,K), K) = m Security (SIM/IND-CPA)

slide-6
SLIDE 6

PKE scheme

SKE: Syntax KeyGen outputs K ← K Enc: M ×K ×R →C Dec: C ×K → M Correctness ∀K ∈ Range(KeyGen), Dec( Enc(m,K), K) = m Security (SIM/IND-CPA)

Shared/Symmetric-Key Encryption 
 (a.k.a. private-key encryption)

slide-7
SLIDE 7

PKE scheme

SKE: Syntax KeyGen outputs K ← K Enc: M ×K ×R →C Dec: C ×K → M Correctness ∀K ∈ Range(KeyGen), Dec( Enc(m,K), K) = m Security (SIM/IND-CPA) PKE

Shared/Symmetric-Key Encryption 
 (a.k.a. private-key encryption)

slide-8
SLIDE 8

PKE scheme

SKE: Syntax KeyGen outputs K ← K Enc: M ×K ×R →C Dec: C ×K → M Correctness ∀K ∈ Range(KeyGen), Dec( Enc(m,K), K) = m Security (SIM/IND-CPA) PKE

Shared/Symmetric-Key Encryption 
 (a.k.a. private-key encryption) a.k.a. asymmetric-key encryption

slide-9
SLIDE 9

PKE scheme

SKE: Syntax KeyGen outputs K ← K Enc: M ×K ×R →C Dec: C ×K → M Correctness ∀K ∈ Range(KeyGen), Dec( Enc(m,K), K) = m Security (SIM/IND-CPA) PKE Syntax

Shared/Symmetric-Key Encryption 
 (a.k.a. private-key encryption) a.k.a. asymmetric-key encryption

slide-10
SLIDE 10

PKE scheme

SKE: Syntax KeyGen outputs K ← K Enc: M ×K ×R →C Dec: C ×K → M Correctness ∀K ∈ Range(KeyGen), Dec( Enc(m,K), K) = m Security (SIM/IND-CPA) PKE Syntax KeyGen outputs (PK,SK) ← PK ×SK

Shared/Symmetric-Key Encryption 
 (a.k.a. private-key encryption) a.k.a. asymmetric-key encryption

slide-11
SLIDE 11

PKE scheme

SKE: Syntax KeyGen outputs K ← K Enc: M ×K ×R →C Dec: C ×K → M Correctness ∀K ∈ Range(KeyGen), Dec( Enc(m,K), K) = m Security (SIM/IND-CPA) PKE Syntax KeyGen outputs (PK,SK) ← PK ×SK Enc: M ×PK ×R →C

Shared/Symmetric-Key Encryption 
 (a.k.a. private-key encryption) a.k.a. asymmetric-key encryption

slide-12
SLIDE 12

PKE scheme

SKE: Syntax KeyGen outputs K ← K Enc: M ×K ×R →C Dec: C ×K → M Correctness ∀K ∈ Range(KeyGen), Dec( Enc(m,K), K) = m Security (SIM/IND-CPA) PKE Syntax KeyGen outputs (PK,SK) ← PK ×SK Enc: M ×PK ×R →C Dec: C ×SK → M

Shared/Symmetric-Key Encryption 
 (a.k.a. private-key encryption) a.k.a. asymmetric-key encryption

slide-13
SLIDE 13

PKE scheme

SKE: Syntax KeyGen outputs K ← K Enc: M ×K ×R →C Dec: C ×K → M Correctness ∀K ∈ Range(KeyGen), Dec( Enc(m,K), K) = m Security (SIM/IND-CPA) PKE Syntax KeyGen outputs (PK,SK) ← PK ×SK Enc: M ×PK ×R →C Dec: C ×SK → M Correctness

Shared/Symmetric-Key Encryption 
 (a.k.a. private-key encryption) a.k.a. asymmetric-key encryption

slide-14
SLIDE 14

PKE scheme

SKE: Syntax KeyGen outputs K ← K Enc: M ×K ×R →C Dec: C ×K → M Correctness ∀K ∈ Range(KeyGen), Dec( Enc(m,K), K) = m Security (SIM/IND-CPA) PKE Syntax KeyGen outputs (PK,SK) ← PK ×SK Enc: M ×PK ×R →C Dec: C ×SK → M Correctness ∀(PK,SK) ∈ Range(KeyGen), Dec( Enc(m,PK), SK) = m

Shared/Symmetric-Key Encryption 
 (a.k.a. private-key encryption) a.k.a. asymmetric-key encryption

slide-15
SLIDE 15

PKE scheme

SKE: Syntax KeyGen outputs K ← K Enc: M ×K ×R →C Dec: C ×K → M Correctness ∀K ∈ Range(KeyGen), Dec( Enc(m,K), K) = m Security (SIM/IND-CPA) PKE Syntax KeyGen outputs (PK,SK) ← PK ×SK Enc: M ×PK ×R →C Dec: C ×SK → M Correctness ∀(PK,SK) ∈ Range(KeyGen), Dec( Enc(m,PK), SK) = m Security (SIM/IND-CPA,
 PKE version)

Shared/Symmetric-Key Encryption 
 (a.k.a. private-key encryption) a.k.a. asymmetric-key encryption

slide-16
SLIDE 16

SIM-CPA (PKE Version)

Secure (and correct) if: ∀ ∃ s.t. ∀

  • utput of is

distributed indistinguishably in REAL and IDEAL

Enc PK SK Dec

Env

Send Recv

Env REAL IDEAL m m m m m

slide-17
SLIDE 17

SIM-CPA (PKE Version)

Secure (and correct) if: ∀ ∃ s.t. ∀

  • utput of is

distributed indistinguishably in REAL and IDEAL

Enc PK SK Dec

Env

Send Recv

Env REAL IDEAL m m m m m PK PK

slide-18
SLIDE 18

b

IND-CPA (SKE version)

Experiment picks a random bit b. It also runs KeyGen to get a key K For as long as Adversary wants Adv sends two messages m0, m1 to the experiment Expt returns Enc(mb,K) to the adversary Adversary returns a guess b’ Experiment outputs 1 iff b’=b IND-CPA secure if for all PPT adversaries Pr[b’=b] - 1/2 ≤ ν(k)

Key/ Enc

b←{0,1} b’=b? m0,m1 mb Enc(mb,K) b’ Yes/No

slide-19
SLIDE 19

b

IND-CPA (SKE version)

Experiment picks a random bit b. It also runs KeyGen to get a key K For as long as Adversary wants Adv sends two messages m0, m1 to the experiment Expt returns Enc(mb,K) to the adversary Adversary returns a guess b’ Experiment outputs 1 iff b’=b IND-CPA secure if for all PPT adversaries Pr[b’=b] - 1/2 ≤ ν(k)

Key/ Enc

b←{0,1} b’=b? m0,m1 mb Enc(mb,K) b’ Yes/No

Can give Adv (direct)

  • racle access to Alice

[Why?]

slide-20
SLIDE 20

b

IND-CPA (SKE version)

Experiment picks a random bit b. It also runs KeyGen to get a key K For as long as Adversary wants Adv sends two messages m0, m1 to the experiment Expt returns Enc(mb,K) to the adversary Adversary returns a guess b’ Experiment outputs 1 iff b’=b IND-CPA secure if for all PPT adversaries Pr[b’=b] - 1/2 ≤ ν(k)

Key/ Enc

b←{0,1} b’=b? m0,m1 mb Enc(mb,K) b’ Yes/No

X

Can give Adv (direct)

  • racle access to Alice

[Why?] Then no need for multiple challenges!
 [Via hybrids]

slide-21
SLIDE 21

IND-CPA (SKE version)

Experiment picks a random bit b. It also runs KeyGen to get a key (PK,SK). Adv given PK Adv sends two messages m0, m1 to the experiment Expt returns Enc(mb,K) to the adversary Adversary returns a guess b’ Experiment outputs 1 iff b’=b IND-CPA secure if for all PPT adversaries Pr[b’=b] - 1/2 ≤ ν(k)

PK Enc

b←{0,1} b’=b? m0,m1 mb Enc(mb,K) b’ Yes/No

slide-22
SLIDE 22

IND-CPA (SKE version)

Experiment picks a random bit b. It also runs KeyGen to get a key (PK,SK). Adv given PK Adv sends two messages m0, m1 to the experiment Expt returns Enc(mb,K) to the adversary Adversary returns a guess b’ Experiment outputs 1 iff b’=b IND-CPA secure if for all PPT adversaries Pr[b’=b] - 1/2 ≤ ν(k)

PK Enc

b←{0,1} b’=b? m0,m1 mb Enc(mb,K) b’ Yes/No

PKE

slide-23
SLIDE 23

IND-CPA (SKE version)

Experiment picks a random bit b. It also runs KeyGen to get a key (PK,SK). Adv given PK Adv sends two messages m0, m1 to the experiment Expt returns Enc(mb,K) to the adversary Adversary returns a guess b’ Experiment outputs 1 iff b’=b IND-CPA secure if for all PPT adversaries Pr[b’=b] - 1/2 ≤ ν(k)

PK Enc

b←{0,1} b’=b? m0,m1 mb Enc(mb,K) b’ Yes/No

PKE

PK

slide-24
SLIDE 24

IND-CPA (SKE version)

Experiment picks a random bit b. It also runs KeyGen to get a key (PK,SK). Adv given PK Adv sends two messages m0, m1 to the experiment Expt returns Enc(mb,K) to the adversary Adversary returns a guess b’ Experiment outputs 1 iff b’=b IND-CPA secure if for all PPT adversaries Pr[b’=b] - 1/2 ≤ ν(k)

PK Enc

b←{0,1} b’=b? m0,m1 mb Enc(mb,K) b’ Yes/No

PKE

X

Adv is given PK, so no need for oracle access

PK

slide-25
SLIDE 25

IND-CPA (PKE version)

Experiment picks a random bit b. It also runs KeyGen to get a key (PK,SK). Adv given PK Adv sends two messages m0, m1 to the experiment Expt returns Enc(mb,K) to the adversary Adversary returns a guess b’ Experiment outputs 1 iff b’=b IND-CPA secure if for all PPT adversaries Pr[b’=b] - 1/2 ≤ ν(k)

PK Enc

b←{0,1}

slide-26
SLIDE 26

IND-CPA (PKE version)

Experiment picks a random bit b. It also runs KeyGen to get a key (PK,SK). Adv given PK Adv sends two messages m0, m1 to the experiment Expt returns Enc(mb,K) to the adversary Adversary returns a guess b’ Experiment outputs 1 iff b’=b IND-CPA secure if for all PPT adversaries Pr[b’=b] - 1/2 ≤ ν(k)

PK Enc

b←{0,1} PK

slide-27
SLIDE 27

IND-CPA (PKE version)

Experiment picks a random bit b. It also runs KeyGen to get a key (PK,SK). Adv given PK Adv sends two messages m0, m1 to the experiment Expt returns Enc(mb,K) to the adversary Adversary returns a guess b’ Experiment outputs 1 iff b’=b IND-CPA secure if for all PPT adversaries Pr[b’=b] - 1/2 ≤ ν(k)

PK Enc

b←{0,1} m0,m1 PK

slide-28
SLIDE 28

IND-CPA (PKE version)

Experiment picks a random bit b. It also runs KeyGen to get a key (PK,SK). Adv given PK Adv sends two messages m0, m1 to the experiment Expt returns Enc(mb,K) to the adversary Adversary returns a guess b’ Experiment outputs 1 iff b’=b IND-CPA secure if for all PPT adversaries Pr[b’=b] - 1/2 ≤ ν(k)

PK Enc

b←{0,1} m0,m1 mb PK

slide-29
SLIDE 29

IND-CPA (PKE version)

Experiment picks a random bit b. It also runs KeyGen to get a key (PK,SK). Adv given PK Adv sends two messages m0, m1 to the experiment Expt returns Enc(mb,K) to the adversary Adversary returns a guess b’ Experiment outputs 1 iff b’=b IND-CPA secure if for all PPT adversaries Pr[b’=b] - 1/2 ≤ ν(k)

PK Enc

b←{0,1} m0,m1 mb Enc(mb,PK) PK

slide-30
SLIDE 30

IND-CPA (PKE version)

Experiment picks a random bit b. It also runs KeyGen to get a key (PK,SK). Adv given PK Adv sends two messages m0, m1 to the experiment Expt returns Enc(mb,K) to the adversary Adversary returns a guess b’ Experiment outputs 1 iff b’=b IND-CPA secure if for all PPT adversaries Pr[b’=b] - 1/2 ≤ ν(k)

PK Enc

b←{0,1} m0,m1 mb Enc(mb,PK) b’ Yes/No PK b’=b?

slide-31
SLIDE 31

IND-CPA (PKE version)

Experiment picks a random bit b. It also runs KeyGen to get a key (PK,SK). Adv given PK Adv sends two messages m0, m1 to the experiment Expt returns Enc(mb,K) to the adversary Adversary returns a guess b’ Experiment outputs 1 iff b’=b IND-CPA secure if for all PPT adversaries Pr[b’=b] - 1/2 ≤ ν(k)

PK Enc

b←{0,1} m0,m1 mb Enc(mb,PK) b’ Yes/No PK b’=b? IND-CPA + ~correctness equivalent to SIM-CPA

slide-32
SLIDE 32

Perfect Secrecy?

slide-33
SLIDE 33

Perfect Secrecy?

No perfectly secret and correct PKE (even for one-time encryption)

slide-34
SLIDE 34

Perfect Secrecy?

No perfectly secret and correct PKE (even for one-time encryption) Public-key and ciphertext (the total shared information between Alice and Bob at the end) should together have entire information about the message

slide-35
SLIDE 35

Perfect Secrecy?

No perfectly secret and correct PKE (even for one-time encryption) Public-key and ciphertext (the total shared information between Alice and Bob at the end) should together have entire information about the message Intuition: If Eve thinks Bob could decrypt it as two messages based on different SKs, Alice should be concerned too

slide-36
SLIDE 36

Perfect Secrecy?

No perfectly secret and correct PKE (even for one-time encryption) Public-key and ciphertext (the total shared information between Alice and Bob at the end) should together have entire information about the message Intuition: If Eve thinks Bob could decrypt it as two messages based on different SKs, Alice should be concerned too i.e., Alice conveys same information to Bob and Eve

slide-37
SLIDE 37

Perfect Secrecy?

No perfectly secret and correct PKE (even for one-time encryption) Public-key and ciphertext (the total shared information between Alice and Bob at the end) should together have entire information about the message Intuition: If Eve thinks Bob could decrypt it as two messages based on different SKs, Alice should be concerned too i.e., Alice conveys same information to Bob and Eve [Exercise]

slide-38
SLIDE 38

Perfect Secrecy?

No perfectly secret and correct PKE (even for one-time encryption) Public-key and ciphertext (the total shared information between Alice and Bob at the end) should together have entire information about the message Intuition: If Eve thinks Bob could decrypt it as two messages based on different SKs, Alice should be concerned too i.e., Alice conveys same information to Bob and Eve [Exercise] PKE only with computational security

slide-39
SLIDE 39

Perfect Secrecy?

No perfectly secret and correct PKE (even for one-time encryption) Public-key and ciphertext (the total shared information between Alice and Bob at the end) should together have entire information about the message Intuition: If Eve thinks Bob could decrypt it as two messages based on different SKs, Alice should be concerned too i.e., Alice conveys same information to Bob and Eve [Exercise] PKE only with computational security

U n l e s s a s s u m p t i

  • n

s

  • f

i m p e r f e c t e a v e s d r

  • p

p i n g

slide-40
SLIDE 40

Diffie-Hellman Key-exchange

slide-41
SLIDE 41

Diffie-Hellman Key-exchange

A candidate for how Alice and Bob could generate a shared key, which is “hidden” from Eve

slide-42
SLIDE 42

Diffie-Hellman Key-exchange

A candidate for how Alice and Bob could generate a shared key, which is “hidden” from Eve

slide-43
SLIDE 43

Diffie-Hellman Key-exchange

A candidate for how Alice and Bob could generate a shared key, which is “hidden” from Eve Random x

slide-44
SLIDE 44

Diffie-Hellman Key-exchange

A candidate for how Alice and Bob could generate a shared key, which is “hidden” from Eve Random x X=gx

slide-45
SLIDE 45

Diffie-Hellman Key-exchange

A candidate for how Alice and Bob could generate a shared key, which is “hidden” from Eve Random x X X=gx

slide-46
SLIDE 46

Diffie-Hellman Key-exchange

A candidate for how Alice and Bob could generate a shared key, which is “hidden” from Eve Random x X Random y X=gx

slide-47
SLIDE 47

Diffie-Hellman Key-exchange

A candidate for how Alice and Bob could generate a shared key, which is “hidden” from Eve Random x X Random y X=gx Y=gy

slide-48
SLIDE 48

Diffie-Hellman Key-exchange

A candidate for how Alice and Bob could generate a shared key, which is “hidden” from Eve Random x X Random y Y X=gx Y=gy

slide-49
SLIDE 49

Diffie-Hellman Key-exchange

A candidate for how Alice and Bob could generate a shared key, which is “hidden” from Eve Random x X Random y Y X=gx Output Yx Y=gy

slide-50
SLIDE 50

Diffie-Hellman Key-exchange

A candidate for how Alice and Bob could generate a shared key, which is “hidden” from Eve Random x X Random y Y X=gx Output Yx Output Xy Y=gy

slide-51
SLIDE 51

Diffie-Hellman Key-exchange

A candidate for how Alice and Bob could generate a shared key, which is “hidden” from Eve Random x X Random y Y X=gx Output Yx Output Xy Y=gy gx, gy

slide-52
SLIDE 52

Diffie-Hellman Key-exchange

A candidate for how Alice and Bob could generate a shared key, which is “hidden” from Eve Random x X Random y Y X=gx Output Yx Output Xy Y=gy gx, gy gxy ??

slide-53
SLIDE 53

Why DH-Key-exchange could be secure

slide-54
SLIDE 54

Why DH-Key-exchange could be secure

Given gx, gy for random x, y, gxy should be “hidden”

slide-55
SLIDE 55

Why DH-Key-exchange could be secure

Given gx, gy for random x, y, gxy should be “hidden” i.e., could still be used as a pseudorandom element

slide-56
SLIDE 56

Why DH-Key-exchange could be secure

Given gx, gy for random x, y, gxy should be “hidden” i.e., could still be used as a pseudorandom element i.e., (gx, gy, gxy) ≈ (gx, gy, R)

slide-57
SLIDE 57

Why DH-Key-exchange could be secure

Given gx, gy for random x, y, gxy should be “hidden” i.e., could still be used as a pseudorandom element i.e., (gx, gy, gxy) ≈ (gx, gy, R) Is that reasonable to expect?

slide-58
SLIDE 58

Why DH-Key-exchange could be secure

Given gx, gy for random x, y, gxy should be “hidden” i.e., could still be used as a pseudorandom element i.e., (gx, gy, gxy) ≈ (gx, gy, R) Is that reasonable to expect? Depends on the “group”

slide-59
SLIDE 59

Groups, by examples

slide-60
SLIDE 60

A set G (for us finite, unless otherwise specified) and a “group

  • peration” * that is associative, has an identity, is invertible, and

(for us) commutative

Groups, by examples

slide-61
SLIDE 61

A set G (for us finite, unless otherwise specified) and a “group

  • peration” * that is associative, has an identity, is invertible, and

(for us) commutative Examples: Z = (integers, +) (this is an infinite group),
 ZN = (integers modulo N, + mod N),
 Gn = (Cartesian product of a group G, coordinate-wise operation)

Groups, by examples

slide-62
SLIDE 62

A set G (for us finite, unless otherwise specified) and a “group

  • peration” * that is associative, has an identity, is invertible, and

(for us) commutative Examples: Z = (integers, +) (this is an infinite group),
 ZN = (integers modulo N, + mod N),
 Gn = (Cartesian product of a group G, coordinate-wise operation) Order of a group G: |G| = number of elements in G

Groups, by examples

slide-63
SLIDE 63

A set G (for us finite, unless otherwise specified) and a “group

  • peration” * that is associative, has an identity, is invertible, and

(for us) commutative Examples: Z = (integers, +) (this is an infinite group),
 ZN = (integers modulo N, + mod N),
 Gn = (Cartesian product of a group G, coordinate-wise operation) Order of a group G: |G| = number of elements in G For any a∈G, a|G| = a*a*...*a (|G| times) = identity

Groups, by examples

slide-64
SLIDE 64

A set G (for us finite, unless otherwise specified) and a “group

  • peration” * that is associative, has an identity, is invertible, and

(for us) commutative Examples: Z = (integers, +) (this is an infinite group),
 ZN = (integers modulo N, + mod N),
 Gn = (Cartesian product of a group G, coordinate-wise operation) Order of a group G: |G| = number of elements in G For any a∈G, a|G| = a*a*...*a (|G| times) = identity

Groups, by examples

slide-65
SLIDE 65

A set G (for us finite, unless otherwise specified) and a “group

  • peration” * that is associative, has an identity, is invertible, and

(for us) commutative Examples: Z = (integers, +) (this is an infinite group),
 ZN = (integers modulo N, + mod N),
 Gn = (Cartesian product of a group G, coordinate-wise operation) Order of a group G: |G| = number of elements in G For any a∈G, a|G| = a*a*...*a (|G| times) = identity Finite Cyclic group (in multiplicative notation): there
 is one element g such that G = {g0, g1, g2, ... g|G|-1}

Groups, by examples

slide-66
SLIDE 66

A set G (for us finite, unless otherwise specified) and a “group

  • peration” * that is associative, has an identity, is invertible, and

(for us) commutative Examples: Z = (integers, +) (this is an infinite group),
 ZN = (integers modulo N, + mod N),
 Gn = (Cartesian product of a group G, coordinate-wise operation) Order of a group G: |G| = number of elements in G For any a∈G, a|G| = a*a*...*a (|G| times) = identity Finite Cyclic group (in multiplicative notation): there
 is one element g such that G = {g0, g1, g2, ... g|G|-1}

Groups, by examples

g0 g2 g3 g1 gN-2 gN-1

. . . . ..

slide-67
SLIDE 67

A set G (for us finite, unless otherwise specified) and a “group

  • peration” * that is associative, has an identity, is invertible, and

(for us) commutative Examples: Z = (integers, +) (this is an infinite group),
 ZN = (integers modulo N, + mod N),
 Gn = (Cartesian product of a group G, coordinate-wise operation) Order of a group G: |G| = number of elements in G For any a∈G, a|G| = a*a*...*a (|G| times) = identity Finite Cyclic group (in multiplicative notation): there
 is one element g such that G = {g0, g1, g2, ... g|G|-1} Prototype: ZN (additive group), with g=1

Groups, by examples

g0 g2 g3 g1 gN-2 gN-1

. . . . ..

slide-68
SLIDE 68

A set G (for us finite, unless otherwise specified) and a “group

  • peration” * that is associative, has an identity, is invertible, and

(for us) commutative Examples: Z = (integers, +) (this is an infinite group),
 ZN = (integers modulo N, + mod N),
 Gn = (Cartesian product of a group G, coordinate-wise operation) Order of a group G: |G| = number of elements in G For any a∈G, a|G| = a*a*...*a (|G| times) = identity Finite Cyclic group (in multiplicative notation): there
 is one element g such that G = {g0, g1, g2, ... g|G|-1} Prototype: ZN (additive group), with g=1

  • r any g s.t. gcd(g,N) = 1

Groups, by examples

g0 g2 g3 g1 gN-2 gN-1

. . . . ..

slide-69
SLIDE 69

g0 g2 g3 g1 gN-2gN-1 . . . . ..

Groups, by examples

slide-70
SLIDE 70

ZN* = (generators of ZN, multiplication mod N)

g0 g2 g3 g1 gN-2gN-1 . . . . ..

Groups, by examples

slide-71
SLIDE 71

ZN* = (generators of ZN, multiplication mod N) Numbers in {1,..,N-1} which have a multiplicative inverse mod N

g0 g2 g3 g1 gN-2gN-1 . . . . ..

Groups, by examples

slide-72
SLIDE 72

ZN* = (generators of ZN, multiplication mod N) Numbers in {1,..,N-1} which have a multiplicative inverse mod N If N is prime, ZN* is a cyclic group, of order N-1

g0 g2 g3 g1 gN-2gN-1 . . . . ..

Groups, by examples

slide-73
SLIDE 73

ZN* = (generators of ZN, multiplication mod N) Numbers in {1,..,N-1} which have a multiplicative inverse mod N If N is prime, ZN* is a cyclic group, of order N-1 e.g. Z5* = {1,2,3,4} is generated by 2 (as 1,2,4,3), and
 by 3 (as 1,3,4,2). But 1 and 4 are not generators.

g0 g2 g3 g1 gN-2gN-1 . . . . ..

Groups, by examples

slide-74
SLIDE 74

ZN* = (generators of ZN, multiplication mod N) Numbers in {1,..,N-1} which have a multiplicative inverse mod N If N is prime, ZN* is a cyclic group, of order N-1 e.g. Z5* = {1,2,3,4} is generated by 2 (as 1,2,4,3), and
 by 3 (as 1,3,4,2). But 1 and 4 are not generators. (Also cyclic for certain other values of N)

g0 g2 g3 g1 gN-2gN-1 . . . . ..

Groups, by examples

slide-75
SLIDE 75

Discrete Log Assumption

slide-76
SLIDE 76

Discrete Log (w.r.t g) in a (multiplicative) cyclic group G generated by g: DLg(X) := unique x such that X = gx (x ∈ {0,1,...,|G|-1})

Discrete Log Assumption

slide-77
SLIDE 77

Discrete Log (w.r.t g) in a (multiplicative) cyclic group G generated by g: DLg(X) := unique x such that X = gx (x ∈ {0,1,...,|G|-1}) In a (computationally efficient) group, given integer x and the standard representation of a group element g, can efficiently find the standard representation of X=gx (How?)

Discrete Log Assumption

slide-78
SLIDE 78

Discrete Log (w.r.t g) in a (multiplicative) cyclic group G generated by g: DLg(X) := unique x such that X = gx (x ∈ {0,1,...,|G|-1}) In a (computationally efficient) group, given integer x and the standard representation of a group element g, can efficiently find the standard representation of X=gx (How?)

Discrete Log Assumption

Repeated squaring

slide-79
SLIDE 79

Discrete Log (w.r.t g) in a (multiplicative) cyclic group G generated by g: DLg(X) := unique x such that X = gx (x ∈ {0,1,...,|G|-1}) In a (computationally efficient) group, given integer x and the standard representation of a group element g, can efficiently find the standard representation of X=gx (How?) But given X and g, may not be easy to find x (depending on G)

Discrete Log Assumption

Repeated squaring

slide-80
SLIDE 80

Discrete Log (w.r.t g) in a (multiplicative) cyclic group G generated by g: DLg(X) := unique x such that X = gx (x ∈ {0,1,...,|G|-1}) In a (computationally efficient) group, given integer x and the standard representation of a group element g, can efficiently find the standard representation of X=gx (How?) But given X and g, may not be easy to find x (depending on G) DLA: Every PPT Adv has negligible success probability in the DL Expt: (G,g)←GroupGen; X←G; Adv(G,g,X)→z; gz=X?

Discrete Log Assumption

Repeated squaring

slide-81
SLIDE 81

Discrete Log (w.r.t g) in a (multiplicative) cyclic group G generated by g: DLg(X) := unique x such that X = gx (x ∈ {0,1,...,|G|-1}) In a (computationally efficient) group, given integer x and the standard representation of a group element g, can efficiently find the standard representation of X=gx (How?) But given X and g, may not be easy to find x (depending on G) DLA: Every PPT Adv has negligible success probability in the DL Expt: (G,g)←GroupGen; X←G; Adv(G,g,X)→z; gz=X?

Discrete Log Assumption

Repeated squaring

OWF collection: Raise(x;G,g)
 = (gx;G,g)

slide-82
SLIDE 82

Discrete Log (w.r.t g) in a (multiplicative) cyclic group G generated by g: DLg(X) := unique x such that X = gx (x ∈ {0,1,...,|G|-1}) In a (computationally efficient) group, given integer x and the standard representation of a group element g, can efficiently find the standard representation of X=gx (How?) But given X and g, may not be easy to find x (depending on G) DLA: Every PPT Adv has negligible success probability in the DL Expt: (G,g)←GroupGen; X←G; Adv(G,g,X)→z; gz=X? If DLA broken, then Diffie-Hellman key-exchange broken

Discrete Log Assumption

Repeated squaring

OWF collection: Raise(x;G,g)
 = (gx;G,g)

slide-83
SLIDE 83

Discrete Log (w.r.t g) in a (multiplicative) cyclic group G generated by g: DLg(X) := unique x such that X = gx (x ∈ {0,1,...,|G|-1}) In a (computationally efficient) group, given integer x and the standard representation of a group element g, can efficiently find the standard representation of X=gx (How?) But given X and g, may not be easy to find x (depending on G) DLA: Every PPT Adv has negligible success probability in the DL Expt: (G,g)←GroupGen; X←G; Adv(G,g,X)→z; gz=X? If DLA broken, then Diffie-Hellman key-exchange broken Eve gets x, y from gx, gy (sometimes) and can compute gxy herself

Discrete Log Assumption

Repeated squaring

OWF collection: Raise(x;G,g)
 = (gx;G,g)

slide-84
SLIDE 84

Discrete Log (w.r.t g) in a (multiplicative) cyclic group G generated by g: DLg(X) := unique x such that X = gx (x ∈ {0,1,...,|G|-1}) In a (computationally efficient) group, given integer x and the standard representation of a group element g, can efficiently find the standard representation of X=gx (How?) But given X and g, may not be easy to find x (depending on G) DLA: Every PPT Adv has negligible success probability in the DL Expt: (G,g)←GroupGen; X←G; Adv(G,g,X)→z; gz=X? If DLA broken, then Diffie-Hellman key-exchange broken Eve gets x, y from gx, gy (sometimes) and can compute gxy herself A “key-recovery” attack

Discrete Log Assumption

Repeated squaring

OWF collection: Raise(x;G,g)
 = (gx;G,g)

slide-85
SLIDE 85

Discrete Log (w.r.t g) in a (multiplicative) cyclic group G generated by g: DLg(X) := unique x such that X = gx (x ∈ {0,1,...,|G|-1}) In a (computationally efficient) group, given integer x and the standard representation of a group element g, can efficiently find the standard representation of X=gx (How?) But given X and g, may not be easy to find x (depending on G) DLA: Every PPT Adv has negligible success probability in the DL Expt: (G,g)←GroupGen; X←G; Adv(G,g,X)→z; gz=X? If DLA broken, then Diffie-Hellman key-exchange broken Eve gets x, y from gx, gy (sometimes) and can compute gxy herself A “key-recovery” attack Note: could potentially break pseudorandomness without breaking DLA too

Discrete Log Assumption

Repeated squaring

OWF collection: Raise(x;G,g)
 = (gx;G,g)

slide-86
SLIDE 86

Decisional Diffie-Hellman (DDH) Assumption

slide-87
SLIDE 87

Decisional Diffie-Hellman (DDH) Assumption

{(gx, gy, gxy)}(G,g)←GroupGen; x,y←[|G|] ≈ {(gx, gy, gr)}(G,g)←GroupGen; x,y,r←[|G|]

slide-88
SLIDE 88

Decisional Diffie-Hellman (DDH) Assumption

{(gx, gy, gxy)}(G,g)←GroupGen; x,y←[|G|] ≈ {(gx, gy, gr)}(G,g)←GroupGen; x,y,r←[|G|] At least as strong as DLA

slide-89
SLIDE 89

Decisional Diffie-Hellman (DDH) Assumption

{(gx, gy, gxy)}(G,g)←GroupGen; x,y←[|G|] ≈ {(gx, gy, gr)}(G,g)←GroupGen; x,y,r←[|G|] At least as strong as DLA If DDH assumption holds, then DLA holds [Why?]

slide-90
SLIDE 90

Decisional Diffie-Hellman (DDH) Assumption

{(gx, gy, gxy)}(G,g)←GroupGen; x,y←[|G|] ≈ {(gx, gy, gr)}(G,g)←GroupGen; x,y,r←[|G|] At least as strong as DLA If DDH assumption holds, then DLA holds [Why?] But possible that DLA holds and DDH assumption doesn’ t

slide-91
SLIDE 91

Decisional Diffie-Hellman (DDH) Assumption

{(gx, gy, gxy)}(G,g)←GroupGen; x,y←[|G|] ≈ {(gx, gy, gr)}(G,g)←GroupGen; x,y,r←[|G|] At least as strong as DLA If DDH assumption holds, then DLA holds [Why?] But possible that DLA holds and DDH assumption doesn’ t e.g.: DLA is widely assumed to hold in Zp* (p prime), but DDH assumption doesn’ t hold there!

slide-92
SLIDE 92

A Candidate DDH Group

1 5 2 7 3 10 4 6 9 8

slide-93
SLIDE 93

A Candidate DDH Group

Consider QRP* : subgroup of Quadratic Residues (“even power” elements) of ZP*

1 5 2 7 3 10 4 6 9 8

slide-94
SLIDE 94

A Candidate DDH Group

Consider QRP* : subgroup of Quadratic Residues (“even power” elements) of ZP*

1 5 2 7 3 10 4 6 9 8

slide-95
SLIDE 95

A Candidate DDH Group

Consider QRP* : subgroup of Quadratic Residues (“even power” elements) of ZP* Easy to check if an element is a QR or not: check if raising to |G|/2 gives 1 (identity element)

1 5 2 7 3 10 4 6 9 8

slide-96
SLIDE 96

A Candidate DDH Group

Consider QRP* : subgroup of Quadratic Residues (“even power” elements) of ZP* Easy to check if an element is a QR or not: check if raising to |G|/2 gives 1 (identity element) DDH does not hold in ZP* : gxy is a QR w/ prob. 3/ 4; gz is QR only w/ prob. 1/2.

1 5 2 7 3 10 4 6 9 8

slide-97
SLIDE 97

A Candidate DDH Group

Consider QRP* : subgroup of Quadratic Residues (“even power” elements) of ZP* Easy to check if an element is a QR or not: check if raising to |G|/2 gives 1 (identity element) DDH does not hold in ZP* : gxy is a QR w/ prob. 3/ 4; gz is QR only w/ prob. 1/2. How about in QRP*?

1 5 2 7 3 10 4 6 9 8

slide-98
SLIDE 98

A Candidate DDH Group

Consider QRP* : subgroup of Quadratic Residues (“even power” elements) of ZP* Easy to check if an element is a QR or not: check if raising to |G|/2 gives 1 (identity element) DDH does not hold in ZP* : gxy is a QR w/ prob. 3/ 4; gz is QR only w/ prob. 1/2. How about in QRP*? Could check if cubic residue in ZP*!

1 5 2 7 3 10 4 6 9 8

slide-99
SLIDE 99

A Candidate DDH Group

Consider QRP* : subgroup of Quadratic Residues (“even power” elements) of ZP* Easy to check if an element is a QR or not: check if raising to |G|/2 gives 1 (identity element) DDH does not hold in ZP* : gxy is a QR w/ prob. 3/ 4; gz is QR only w/ prob. 1/2. How about in QRP*? Could check if cubic residue in ZP*! But if (P-1) is not divisible by 3, all elements in ZP* are cubic residues!

1 5 2 7 3 10 4 6 9 8

slide-100
SLIDE 100

A Candidate DDH Group

Consider QRP* : subgroup of Quadratic Residues (“even power” elements) of ZP* Easy to check if an element is a QR or not: check if raising to |G|/2 gives 1 (identity element) DDH does not hold in ZP* : gxy is a QR w/ prob. 3/ 4; gz is QR only w/ prob. 1/2. How about in QRP*? Could check if cubic residue in ZP*! But if (P-1) is not divisible by 3, all elements in ZP* are cubic residues! “Safe” if (P-1)/2 is also prime: P called a safe-prime

1 5 2 7 3 10 4 6 9 8

slide-101
SLIDE 101

A Candidate DDH Group

Consider QRP* : subgroup of Quadratic Residues (“even power” elements) of ZP* Easy to check if an element is a QR or not: check if raising to |G|/2 gives 1 (identity element) DDH does not hold in ZP* : gxy is a QR w/ prob. 3/ 4; gz is QR only w/ prob. 1/2. How about in QRP*? Could check if cubic residue in ZP*! But if (P-1) is not divisible by 3, all elements in ZP* are cubic residues! “Safe” if (P-1)/2 is also prime: P called a safe-prime

1 5 2 7 3 10 4 6 9 8

DDH Candidate: QRP* where P is a safe-prime

slide-102
SLIDE 102

Today

slide-103
SLIDE 103

Today

Public Key Encryption CPA security Diffie-Hellman Key Exchange DDH Assumption Candidate group: QRP* where P is a “safe prime”

slide-104
SLIDE 104

Today

Public Key Encryption CPA security Diffie-Hellman Key Exchange DDH Assumption Candidate group: QRP* where P is a “safe prime” Next: El Gamal encryption (DH Key-Exchange used for encryption). Building CPA secure PKE, more generally. CCA security for PKE.