Cryptanalysis of Achterbahn-128/80 Maria Naya-Plasencia INRIA-Projet

Cryptanalysis of Achterbahn-128/80 Maria Naya-Plasencia INRIA-Projet

Cryptanalysis of Achterbahn-128/80 Maria Naya-Plasencia INRIA-Projet CODES FRANCE Outline 1 Achterbahn 2 Tools used in our cryptanalysis 3 Cryptanalysis of Achterbahn-128/80 Achterbahn [Gammel-G¨ottfert-Kniffler05] @ - @ NLFSR 1 @ @ NLFSR 2 - @ @ - f ¡ keystream ... ¡ ¡ - ¡ NLFSR N ¡ ¡ I Achterbahn version 1, version 2, 128-80. I version 1 cryptanalysed by Johansson, Meier, Muller. I version 2 cryptanalysed by Hell, Johansson. 1/23 Achterbahn-128/80 (July 2006) Achterbahn-128: key size = 128 bits I 13 primitive NLFSRs of length Li = 21 + i, 0 ≤ i ≤ 12 I Least significant bit of each NLFSR forced to 1 at the initialization process. I Boolean combining function F : • balanced • correlation immunity order = 8 I Inputs of F ← shifted outputs of NLFSRs. I Keystream length limited to 263. 2/23 Achterbahn-128/80 (July 2006) Achterbahn-80: key size = 80 bits I 11 primitive NLFSRs of length Li = 21 + i, 1 ≤ i ≤ 11 I Least significant bit of each NLFSR forced to 1 at the initialization process. I Boolean function G(x1, . , x11) = F (0, x1, . , x11, 0): • balanced • correlation immunity order = 6 I Inputs of G ← shifted outputs of NLFSRs. I Keystream length limited to 263. 3/23 Tools used in our cryptanalysis I Parity checks I Exhaustive search for the internal states of some registers I Decimation by the period of a register I Linear approximations I Speeding up the exhaustive search 4/23 Parity checks Let (s1(t))t≥0,..., (sn(t))t≥0 be n sequences of periods Pn T1,...,Tn, and ∀t ≥ 0,S(t) = i=1 si(t). I Then, for all t ≥ 0, X S(t + τ) = 0, τ∈hT1,...,Tni n hT1,...,Tni: set of all 2 possible sums of T1,...,Tn. I Example: (s1(t)), (s2(t)) with periods T1 and T2 S(t) + S(t + T1) + S(t + T2) + S(t + T1 + T2) = 0 5/23 Cryptanalysis with parity checks Pm I Linear approximation `(t) = j=1 xij(t) where: 1 Pr[S(t) = `(t)] = (1 + ε) 2 P I Parity check: τ∈hT ,...,T i `(t + τ) = 0 i1 im 2 3 X 6 7 1 ¡ m¢ Pr 4 S(t + τ) = 05 ≥ 1 + ε2 2 τ∈hT ,...,T i i1 im 6/23 Exhaustive search over some registers I Exhaustive search for the initial states of m0 registers 2 3 0 Xm Xm 1 Pr 4S(t) = x (t) + x (t)5 = (1 + ε). ij ij 2 j=1 j=m0+1 0 I The parity check has 2m−m terms and satisfies: 2 0 1 3 m0 µ ¶ X X 0 6 7 1 2m−m Pr 4 @S(t + τ) + xi (t + τ)A= 05 = 1 + ε j 2 τ∈hT ,...,T i j=1 im0+1 im 7/23 Required keystream length P 0 m (L −1) Decoding problem = 2 j=1 ij sequences of length N transmitted through a binary symmetric channel of capacity 0 µ ¶ 2m−m 2 1 m−m0 (ε ) C(p) = C (1 + ε2 ) ≈ 2 2 ln 2 Pm0 Pm0 j=1(Lij − 1) 2 ln 2 j=1(Lij − 1) N ≈ ≈ 0 C(p) (ε2m−m )2 • Keystream bits needed: m0 m 0 X X 2m−m −2 (ε ) × 2 ln 2 × (Lij − 1) + Tij j=1 i=m0+1 8/23 Decimation [Hell-Johansson06] I Parity check: 0 1 X Xm0 @ A pc(t) = S(t + τ) + xij(t + τ) τ∈hT ,...,T i j=1 im0+1 im I Decimate by the periods of p linear terms i1, . , ip: pcp(t) = pc(tTi1 ...Tip) I Exhaustive search for the remaining (m0 − p) terms 9/23 Complexity • Keystream bits needed: 0 m P m m−m0 X p L X L 2 −2 j=1 ij ij (ε ) ×2 ln 2× (Lij −1)×2 + 2 j=p+1 j=m0+1 • Time complexity: 0 m P 0 m−m0 X m (L −1) 2 −2 j=p+1 ij (ε ) × 2 ln 2 × (Lij − 1) × 2 j=p+1 10/23 Cryptanalysis of Achterbahn-80 I We use a linear approximation: as G has correlation immunity order 6, the best approximation by a 7-variable function is affine [Canteaut-Trabia00] I We use the following one: −3 g2(x1, . , x10) = x1+x3+x4+x5+x6+x7+x10 with ε = 2 . 11/23 Cryptanalysis of Achterbahn-80 I Linear approximation: −3 g2(x1, . , x10) = (x4+x7)+(x5+x6)+x1+x3+x10 with ε = 2 . I Parity check: ``(t) = `(t) + `(t + T4T7) + `(t + T6T5) + `(t + T4T7 + T6T5) I Decimate by the period of the register 10. I Exhaustive search over registers 1 and 3. 12/23 Cryptanalysis of Achterbahn-80 • Keystream bits needed: 4 −2 L10 L4+L7 L5+L6 61 (ε ) ×2 ln 2×(L1+L3−2)×2 +2 +2 = 2 bits. • Time complexity: 4 −2 L1−1 L3−1 74 (ε ) ×2 ln 2×(L1+L3−2)×2 2 = 2 operations. • Time complexity can be reduced: final complexity 261. • We recover the initial states of registers 1 and 3. 13/23 Cryptanalysis of Achterbahn-128 I Linear approximation: −3 `(x0, . , x12) = (x0+x3+x7)+(x4+x10)+(x8+x9)+x1+x2 with ε = 2 . I Parity check: X ```(t) = `(t + τ), τ∈hT0,3,7,T4,10,T8,9i where T0,3,7 = lcm(T0,T3,T7) I Exhaustive search over registers 1 and 2 → we can reduce this complexity making profit of the independence of the registers 14/23 Improving the exhaustive search 254X−28−1 X 0 0 0 ϕ = (S(t ) ⊕ x1(t ) ⊕ x2(t )) 0 t =0 τ∈hT0,3,7,T4,10,T8,9i 31 8 TX2−1 2 X+2 −1 = σ(tT2 + k) ⊕ σ1(tT2 + k) ⊕ σ2(tT2 + k) t=0 k=0 2 0 1 31 8 TX2−1 2 X+2 −1 = 4(σ2(k) ⊕ 1) @ σ(tT2 + k) ⊕ σ1(tT2 + k)A + k=0 t=0 0 13 231X+28−1 31 8 σ2(k) @(2 + 2 ) − σ(tT2 + k) ⊕ σ1(tT2 + k)A5 t=0 15/23 Improving the exhaustive search for k = 0 to T2 − 1 do V2[k] = σ2(k) for the all-one initial state. end for for each possible initial state of R1 do for k = 0 to T2 − 1 do P231+28−1 V1[k] = t=0 σ(T2t + k) ⊕ σ1(T2t + k) end for for each possible initial state i of R2 do P £ ¡ ¢¤ T2−1 31 8 k=0 (V2[k+imodT2]⊕1) V1[k] + V2[k+imodT2] 2 +2 −V1[k] if we find the bias then return the initial states of R1 and R2 end if end for end for 16/23 Reducing complexity with an FFT P £ ¡ ¢¤ T2−1 31 8 • k=0 (V2[k + i] ⊕ 1) V1[k] + V2[k + i] 2 + 2 − V1[k] L2−1 5 2 × T2 × 2 × 2 ³ ´ P 31 8 31 8 T2−1 V2[k+i] 2 +2 2 +2 • k=0 (−1) V1[k] − 2 + T2 2 T2 log2 T2 with an FFT. 17/23 Cryptanalysis of Achterbahn-128 • Keystream bits needed: 8 −2 61 (ε ) ×2 ln 2×(L1+L2−2)+T0,3,7+T4,10+T8,9 < 2 bits. • Time complexity: £ ¡ ¢ ¤ L1−1 31 4 3 80.58 2 × 2 × T2 × 2 + 31 + T2 log T2 +T2×2 = 2 . 18/23 Achterbahn-128 limited to 256 bits I The same attack as before using the linear approximation: `(x0, . , x12) = (x3+x8)+(x1+x10)+(x2+x9)+x0+x4+x7 I Improved exhaustive search over registers 0,4 and 7, considering R0 and R4 together. • keystream bits needed< 256 • time complexity:2104 operations. 19/23 Achterbahn-80 limited to 252 bits I Linear approximation: `(x1, . , x11) = (x3 + x7) + (x4 + x5) + x1 + x6 + x10 I With the same attack as before, we need more than 252 keystream bits. I We can adapt the algorithm in order to reduce the data complexity. 20/23 Achterbahn-80 limited to 252 bits I Instead of one decimated sequence of parity checks of length L, 4 decimated sequences of length L/4: S(t(T1) + i) + S(t(T1) + i + T7T3) + S(t(T1) + i + T4T5) +S(t(T1) + i + T7T3 + T4T5), for i ∈ {0,..., 3}. I Keystream bits needed < 252 I Time complexity: 267 operations. 21/23 Recovering the key From the previously recovered initial states of some registers: I Meet-in-the-middle attack on the key-loading. I No need to invert all the clocking steps. Additional complexity: • Achterbahn-80: 240 in time and 241 in memory. • Achterbahn-128: 273 in time and 248 in memory. 22/23 Conclusions Attacks complexities against all versions of Achterbahn version data complexity time complexity references v1 (80-bit) 232 255 [JMM06] v2 (80-bit) 264 267 [HJ06] v2 (80-bit) 252 253 v80 (80-bit) 261 255 v128 (128-bit) 260 280.58 23/23.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    25 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us