Dan ¡Boneh ¡
Authen,cated ¡Encryp,on ¡
Ac,ve ¡a4acks ¡on ¡ ¡ CPA-‑secure ¡encryp,on ¡
Online ¡Cryptography ¡Course ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡Dan ¡Boneh ¡
Ac,ve a4acks on CPA-secure encryp,on Dan Boneh Recap: - - PowerPoint PPT Presentation
Online Cryptography Course
Dan ¡Boneh ¡
Online ¡Cryptography ¡Course ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡Dan ¡Boneh ¡
Dan ¡Boneh ¡
Dan ¡Boneh ¡
WWW ¡ port ¡= ¡80 ¡ Bob ¡ port ¡= ¡25 ¡ dest ¡= ¡80 ¡ ¡ ¡ ¡ ¡ ¡data ¡ packet ¡ source ¡machine ¡ des,na,on ¡machine ¡ TCP/IP ¡ stack ¡
Dan ¡Boneh ¡
WWW ¡ port ¡= ¡80 ¡ Bob ¡ port ¡= ¡25 ¡
dest ¡= ¡80 ¡ ¡ ¡ ¡ ¡ ¡data ¡ packet ¡
packets ¡encrypted ¡ using ¡key ¡k ¡
TCP/IP ¡ stack ¡ ¡ ¡ ¡ ¡dest ¡= ¡25 ¡ ¡ ¡ ¡ ¡ ¡stuff ¡ stuff ¡
Dan ¡Boneh ¡
WWW ¡ port ¡= ¡80 ¡ Bob ¡ port ¡= ¡25 ¡
dest ¡= ¡80 ¡ ¡ ¡ ¡ ¡ ¡data ¡
¡ ¡ ¡ ¡dest ¡= ¡25 ¡ ¡ ¡ ¡ ¡ ¡data ¡ Bob: ¡
IV, ¡ IV’, ¡
dest ¡= ¡80 ¡ ¡ ¡ ¡ ¡ ¡data ¡ ¡ ¡ ¡ ¡dest ¡= ¡25 ¡ ¡ ¡ ¡ ¡ ¡data ¡
IV ¡, ¡ IV’ ¡, ¡
Dan ¡Boneh ¡
TCP/IP ¡packet ¡ ¡ ¡IP ¡hdr ¡ ¡ ¡ ¡TCP ¡hdr ¡ ¡ ¡ ¡ 16 ¡bit ¡TCP ¡checksum ¡ 1 ¡byte ¡keystroke ¡ ¡ ¡IP ¡hdr ¡ ¡ ¡ ¡TCP ¡hdr ¡ ¡ ¡ ¡ ⨁ ¡t ¡ ⨁ ¡s ¡
for ¡all ¡t, ¡s ¡send: ¡
ACK ¡if ¡valid ¡checksum, ¡ ¡nothing ¡otherwise ¡ { ¡ ¡ ¡checksum(hdr, ¡D) ¡ ¡= ¡t ¡⨁ ¡checksum(hdr, ¡D⨁s) ¡ ¡ ¡ ¡ ¡} ¡ ¡ ¡ ¡⇒ ¡ ¡ ¡can ¡find ¡ ¡D ¡ ¡
D ¡ T ¡
Dan ¡Boneh ¡
Dan ¡Boneh ¡
Dan ¡Boneh ¡
Online ¡Cryptography ¡Course ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡Dan ¡Boneh ¡
Dan ¡Boneh ¡
ciphertext ¡ is ¡rejected ¡
Dan ¡Boneh ¡
k←K ¡ c ¡ m1 ¡∈ ¡M ¡ c1 ¡← ¡E(k,m1) ¡ b=1 ¡ ¡ ¡ ¡if ¡ ¡D(k,c) ¡≠⊥ ¡ ¡ ¡ ¡and ¡ ¡c ¡ ¡∉ ¡ ¡{ ¡c1 ¡, ¡… ¡, ¡cq ¡} ¡ b=0 ¡ ¡ ¡otherwise ¡
m2 ¡ , ¡…, ¡mq ¡ c2 ¡ , ¡…, ¡cq ¡
Dan ¡Boneh ¡
Dan ¡Boneh ¡
Dan ¡Boneh ¡
Dan ¡Boneh ¡
Dan ¡Boneh ¡
Online ¡Cryptography ¡Course ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡Dan ¡Boneh ¡
Dan ¡Boneh ¡
¡dest ¡= ¡25 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡data ¡ data ¡ ¡TCP/IP ¡packet ¡ ACK ¡ if ¡valid ¡ ¡ checksum ¡
Dan ¡Boneh ¡
Dan ¡Boneh ¡
k←K ¡
mi,0 ¡, ¡mi,1 ¡ ¡∈ ¡M ¡: ¡ ¡ ¡ ¡|mi,0| ¡= ¡|mi,1| ¡ ci ¡← ¡E(k, ¡mi,b) ¡ for ¡i=1,…,q: ¡ ¡ ¡(1) ¡ ¡ ¡CPA ¡query: ¡ ¡ ¡ ¡ ¡(2) ¡ ¡ ¡CCA ¡query: ¡ ci ¡∈ ¡C ¡: ¡ ¡ ¡ ¡ ¡ci ¡∉ ¡{c1, ¡…, ¡ci-‑1} ¡ mi ¡← ¡D(k, ¡ci) ¡
Dan ¡Boneh ¡
k←K ¡
m0 ¡, ¡m1 ¡ ¡ ¡: ¡ ¡ ¡ ¡ ¡ ¡ ¡|m0| ¡= ¡|m1|=1 ¡ c ¡← ¡E(k, ¡mb) ¡= ¡(IV, ¡c[0]) ¡ c’ ¡= ¡(IV⨁1, ¡c[0]) ¡ D(k, ¡c’) ¡= ¡mb⨁1 ¡
Dan ¡Boneh ¡
Dan ¡Boneh ¡
k←K ¡
CPA ¡query: ¡ ¡mi,0 ¡, ¡mi,1 ¡ ¡ ¡ CCA ¡query: ¡ ¡ci ¡ ¡
ci=E(k,mi,0) ¡ D(k,ci) ¡
k←K ¡
CPA ¡query: ¡ ¡mi,0 ¡, ¡mi,1 ¡ ¡ ¡ CCA ¡query: ¡ ¡ci ¡ ¡
ci=E(k,mi,1) ¡ D(k,ci) ¡
CPA ¡query: ¡ ¡mi,0 ¡, ¡mi,1 ¡ ¡
k←K ¡ ci=E(k,mi,0) ¡
k←K ¡
CPA ¡query: ¡ ¡mi,0 ¡, ¡mi,1 ¡ ¡
ci=E(k,mi,1) ¡
CCA ¡query: ¡ ¡ci ¡ ¡
CCA ¡query: ¡ ¡ci ¡ ¡
Dan ¡Boneh ¡
Dan ¡Boneh ¡
Dan ¡Boneh ¡
Online ¡Cryptography ¡Course ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡Dan ¡Boneh ¡
Dan ¡Boneh ¡
Dan ¡Boneh ¡
Encryption key kE. MAC key = kI Op,on ¡1: ¡ ¡ ¡(SSL) ¡ ¡ Op,on ¡2: ¡ ¡ ¡(IPsec) ¡ ¡ Op,on ¡3: ¡ ¡ ¡(SSH) ¡
msg m msg m
tag
E(kE ¡, ¡mlltag) ¡ S(kI, ¡m) ¡ msg m E(kE, ¡m) ¡
tag
S(kI, c) msg m E(kE ¡, ¡m) ¡
tag
S(kI, m)
Dan ¡Boneh ¡
Dan ¡Boneh ¡
All ¡support ¡AEAD: ¡ ¡(auth. ¡enc. ¡with ¡associated ¡data). ¡ ¡ ¡ ¡ ¡ ¡ ¡All ¡are ¡nonce-‑based. ¡ ¡
encrypted data associated data authen,cated ¡ encrypted ¡
Dan ¡Boneh ¡
Dan ¡Boneh ¡
k←K ¡
m0, ¡m1 ¡
c’ ¡= ¡(c0 ¡, ¡t’ ¡) ¡ ¡ ¡ ¡≠ ¡c ¡ D(k, ¡c’) ¡= ¡mb ¡
(c0, ¡t) ¡ ¡ (c0, ¡t’) ¡ ¡
Dan ¡Boneh ¡
More efficient authenticated encryption: one E() op. per block.
m[0] m[1] m[2] m[3]
E(k,⋅) E(k,⋅) E(k,⋅) E(k,⋅) P(N,k,0) P(N,k,1) P(N,k,2) P(N,k,3)
P(N,k,0) P(N,k,1) P(N,k,2) P(N,k,3) c[0] c[1] c[2] c[3] checksum E(k,⋅)
c[4] P(N,k,0) auth
Dan ¡Boneh ¡
AMD ¡Opteron, ¡ ¡ ¡2.2 ¡GHz ¡ ¡ ¡ ¡ ¡( ¡Linux) ¡ ¡ ¡ ¡code ¡Speed ¡ ¡Cipher
* ¡extrapolated ¡from ¡Ted ¡Kravitz’s ¡results ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡** ¡non-‑Intel ¡machines ¡
Dan ¡Boneh ¡
Dan ¡Boneh ¡
Online ¡Cryptography ¡Course ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡Dan ¡Boneh ¡
Dan ¡Boneh ¡
TLS ¡record ¡ HDR ¡
Dan ¡Boneh ¡
¡ type ¡ll ¡ver ¡ll ¡len ¡
pad ¡
Dan ¡Boneh ¡
Dan ¡Boneh ¡
Dan ¡Boneh ¡
Dan ¡Boneh ¡
CRC(m) ¡ PRG( ¡ ¡IV ¡ ¡ll ¡ ¡k ¡) ¡ ¡
ciphetext ¡
IV ¡
Dan ¡Boneh ¡
¡ ¡dest-‑port ¡= ¡80 ¡ ¡ ¡ ¡ ¡data ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡CRC ¡
IV ¡
¡ ¡000…….00…..XX…0000… ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡F(XX) ¡ ⨁ ¡ IV ¡
¡ ¡dest-‑port ¡= ¡25 ¡ ¡ ¡ ¡ ¡data ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡CRC’ ¡ XX ¡= ¡25⨁80 ¡
Dan ¡Boneh ¡
Dan ¡Boneh ¡
Online ¡Cryptography ¡Course ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡Dan ¡Boneh ¡
Dan ¡Boneh ¡
Dan ¡Boneh ¡
¡ type ¡ll ¡ver ¡ll ¡len ¡
pad ¡
Dan ¡Boneh ¡
¡ type ¡ll ¡ver ¡ll ¡len ¡
pad ¡
Dan ¡Boneh ¡
Credit: ¡ ¡Brice ¡Canvel ¡ (fixed ¡in ¡OpenSSL ¡0.9.7a) ¡
Dan ¡Boneh ¡
m[0] ¡ m[1] ¡ ¡ ¡m[2] ¡ ¡ ¡ll ¡ ¡ ¡pad ¡
c[0] ¡ c[1] ¡ c[2] ¡ IV ¡
Dan ¡Boneh ¡
m[0] ¡ m[1] ¡
c[0] ¡ c[1] ¡ IV ¡
Dan ¡Boneh ¡
Dan ¡Boneh ¡
¡LOGIN ¡"username” ¡"password” ¡
Dan ¡Boneh ¡
Dan ¡Boneh ¡
Online ¡Cryptography ¡Course ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡Dan ¡Boneh ¡
Dan ¡Boneh ¡
packet ¡
pad ¡
payload ¡ pad ¡ MAC ¡ tag ¡
CBC ¡encryp,on ¡ ¡ ¡(chained ¡IV) ¡
MAC ¡computed ¡ ¡
Dan ¡Boneh ¡
decrypt ¡ and ¡obtain ¡ “len” ¡field ¡
len ¡ send ¡bytes ¡one ¡at ¡a ¡,me ¡ when ¡“len” ¡bytes ¡read: ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡server ¡sends ¡“MAC ¡error” ¡
a4acker ¡learns ¡32 ¡LSB ¡bits ¡of ¡m ¡ ¡!! ¡
Dan ¡Boneh ¡
Dan ¡Boneh ¡