T-79.514 Special Course on Cryptology Mikko Kiviharju 1
Algebraic Attacks and Stream Ciphers
Mikko Kiviharju Helsinki University of Technology mkivihar@cc.hut.fi
T-79.514 Special Course on Cryptology November 25th, 2004
Algebraic Attacks and Stream Ciphers Mikko Kiviharju Helsinki - - PowerPoint PPT Presentation
T-79.514 Special Course on Cryptology November 25 th , 2004 Algebraic Attacks and Stream Ciphers Mikko Kiviharju Helsinki University of Technology mkivihar@cc.hut.fi T-79.514 Special Course on Cryptology Mikko Kiviharju 1 Overview
T-79.514 Special Course on Cryptology Mikko Kiviharju 1
T-79.514 Special Course on Cryptology November 25th, 2004
T-79.514 Special Course on Cryptology Mikko Kiviharju 2
T-79.514 Special Course on Cryptology Mikko Kiviharju 3
State machine with state St
key, K keystream bit, zt plaintext bit, pt ciphertext bit, ct
(for self-synchronous ciphers only)
T-79.514 Special Course on Cryptology Mikko Kiviharju 4
T-79.514 Special Course on Cryptology Mikko Kiviharju 5
Stream ciphers Synchronous Self-synchronous Pure nonlinear LFSR components RC4, RC5 Pure LFSR Combiners With memory Simple E0 LILI128 Toyocrypt Block ciphers used in stream mode(e.g. OFB)
T-79.514 Special Course on Cryptology Mikko Kiviharju 6
T-79.514 Special Course on Cryptology Mikko Kiviharju 7
LFSR 1 LFSR 2 LFSR n
zt
MEM 1 MEM m
Pure combiner ((n,0)-combiner) Combiner with memory, ((n,m)-combiner) Non-linear i t
1 k t
k t
T-79.514 Special Course on Cryptology Mikko Kiviharju 8
T-79.514 Special Course on Cryptology Mikko Kiviharju 9
T-79.514 Special Course on Cryptology Mikko Kiviharju 10
Why have that
1
n t t t
i t
1,..., t t t n
, where K represents the whole Now we have for every clock. By Kerckhoff’s principle the attacker knows all zt, and can collect as many keystream bits as he/she likes without increasing the number of unknown variables.
t t
But each is a linear function secret key and Lt is the linear function in matrix-form applied t times (raised to the tth power).
T-79.514 Special Course on Cryptology Mikko Kiviharju 11
T-79.514 Special Course on Cryptology Mikko Kiviharju 12
T-79.514 Special Course on Cryptology Mikko Kiviharju 13
2 2 2 2 2 2
1 x y z x xy z y x z x y xy x z xy ⊕ ⊕ = ⊕ ⊕ = ⊕ = ⊕ ⊕ = ⊕ = ⊕ ⊕ =
2 2
t xy u x v z = = =
1 x y z u t v y u v u y t x v t ⊕ ⊕ = ⊕ ⊕ = ⊕ = ⊕ ⊕ = ⊕ = ⊕ ⊕ =
1 1 1 1 x y z t u v =
2 2 2 2
1 1 1 1 1 t xy u x v z = = ⋅ = = = = = = =
Verification:
T-79.514 Special Course on Cryptology Mikko Kiviharju 14
d d i
=
T-79.514 Special Course on Cryptology Mikko Kiviharju 15
In this case
1 1
n m t t t t t
Each is still a linear function of the key (applied t times), and the memory
i t
1 1
t m t t n t t t
where K and Lt are as before. Now we have
t t t
bits: , but collecting key bits does not help. We could substitute all the ct with a function of c0, after all
1 t t
c g c
+ =
for all t. (c0 can be assumed to be known to the attacker) But: equation degree would increase exponentially with t.
T-79.514 Special Course on Cryptology Mikko Kiviharju 16
1
t t t r
1 2 n m+
T-79.514 Special Course on Cryptology Mikko Kiviharju 17
T-79.514 Special Course on Cryptology Mikko Kiviharju 18
1
t t t r
1 2 1
t t t t r
1 1
h t i h i i
+ − =
K d
T-79.514 Special Course on Cryptology Mikko Kiviharju 19
1
h t i i t i t i r i
+ + + + − =
2 1
h t i i t i t i r i
+ + + + − =
T-79.514 Special Course on Cryptology Mikko Kiviharju 20
T-79.514 Special Course on Cryptology Mikko Kiviharju 21
T-79.514 Special Course on Cryptology Mikko Kiviharju 22
t
y
1 t
y
2 t
y
>>1
1 t
σ +
1 1 t
σ +
z-1
1 t
τ +
1 1 t
τ +
t
τ
1 t
τ
z-1
1 t
τ
1 t
τ −
t
τ
1 t
τ
t
τ
1 t
τ −
1 1 t
τ −
Summation generator / FSM
s24 s0 s5 s13 s17
1 t
x
LFSR1 (25)
s30 s0 s7 s15 s19
2 t
x
LFSR2 (31)
s32 s0 s5 s9 s29
3 t
x
LFSR3 (33)
s38 s0 s3 s11 s35
4 t
x
LFSR4 (39) zt pt ct
t
τ
(4,4)-combiner: four LFSRs and memory bits (
1 1 1 1
, , ,
t t t t
τ τ τ τ
− −
T-79.514 Special Course on Cryptology Mikko Kiviharju 23
T-79.514 Special Course on Cryptology Mikko Kiviharju 24
Attack complexity Time 1999 2000 2001 2002 2003 2004 2128 264 232 216 248 296 280 2112
Standard released
BDD-attack by Krause Divide & Conquer (Fluhrer) Algebraic attack (Armknecht) Fast alg.att.(Armknecht)
Inversion attack (Saarinen)
Note: required amount of keystream is practically prohibitive in all attacks of ”reasonable” time-complexity
T-79.514 Special Course on Cryptology Mikko Kiviharju 25
2 4 1 2 3 1 2 3 1 1 2 3 1 1 1 2 3 1 1 2 1 3 1 1 1 1 2 1 1 1 1 1 1 1 2 2 2 2 1 2 1 2 1 2
, , , , 1 1
t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t
G L K z z z z z z z z z z z z z z z z z z z z z z z z z z π π π π π π π π π π π π π
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
= ⊕ ⊕ ⊕ ⊕ ⋅ ⊕ ⊕ ⊕ ⊕ ⊕ ⋅ ⊕ ⊕ ⊕ ⋅ ⊕ ⋅ ⊕ ⋅ ⊕ ⊕ ⋅ ⋅ ⊕ ⊕ ⋅ ⊕ ⋅ ⊕ ⋅ ⋅ ⋅ ⊕ ⊕ ⋅ ⋅
2 2 1 2 2 2 2 1 1 2 1 1 1 1 1 2 3 3 1 1 3 1
1 1
t t t t t t t t t t t t
z z π π π π π π π π π π
+ + + + + + + + + + + +
⊕ ⊕ ⋅ ⋅ ⊕ ⊕ ⋅ ⊕ ⊕ ⋅ ⋅ ⊕ ⊕ ⋅ =
(where is the ith elementary symmetric polynomial in the unknown outputs of the four LFSRs)
i t
π
T-79.514 Special Course on Cryptology Mikko Kiviharju 26
1 2
G G G = ⊕
4 2 2 1 1 2 1 t i t i t i t i
G L K π π π
+ + + + + + +
= ⊕ ⋅
2
log 7 54,51
128 128 128 128 7 2 1 2 3 ⋅ + + + ≈
23
128 2 4 ≈
T-79.514 Special Course on Cryptology Mikko Kiviharju 27
T-79.514 Special Course on Cryptology Mikko Kiviharju 28