PAKEs Dragonfly Results Conclusion
On the Provable Security of the Dragonfly protocol
Jean Lancrenon1 Marjan Škrobot1
1Interdisciplinary Centre for Security, Reliability and Trust
University of Luxembourg
ISC 2015
1 / 18
On the Provable Security of the Dragonfly protocol Jean Lancrenon 1 - - PowerPoint PPT Presentation
PAKEs Dragonfly Results Conclusion On the Provable Security of the Dragonfly protocol Jean Lancrenon 1 Marjan krobot 1 1 Interdisciplinary Centre for Security, Reliability and Trust University of Luxembourg ISC 2015 1 / 18 PAKEs
PAKEs Dragonfly Results Conclusion
1Interdisciplinary Centre for Security, Reliability and Trust
1 / 18
PAKEs Dragonfly Results Conclusion
2 / 18
PAKEs Dragonfly Results Conclusion Intro
3 / 18
PAKEs Dragonfly Results Conclusion Intro
3 / 18
PAKEs Dragonfly Results Conclusion Intro
3 / 18
PAKEs Dragonfly Results Conclusion Intro
3 / 18
PAKEs Dragonfly Results Conclusion Intro
3 / 18
PAKEs Dragonfly Results Conclusion Intro
3 / 18
PAKEs Dragonfly Results Conclusion Intro
3 / 18
PAKEs Dragonfly Results Conclusion Intro
4 / 18
PAKEs Dragonfly Results Conclusion Intro
4 / 18
PAKEs Dragonfly Results Conclusion Intro
4 / 18
PAKEs Dragonfly Results Conclusion Intro
4 / 18
PAKEs Dragonfly Results Conclusion Security Models
5 / 18
PAKEs Dragonfly Results Conclusion Security Models
◮ Find-then-Guess [BPR00] ◮ Real-or-Random [AFP05] 5 / 18
PAKEs Dragonfly Results Conclusion Security Models
◮ Find-then-Guess [BPR00] ◮ Real-or-Random [AFP05]
◮ Modified Shoup’s model [BMP00] ◮ Plain model PAKEs [GL01] 5 / 18
PAKEs Dragonfly Results Conclusion Security Models
◮ Find-then-Guess [BPR00] ◮ Real-or-Random [AFP05]
◮ Modified Shoup’s model [BMP00] ◮ Plain model PAKEs [GL01]
◮ UC for PAKE [CHKLM05] 5 / 18
PAKEs Dragonfly Results Conclusion Security Models
◮ Find-then-Guess [BPR00] ◮ Real-or-Random [AFP05]
◮ Modified Shoup’s model [BMP00] ◮ Plain model PAKEs [GL01]
◮ UC for PAKE [CHKLM05] 5 / 18
PAKEs Dragonfly Results Conclusion Indistinguishability-Based Model for PAKEs
6 / 18
PAKEs Dragonfly Results Conclusion Indistinguishability-Based Model for PAKEs
6 / 18
PAKEs Dragonfly Results Conclusion Indistinguishability-Based Model for PAKEs
P
6 / 18
PAKEs Dragonfly Results Conclusion The Dragonfly Protocol
7 / 18
PAKEs Dragonfly Results Conclusion The Dragonfly Protocol
◮ Dragonfly PAKE ◮ PSK (PWD) for IKE - RFC 6617 (Experimental), 2012 ◮ EAP-PWD - RFC 5931 (Informational), 2010 ◮ TLS-PWD 7 / 18
PAKEs Dragonfly Results Conclusion The Dragonfly Protocol
◮ Dragonfly PAKE ◮ PSK (PWD) for IKE - RFC 6617 (Experimental), 2012 ◮ EAP-PWD - RFC 5931 (Informational), 2010 ◮ TLS-PWD
7 / 18
PAKEs Dragonfly Results Conclusion The Dragonfly Protocol
◮ Dragonfly PAKE ◮ PSK (PWD) for IKE - RFC 6617 (Experimental), 2012 ◮ EAP-PWD - RFC 5931 (Informational), 2010 ◮ TLS-PWD
7 / 18
PAKEs Dragonfly Results Conclusion The Dragonfly Protocol
◮ Dragonfly PAKE ◮ PSK (PWD) for IKE - RFC 6617 (Experimental), 2012 ◮ EAP-PWD - RFC 5931 (Informational), 2010 ◮ TLS-PWD
7 / 18
PAKEs Dragonfly Results Conclusion The Dragonfly Protocol
◮ Dragonfly PAKE ◮ PSK (PWD) for IKE - RFC 6617 (Experimental), 2012 ◮ EAP-PWD - RFC 5931 (Informational), 2010 ◮ TLS-PWD
7 / 18
PAKEs Dragonfly Results Conclusion The Dragonfly Protocol
Client Server Initialization Public: G, p, q; H0, H2 : {0, 1}∗ → {0, 1}k; H1 : {0, 1}∗ → {0, 1}2k; π ∈ Passwords; seed := H0(C, S, π, c)max,min; PW := H&P(seed, l1). m1, r1 ← Zq m2, r2 ← Zq s1 := r1 + m1 s2 := r2 + m2 E1 := PW −m1 E2 := PW −m2 C, E1, s1 S, E2, s2 abort if ¬Good(E2, s2) abort if ¬Good(E1, s1) σ := (PW s2 × E2)r1 σ := (PW s1 × E1)r2 kck|skC := H1(σ, l2) kck|skS := H1(σ, l2) κ := H2(kck, C, s1, s2, E1, E2) τ := H2(kck, S, s2, s1, E2, E1) ˆ τ := H2(kck, S, s2, s1, E2, E1) ˆ κ := H2(kck, C, s1, s2, E1, E2) κ τ abort if τ = ˆ τ abort if κ = ˆ κ
8 / 18
PAKEs Dragonfly Results Conclusion The Dragonfly Protocol
Client Server Initialization Public: G, p, q; H0, H2 : {0, 1}∗ → {0, 1}k; H1 : {0, 1}∗ → {0, 1}2k; π ∈ Passwords; seed := H0(C, S, π, c)max,min; PW := H&P(seed, l1). m1, r1 ← Zq m2, r2 ← Zq s1 := r1 + m1 s2 := r2 + m2 E1 := PW −m1 E2 := PW −m2 C, E1, s1 S, E2, s2 abort if ¬Good(E2, s2) abort if ¬Good(E1, s1) σ := (PW s2 × E2)r1 σ := (PW s1 × E1)r2 kck|skC := H1(σ, l2) kck|skS := H1(σ, l2) κ := H2(kck, C, s1, s2, E1, E2) τ := H2(kck, S, s2, s1, E2, E1) ˆ τ := H2(kck, S, s2, s1, E2, E1) ˆ κ := H2(kck, C, s1, s2, E1, E2) κ τ abort if τ = ˆ τ abort if κ = ˆ κ
9 / 18
PAKEs Dragonfly Results Conclusion Provable Secure Dragonfly
Client Server Initialization Public: G, p, q; H0 : {0, 1}∗ → G; H1 : {0, 1}∗ → {0, 1}3k π ∈ Passwords; PW := H0(C, S, π). m1, r1 ← Zq s1 := r1 + m1 E1 := PW −m1 C, E1, s1 abort if ¬Good(E1, s1) m2, r2 ← Zq s2 := r2 + m2 S, E2, s2 E2 := PW −m2 abort if ¬Good(E2, s2) σ := (PW s2 × E2)r1 tr := (C, S, s1, s2, E1, E2) κ|ˆ τ|skC := H1(tr, σ, PW) κ σ := (PW s1 × E1)r2 tr := (C, S, s1, s2, E1, E2) ˆ κ|τ|skS := H1(tr, σ, PW) τ abort if κ = ˆ κ abort if τ = ˆ τ
10 / 18
PAKEs Dragonfly Results Conclusion Provable Secure Dragonfly
Client Server Initialization Public: G, p, q; H0 : {0, 1}∗ → G; H1 : {0, 1}∗ → {0, 1}3k π ∈ Passwords; PW := H0(C, S, π). m1, r1 ← Zq s1 := r1 + m1 E1 := PW −m1 C, E1, s1 abort if ¬Good(E1, s1) m2, r2 ← Zq s2 := r2 + m2 S, E2, s2 E2 := PW −m2 abort if ¬Good(E2, s2) σ := (PW s2 × E2)r1 tr := (C, S, s1, s2, E1, E2) κ|ˆ τ|skC := H1(tr, σ, PW) κ σ := (PW s1 × E1)r2 tr := (C, S, s1, s2, E1, E2) ˆ κ|τ|skS := H1(tr, σ, PW) τ abort if κ = ˆ κ abort if τ = ˆ τ
11 / 18
PAKEs Dragonfly Results Conclusion Provable Secure Dragonfly
◮ Ordered message exchange ◮ Min/Max 12 / 18
PAKEs Dragonfly Results Conclusion The proof of security for Dragonfly
dragonfly(A) ≤ T where
h0 + 2nh1
h1 + 2nse
2) × Succcdh P W,G(B) + 4n3 h0 ×
g,G (D) + n3 h1 + 3nse
13 / 18
PAKEs Dragonfly Results Conclusion The proof of security for Dragonfly
14 / 18
PAKEs Dragonfly Results Conclusion The proof of security for Dragonfly
14 / 18
PAKEs Dragonfly Results Conclusion The proof of security for Dragonfly
◮ [a]: Randomize session key H′ 1(sid) (private oracles) 14 / 18
PAKEs Dragonfly Results Conclusion The proof of security for Dragonfly
◮ [a]: Randomize session key H′ 1(sid) (private oracles) ◮ [b]: PW isn’t used anymore (except if Corrupt
14 / 18
PAKEs Dragonfly Results Conclusion The proof of security for Dragonfly
◮ [a]: Randomize session key H′ 1(sid) (private oracles) ◮ [b]: PW isn’t used anymore (except if Corrupt
◮ [c]: Avoid lucky guesses on PW 14 / 18
PAKEs Dragonfly Results Conclusion The proof of security for Dragonfly
◮ [a]: Randomize session key H′ 1(sid) (private oracles) ◮ [b]: PW isn’t used anymore (except if Corrupt
◮ [c]: Avoid lucky guesses on PW (A has to query H0) 14 / 18
PAKEs Dragonfly Results Conclusion The proof of security for Dragonfly
◮ [a]: Randomize session key H′ 1(sid) (private oracles) ◮ [b]: PW isn’t used anymore (except if Corrupt
◮ [c]: Avoid lucky guesses on PW (A has to query H0) ◮ [d]: Avoid lucky guesses on authenticators 14 / 18
PAKEs Dragonfly Results Conclusion The proof of security for Dragonfly
◮ [a]: Randomize session key H′ 1(sid) (private oracles) ◮ [b]: PW isn’t used anymore (except if Corrupt
◮ [c]: Avoid lucky guesses on PW (A has to query H0) ◮ [d]: Avoid lucky guesses on authenticators (H1) 14 / 18
PAKEs Dragonfly Results Conclusion The proof of security for Dragonfly
◮ [a]: Randomize session key H′ 1(sid) (private oracles) ◮ [b]: PW isn’t used anymore (except if Corrupt
◮ [c]: Avoid lucky guesses on PW (A has to query H0) ◮ [d]: Avoid lucky guesses on authenticators (H1)
14 / 18
PAKEs Dragonfly Results Conclusion The proof of security for Dragonfly
15 / 18
PAKEs Dragonfly Results Conclusion The proof of security for Dragonfly
15 / 18
PAKEs Dragonfly Results Conclusion The proof of security for Dragonfly
15 / 18
PAKEs Dragonfly Results Conclusion The proof of security for Dragonfly
15 / 18
PAKEs Dragonfly Results Conclusion The proof of security for Dragonfly
15 / 18
PAKEs Dragonfly Results Conclusion The proof of security for Dragonfly
15 / 18
PAKEs Dragonfly Results Conclusion The proof of security for Dragonfly
15 / 18
PAKEs Dragonfly Results Conclusion The proof of security for Dragonfly
15 / 18
PAKEs Dragonfly Results Conclusion The proof of security for Dragonfly
g,G (D)
g,G (D) :=
q, X ← g1/x; Y ← g1/y; Z ← IDHg(X, Y ) :
q, X ← g1/x; Y ← g1/y; Z ← g1/z :
16 / 18
PAKEs Dragonfly Results Conclusion The proof of security for Dragonfly
17 / 18
PAKEs Dragonfly Results Conclusion The proof of security for Dragonfly
17 / 18
PAKEs Dragonfly Results Conclusion The proof of security for Dragonfly
17 / 18
PAKEs Dragonfly Results Conclusion The proof of security for Dragonfly
17 / 18
PAKEs Dragonfly Results Conclusion The proof of security for Dragonfly
x, E2 y, and E2 z 17 / 18
PAKEs Dragonfly Results Conclusion The proof of security for Dragonfly
x, E2 y, and E2 z
xE2 y = E2 z 17 / 18
PAKEs Dragonfly Results Conclusion The proof of security for Dragonfly
x, E2 y, and E2 z
xE2 y = E2 z
h0 ×
g,G (D) + n3 h1 + 3nse
17 / 18
PAKEs Dragonfly Results Conclusion The proof of security for Dragonfly
x, E2 y, and E2 z
xE2 y = E2 z
h0 ×
g,G (D) + n3 h1 + 3nse
17 / 18
PAKEs Dragonfly Results Conclusion Conclusion
18 / 18
PAKEs Dragonfly Results Conclusion Conclusion
18 / 18
PAKEs Dragonfly Results Conclusion Conclusion
18 / 18
PAKEs Dragonfly Results Conclusion Conclusion
18 / 18
PAKEs Dragonfly Results Conclusion Conclusion
18 / 18
PAKEs Dragonfly Results Conclusion Conclusion
18 / 18