IV – Protocols

188
Provable Security in the Computational Model IV – Protocols David Pointcheval MPRI – Paris Ecole normale sup ´ erieure, CNRS & INRIA ENS/CNRS/INRIA Cascade David Pointcheval 1/62

Transcript of IV – Protocols

Page 1: IV – Protocols

Provable Security in the Computational Model

IV – Protocols

David Pointcheval

MPRI – Paris

Ecole normale superieure, CNRS & INRIA

ENS/CNRS/INRIA Cascade David Pointcheval 1/62

Page 2: IV – Protocols

Outline

Game-based Security

Simulation-based Security

Encrypted Key Exchange

Conclusion

ENS/CNRS/INRIA Cascade David Pointcheval 2/62

Page 3: IV – Protocols

Game-based Security

Page 4: IV – Protocols

Outline

Game-based Security

Key Exchange

Authenticated Key Exchange

Explicit Authentication

Simulation-based Security

Encrypted Key Exchange

Conclusion

ENS/CNRS/INRIA Cascade David Pointcheval 3/62

Page 5: IV – Protocols

Key-Exchange Protocols

A fundamental problem in cryptography:Enable secure communication over insecure channels

A classical scenario: Users encrypt and authenticate their messagesusing a common secret key

mA

−−−−−−→

m′B←−−−−−−

m′A−−−−−−→

mB

←−−−−−−Alice Bob

How to establish such a common secret?−→ Key-exchange protocols

ENS/CNRS/INRIA Cascade David Pointcheval 4/62

Page 6: IV – Protocols

Key-Exchange Protocols

A fundamental problem in cryptography:Enable secure communication over insecure channels

A classical scenario: Users encrypt and authenticate their messagesusing a common secret key

mA

−−−−−−→

m′B←−−−−−−

m′A−−−−−−→

mB

←−−−−−−Alice Bob

How to establish such a common secret?−→ Key-exchange protocols

ENS/CNRS/INRIA Cascade David Pointcheval 4/62

Page 7: IV – Protocols

Key-Exchange Protocols

A fundamental problem in cryptography:Enable secure communication over insecure channels

A classical scenario: Users encrypt and authenticate their messagesusing a common secret key

mA

−−−−−−→

m′B←−−−−−−

m′A−−−−−−→

mB

←−−−−−−Alice Bob

How to establish such a common secret?−→ Key-exchange protocols

ENS/CNRS/INRIA Cascade David Pointcheval 4/62

Page 8: IV – Protocols

Key-Exchange Protocols

A fundamental problem in cryptography:Enable secure communication over insecure channels

A classical scenario: Users encrypt and authenticate their messagesusing a common secret key

mA

−−−−−−→

m′B←−−−−−−

m′A−−−−−−→

mB

←−−−−−−Alice Bob

How to establish such a common secret?−→ Key-exchange protocols

ENS/CNRS/INRIA Cascade David Pointcheval 4/62

Page 9: IV – Protocols

Diffie-Hellman Key-Exchange

G = 〈g〉 a group, of prime order q, in which the CDH problem is hard

Alice Bob

x R← Zq y R← Zq

X = gx X−−−−−−−−→Y←−−−−−−−− Y = gy

Y x = gxy = X y

Allows two parties to establish a common secret:

• The session key should only be known to the involved parties

• The session key should be indistinguishablefrom a random string for others

ENS/CNRS/INRIA Cascade David Pointcheval 5/62

Page 10: IV – Protocols

Diffie-Hellman Key-Exchange

G = 〈g〉 a group, of prime order q, in which the CDH problem is hard

Alice Bob

x R← Zq y R← Zq

X = gx X−−−−−−−−→Y←−−−−−−−− Y = gy

Y x = gxy = X y

Allows two parties to establish a common secret:

• The session key should only be known to the involved parties

• The session key should be indistinguishablefrom a random string for others

ENS/CNRS/INRIA Cascade David Pointcheval 5/62

Page 11: IV – Protocols

Diffie-Hellman Key-Exchange

G = 〈g〉 a group, of prime order q, in which the CDH problem is hard

Alice Bob

x R← Zq y R← Zq

X = gx X−−−−−−−−→Y←−−−−−−−− Y = gy

Y x = gxy = X y

Allows two parties to establish a common secret:

• The session key should only be known to the involved parties

• The session key should be indistinguishablefrom a random string for others

ENS/CNRS/INRIA Cascade David Pointcheval 5/62

Page 12: IV – Protocols

Communication Model

• Users can participate in several executions of the protocolin parallel: Each user’s instance is associated to an oracle

(C i for the client, and Sj for the server)

• The adversary controls all the communications:It can create, modify, transfer, alter, delete messages

This is modeled by various oracle accesses given to oracles

• to let it choose when and what to transmit,

• but also the leakage of information

ENS/CNRS/INRIA Cascade David Pointcheval 6/62

Page 13: IV – Protocols

Communication Model

• Users can participate in several executions of the protocolin parallel: Each user’s instance is associated to an oracle

(C i for the client, and Sj for the server)

• The adversary controls all the communications:It can create, modify, transfer, alter, delete messages

This is modeled by various oracle accesses given to oracles

• to let it choose when and what to transmit,

• but also the leakage of information

ENS/CNRS/INRIA Cascade David Pointcheval 6/62

Page 14: IV – Protocols

Communication Model

• Users can participate in several executions of the protocolin parallel: Each user’s instance is associated to an oracle

(C i for the client, and Sj for the server)

• The adversary controls all the communications:It can create, modify, transfer, alter, delete messages

This is modeled by various oracle accesses given to oracles

• to let it choose when and what to transmit,

• but also the leakage of information

ENS/CNRS/INRIA Cascade David Pointcheval 6/62

Page 15: IV – Protocols

Communication Model

• Users can participate in several executions of the protocolin parallel: Each user’s instance is associated to an oracle

(C i for the client, and Sj for the server)

• The adversary controls all the communications:It can create, modify, transfer, alter, delete messages

This is modeled by various oracle accesses given to oracles

• to let it choose when and what to transmit,

• but also the leakage of information

ENS/CNRS/INRIA Cascade David Pointcheval 6/62

Page 16: IV – Protocols

Security Game: Oracle Accesses

The adversary has access to the oracles:

• Execute(C i ,Sj)

A gets the transcript of an execution between C and SIt models passive attacks (eavesdropping)

• Send(U i ,m)

A sends the message m to the instance U i

It models active attacks against U i

• Reveal(U i)

A gets the session key established by U i and its partnerIt models the leakage of the session key, due to a misuse

• Test(U i) a random bit b is chosen.• If b = 0, A gets the session key (Reveal(U i ))• If b = 1, it gets a random key

ENS/CNRS/INRIA Cascade David Pointcheval 7/62

Page 17: IV – Protocols

Security Game: Oracle Accesses

The adversary has access to the oracles:

• Execute(C i ,Sj)

A gets the transcript of an execution between C and SIt models passive attacks (eavesdropping)

• Send(U i ,m)

A sends the message m to the instance U i

It models active attacks against U i

• Reveal(U i)

A gets the session key established by U i and its partnerIt models the leakage of the session key, due to a misuse

• Test(U i) a random bit b is chosen.• If b = 0, A gets the session key (Reveal(U i ))• If b = 1, it gets a random key

ENS/CNRS/INRIA Cascade David Pointcheval 7/62

Page 18: IV – Protocols

Security Game: Oracle Accesses

The adversary has access to the oracles:

• Execute(C i ,Sj)

A gets the transcript of an execution between C and SIt models passive attacks (eavesdropping)

• Send(U i ,m)

A sends the message m to the instance U i

It models active attacks against U i

• Reveal(U i)

A gets the session key established by U i and its partnerIt models the leakage of the session key, due to a misuse

• Test(U i) a random bit b is chosen.• If b = 0, A gets the session key (Reveal(U i ))• If b = 1, it gets a random key

ENS/CNRS/INRIA Cascade David Pointcheval 7/62

Page 19: IV – Protocols

Security Game: Oracle Accesses

The adversary has access to the oracles:

• Execute(C i ,Sj)

A gets the transcript of an execution between C and SIt models passive attacks (eavesdropping)

• Send(U i ,m)

A sends the message m to the instance U i

It models active attacks against U i

• Reveal(U i)

A gets the session key established by U i and its partnerIt models the leakage of the session key, due to a misuse

• Test(U i) a random bit b is chosen.• If b = 0, A gets the session key (Reveal(U i ))• If b = 1, it gets a random key

ENS/CNRS/INRIA Cascade David Pointcheval 7/62

Page 20: IV – Protocols

Security Game: Oracle Accesses

The adversary has access to the oracles:

• Execute(C i ,Sj)

A gets the transcript of an execution between C and SIt models passive attacks (eavesdropping)

• Send(U i ,m)

A sends the message m to the instance U i

It models active attacks against U i

• Reveal(U i)

A gets the session key established by U i and its partnerIt models the leakage of the session key, due to a misuse

• Test(U i) a random bit b is chosen.• If b = 0, A gets the session key (Reveal(U i ))• If b = 1, it gets a random key

ENS/CNRS/INRIA Cascade David Pointcheval 7/62

Page 21: IV – Protocols

Security Game: Oracle Accesses

The adversary has access to the oracles:

• Execute(C i ,Sj)

A gets the transcript of an execution between C and SIt models passive attacks (eavesdropping)

• Send(U i ,m)

A sends the message m to the instance U i

It models active attacks against U i

• Reveal(U i)

A gets the session key established by U i and its partnerIt models the leakage of the session key, due to a misuse

• Test(U i) a random bit b is chosen.• If b = 0, A gets the session key (Reveal(U i ))• If b = 1, it gets a random key

ENS/CNRS/INRIA Cascade David Pointcheval 7/62

Page 22: IV – Protocols

Security Game: Oracle Accesses

The adversary has access to the oracles:

• Execute(C i ,Sj)

A gets the transcript of an execution between C and SIt models passive attacks (eavesdropping)

• Send(U i ,m)

A sends the message m to the instance U i

It models active attacks against U i

• Reveal(U i)

A gets the session key established by U i and its partnerIt models the leakage of the session key, due to a misuse

• Test(U i) a random bit b is chosen.• If b = 0, A gets the session key (Reveal(U i ))• If b = 1, it gets a random key

ENS/CNRS/INRIA Cascade David Pointcheval 7/62

Page 23: IV – Protocols

Security Game: Oracle Accesses

The adversary has access to the oracles:

• Execute(C i ,Sj)

A gets the transcript of an execution between C and SIt models passive attacks (eavesdropping)

• Send(U i ,m)

A sends the message m to the instance U i

It models active attacks against U i

• Reveal(U i)

A gets the session key established by U i and its partnerIt models the leakage of the session key, due to a misuse

• Test(U i) a random bit b is chosen.• If b = 0, A gets the session key (Reveal(U i ))• If b = 1, it gets a random key

Constraint: no Test-query to a partner of a Reveal-queryENS/CNRS/INRIA Cascade David Pointcheval 7/62

Page 24: IV – Protocols

Security Game: Some Terminology

Partnership

• two instances are partnersif they have the same sid (session identity)

• the sid is set in such a way that two different sessionshave the same sid with negligible probability

Usually, sid is the (partial) transcript of the protocol

Freshness

• a user’s instance is fresh if a key has been established,and it is not trivially known to the adversary(a Reveal query has been asked to this instance or its partner)

ENS/CNRS/INRIA Cascade David Pointcheval 8/62

Page 25: IV – Protocols

Security Game: Some Terminology

Partnership

• two instances are partnersif they have the same sid (session identity)

• the sid is set in such a way that two different sessionshave the same sid with negligible probability

Usually, sid is the (partial) transcript of the protocol

Freshness

• a user’s instance is fresh if a key has been established,and it is not trivially known to the adversary(a Reveal query has been asked to this instance or its partner)

ENS/CNRS/INRIA Cascade David Pointcheval 8/62

Page 26: IV – Protocols

Security Game: Find-then-Guess

Privacy of the key: modeled by a find-then-guess security game

A has to guess the bit b involved in the Test-query:is the obtained key real or random?

ENS/CNRS/INRIA Cascade David Pointcheval 9/62

Page 27: IV – Protocols

Security Game: Find-then-Guess

Privacy of the key: modeled by a find-then-guess security game

A has to guess the bit b involved in the Test-query:is the obtained key real or random?

ENS/CNRS/INRIA Cascade David Pointcheval 9/62

Page 28: IV – Protocols

Security Game: Find-then-Guess

Privacy of the key: modeled by a find-then-guess security game

A has to guess the bit b involved in the Test-query:is the obtained key real or random?

ENS/CNRS/INRIA Cascade David Pointcheval 9/62

Page 29: IV – Protocols

Semantic Security: Find-then-Guess

The semantic security is characterized by

Advftg(A) = 2× Succ(A)− 1

Advftg(t ,qexecute,qsend ,qreveal) = max{Advftg(A)}

• where the adversary wins if it correctly guesses the bit b involvedin the Test-query

• qexe, qsend and qreveal are the numbers of Execute, Send andReveal-queries resp.

DefinitionA Key Exchange Scheme is FtG-Semantically Secure if

Advftg(t) ≤ negl()

ENS/CNRS/INRIA Cascade David Pointcheval 10/62

Page 30: IV – Protocols

Semantic Security: Find-then-Guess

The semantic security is characterized by

Advftg(A) = 2× Succ(A)− 1

Advftg(t ,qexecute,qsend ,qreveal) = max{Advftg(A)}

• where the adversary wins if it correctly guesses the bit b involvedin the Test-query

• qexe, qsend and qreveal are the numbers of Execute, Send andReveal-queries resp.

DefinitionA Key Exchange Scheme is FtG-Semantically Secure if

Advftg(t) ≤ negl()

ENS/CNRS/INRIA Cascade David Pointcheval 10/62

Page 31: IV – Protocols

Security Game: Real-or-Random

Privacy of the key: modeled by a real-or-random security game

A has to guess the bit b involved in the Test-queries:are they all real or random keys?

ENS/CNRS/INRIA Cascade David Pointcheval 11/62

Page 32: IV – Protocols

Security Game: Real-or-Random

Privacy of the key: modeled by a real-or-random security game

A has to guess the bit b involved in the Test-queries:are they all real or random keys?

ENS/CNRS/INRIA Cascade David Pointcheval 11/62

Page 33: IV – Protocols

Security Game: Real-or-Random

Privacy of the key: modeled by a real-or-random security game

A has to guess the bit b involved in the Test-queries:are they all real or random keys?

ENS/CNRS/INRIA Cascade David Pointcheval 11/62

Page 34: IV – Protocols

Semantic Security: Real-or-Random

We can even drop the Reveal-Oracle:

• A random bit b is chosen

• Execute(C i ,Sj)

A gets the transcript of an execution between C and SIt models passive attacks (eavesdropping)

• Send(U i ,m)

A sends the message m to the instance U i

It models active attacks against U i

• Test(U i) If U i is not fresh: same answer as for its partnerOtherwise

• If b = 0, A gets the session key• If b = 1, it gets a random key

ENS/CNRS/INRIA Cascade David Pointcheval 12/62

Page 35: IV – Protocols

Semantic Security: Real-or-Random

We can even drop the Reveal-Oracle:

• A random bit b is chosen

• Execute(C i ,Sj)

A gets the transcript of an execution between C and SIt models passive attacks (eavesdropping)

• Send(U i ,m)

A sends the message m to the instance U i

It models active attacks against U i

• Test(U i) If U i is not fresh: same answer as for its partnerOtherwise

• If b = 0, A gets the session key• If b = 1, it gets a random key

ENS/CNRS/INRIA Cascade David Pointcheval 12/62

Page 36: IV – Protocols

Semantic Security: Real-or-Random

We can even drop the Reveal-Oracle:

• A random bit b is chosen

• Execute(C i ,Sj)

A gets the transcript of an execution between C and SIt models passive attacks (eavesdropping)

• Send(U i ,m)

A sends the message m to the instance U i

It models active attacks against U i

• Test(U i) If U i is not fresh: same answer as for its partnerOtherwise

• If b = 0, A gets the session key• If b = 1, it gets a random key

ENS/CNRS/INRIA Cascade David Pointcheval 12/62

Page 37: IV – Protocols

Semantic Security: Real-or-Random

We can even drop the Reveal-Oracle:

• A random bit b is chosen

• Execute(C i ,Sj)

A gets the transcript of an execution between C and SIt models passive attacks (eavesdropping)

• Send(U i ,m)

A sends the message m to the instance U i

It models active attacks against U i

• Test(U i) If U i is not fresh: same answer as for its partnerOtherwise

• If b = 0, A gets the session key• If b = 1, it gets a random key

ENS/CNRS/INRIA Cascade David Pointcheval 12/62

Page 38: IV – Protocols

Semantic Security: Real-or-Random

We can even drop the Reveal-Oracle:

• A random bit b is chosen

• Execute(C i ,Sj)

A gets the transcript of an execution between C and SIt models passive attacks (eavesdropping)

• Send(U i ,m)

A sends the message m to the instance U i

It models active attacks against U i

• Test(U i) If U i is not fresh: same answer as for its partnerOtherwise

• If b = 0, A gets the session key• If b = 1, it gets a random key

ENS/CNRS/INRIA Cascade David Pointcheval 12/62

Page 39: IV – Protocols

Semantic Security: Real-or-Random

We can even drop the Reveal-Oracle:

• A random bit b is chosen

• Execute(C i ,Sj)

A gets the transcript of an execution between C and SIt models passive attacks (eavesdropping)

• Send(U i ,m)

A sends the message m to the instance U i

It models active attacks against U i

• Test(U i) If U i is not fresh: same answer as for its partnerOtherwise

• If b = 0, A gets the session key• If b = 1, it gets a random key

ENS/CNRS/INRIA Cascade David Pointcheval 12/62

Page 40: IV – Protocols

Semantic Security: Real-or-Random

We can even drop the Reveal-Oracle:

• A random bit b is chosen

• Execute(C i ,Sj)

A gets the transcript of an execution between C and SIt models passive attacks (eavesdropping)

• Send(U i ,m)

A sends the message m to the instance U i

It models active attacks against U i

• Test(U i) If U i is not fresh: same answer as for its partnerOtherwise

• If b = 0, A gets the session key• If b = 1, it gets a random key

ENS/CNRS/INRIA Cascade David Pointcheval 12/62

Page 41: IV – Protocols

Semantic Security: Real-or-Random

The semantic security is characterized by

Advror(A) = 2× Succ(A)− 1

Advror(t ,qexecute,qsend ,qtest ) = max{Advror(A)}

DefinitionA Key Exchange Scheme is RoR-Semantically Secure if

Advror(t ,qexecute,qsend ,qtest ) ≤ negl()

ENS/CNRS/INRIA Cascade David Pointcheval 13/62

Page 42: IV – Protocols

Semantic Security: Real-or-Random

The semantic security is characterized by

Advror(A) = 2× Succ(A)− 1

Advror(t ,qexecute,qsend ,qtest ) = max{Advror(A)}

DefinitionA Key Exchange Scheme is RoR-Semantically Secure if

Advror(t ,qexecute,qsend ,qtest ) ≤ negl()

ENS/CNRS/INRIA Cascade David Pointcheval 13/62

Page 43: IV – Protocols

Real-or-Random vs. Find-then-Guess

Theorem

Advftg(t ,qexecute,qsend ,qreveal) ≤ 2×Advror(t ,qexecute,qsend ,qreveal +1)

Let A be a FtG-adversaryWe build an adversary B against the RoR security game:

• A random bit b is chosen by the RoR challenger

• Execute(C i ,Sj) and Send(U i ,m) queries are forwarded by B• Reveal(U i) is answered Test(U i)

• Test(U i) If U i is not fresh: same answer as for its partnerOtherwise, B chooses a random bit β

• If β = 0, one answers Test(U i )

• If β = 1, one answers a random key

• From A’s answer β′, B outputs (β = β′)

ENS/CNRS/INRIA Cascade David Pointcheval 14/62

Page 44: IV – Protocols

Real-or-Random vs. Find-then-Guess

Theorem

Advftg(t ,qexecute,qsend ,qreveal) ≤ 2×Advror(t ,qexecute,qsend ,qreveal +1)

Let A be a FtG-adversaryWe build an adversary B against the RoR security game:

• A random bit b is chosen by the RoR challenger

• Execute(C i ,Sj) and Send(U i ,m) queries are forwarded by B• Reveal(U i) is answered Test(U i)

• Test(U i) If U i is not fresh: same answer as for its partnerOtherwise, B chooses a random bit β

• If β = 0, one answers Test(U i )

• If β = 1, one answers a random key

• From A’s answer β′, B outputs (β = β′)

ENS/CNRS/INRIA Cascade David Pointcheval 14/62

Page 45: IV – Protocols

Real-or-Random vs. Find-then-Guess

Theorem

Advftg(t ,qexecute,qsend ,qreveal) ≤ 2×Advror(t ,qexecute,qsend ,qreveal +1)

Let A be a FtG-adversaryWe build an adversary B against the RoR security game:

• A random bit b is chosen by the RoR challenger

• Execute(C i ,Sj) and Send(U i ,m) queries are forwarded by B• Reveal(U i) is answered Test(U i)

• Test(U i) If U i is not fresh: same answer as for its partnerOtherwise, B chooses a random bit β

• If β = 0, one answers Test(U i )

• If β = 1, one answers a random key

• From A’s answer β′, B outputs (β = β′)

ENS/CNRS/INRIA Cascade David Pointcheval 14/62

Page 46: IV – Protocols

Real-or-Random vs. Find-then-Guess

Theorem

Advftg(t ,qexecute,qsend ,qreveal) ≤ 2×Advror(t ,qexecute,qsend ,qreveal +1)

Let A be a FtG-adversaryWe build an adversary B against the RoR security game:

• A random bit b is chosen by the RoR challenger

• Execute(C i ,Sj) and Send(U i ,m) queries are forwarded by B• Reveal(U i) is answered Test(U i)

• Test(U i) If U i is not fresh: same answer as for its partnerOtherwise, B chooses a random bit β

• If β = 0, one answers Test(U i )

• If β = 1, one answers a random key

• From A’s answer β′, B outputs (β = β′)

ENS/CNRS/INRIA Cascade David Pointcheval 14/62

Page 47: IV – Protocols

Real-or-Random vs. Find-then-Guess

Theorem

Advftg(t ,qexecute,qsend ,qreveal) ≤ 2×Advror(t ,qexecute,qsend ,qreveal +1)

Let A be a FtG-adversaryWe build an adversary B against the RoR security game:

• A random bit b is chosen by the RoR challenger

• Execute(C i ,Sj) and Send(U i ,m) queries are forwarded by B• Reveal(U i) is answered Test(U i)

• Test(U i) If U i is not fresh: same answer as for its partnerOtherwise, B chooses a random bit β

• If β = 0, one answers Test(U i )

• If β = 1, one answers a random key

• From A’s answer β′, B outputs (β = β′)

ENS/CNRS/INRIA Cascade David Pointcheval 14/62

Page 48: IV – Protocols

Real-or-Random vs. Find-then-Guess

Theorem

Advftg(t ,qexecute,qsend ,qreveal) ≤ 2×Advror(t ,qexecute,qsend ,qreveal +1)

Let A be a FtG-adversaryWe build an adversary B against the RoR security game:

• A random bit b is chosen by the RoR challenger

• Execute(C i ,Sj) and Send(U i ,m) queries are forwarded by B• Reveal(U i) is answered Test(U i)

• Test(U i) If U i is not fresh: same answer as for its partnerOtherwise, B chooses a random bit β

• If β = 0, one answers Test(U i )

• If β = 1, one answers a random key

• From A’s answer β′, B outputs (β = β′)

ENS/CNRS/INRIA Cascade David Pointcheval 14/62

Page 49: IV – Protocols

Real-or-Random vs. Find-then-Guess

Theorem

Advftg(t ,qexecute,qsend ,qreveal) ≤ 2×Advror(t ,qexecute,qsend ,qreveal +1)

Let A be a FtG-adversaryWe build an adversary B against the RoR security game:

• A random bit b is chosen by the RoR challenger

• Execute(C i ,Sj) and Send(U i ,m) queries are forwarded by B• Reveal(U i) is answered Test(U i)

• Test(U i) If U i is not fresh: same answer as for its partnerOtherwise, B chooses a random bit β

• If β = 0, one answers Test(U i )

• If β = 1, one answers a random key

• From A’s answer β′, B outputs (β = β′)

ENS/CNRS/INRIA Cascade David Pointcheval 14/62

Page 50: IV – Protocols

Real-or-Random vs. Find-then-Guess

If b is the Real choice, then the view of A is

• Execute(C i ,Sj) and Send(U i ,m) queries: correct

• Reveal(U i): Test(U i) with Real

• Test(U i) If U i is not fresh: same answer as for its partnerOtherwise, a random bit β is drawn

• If β = 0, one answers Test(U i ) with Real• If β = 1, one answers a random key

This is the FtG game

2× Pr[β′ = β |b = 0]− 1 = Advftg(A)

ENS/CNRS/INRIA Cascade David Pointcheval 15/62

Page 51: IV – Protocols

Real-or-Random vs. Find-then-Guess

If b is the Real choice, then the view of A is

• Execute(C i ,Sj) and Send(U i ,m) queries: correct

• Reveal(U i): Test(U i) with Real

• Test(U i) If U i is not fresh: same answer as for its partnerOtherwise, a random bit β is drawn

• If β = 0, one answers Test(U i ) with Real• If β = 1, one answers a random key

This is the FtG game

2× Pr[β′ = β |b = 0]− 1 = Advftg(A)

ENS/CNRS/INRIA Cascade David Pointcheval 15/62

Page 52: IV – Protocols

Real-or-Random vs. Find-then-Guess

If b is the Real choice, then the view of A is

• Execute(C i ,Sj) and Send(U i ,m) queries: correct

• Reveal(U i): Test(U i) with Real

• Test(U i) If U i is not fresh: same answer as for its partnerOtherwise, a random bit β is drawn

• If β = 0, one answers Test(U i ) with Real• If β = 1, one answers a random key

This is the FtG game

2× Pr[β′ = β |b = 0]− 1 = Advftg(A)

ENS/CNRS/INRIA Cascade David Pointcheval 15/62

Page 53: IV – Protocols

Real-or-Random vs. Find-then-Guess

If b is the Real choice, then the view of A is

• Execute(C i ,Sj) and Send(U i ,m) queries: correct

• Reveal(U i): Test(U i) with Real

• Test(U i) If U i is not fresh: same answer as for its partnerOtherwise, a random bit β is drawn

• If β = 0, one answers Test(U i ) with Real• If β = 1, one answers a random key

This is the FtG game

2× Pr[β′ = β |b = 0]− 1 = Advftg(A)

ENS/CNRS/INRIA Cascade David Pointcheval 15/62

Page 54: IV – Protocols

Real-or-Random vs. Find-then-Guess

If b is the Real choice, then the view of A is

• Execute(C i ,Sj) and Send(U i ,m) queries: correct

• Reveal(U i): Test(U i) with Real

• Test(U i) If U i is not fresh: same answer as for its partnerOtherwise, a random bit β is drawn

• If β = 0, one answers Test(U i ) with Real• If β = 1, one answers a random key

This is the FtG game

2× Pr[β′ = β |b = 0]− 1 = Advftg(A)

ENS/CNRS/INRIA Cascade David Pointcheval 15/62

Page 55: IV – Protocols

Real-or-Random vs. Find-then-Guess

If b is the Real choice, then the view of A is

• Execute(C i ,Sj) and Send(U i ,m) queries: correct

• Reveal(U i): Test(U i) with Real

• Test(U i) If U i is not fresh: same answer as for its partnerOtherwise, a random bit β is drawn

• If β = 0, one answers Test(U i ) with Real• If β = 1, one answers a random key

This is the FtG game

2× Pr[β′ = β |b = 0]− 1 = Advftg(A)

ENS/CNRS/INRIA Cascade David Pointcheval 15/62

Page 56: IV – Protocols

Real-or-Random vs. Find-then-Guess

If b is the Real choice, then the view of A is

• Execute(C i ,Sj) and Send(U i ,m) queries: correct

• Reveal(U i): Test(U i) with Real

• Test(U i) If U i is not fresh: same answer as for its partnerOtherwise, a random bit β is drawn

• If β = 0, one answers Test(U i ) with Real• If β = 1, one answers a random key

This is the FtG game

2× Pr[β′ = β |b = 0]− 1 = Advftg(A)

ENS/CNRS/INRIA Cascade David Pointcheval 15/62

Page 57: IV – Protocols

Real-or-Random vs. Find-then-Guess

If b is the Real choice, then the view of A is

• Execute(C i ,Sj) and Send(U i ,m) queries: correct

• Reveal(U i): Test(U i) with Real

• Test(U i) If U i is not fresh: same answer as for its partnerOtherwise, a random bit β is drawn

• If β = 0, one answers Test(U i ) with Real• If β = 1, one answers a random key

This is the FtG game

2× Pr[β′ = β |b = 0]− 1 = Advftg(A)

ENS/CNRS/INRIA Cascade David Pointcheval 15/62

Page 58: IV – Protocols

Real-or-Random vs. Find-then-Guess

If b is the Random choice, then the view of A is

• Execute(C i ,Sj) and Send(U i ,m) queries: correct• Reveal(U i): Test(U i) with Random• Test(U i) If U i is not fresh: same answer as for its partner

Otherwise, one answers a random key

The view is independent of β

2× Pr[β′ = β |b = 1]− 1 = 0

Advror(B) = 2× Pr[β′ = β]− 1 = Advftg(A)/2

≤ Advror(t ,qexecute,qsend ,qreveal + 1)

Advftg(t ,qexecute,qsend ,qreveal) ≤ 2×Advror(t ,qexecute,qsend ,qreveal +1)

ENS/CNRS/INRIA Cascade David Pointcheval 16/62

Page 59: IV – Protocols

Real-or-Random vs. Find-then-Guess

If b is the Random choice, then the view of A is

• Execute(C i ,Sj) and Send(U i ,m) queries: correct• Reveal(U i): Test(U i) with Random• Test(U i) If U i is not fresh: same answer as for its partner

Otherwise, one answers a random key

The view is independent of β

2× Pr[β′ = β |b = 1]− 1 = 0

Advror(B) = 2× Pr[β′ = β]− 1 = Advftg(A)/2

≤ Advror(t ,qexecute,qsend ,qreveal + 1)

Advftg(t ,qexecute,qsend ,qreveal) ≤ 2×Advror(t ,qexecute,qsend ,qreveal +1)

ENS/CNRS/INRIA Cascade David Pointcheval 16/62

Page 60: IV – Protocols

Real-or-Random vs. Find-then-Guess

If b is the Random choice, then the view of A is

• Execute(C i ,Sj) and Send(U i ,m) queries: correct• Reveal(U i): Test(U i) with Random• Test(U i) If U i is not fresh: same answer as for its partner

Otherwise, one answers a random key

The view is independent of β

2× Pr[β′ = β |b = 1]− 1 = 0

Advror(B) = 2× Pr[β′ = β]− 1 = Advftg(A)/2

≤ Advror(t ,qexecute,qsend ,qreveal + 1)

Advftg(t ,qexecute,qsend ,qreveal) ≤ 2×Advror(t ,qexecute,qsend ,qreveal +1)

ENS/CNRS/INRIA Cascade David Pointcheval 16/62

Page 61: IV – Protocols

Real-or-Random vs. Find-then-Guess

If b is the Random choice, then the view of A is

• Execute(C i ,Sj) and Send(U i ,m) queries: correct• Reveal(U i): Test(U i) with Random• Test(U i) If U i is not fresh: same answer as for its partner

Otherwise, one answers a random key

The view is independent of β

2× Pr[β′ = β |b = 1]− 1 = 0

Advror(B) = 2× Pr[β′ = β]− 1 = Advftg(A)/2

≤ Advror(t ,qexecute,qsend ,qreveal + 1)

Advftg(t ,qexecute,qsend ,qreveal) ≤ 2×Advror(t ,qexecute,qsend ,qreveal +1)

ENS/CNRS/INRIA Cascade David Pointcheval 16/62

Page 62: IV – Protocols

Real-or-Random vs. Find-then-Guess

If b is the Random choice, then the view of A is

• Execute(C i ,Sj) and Send(U i ,m) queries: correct• Reveal(U i): Test(U i) with Random• Test(U i) If U i is not fresh: same answer as for its partner

Otherwise, one answers a random key

The view is independent of β

2× Pr[β′ = β |b = 1]− 1 = 0

Advror(B) = 2× Pr[β′ = β]− 1 = Advftg(A)/2

≤ Advror(t ,qexecute,qsend ,qreveal + 1)

Advftg(t ,qexecute,qsend ,qreveal) ≤ 2×Advror(t ,qexecute,qsend ,qreveal +1)

ENS/CNRS/INRIA Cascade David Pointcheval 16/62

Page 63: IV – Protocols

Real-or-Random vs. Find-then-Guess

If b is the Random choice, then the view of A is

• Execute(C i ,Sj) and Send(U i ,m) queries: correct• Reveal(U i): Test(U i) with Random• Test(U i) If U i is not fresh: same answer as for its partner

Otherwise, one answers a random key

The view is independent of β

2× Pr[β′ = β |b = 1]− 1 = 0

Advror(B) = 2× Pr[β′ = β]− 1 = Advftg(A)/2

≤ Advror(t ,qexecute,qsend ,qreveal + 1)

Advftg(t ,qexecute,qsend ,qreveal) ≤ 2×Advror(t ,qexecute,qsend ,qreveal +1)

ENS/CNRS/INRIA Cascade David Pointcheval 16/62

Page 64: IV – Protocols

Real-or-Random vs. Find-then-Guess

If b is the Random choice, then the view of A is

• Execute(C i ,Sj) and Send(U i ,m) queries: correct• Reveal(U i): Test(U i) with Random• Test(U i) If U i is not fresh: same answer as for its partner

Otherwise, one answers a random key

The view is independent of β

2× Pr[β′ = β |b = 1]− 1 = 0

Advror(B) = 2× Pr[β′ = β]− 1 = Advftg(A)/2

≤ Advror(t ,qexecute,qsend ,qreveal + 1)

Advftg(t ,qexecute,qsend ,qreveal) ≤ 2×Advror(t ,qexecute,qsend ,qreveal +1)

ENS/CNRS/INRIA Cascade David Pointcheval 16/62

Page 65: IV – Protocols

Real-or-Random vs. Find-then-Guess

If b is the Random choice, then the view of A is

• Execute(C i ,Sj) and Send(U i ,m) queries: correct• Reveal(U i): Test(U i) with Random• Test(U i) If U i is not fresh: same answer as for its partner

Otherwise, one answers a random key

The view is independent of β

2× Pr[β′ = β |b = 1]− 1 = 0

Advror(B) = 2× Pr[β′ = β]− 1 = Advftg(A)/2

≤ Advror(t ,qexecute,qsend ,qreveal + 1)

Advftg(t ,qexecute,qsend ,qreveal) ≤ 2×Advror(t ,qexecute,qsend ,qreveal +1)

ENS/CNRS/INRIA Cascade David Pointcheval 16/62

Page 66: IV – Protocols

Real-or-Random vs. Find-then-Guess

Theorem

Advror(t ,qexecute,qsend ,qtest ) ≤ qtest ×Advftg(t ,qexecute,qsend ,qtest −1)

Let A be a RoR-adversaryWe build an adversary B against the FtG security game:

• A random bit b is chosen by the FtG challenger

• B chooses a random index J

• Execute(C i ,Sj) and Send(U i ,m) queries are forwarded by B• The j-th Test(U i) query:

• If j < J, one answers Reveal(U i )

• If j = J, one answers Test(U i )

• If j > J, one answers a random key

• From A’s answer b′, B forwards b′ENS/CNRS/INRIA Cascade David Pointcheval 17/62

Page 67: IV – Protocols

Real-or-Random vs. Find-then-Guess

Theorem

Advror(t ,qexecute,qsend ,qtest ) ≤ qtest ×Advftg(t ,qexecute,qsend ,qtest −1)

Let A be a RoR-adversaryWe build an adversary B against the FtG security game:

• A random bit b is chosen by the FtG challenger

• B chooses a random index J

• Execute(C i ,Sj) and Send(U i ,m) queries are forwarded by B• The j-th Test(U i) query:

• If j < J, one answers Reveal(U i )

• If j = J, one answers Test(U i )

• If j > J, one answers a random key

• From A’s answer b′, B forwards b′ENS/CNRS/INRIA Cascade David Pointcheval 17/62

Page 68: IV – Protocols

Real-or-Random vs. Find-then-Guess

Theorem

Advror(t ,qexecute,qsend ,qtest ) ≤ qtest ×Advftg(t ,qexecute,qsend ,qtest −1)

Let A be a RoR-adversaryWe build an adversary B against the FtG security game:

• A random bit b is chosen by the FtG challenger

• B chooses a random index J

• Execute(C i ,Sj) and Send(U i ,m) queries are forwarded by B• The j-th Test(U i) query:

• If j < J, one answers Reveal(U i )

• If j = J, one answers Test(U i )

• If j > J, one answers a random key

• From A’s answer b′, B forwards b′ENS/CNRS/INRIA Cascade David Pointcheval 17/62

Page 69: IV – Protocols

Real-or-Random vs. Find-then-Guess

Theorem

Advror(t ,qexecute,qsend ,qtest ) ≤ qtest ×Advftg(t ,qexecute,qsend ,qtest −1)

Let A be a RoR-adversaryWe build an adversary B against the FtG security game:

• A random bit b is chosen by the FtG challenger

• B chooses a random index J

• Execute(C i ,Sj) and Send(U i ,m) queries are forwarded by B• The j-th Test(U i) query:

• If j < J, one answers Reveal(U i )

• If j = J, one answers Test(U i )

• If j > J, one answers a random key

• From A’s answer b′, B forwards b′ENS/CNRS/INRIA Cascade David Pointcheval 17/62

Page 70: IV – Protocols

Real-or-Random vs. Find-then-Guess

Theorem

Advror(t ,qexecute,qsend ,qtest ) ≤ qtest ×Advftg(t ,qexecute,qsend ,qtest −1)

Let A be a RoR-adversaryWe build an adversary B against the FtG security game:

• A random bit b is chosen by the FtG challenger

• B chooses a random index J

• Execute(C i ,Sj) and Send(U i ,m) queries are forwarded by B• The j-th Test(U i) query:

• If j < J, one answers Reveal(U i )

• If j = J, one answers Test(U i )

• If j > J, one answers a random key

• From A’s answer b′, B forwards b′ENS/CNRS/INRIA Cascade David Pointcheval 17/62

Page 71: IV – Protocols

Real-or-Random vs. Find-then-Guess

Theorem

Advror(t ,qexecute,qsend ,qtest ) ≤ qtest ×Advftg(t ,qexecute,qsend ,qtest −1)

Let A be a RoR-adversaryWe build an adversary B against the FtG security game:

• A random bit b is chosen by the FtG challenger

• B chooses a random index J

• Execute(C i ,Sj) and Send(U i ,m) queries are forwarded by B• The j-th Test(U i) query:

• If j < J, one answers Reveal(U i )

• If j = J, one answers Test(U i )

• If j > J, one answers a random key

• From A’s answer b′, B forwards b′ENS/CNRS/INRIA Cascade David Pointcheval 17/62

Page 72: IV – Protocols

Real-or-Random vs. Find-then-Guess

Theorem

Advror(t ,qexecute,qsend ,qtest ) ≤ qtest ×Advftg(t ,qexecute,qsend ,qtest −1)

Let A be a RoR-adversaryWe build an adversary B against the FtG security game:

• A random bit b is chosen by the FtG challenger

• B chooses a random index J

• Execute(C i ,Sj) and Send(U i ,m) queries are forwarded by B• The j-th Test(U i) query:

• If j < J, one answers Reveal(U i )

• If j = J, one answers Test(U i )

• If j > J, one answers a random key

• From A’s answer b′, B forwards b′ENS/CNRS/INRIA Cascade David Pointcheval 17/62

Page 73: IV – Protocols

Real-or-Random vs. Find-then-Guess

Theorem

Advror(t ,qexecute,qsend ,qtest ) ≤ qtest ×Advftg(t ,qexecute,qsend ,qtest −1)

Let A be a RoR-adversaryWe build an adversary B against the FtG security game:

• A random bit b is chosen by the FtG challenger

• B chooses a random index J

• Execute(C i ,Sj) and Send(U i ,m) queries are forwarded by B• The j-th Test(U i) query:

• If j < J, one answers Reveal(U i )

• If j = J, one answers Test(U i )

• If j > J, one answers a random key

• From A’s answer b′, B forwards b′ENS/CNRS/INRIA Cascade David Pointcheval 17/62

Page 74: IV – Protocols

Real-or-Random vs. Find-then-Guess

This is a sequence of hybrid games GJ :

• G1, with b Random, is the RoR game with Random

• Gqtest , with b Real, is the RoR game with Real

• GJ−1 with b Real is identical to GJ with b Random

|Pr1

[b′ = 1 |b = 1]− Prqtest

[b′ = 1 |b = 0]|=Advror(A)

|PrJ

[b′ = 1 |b = 0]− PrJ

[b′ = 1 |b = 1]|≤Advftg(t ,qexecute,qsend , J − 1)

≤Advftg(t ,qexecute,qsend ,qtest − 1)

Advror(t ,qexecute,qsend ,qtest ) ≤ qtest ×Advftg(t ,qexecute,qsend ,qtest −1)

ENS/CNRS/INRIA Cascade David Pointcheval 18/62

Page 75: IV – Protocols

Outline

Game-based Security

Key Exchange

Authenticated Key Exchange

Explicit Authentication

Simulation-based Security

Encrypted Key Exchange

Conclusion

ENS/CNRS/INRIA Cascade David Pointcheval 19/62

Page 76: IV – Protocols

Man-in-the-Middle Attacks

The Diffie-Hellman key-exchange, without authentication is insecure,because of the malleability of the CDH problem:

Client C Server S

ENS/CNRS/INRIA Cascade David Pointcheval 20/62

Page 77: IV – Protocols

Man-in-the-Middle Attacks

The Diffie-Hellman key-exchange, without authentication is insecure,because of the malleability of the CDH problem:

Client C Server S

x ← ZqSend(C,start)←−−−−−−−−

ENS/CNRS/INRIA Cascade David Pointcheval 20/62

Page 78: IV – Protocols

Man-in-the-Middle Attacks

The Diffie-Hellman key-exchange, without authentication is insecure,because of the malleability of the CDH problem:

Client C Server S

x ← ZqSend(C,start)←−−−−−−−−

X ← gx −→ XSend(S,Xg)−−−−−−−−→ y ← Zq

ENS/CNRS/INRIA Cascade David Pointcheval 20/62

Page 79: IV – Protocols

Man-in-the-Middle Attacks

The Diffie-Hellman key-exchange, without authentication is insecure,because of the malleability of the CDH problem:

Client C Server S

x ← ZqSend(C,start)←−−−−−−−−

X ← gx −→ XSend(S,Xg)−−−−−−−−→ y ← Zq

skC ← Y x Send(C,Y )←−−−−−−−− Y ←− Y ← gy

ENS/CNRS/INRIA Cascade David Pointcheval 20/62

Page 80: IV – Protocols

Man-in-the-Middle Attacks

The Diffie-Hellman key-exchange, without authentication is insecure,because of the malleability of the CDH problem:

Client C Server S

x ← ZqSend(C,start)←−−−−−−−−

X ← gx −→ XSend(S,Xg)−−−−−−−−→ y ← Zq

skC ← Y x Send(C,Y )←−−−−−−−− Y ←− Y ← gy

Reveal(S)−−−−−−−−→

ENS/CNRS/INRIA Cascade David Pointcheval 20/62

Page 81: IV – Protocols

Man-in-the-Middle Attacks

The Diffie-Hellman key-exchange, without authentication is insecure,because of the malleability of the CDH problem:

Client C Server S

x ← ZqSend(C,start)←−−−−−−−−

X ← gx −→ XSend(S,Xg)−−−−−−−−→ y ← Zq

skC ← Y x Send(C,Y )←−−−−−−−− Y ←− Y ← gy

Reveal(S)−−−−−−−−→ skS ← (Xg)y

skS ←−

ENS/CNRS/INRIA Cascade David Pointcheval 20/62

Page 82: IV – Protocols

Man-in-the-Middle Attacks

The Diffie-Hellman key-exchange, without authentication is insecure,because of the malleability of the CDH problem:

Client C Server S

x ← ZqSend(C,start)←−−−−−−−−

X ← gx −→ XSend(S,Xg)−−−−−−−−→ y ← Zq

skC ← Y x Send(C,Y )←−−−−−−−− Y ←− Y ← gy

Test(C)←−−−−−−−− Reveal(S)−−−−−−−−→ skS ← (Xg)y

skS ←−

ENS/CNRS/INRIA Cascade David Pointcheval 20/62

Page 83: IV – Protocols

Man-in-the-Middle Attacks

The Diffie-Hellman key-exchange, without authentication is insecure,because of the malleability of the CDH problem:

Client C Server S

x ← ZqSend(C,start)←−−−−−−−−

X ← gx −→ XSend(S,Xg)−−−−−−−−→ y ← Zq

skC ← Y x Send(C,Y )←−−−−−−−− Y ←− Y ← gy

Test(C)←−−−−−−−− Reveal(S)−−−−−−−−→ skS ← (Xg)y

−→

{skC

$skS ←−

ENS/CNRS/INRIA Cascade David Pointcheval 20/62

Page 84: IV – Protocols

Man-in-the-Middle Attacks

The Diffie-Hellman key-exchange, without authentication is insecure,because of the malleability of the CDH problem:

Client C Server S

x ← ZqSend(C,start)←−−−−−−−−

X ← gx −→ XSend(S,Xg)−−−−−−−−→ y ← Zq

skC ← Y x Send(C,Y )←−−−−−−−− Y ←− Y ← gy

Test(C)←−−−−−−−− Reveal(S)−−−−−−−−→ skS ← (Xg)y

−→

{skC

$skS ←−

skS?= skC × Y

ENS/CNRS/INRIA Cascade David Pointcheval 20/62

Page 85: IV – Protocols

Man-in-the-Middle Attacks

The Diffie-Hellman key-exchange, without authentication is insecure,because of the malleability of the CDH problem:

Client C Server S

x ← ZqSend(C,start)←−−−−−−−−

X ← gx −→ XSend(S,Xg)−−−−−−−−→ y ← Zq

skC ← Y x Send(C,Y )←−−−−−−−− Y ←− Y ← gy

Test(C)←−−−−−−−− Reveal(S)−−−−−−−−→ skS ← (Xg)y

−→

{skC

$skS ←−

skS?= skC × Y

No authentication provided!

ENS/CNRS/INRIA Cascade David Pointcheval 20/62

Page 86: IV – Protocols

Authenticated Key-Exchange

Allow two parties to establish a common secretin an authenticated way

• The session key should only be known to the involved parties

• The session key should be indistinguishablefrom a random string for others

ENS/CNRS/INRIA Cascade David Pointcheval 21/62

Page 87: IV – Protocols

Authenticated Key-Exchange

Allow two parties to establish a common secretin an authenticated way

• The session key should only be known to the involved parties

• The session key should be indistinguishablefrom a random string for others

ENS/CNRS/INRIA Cascade David Pointcheval 21/62

Page 88: IV – Protocols

Authenticated Key-Exchange

Allow two parties to establish a common secretin an authenticated way

• The session key should only be known to the involved parties

• The session key should be indistinguishablefrom a random string for others

ENS/CNRS/INRIA Cascade David Pointcheval 21/62

Page 89: IV – Protocols

Authentication Techniques: PKI

If one assumes a PKI (public-key infrastructure),any user owns a pair of keys, certified by a CA.

By simply signing the flows, one gets an authenticated key-exchange:G = 〈g〉 a group, of prime order q, in which the DDH problem is hard

Alice Bob

x R← Zq y R← Zq

X = gx SignA(B,X )−−−−−−−−→

SignB(A,X ,Y )←−−−−−−−−−− Y = gy

Y x = gxy = X y

ENS/CNRS/INRIA Cascade David Pointcheval 22/62

Page 90: IV – Protocols

Authentication Techniques: PKI

If one assumes a PKI (public-key infrastructure),any user owns a pair of keys, certified by a CA.

By simply signing the flows, one gets an authenticated key-exchange:G = 〈g〉 a group, of prime order q, in which the DDH problem is hard

Alice Bob

x R← Zq y R← Zq

X = gx SignA(B,X )−−−−−−−−→

SignB(A,X ,Y )←−−−−−−−−−− Y = gy

Y x = gxy = X y

ENS/CNRS/INRIA Cascade David Pointcheval 22/62

Page 91: IV – Protocols

Authentication Techniques: PKI

If one assumes a PKI (public-key infrastructure),any user owns a pair of keys, certified by a CA.

By simply signing the flows, one gets an authenticated key-exchange:G = 〈g〉 a group, of prime order q, in which the DDH problem is hard

Alice Bob

x R← Zq y R← Zq

X = gx SignA(B,X )−−−−−−−−→

SignB(A,X ,Y )←−−−−−−−−−− Y = gy

Y x = gxy = X y

ENS/CNRS/INRIA Cascade David Pointcheval 22/62

Page 92: IV – Protocols

Authentication Techniques: PKI

If one assumes a PKI (public-key infrastructure),any user owns a pair of keys, certified by a CA.

By simply signing the flows, one gets an authenticated key-exchange:G = 〈g〉 a group, of prime order q, in which the DDH problem is hard

Alice Bob

x R← Zq y R← Zq

X = gx SignA(B,X )−−−−−−−−→

SignB(A,X ,Y )←−−−−−−−−−− Y = gy

Y x = gxy = X y

ENS/CNRS/INRIA Cascade David Pointcheval 22/62

Page 93: IV – Protocols

Signed Diffie-Hellman and DDH

TheoremThe Signed Diffie-Hellman key exchange is secure under the DDHassumption and the security of the signature scheme

Advror(t ,quser ,qexecute,qsend ,qtest )

≤ quser × Succeuf−cma

(t + (3qexecute + qsend + qtest )τexp,

qsend + qexecute (signing queries)

)+ Advddh(t + (7qexecute + 2qsend + 4qtest )τexp)

Let A be a RoR-adversary, we use it to breakeither the signature scheme or the DDH.

ENS/CNRS/INRIA Cascade David Pointcheval 23/62

Page 94: IV – Protocols

Signed Diffie-Hellman: Signature

If the adversary can generate a flow in the name of a user,we can break the signature scheme:

• We are given a verification key for a user A

• Execute(A,Bj) or Execute(Bi ,A): we use the signing oracle

• Send(A,m): we use the signing oracle

• Send(B,SignA(m)): if not signed by the signing oracle, we reject

• Test(U): as usual

If we reject a valid signature, this signature is a forgery:all the signatures are oracle generated but with probability less than

quser × Succeuf−cma

(t + (3qexecute + qsend + qtest )τexp,

qsend + qexecute (signing queries)

)

ENS/CNRS/INRIA Cascade David Pointcheval 24/62

Page 95: IV – Protocols

Signed Diffie-Hellman: Signature

If the adversary can generate a flow in the name of a user,we can break the signature scheme:

• We are given a verification key for a user A

• Execute(A,Bj) or Execute(Bi ,A): we use the signing oracle

• Send(A,m): we use the signing oracle

• Send(B,SignA(m)): if not signed by the signing oracle, we reject

• Test(U): as usual

If we reject a valid signature, this signature is a forgery:all the signatures are oracle generated but with probability less than

quser × Succeuf−cma

(t + (3qexecute + qsend + qtest )τexp,

qsend + qexecute (signing queries)

)

ENS/CNRS/INRIA Cascade David Pointcheval 24/62

Page 96: IV – Protocols

Signed Diffie-Hellman: Signature

If the adversary can generate a flow in the name of a user,we can break the signature scheme:

• We are given a verification key for a user A

• Execute(A,Bj) or Execute(Bi ,A): we use the signing oracle

• Send(A,m): we use the signing oracle

• Send(B,SignA(m)): if not signed by the signing oracle, we reject

• Test(U): as usual

If we reject a valid signature, this signature is a forgery:all the signatures are oracle generated but with probability less than

quser × Succeuf−cma

(t + (3qexecute + qsend + qtest )τexp,

qsend + qexecute (signing queries)

)

ENS/CNRS/INRIA Cascade David Pointcheval 24/62

Page 97: IV – Protocols

Signed Diffie-Hellman: Signature

If the adversary can generate a flow in the name of a user,we can break the signature scheme:

• We are given a verification key for a user A

• Execute(A,Bj) or Execute(Bi ,A): we use the signing oracle

• Send(A,m): we use the signing oracle

• Send(B,SignA(m)): if not signed by the signing oracle, we reject

• Test(U): as usual

If we reject a valid signature, this signature is a forgery:all the signatures are oracle generated but with probability less than

quser × Succeuf−cma

(t + (3qexecute + qsend + qtest )τexp,

qsend + qexecute (signing queries)

)

ENS/CNRS/INRIA Cascade David Pointcheval 24/62

Page 98: IV – Protocols

Signed Diffie-Hellman: Signature

If the adversary can generate a flow in the name of a user,we can break the signature scheme:

• We are given a verification key for a user A

• Execute(A,Bj) or Execute(Bi ,A): we use the signing oracle

• Send(A,m): we use the signing oracle

• Send(B,SignA(m)): if not signed by the signing oracle, we reject

• Test(U): as usual

If we reject a valid signature, this signature is a forgery:all the signatures are oracle generated but with probability less than

quser × Succeuf−cma

(t + (3qexecute + qsend + qtest )τexp,

qsend + qexecute (signing queries)

)

ENS/CNRS/INRIA Cascade David Pointcheval 24/62

Page 99: IV – Protocols

Signed Diffie-Hellman: Signature

If the adversary can generate a flow in the name of a user,we can break the signature scheme:

• We are given a verification key for a user A

• Execute(A,Bj) or Execute(Bi ,A): we use the signing oracle

• Send(A,m): we use the signing oracle

• Send(B,SignA(m)): if not signed by the signing oracle, we reject

• Test(U): as usual

If we reject a valid signature, this signature is a forgery:all the signatures are oracle generated but with probability less than

quser × Succeuf−cma

(t + (3qexecute + qsend + qtest )τexp,

qsend + qexecute (signing queries)

)

ENS/CNRS/INRIA Cascade David Pointcheval 24/62

Page 100: IV – Protocols

Signed Diffie-Hellman: Signature

If the adversary can generate a flow in the name of a user,we can break the signature scheme:

• We are given a verification key for a user A

• Execute(A,Bj) or Execute(Bi ,A): we use the signing oracle

• Send(A,m): we use the signing oracle

• Send(B,SignA(m)): if not signed by the signing oracle, we reject

• Test(U): as usual

If we reject a valid signature, this signature is a forgery:all the signatures are oracle generated but with probability less than

quser × Succeuf−cma

(t + (3qexecute + qsend + qtest )τexp,

qsend + qexecute (signing queries)

)

ENS/CNRS/INRIA Cascade David Pointcheval 24/62

Page 101: IV – Protocols

Signed Diffie-Hellman: DDH

Given a triple (X = gx ,Y = gy ,Z = gz), we can derive a list of triples:

Xi = gxi = X · gαi Zi,j = gzi,j = Zβi,j · X γi,j · Yαiβi,j · gαiγi,j

Yi,j = gyi,j = Y βi,j · gγi,j

We thus havexi = x + αi yi,j = yβi,j + γi,j zi,j = xiyi + (z − xy)βi,j

If (X ,Y ,Z ) is a Diffie-Hellman triple (i.e., z = xy ),all the triples are random and independent Diffie-Hellman triples

ENS/CNRS/INRIA Cascade David Pointcheval 25/62

Page 102: IV – Protocols

Signed Diffie-Hellman: DDH

Given a triple (X = gx ,Y = gy ,Z = gz), we can derive a list of triples:

Xi = gxi = X · gαi Zi,j = gzi,j = Zβi,j · X γi,j · Yαiβi,j · gαiγi,j

Yi,j = gyi,j = Y βi,j · gγi,j

We thus havexi = x + αi yi,j = yβi,j + γi,j zi,j = xiyi + (z − xy)βi,j

If (X ,Y ,Z ) is a Diffie-Hellman triple (i.e., z = xy ),all the triples are random and independent Diffie-Hellman triples

ENS/CNRS/INRIA Cascade David Pointcheval 25/62

Page 103: IV – Protocols

Signed Diffie-Hellman: DDH

Given a triple (X = gx ,Y = gy ,Z = gz), we can derive a list of triples:

Xi = gxi = X · gαi Zi,j = gzi,j = Zβi,j · X γi,j · Yαiβi,j · gαiγi,j

Yi,j = gyi,j = Y βi,j · gγi,j

We thus havexi = x + αi yi,j = yβi,j + γi,j zi,j = xiyi + (z − xy)βi,j

If (X ,Y ,Z ) is a Diffie-Hellman triple (i.e., z = xy ),all the triples are random and independent Diffie-Hellman triples

ENS/CNRS/INRIA Cascade David Pointcheval 25/62

Page 104: IV – Protocols

Signed Diffie-Hellman and DDH

Given a triple (X = gx ,Y = gy ,Z = gz)

xi = x + αi yi,j = yβi,j + γi,j zi,j = xiyi + (z − xy)βi,j

For any random list of triples (Xi = gxi ,Yi,j = gyi,j ,Zi,j = gzi,j ),if d = z − xy 6= 0, we can define

αi = xi − x βi,j = (zi,j − xiyi,j)/d γi,j = yi,j − yβi,j

If (X ,Y ,Z ) is not a Diffie-Hellman triple (i.e., z 6= xy ),all the triples are independent random triples

ENS/CNRS/INRIA Cascade David Pointcheval 26/62

Page 105: IV – Protocols

Signed Diffie-Hellman and DDH

Given a triple (X = gx ,Y = gy ,Z = gz)

xi = x + αi yi,j = yβi,j + γi,j zi,j = xiyi + (z − xy)βi,j

For any random list of triples (Xi = gxi ,Yi,j = gyi,j ,Zi,j = gzi,j ),if d = z − xy 6= 0, we can define

αi = xi − x βi,j = (zi,j − xiyi,j)/d γi,j = yi,j − yβi,j

If (X ,Y ,Z ) is not a Diffie-Hellman triple (i.e., z 6= xy ),all the triples are independent random triples

ENS/CNRS/INRIA Cascade David Pointcheval 26/62

Page 106: IV – Protocols

Signed Diffie-Hellman: DDH

We now assume that all the flows are oracle generated

• We are given a triple (X ,Y ,Z )

• Execute(Ai ,Bj): we use a fresh Xi but Y ′ = gy ′ for a known y ′

We can compute Z ′

• Send(A,Start): we use a fresh Xi

• Send(B,SignA(B,X )): if valid, we look for Xi = X , use a fresh Yi,j

The associated key is Zi,j

• Send(A,SignB(A,X ,Y )): if valid, we look for Xi = X ,Yi,j = Y .The associated key is Zi,j

• Test(U): the associated key is outputted

ENS/CNRS/INRIA Cascade David Pointcheval 27/62

Page 107: IV – Protocols

Signed Diffie-Hellman: DDH

We now assume that all the flows are oracle generated

• We are given a triple (X ,Y ,Z )

• Execute(Ai ,Bj): we use a fresh Xi but Y ′ = gy ′ for a known y ′

We can compute Z ′

• Send(A,Start): we use a fresh Xi

• Send(B,SignA(B,X )): if valid, we look for Xi = X , use a fresh Yi,j

The associated key is Zi,j

• Send(A,SignB(A,X ,Y )): if valid, we look for Xi = X ,Yi,j = Y .The associated key is Zi,j

• Test(U): the associated key is outputted

ENS/CNRS/INRIA Cascade David Pointcheval 27/62

Page 108: IV – Protocols

Signed Diffie-Hellman: DDH

We now assume that all the flows are oracle generated

• We are given a triple (X ,Y ,Z )

• Execute(Ai ,Bj): we use a fresh Xi but Y ′ = gy ′ for a known y ′

We can compute Z ′

• Send(A,Start): we use a fresh Xi

• Send(B,SignA(B,X )): if valid, we look for Xi = X , use a fresh Yi,j

The associated key is Zi,j

• Send(A,SignB(A,X ,Y )): if valid, we look for Xi = X ,Yi,j = Y .The associated key is Zi,j

• Test(U): the associated key is outputted

ENS/CNRS/INRIA Cascade David Pointcheval 27/62

Page 109: IV – Protocols

Signed Diffie-Hellman: DDH

We now assume that all the flows are oracle generated

• We are given a triple (X ,Y ,Z )

• Execute(Ai ,Bj): we use a fresh Xi but Y ′ = gy ′ for a known y ′

We can compute Z ′

• Send(A,Start): we use a fresh Xi

• Send(B,SignA(B,X )): if valid, we look for Xi = X , use a fresh Yi,j

The associated key is Zi,j

• Send(A,SignB(A,X ,Y )): if valid, we look for Xi = X ,Yi,j = Y .The associated key is Zi,j

• Test(U): the associated key is outputted

ENS/CNRS/INRIA Cascade David Pointcheval 27/62

Page 110: IV – Protocols

Signed Diffie-Hellman: DDH

We now assume that all the flows are oracle generated

• We are given a triple (X ,Y ,Z )

• Execute(Ai ,Bj): we use a fresh Xi but Y ′ = gy ′ for a known y ′

We can compute Z ′

• Send(A,Start): we use a fresh Xi

• Send(B,SignA(B,X )): if valid, we look for Xi = X , use a fresh Yi,j

The associated key is Zi,j

• Send(A,SignB(A,X ,Y )): if valid, we look for Xi = X ,Yi,j = Y .The associated key is Zi,j

• Test(U): the associated key is outputted

ENS/CNRS/INRIA Cascade David Pointcheval 27/62

Page 111: IV – Protocols

Signed Diffie-Hellman: DDH

We now assume that all the flows are oracle generated

• We are given a triple (X ,Y ,Z )

• Execute(Ai ,Bj): we use a fresh Xi but Y ′ = gy ′ for a known y ′

We can compute Z ′

• Send(A,Start): we use a fresh Xi

• Send(B,SignA(B,X )): if valid, we look for Xi = X , use a fresh Yi,j

The associated key is Zi,j

• Send(A,SignB(A,X ,Y )): if valid, we look for Xi = X ,Yi,j = Y .The associated key is Zi,j

• Test(U): the associated key is outputted

ENS/CNRS/INRIA Cascade David Pointcheval 27/62

Page 112: IV – Protocols

Signed Diffie-Hellman: DDH

If the triple (X ,Y ,Z ) is a DDH triple, we are in the Real casesince all the keys are correctly computed

If the triple (X ,Y ,Z ) is not a DDH triple, we are in the Random casesince all the keys are independent random values

ENS/CNRS/INRIA Cascade David Pointcheval 28/62

Page 113: IV – Protocols

Signed Diffie-Hellman: DDH

If the triple (X ,Y ,Z ) is a DDH triple, we are in the Real casesince all the keys are correctly computed

If the triple (X ,Y ,Z ) is not a DDH triple, we are in the Random casesince all the keys are independent random values

ENS/CNRS/INRIA Cascade David Pointcheval 28/62

Page 114: IV – Protocols

Authentication Techniques: Symmetric

Users share a common secret k of high entropyA MAC can be used for authenticating the flows.

Alice Bob

x R← Zq y R← Zq

X = gx MACk (A,B,X )−−−−−−−−−−→

MACk (B,A,X ,Y )←−−−−−−−−−−−−− Y = gy

Y x = gxy = X y

The same security result holds

ENS/CNRS/INRIA Cascade David Pointcheval 29/62

Page 115: IV – Protocols

Authentication Techniques: Symmetric

Users share a common secret k of high entropyA MAC can be used for authenticating the flows.

Alice Bob

x R← Zq y R← Zq

X = gx MACk (A,B,X )−−−−−−−−−−→

MACk (B,A,X ,Y )←−−−−−−−−−−−−− Y = gy

Y x = gxy = X y

The same security result holds

ENS/CNRS/INRIA Cascade David Pointcheval 29/62

Page 116: IV – Protocols

Authentication Techniques: Symmetric

Users share a common secret k of high entropyA MAC can be used for authenticating the flows.

Alice Bob

x R← Zq y R← Zq

X = gx MACk (A,B,X )−−−−−−−−−−→

MACk (B,A,X ,Y )←−−−−−−−−−−−−− Y = gy

Y x = gxy = X y

The same security result holds

ENS/CNRS/INRIA Cascade David Pointcheval 29/62

Page 117: IV – Protocols

Password-Based AKE

Realistic: Real-life applicationsusually rely on weak passwords

Convenient to use: Users do notneed to store a long secret

Subject to on-line dictionary attacks:Non-negligible probability of success due to the small dictionary

On-line Dictionary Attacks

• the adversary chooses a password pw

• tries to authenticate to the server

• in case of failure, it starts over

ENS/CNRS/INRIA Cascade David Pointcheval 30/62

Page 118: IV – Protocols

Password-Based AKE

Realistic: Real-life applicationsusually rely on weak passwords

Convenient to use: Users do notneed to store a long secret

Subject to on-line dictionary attacks:Non-negligible probability of success due to the small dictionary

On-line Dictionary Attacks

• the adversary chooses a password pw

• tries to authenticate to the server

• in case of failure, it starts over

ENS/CNRS/INRIA Cascade David Pointcheval 30/62

Page 119: IV – Protocols

Password-Based AKE

Realistic: Real-life applicationsusually rely on weak passwords

Convenient to use: Users do notneed to store a long secret

Subject to on-line dictionary attacks:Non-negligible probability of success due to the small dictionary

On-line Dictionary Attacks

• the adversary chooses a password pw

• tries to authenticate to the server

• in case of failure, it starts over

ENS/CNRS/INRIA Cascade David Pointcheval 30/62

Page 120: IV – Protocols

Password-Based AKE

Realistic: Real-life applicationsusually rely on weak passwords

Convenient to use: Users do notneed to store a long secret

Subject to on-line dictionary attacks:Non-negligible probability of success due to the small dictionary

On-line Dictionary Attacks

• the adversary chooses a password pw

• tries to authenticate to the server

• in case of failure, it starts over

ENS/CNRS/INRIA Cascade David Pointcheval 30/62

Page 121: IV – Protocols

Password-Based AKE

Realistic: Real-life applicationsusually rely on weak passwords

Convenient to use: Users do notneed to store a long secret

Subject to on-line dictionary attacks:Non-negligible probability of success due to the small dictionary

On-line Dictionary Attacks

• the adversary chooses a password pw

• tries to authenticate to the server

• in case of failure, it starts over

ENS/CNRS/INRIA Cascade David Pointcheval 30/62

Page 122: IV – Protocols

Find-then-Guess vs. Real-or-Random

DefinitionA PAKE scheme is Semantically Secure if the best attack is theonline dictionary attack:

Advftg(t) ≤ qsend/|D|+ negl()

or even betterAdvror(t) ≤ qsend/|D|+ negl()

We cannot get better than the former, but we can expect the latter.

ENS/CNRS/INRIA Cascade David Pointcheval 31/62

Page 123: IV – Protocols

Find-then-Guess vs. Real-or-Random

DefinitionA PAKE scheme is Semantically Secure if the best attack is theonline dictionary attack:

Advftg(t) ≤ qsend/|D|+ negl()

or even betterAdvror(t) ≤ qsend/|D|+ negl()

We cannot get better than the former, but we can expect the latter.

ENS/CNRS/INRIA Cascade David Pointcheval 31/62

Page 124: IV – Protocols

Find-then-Guess vs. Real-or-Random

DefinitionA PAKE scheme is Semantically Secure if the best attack is theonline dictionary attack:

Advftg(t) ≤ qsend/|D|+ negl()

or even betterAdvror(t) ≤ qsend/|D|+ negl()

We cannot get better than the former, but we can expect the latter.

ENS/CNRS/INRIA Cascade David Pointcheval 31/62

Page 125: IV – Protocols

Outline

Game-based Security

Key Exchange

Authenticated Key Exchange

Explicit Authentication

Simulation-based Security

Encrypted Key Exchange

Conclusion

ENS/CNRS/INRIA Cascade David Pointcheval 32/62

Page 126: IV – Protocols

Mutual Authentication

The Semantic Security tells that the session key should beindistinguishable from a random string for others

What about the case where the key is random for everybody,and then, no key is shared at all!

Client AuthenticationIf the server accepts a key, then a client has the material to computethe same key.

Mutual AuthenticationIf a party accepts a key, then its partner has the material to computethe same key.

ENS/CNRS/INRIA Cascade David Pointcheval 33/62

Page 127: IV – Protocols

Mutual Authentication

The Semantic Security tells that the session key should beindistinguishable from a random string for others

What about the case where the key is random for everybody,and then, no key is shared at all!

Client AuthenticationIf the server accepts a key, then a client has the material to computethe same key.

Mutual AuthenticationIf a party accepts a key, then its partner has the material to computethe same key.

ENS/CNRS/INRIA Cascade David Pointcheval 33/62

Page 128: IV – Protocols

Mutual Authentication

The Semantic Security tells that the session key should beindistinguishable from a random string for others

What about the case where the key is random for everybody,and then, no key is shared at all!

Client AuthenticationIf the server accepts a key, then a client has the material to computethe same key.

Mutual AuthenticationIf a party accepts a key, then its partner has the material to computethe same key.

ENS/CNRS/INRIA Cascade David Pointcheval 33/62

Page 129: IV – Protocols

Mutual Authentication

The Semantic Security tells that the session key should beindistinguishable from a random string for others

What about the case where the key is random for everybody,and then, no key is shared at all!

Client AuthenticationIf the server accepts a key, then a client has the material to computethe same key.

Mutual AuthenticationIf a party accepts a key, then its partner has the material to computethe same key.

ENS/CNRS/INRIA Cascade David Pointcheval 33/62

Page 130: IV – Protocols

Explicit Authentication: Game-based Definition

The session-ID should determine the session-key (not in acomputable way): this formally determines partnership.

Definition (Client Authentication)The attacker wins the client authentication game if a server instanceterminates, without exactly one accepting client partner.

Flags

• the flag Accept means thatthe player has enough material to compute the key

• the flag Terminate means thatthe player thinks that its partners has accepted

ENS/CNRS/INRIA Cascade David Pointcheval 34/62

Page 131: IV – Protocols

Explicit Authentication: Game-based Definition

The session-ID should determine the session-key (not in acomputable way): this formally determines partnership.

Definition (Client Authentication)The attacker wins the client authentication game if a server instanceterminates, without exactly one accepting client partner.

Flags

• the flag Accept means thatthe player has enough material to compute the key

• the flag Terminate means thatthe player thinks that its partners has accepted

ENS/CNRS/INRIA Cascade David Pointcheval 34/62

Page 132: IV – Protocols

Explicit Authentication: Game-based Definition

The session-ID should determine the session-key (not in acomputable way): this formally determines partnership.

Definition (Client Authentication)The attacker wins the client authentication game if a server instanceterminates, without exactly one accepting client partner.

Flags

• the flag Accept means thatthe player has enough material to compute the key

• the flag Terminate means thatthe player thinks that its partners has accepted

ENS/CNRS/INRIA Cascade David Pointcheval 34/62

Page 133: IV – Protocols

Explicit Authentication: Game-based Definition

The session-ID should determine the session-key (not in acomputable way): this formally determines partnership.

Definition (Client Authentication)The attacker wins the client authentication game if a server instanceterminates, without exactly one accepting client partner.

Flags

• the flag Accept means thatthe player has enough material to compute the key

• the flag Terminate means thatthe player thinks that its partners has accepted

ENS/CNRS/INRIA Cascade David Pointcheval 34/62

Page 134: IV – Protocols

Corruption

In the previous model, all the players are honest,and the adversary is not registered (no signing keys)

Wa can add a Corrupt query,which gives the long-term secret to the adversary

Forward-SecrecyThe security of the current session key is preserved even if thelong-term secrets (authentication means) are exposed in the future

ENS/CNRS/INRIA Cascade David Pointcheval 35/62

Page 135: IV – Protocols

Corruption

In the previous model, all the players are honest,and the adversary is not registered (no signing keys)

Wa can add a Corrupt query,which gives the long-term secret to the adversary

Forward-SecrecyThe security of the current session key is preserved even if thelong-term secrets (authentication means) are exposed in the future

ENS/CNRS/INRIA Cascade David Pointcheval 35/62

Page 136: IV – Protocols

Simulation-based Security

Page 137: IV – Protocols

Outline

Game-based Security

Simulation-based Security

Simulation-based Security

Universal Composability

Password-based Key Exchange

Encrypted Key Exchange

Conclusion

ENS/CNRS/INRIA Cascade David Pointcheval 36/62

Page 138: IV – Protocols

Ideal Functionality – Real Protocol

Real ProtocolThe real protocol P is run by players P1, . . . , Pn, with their ownprivate inputs x1, . . . , xn. After interactions, they get outputsy1, . . . , yn.

Ideal FunctionalityAn ideal function F is defined:

• it takes as input x1, . . . , xn, the private information of eachplayers,

• and outputs y1, . . . , yn, given privately to each player.

The players get their results, without interacting:this is a “by definition” secure primitive.

ENS/CNRS/INRIA Cascade David Pointcheval 37/62

Page 139: IV – Protocols

Simulator

For any environment Z, for any adversary A,there exists a simulator S so that, the view of Z is the same for

• A attacking the real protocol

• S attacking the ideal functionality

ENS/CNRS/INRIA Cascade David Pointcheval 38/62

Page 140: IV – Protocols

Emulation

Protocol P emulatesthe ideal process for F if

• for any adversary A• there exists a simulator S• such that no environment Z can make the difference between

the ideal process and the protocol execution

ENS/CNRS/INRIA Cascade David Pointcheval 39/62

Page 141: IV – Protocols

Emulation

Protocol P emulatesthe ideal process for F if

• for any adversary A• there exists a simulator S• such that no environment Z can make the difference between

the ideal process and the protocol execution

ENS/CNRS/INRIA Cascade David Pointcheval 39/62

Page 142: IV – Protocols

Emulation

Protocol P emulates the ideal process for F if

• for any adversary A• there exists a simulator S• such that for every environment Z

the views are indistinguishable:

∀A,∃S, ∀Z,EXECF ,S,Z ≈ EXECP ,A,Z

ENS/CNRS/INRIA Cascade David Pointcheval 40/62

Page 143: IV – Protocols

Equivalent Formulations

∀A,∃S, ∀Z,EXECF ,S,Z ≈ EXECP ,A,Z

∀A,∀Z,∃S,EXECF ,S,Z ≈ EXECP ,A,Z

∃S,∀Z,EXECF ,S,Z ≈ EXECP ,Ad ,Z

where Ad is the dummy adversary: under the control of theenvironment (forwards every input/output).

ENS/CNRS/INRIA Cascade David Pointcheval 41/62

Page 144: IV – Protocols

Equivalent Formulations

∀A,∃S, ∀Z,EXECF ,S,Z ≈ EXECP ,A,Z

∀A,∀Z,∃S,EXECF ,S,Z ≈ EXECP ,A,Z

∃S,∀Z,EXECF ,S,Z ≈ EXECP ,Ad ,Z

where Ad is the dummy adversary: under the control of theenvironment (forwards every input/output).

ENS/CNRS/INRIA Cascade David Pointcheval 41/62

Page 145: IV – Protocols

Equivalent Formulations

∀A,∃S, ∀Z,EXECF ,S,Z ≈ EXECP ,A,Z

∀A,∀Z,∃S,EXECF ,S,Z ≈ EXECP ,A,Z

∃S,∀Z,EXECF ,S,Z ≈ EXECP ,Ad ,Z

where Ad is the dummy adversary: under the control of theenvironment (forwards every input/output).

ENS/CNRS/INRIA Cascade David Pointcheval 41/62

Page 146: IV – Protocols

Equivalent Formulations

∀A,∃S, ∀Z,EXECF ,S,Z ≈ EXECP ,A,Z

∀A,∀Z,∃S,EXECF ,S,Z ≈ EXECP ,A,Z

∃S,∀Z,EXECF ,S,Z ≈ EXECP ,Ad ,Z

where Ad is the dummy adversary: under the control of theenvironment (forwards every input/output).

ENS/CNRS/INRIA Cascade David Pointcheval 41/62

Page 147: IV – Protocols

Security

• Everything that the adversary Acan do against P can be done bythe simulator S against F

• But the ideal functionality F isperfectly secure: nothing can bedone against F

Then, nothing can be done against P

ENS/CNRS/INRIA Cascade David Pointcheval 42/62

Page 148: IV – Protocols

Outline

Game-based Security

Simulation-based Security

Simulation-based Security

Universal Composability

Password-based Key Exchange

Encrypted Key Exchange

Conclusion

ENS/CNRS/INRIA Cascade David Pointcheval 43/62

Page 149: IV – Protocols

Implications of UC

Can design and analyze protocols in a modular way:

• Divide a given task F into sub-tasks F1, . . . ,Fn

F is equivalent to F1 ∪ F2 ∪ F3 ∪ F4

• Construct protocols π1, . . . , πn emulating F1, . . . ,Fn

• Combine them into a protocol π

• Composition theorem: π emulates F

ENS/CNRS/INRIA Cascade David Pointcheval 44/62

Page 150: IV – Protocols

Implications of UC

Can design and analyze protocols in a modular way:

• Divide a given task F into sub-tasks F1, . . . ,Fn

F is equivalent to F1 ∪ F2 ∪ F3 ∪ F4

• Construct protocols π1, . . . , πn emulating F1, . . . ,Fn

• Combine them into a protocol π

• Composition theorem: π emulates F

ENS/CNRS/INRIA Cascade David Pointcheval 44/62

Page 151: IV – Protocols

Implications of UC

Can design and analyze protocols in a modular way:

• Divide a given task F into sub-tasks F1, . . . ,Fn

F is equivalent to F1 ∪ F2 ∪ F3 ∪ F4

• Construct protocols π1, . . . , πn emulating F1, . . . ,Fn

• Combine them into a protocol π

• Composition theorem: π emulates F

ENS/CNRS/INRIA Cascade David Pointcheval 44/62

Page 152: IV – Protocols

Implications of UC

Can design and analyze protocols in a modular way:

• Divide a given task F into sub-tasks F1, . . . ,Fn

F is equivalent to F1 ∪ F2 ∪ F3 ∪ F4

• Construct protocols π1, . . . , πn emulating F1, . . . ,Fn

• Combine them into a protocol π

• Composition theorem: π emulates F

ENS/CNRS/INRIA Cascade David Pointcheval 44/62

Page 153: IV – Protocols

Implications of UC

Can design and analyze protocols in a modular way:

• Divide a given task F into sub-tasks F1, . . . ,Fn

F is equivalent to F1 ∪ F2 ∪ F3 ∪ F4

• Construct protocols π1, . . . , πn emulating F1, . . . ,Fn

• Combine them into a protocol π

• Composition theorem: π emulates F

Can be done concurrently and in parallel

ENS/CNRS/INRIA Cascade David Pointcheval 44/62

Page 154: IV – Protocols

Composition of Ideal Functionalities

ENS/CNRS/INRIA Cascade David Pointcheval 45/62

Page 155: IV – Protocols

Composition of Real Protocols

ENS/CNRS/INRIA Cascade David Pointcheval 46/62

Page 156: IV – Protocols

UC Security

Theorem (Universal Composition)If each ideal functionality Fi is emulated by πi , then the compositionof the πi ’s emulates the composition of the Fi ’s

ENS/CNRS/INRIA Cascade David Pointcheval 47/62

Page 157: IV – Protocols

Outline

Game-based Security

Simulation-based Security

Simulation-based Security

Universal Composability

Password-based Key Exchange

Encrypted Key Exchange

Conclusion

ENS/CNRS/INRIA Cascade David Pointcheval 48/62

Page 158: IV – Protocols

Ideal Functionality of PAKE

Session key:

• no corrupted players, same passwords⇒ same key sk uniformly chosen

• no corrupted players, different passwords⇒ independent keys uniformly chosen

• a corrupted player⇒ key chosen by the adversary

• correct password guess⇒ key chosen by the adversary

• incorrect password guess⇒ independent keys uniformly chosen

ENS/CNRS/INRIA Cascade David Pointcheval 49/62

Page 159: IV – Protocols

Ideal Functionality of PAKE

Session key:

• no corrupted players, same passwords⇒ same key sk uniformly chosen

• no corrupted players, different passwords⇒ independent keys uniformly chosen

• a corrupted player⇒ key chosen by the adversary

• correct password guess⇒ key chosen by the adversary

• incorrect password guess⇒ independent keys uniformly chosen

ENS/CNRS/INRIA Cascade David Pointcheval 49/62

Page 160: IV – Protocols

Ideal Functionality of PAKE

Session key:

• no corrupted players, same passwords⇒ same key sk uniformly chosen

• no corrupted players, different passwords⇒ independent keys uniformly chosen

• a corrupted player⇒ key chosen by the adversary

• correct password guess⇒ key chosen by the adversary

• incorrect password guess⇒ independent keys uniformly chosen

ENS/CNRS/INRIA Cascade David Pointcheval 49/62

Page 161: IV – Protocols

Ideal Functionality of PAKE

Session key:

• no corrupted players, same passwords⇒ same key sk uniformly chosen

• no corrupted players, different passwords⇒ independent keys uniformly chosen

• a corrupted player⇒ key chosen by the adversary

• correct password guess⇒ key chosen by the adversary

• incorrect password guess⇒ independent keys uniformly chosen

ENS/CNRS/INRIA Cascade David Pointcheval 49/62

Page 162: IV – Protocols

Ideal Functionality of PAKE

Session key:

• no corrupted players, same passwords⇒ same key sk uniformly chosen

• no corrupted players, different passwords⇒ independent keys uniformly chosen

• a corrupted player⇒ key chosen by the adversary

• correct password guess⇒ key chosen by the adversary

• incorrect password guess⇒ independent keys uniformly chosen

ENS/CNRS/INRIA Cascade David Pointcheval 49/62

Page 163: IV – Protocols

Ideal Functionality of PAKE

Queries

• NewSession = a player initializes the protocolThe passwords are chosen by the environment.

• TestPwd = A attempts to guess a password (one per session)In case of correct guess, the adversary is allowed to choose thesession key.⇒ models the on-line dictionary attacks

• NewKey = A asks for the key sk to be delivered to a playerThe key sk is ignored except in case of corruption or correctpassword guess.

ENS/CNRS/INRIA Cascade David Pointcheval 50/62

Page 164: IV – Protocols

Ideal Functionality of PAKE

Queries

• NewSession = a player initializes the protocolThe passwords are chosen by the environment.

• TestPwd = A attempts to guess a password (one per session)In case of correct guess, the adversary is allowed to choose thesession key.⇒ models the on-line dictionary attacks

• NewKey = A asks for the key sk to be delivered to a playerThe key sk is ignored except in case of corruption or correctpassword guess.

ENS/CNRS/INRIA Cascade David Pointcheval 50/62

Page 165: IV – Protocols

Ideal Functionality of PAKE

Queries

• NewSession = a player initializes the protocolThe passwords are chosen by the environment.

• TestPwd = A attempts to guess a password (one per session)In case of correct guess, the adversary is allowed to choose thesession key.⇒ models the on-line dictionary attacks

• NewKey = A asks for the key sk to be delivered to a playerThe key sk is ignored except in case of corruption or correctpassword guess.

ENS/CNRS/INRIA Cascade David Pointcheval 50/62

Page 166: IV – Protocols

Ideal Functionality of PAKE

Improvements

• No assumption on the relations between the passwords of thedifferent players (can be different, identical, or the same fordifferent protocols)

• It provides forward secrecy, since corruption of players isavailable

ENS/CNRS/INRIA Cascade David Pointcheval 51/62

Page 167: IV – Protocols

Ideal Functionality of PAKE

Improvements

• No assumption on the relations between the passwords of thedifferent players (can be different, identical, or the same fordifferent protocols)

• It provides forward secrecy, since corruption of players isavailable

ENS/CNRS/INRIA Cascade David Pointcheval 51/62

Page 168: IV – Protocols

Encrypted Key Exchange

Page 169: IV – Protocols

Outline

Game-based Security

Simulation-based Security

Encrypted Key Exchange

Description

Semantic Security

Simulation-based Security

Conclusion

ENS/CNRS/INRIA Cascade David Pointcheval 52/62

Page 170: IV – Protocols

Setup

• The arithmetic is in a finite cyclic group G = 〈g〉• of order a `-bit prime number q

• Hash functions

H0 : {0,1}? → {0,1}`0 H1 : {0,1}? → {0,1}`1

• A block cipher (Ek ,Dk ) where k ∈ Password, onto G.

• G = G\{1}, thus G = {gx | x ∈ Z?q}.

Client and server initially share a low-quality password pw ,uniformly drawn from the dictionary Password.

The session-key space SK is {0,1}`0equipped with a uniform distribution.

ENS/CNRS/INRIA Cascade David Pointcheval 53/62

Page 171: IV – Protocols

Setup

• The arithmetic is in a finite cyclic group G = 〈g〉• of order a `-bit prime number q

• Hash functions

H0 : {0,1}? → {0,1}`0 H1 : {0,1}? → {0,1}`1

• A block cipher (Ek ,Dk ) where k ∈ Password, onto G.

• G = G\{1}, thus G = {gx | x ∈ Z?q}.

Client and server initially share a low-quality password pw ,uniformly drawn from the dictionary Password.

The session-key space SK is {0,1}`0equipped with a uniform distribution.

ENS/CNRS/INRIA Cascade David Pointcheval 53/62

Page 172: IV – Protocols

Setup

• The arithmetic is in a finite cyclic group G = 〈g〉• of order a `-bit prime number q

• Hash functions

H0 : {0,1}? → {0,1}`0 H1 : {0,1}? → {0,1}`1

• A block cipher (Ek ,Dk ) where k ∈ Password, onto G.

• G = G\{1}, thus G = {gx | x ∈ Z?q}.

Client and server initially share a low-quality password pw ,uniformly drawn from the dictionary Password.

The session-key space SK is {0,1}`0equipped with a uniform distribution.

ENS/CNRS/INRIA Cascade David Pointcheval 53/62

Page 173: IV – Protocols

Setup

• The arithmetic is in a finite cyclic group G = 〈g〉• of order a `-bit prime number q

• Hash functions

H0 : {0,1}? → {0,1}`0 H1 : {0,1}? → {0,1}`1

• A block cipher (Ek ,Dk ) where k ∈ Password, onto G.

• G = G\{1}, thus G = {gx | x ∈ Z?q}.

Client and server initially share a low-quality password pw ,uniformly drawn from the dictionary Password.

The session-key space SK is {0,1}`0equipped with a uniform distribution.

ENS/CNRS/INRIA Cascade David Pointcheval 53/62

Page 174: IV – Protocols

Setup

• The arithmetic is in a finite cyclic group G = 〈g〉• of order a `-bit prime number q

• Hash functions

H0 : {0,1}? → {0,1}`0 H1 : {0,1}? → {0,1}`1

• A block cipher (Ek ,Dk ) where k ∈ Password, onto G.

• G = G\{1}, thus G = {gx | x ∈ Z?q}.

Client and server initially share a low-quality password pw ,uniformly drawn from the dictionary Password.

The session-key space SK is {0,1}`0equipped with a uniform distribution.

ENS/CNRS/INRIA Cascade David Pointcheval 53/62

Page 175: IV – Protocols

Setup

• The arithmetic is in a finite cyclic group G = 〈g〉• of order a `-bit prime number q

• Hash functions

H0 : {0,1}? → {0,1}`0 H1 : {0,1}? → {0,1}`1

• A block cipher (Ek ,Dk ) where k ∈ Password, onto G.

• G = G\{1}, thus G = {gx | x ∈ Z?q}.

Client and server initially share a low-quality password pw ,uniformly drawn from the dictionary Password.

The session-key space SK is {0,1}`0equipped with a uniform distribution.

ENS/CNRS/INRIA Cascade David Pointcheval 53/62

Page 176: IV – Protocols

Setup

• The arithmetic is in a finite cyclic group G = 〈g〉• of order a `-bit prime number q

• Hash functions

H0 : {0,1}? → {0,1}`0 H1 : {0,1}? → {0,1}`1

• A block cipher (Ek ,Dk ) where k ∈ Password, onto G.

• G = G\{1}, thus G = {gx | x ∈ Z?q}.

Client and server initially share a low-quality password pw ,uniformly drawn from the dictionary Password.

The session-key space SK is {0,1}`0equipped with a uniform distribution.

ENS/CNRS/INRIA Cascade David Pointcheval 53/62

Page 177: IV – Protocols

Setup

• The arithmetic is in a finite cyclic group G = 〈g〉• of order a `-bit prime number q

• Hash functions

H0 : {0,1}? → {0,1}`0 H1 : {0,1}? → {0,1}`1

• A block cipher (Ek ,Dk ) where k ∈ Password, onto G.

• G = G\{1}, thus G = {gx | x ∈ Z?q}.

Client and server initially share a low-quality password pw ,uniformly drawn from the dictionary Password.

The session-key space SK is {0,1}`0equipped with a uniform distribution.

ENS/CNRS/INRIA Cascade David Pointcheval 53/62

Page 178: IV – Protocols

(One) Encrypted Key Exchange

Client U (pw) Server S (pw)

accept← false accept← falseterminate← false terminate← false

x R← [1, q − 1] y R← [1, q − 1]

X ← gx U,X−−−−−−−→ Y ← gy

Y ← Dpw (Y?)S,Y?

←−−−−−−− Y? ← Epw (Y )

KU ← Y x KS ← X y

Auth←H1(U‖S‖X‖Y‖KU)

skU ←H0(U‖S‖X‖Y‖KU)

accept← true Auth−−−−−−−→ Auth ?= H1(U‖S‖X‖Y‖KS)

if true, accept← trueskS ←H0(U‖S‖X‖Y‖KS)

terminate← true terminate← true

ENS/CNRS/INRIA Cascade David Pointcheval 54/62

Page 179: IV – Protocols

Outline

Game-based Security

Simulation-based Security

Encrypted Key Exchange

Description

Semantic Security

Simulation-based Security

Conclusion

ENS/CNRS/INRIA Cascade David Pointcheval 55/62

Page 180: IV – Protocols

Security Result [Bresson–Chevassut–Pointcheval – ACM CCS 2003]

TheoremLet A be an adversary against the RoR security within a time boundt, with less than qs interactions with the parties and qp passiveeavesdroppings, and, asking qh hash-queries and qe

encryption/decryption queries. Then we have

Advror (A) ≤ 3× qs

N+ 8qh × Succcdh

G (t ′)

+(2qe + 3qs + 3qp)2

q − 1+

q2h + 4qs

2`1.

where t ′ ≤ t + (qs + qp + qe + 1) · τe,with τe the computational time for an exponentiation in G.

ENS/CNRS/INRIA Cascade David Pointcheval 56/62

Page 181: IV – Protocols

Outline

Game-based Security

Simulation-based Security

Encrypted Key Exchange

Description

Semantic Security

Simulation-based Security

Conclusion

ENS/CNRS/INRIA Cascade David Pointcheval 57/62

Page 182: IV – Protocols

(One) Encrypted Key Exchange

Client U Server S

x R← Z?q y R← Z?

q

(U1) X ← gx U,X−−→ (S2) Y ← gy

Y∗ ← Essid‖pw (Y )

(U3) Y = Dssid‖pw (Y∗)S,Y∗←−−− KS ← X y

KU ← Y x

Auth←H1(ssid‖U‖S‖X‖Y‖KU)

skU ←H0(ssid‖U‖S‖X‖Y‖KU)

completed Auth−−−→ (S4) if (Auth = H1(ssid‖U‖S‖X‖Y‖KS))

then completedskS ←H0(ssid‖U‖S‖X‖Y‖KS)

else error

ENS/CNRS/INRIA Cascade David Pointcheval 58/62

Page 183: IV – Protocols

Security Result [Abdalla–Catalano–Chevalier–Pointcheval – CT-RSA 2008]

TheoremThe above protocol securely realizes F in the random oracle andideal cipher models (in the presence of adaptive adversaries).

In order to show that the protocol UC-realizes the functionality F , weneed to show that for all environments and all adversaries, we canconstruct a simulator such that the interactions,

• between the environment, the players (say, Alice and Bob) andthe adversary (the real world);

• and between the environment, the ideal functionality and thesimulator (the ideal world)

are indistinguishable for the environment.

ENS/CNRS/INRIA Cascade David Pointcheval 59/62

Page 184: IV – Protocols

Security Proof

• G0: real game

• G1: S simulates the ideal cipher and the random oracle

• G2: we get rid off such a situation in which the adversary wins bychance

• G3: passive case, in which no corruption occurs before the endof the protocol

• G4: complete simulation of the client, whatever corruption mayoccur

• G5: simulation of the server, in the last step of the protocol

• G6: complete simulation of the server

These games are sequential and built on each other

ENS/CNRS/INRIA Cascade David Pointcheval 60/62

Page 185: IV – Protocols

Conclusion

Page 186: IV – Protocols

Outline

Game-based Security

Simulation-based Security

Encrypted Key Exchange

Conclusion

ENS/CNRS/INRIA Cascade David Pointcheval 61/62

Page 187: IV – Protocols

Conclusion

Simulation-based Methodology:

ENS/CNRS/INRIA Cascade David Pointcheval 62/62

Page 188: IV – Protocols

Conclusion

Simulation-based Methodology:

• Universal Composability introduced by [Canetti – FOCS 2001]

• allows to define the security properties of one functionality

• a unique proof is enough

• the protocol can then be composed

ENS/CNRS/INRIA Cascade David Pointcheval 62/62