Professional Documents
Culture Documents
04 Using Block v2 Annotated PDF
04 Using Block v2 Annotated PDF
Dan
Boneh
Block
ciphers:
crypto
work
horse
n bits n bits
PT Block E, D CT Block
Key k bits
Canonical examples:
1. 3DES: n= 64 bits, k = 168 bits
2. AES: n=128 bits, k = 128, 192, 256 bits
Dan
Boneh
Abstractly:
PRPs
and
PRFs
• Pseudo
Random
FuncAon
(PRF)
defined
over
(K,X,Y):
F:
K
×
X
→
Y
such
that
exists
“efficient”
algorithm
to
evaluate
F(k,x)
b’
∈
{0,1}
• Def:
F
is
a
secure
PRF
if
for
all
“efficient”
A:
EXP(b)
AdvPRF[A,F]
:=
|Pr[EXP(0)=1]
–
Pr[EXP(1)=1]
|
is
“negligible.”
Dan
Boneh
Secure
PRP
(secure
block
cipher)
• For
b=0,1
define
experiment
EXP(b)
as:
b
Yes
No
Akacker
A:
It
depends
(1) query
f(⋅)
at
x=0
and
x=1
(2) if
f(0)
=
f(1)
output
“1”,
else
“0”
AdvPRF[A,E]
=
|0-‐½|
=
½
PRF
Switching
Lemma
Any
secure
PRP
is
also
a
secure
PRF,
if
|X|
is
sufficiently
large.
⇒
Suppose
|X|
is
large
so
that
q2
/
2|X|
is
“negligible”
Then
AdvPRP
[A,E]
“negligible”
⇒
AdvPRF[A,E]
“negligible”
Dan
Boneh
Final
note
• SuggesAon:
– don’t
think
about
the
inner-‐workings
of
AES
and
3DES.
Dan
Boneh
End
of
Segment
Dan
Boneh
Online
Cryptography
Course
Dan
Boneh
CT: c1 c2
Problem:
– if
m1=m2
then
c1=c2
Dan
Boneh
In
pictures
Dan
Boneh
Online
Cryptography
Course
Dan
Boneh
Security
for
many-‐Ame
key
Example
applicaAons:
1.
File
systems:
Same
AES
key
used
to
encrypt
many
files.
2.
IPsec:
Same
AES
key
used
to
encrypt
many
packets.
Dan
Boneh
SemanAc
Security
for
many-‐Ame
key
Key
used
more
than
once
⇒
adv.
sees
many
CTs
with
same
key
Adversary’s
power:
chosen-‐plaintext
akack
(CPA)
• Can
obtain
the
encrypAon
of
arbitrary
messages
of
his
choice
(conservaAve
modeling
of
real
life)
Adversary’s
goal:
Break
semaAc
security
Dan
Boneh
SemanAc
Security
for
many-‐Ame
key
E =
(E,D)
a
cipher
defined
over
(K,M,C). For
b=0,1
define
EXP(b)
as:
b
Chal.
Adv.
k←K
m1,0
,
m1,1
∈
M
:
|m1,0|
=
|m1,1|
c1 ← E(k, m1,b)
Dan
Boneh
SemanAc
Security
for
many-‐Ame
key
E =
(E,D)
a
cipher
defined
over
(K,M,C). For
b=0,1
define
EXP(b)
as:
b
Chal.
Adv.
k←K
m2,0
,
m2,1
∈
M
:
|m2,0|
=
|m2,1|
c2 ← E(k, m2,b)
Dan
Boneh
SemanAc
Security
for
many-‐Ame
key
(CPA
security)
E =
(E,D)
a
cipher
defined
over
(K,M,C). For
b=0,1
define
EXP(b)
as:
for
i=1,…,q:
b
Chal.
Adv.
k←K
mi,0
,
mi,1
∈
M
:
|mi,0|
=
|mi,1|
ci
←
E(k,
mi,b)
b’
∈
{0,1}
Def:
E
is
sem.
sec.
under
CPA
if
for
all
“efficient”
A:
AdvCPA
[A,E]
=
|Pr[EXP(0)=1]
–
Pr[EXP(1)=1]
|
is
“negligible.”
Dan
Boneh
Ciphers
insecure
under
CPA
Suppose
E(k,m)
always
outputs
same
ciphertext
for
msg
m.
Then:
m0
,
m0
∈
M
Chal.
Adv.
c0
←E(k,
m0)
k←K
m0
,
m1
∈
M
output
0
c
←
E(k,
mb)
if
c
=
c0
So
what?
an
akacker
can
learn
that
two
encrypted
files
are
the
same,
two
encrypted
packets
are
the
same,
etc.
• Leads
to
significant
akacks
when
message
space
M
is
small
Dan
Boneh
Ciphers
insecure
under
CPA
Suppose
E(k,m)
always
outputs
same
ciphertext
for
msg
m.
Then:
m0
,
m0
∈
M
Chal.
Adv.
c0
←E(k,
m0)
k←K
m0
,
m1
∈
M
output
0
c
←
E(k,
mb)
if
c
=
c0
m1 m1
k
k
• nonce
n:
a
value
that
changes
from
msg
to
msg.
(k,n)
pair
never
used
more
than
once
• method
1:
nonce
is
a
counter
(e.g.
packet
counter)
– used
when
encryptor
keeps
state
from
msg
to
msg
– if
decryptor
has
same
state,
need
not
send
nonce
with
CT
• method
2:
encryptor
chooses
a
random
nonce,
n
←
N
Dan
Boneh
CPA
security
for
nonce-‐based
encrypAon
System
should
be
secure
when
nonces
are
chosen
adversarially.
for
i=1,…,q:
b
Chal.
Adv.
k←K
ni
and
mi,0
,
mi,1
:
|mi,0|
=
|mi,1|
c
←
E(k,
mi,b
,
ni)
b’
∈
{0,1}
Dan
Boneh
Online
Cryptography
Course
Dan
Boneh
⊕
⊕
⊕
⊕
E(k,⋅)
E(k,⋅)
E(k,⋅)
E(k,⋅)
ciphertext
Dan
Boneh
DecrypAon
circuit
In
symbols:
c[0]
=
E(k,
IV⨁m[0]
)
⇒
m[0]
=
D(k,
c[0])
⨁
IV
Dan
Boneh
CBC:
CPA
Analysis
CBC
Theorem:
For
any
L>0,
If
E
is
a
secure
PRP
over
(K,X)
then
ECBC
is
a
sem.
sec.
under
CPA
over
(K,
XL,
XL+1).
Note:
CBC
is
only
secure
as
long
as
q2L2
<<
|X|
Dan
Boneh
An
example
AdvCPA
[A,
ECBC]
≤
2⋅PRP
Adv[B,
E]
+
2
q2
L2
/
|X|
Suppose
we
want
AdvCPA
[A,
ECBC]
≤
1/232
⇐
q2
L2
/|X|
<
1/
232
• AES:
|X|
=
2128
⇒
q
L
<
248
So,
ader
248
AES
blocks,
must
change
key
Bug
in
SSL/TLS
1.0:
IV
for
record
#i
is
last
CT
block
of
record
#(i-‐1)
Dan
Boneh
ConstrucAon
1’:
nonce-‐based
CBC
• Cipher
block
chaining
with
unique
nonce:
key
=
(k,k1)
unique
nonce
means:
(key,
n)
pair
is
used
for
only
one
message
When
nonce
is
non
random
need
to
encrypt
it
before
use
Dan
Boneh
A
CBC
technicality:
padding
IV m[0] m[1] m[2] m[3] ll pad
IVʹ′
⊕ ⊕ ⊕ ⊕
E(k1,⋅) E(k,⋅) E(k,⋅) E(k,⋅) E(k,⋅)
removed
TLS:
for
n>0,
n
byte
pad
is
n n n ⋯ n during
decrypAon
if
no
pad
needed,
add
a
dummy
block
Dan
Boneh
End
of
Segment
Dan
Boneh
Online
Cryptography
Course
Dan
Boneh
msg
IV
m[0]
m[1]
…
m[L]
To
ensure
F(k,x)
is
never
used
more
than
once,
choose
IV
as:
128
bits
IV:
nonce counter
starts
at
0
64
bits
64
bits
for
every
msg
Dan
Boneh
rand
ctr-‐mode
(rand.
IV):
CPA
analysis
• Counter-‐mode
Theorem:
For
any
L>0,
If
F
is
a
secure
PRF
over
(K,X,X)
then
ECTR
is
a
sem.
sec.
under
CPA
over
(K,XL,XL+1).
Note:
ctr-‐mode
only
secure
as
long
as
q2L
<<
|X|
.
Beker
than
CBC
!
Dan
Boneh
An
example
AdvCPA
[A,
ECTR]
≤
2⋅AdvPRF[B,
E]
+
2
q2
L
/
|X|
Suppose we want AdvCPA [A, ECTR] ≤ 1/232 ⇐ q2 L /|X| < 1/ 232
(for
CBC,
dummy
padding
block
can
be
solved
using
ciphertext
stealing)
Dan
Boneh
Summary
• PRPs
and
PRFs:
a
useful
abstracAon
of
block
ciphers.
Dan
Boneh
End
of
Segment
Dan Boneh