Match Box Meet-in-the-Middle Attack against KATAN Thomas Fuhr and - - PowerPoint PPT Presentation

match box meet in the middle attack against katan
SMART_READER_LITE
LIVE PREVIEW

Match Box Meet-in-the-Middle Attack against KATAN Thomas Fuhr and - - PowerPoint PPT Presentation

Match Box Meet-in-the-Middle Attack against KATAN Thomas Fuhr and Brice Minaud ANSSI, France FSE, March 3-5 2014 Plan 1 Match Box Meet-in-the-Middle Attacks Sieve-in-the-Middle Framework Match Box Cryptanalysis of KATAN 2 Description


slide-1
SLIDE 1

Match Box Meet-in-the-Middle Attack against KATAN

Thomas Fuhr and Brice Minaud

ANSSI, France

FSE, March 3-5 2014

slide-2
SLIDE 2

Plan

1

Match Box Meet-in-the-Middle Attacks Sieve-in-the-Middle Framework Match Box

2

Cryptanalysis of KATAN Description Cryptanalysis Summary of results

slide-3
SLIDE 3

Match Box

slide-4
SLIDE 4

Meet-in-the-Middle Attack

PT CT K

Whatever

1/ 18

slide-5
SLIDE 5

Meet-in-the-Middle Attack

PT CT K1

  • v

Knowledge of a portion K1 of the key allows to compute a part

  • v of the internal state at some intermediate round.

2/ 18

slide-6
SLIDE 6

Meet-in-the-Middle Attack

PT CT K1

  • v

K2

Assume this same v can be computed from the ciphertext using K2. Then a meet-in-the-middle attack is possible.

2/ 18

slide-7
SLIDE 7

Meet-in-the-Middle Attack

PT CT K1

  • v

K2

Assume this same v can be computed from the ciphertext using K2. Then a meet-in-the-middle attack is possible. This generally assumes a simple key schedule. Lightweight ciphers are prime targets.

2/ 18

slide-8
SLIDE 8

Meet-in-the-Middle Attack

PT CT K1

  • v

K2

1 Guess K∩ = K1 ∩ K2.

  • For each K ′

1 = K1 − K∩, compute

v. Store v → {K ′

1} in a table T.

  • For each K ′

2 = K2 − K∩, compute

v. Retrieve K ′

1’s that lead to the same

v from T. Each of these K ′

1’s, merged with K ′ 2, yields a candidate master key.

2 Test candidate master keys against a few

plaintext/ciphertext pairs.

3/ 18

slide-9
SLIDE 9

Meet-in-the-Middle Attack

PT CT K1

  • v

K2

1 Guess K∩ = K1 ∩ K2.

  • For each K ′

1 = K1 − K∩, compute

v. Store v → {K ′

1} in a table T.

  • For each K ′

2 = K2 − K∩, compute

v. Retrieve K ′

1’s that lead to the same

v from T. Each of these K ′

1’s, merged with K ′ 2, yields a candidate master key.

2 Test candidate master keys against a few

plaintext/ciphertext pairs. Benefit : complexity is |K∩| × (|K ′

1| + |K ′ 2|) instead of

|K∩| × (|K ′

1| × |K ′ 2|).

3/ 18

slide-10
SLIDE 10

Sieve-in-the-Middle Framework

PT K1 CT K2

  • l
  • r

Now we compute a distinct l from the left and r from the right. Compatibility is expressed by some relation R(

  • l,

r). Introduced by Canteaut, Naya-Plasencia and Vayssière at CRYPTO 2013.

4/ 18

slide-11
SLIDE 11

Matching problem K′

1

K′

2

match ?

  • l
  • r
  • l
  • r
  • l
  • r
  • l
  • r
  • l
  • r

Problem : testing the relation R. K1 × K2 ≈ K : equivalent to brute force. Solution : Precomputation of compatibilities outside the loop

  • n K∩.

K1 = K∩ ⊕ K ′

1

K2 = K∩ ⊕ K ′

2

K = K∩ ⊕ K ′

1 ⊕ K ′ 2

5/ 18

slide-12
SLIDE 12

Matching problem K′

1

K′

2

match ?

  • l
  • r
  • l
  • r
  • l
  • r
  • l
  • r
  • l
  • r

Problem : testing the relation R. K∩ × K ′

1 × K ′ 2 = entire key = brute force.

K1 = K∩ ⊕ K ′

1

K2 = K∩ ⊕ K ′

2

K = K∩ ⊕ K ′

1 ⊕ K ′ 2

5/ 18

slide-13
SLIDE 13

Matching problem K′

1

K′

2

match ?

  • l
  • r
  • l
  • r
  • l
  • r
  • l
  • r
  • l
  • r

Problem : testing the relation R. K∩ × K ′

1 × K ′ 2 = entire key = brute force.

K1 = K∩ ⊕ K ′

1

K2 = K∩ ⊕ K ′

2

K = K∩ ⊕ K ′

1 ⊕ K ′ 2

Solution : Precomputation of compatibilities

  • utside the loop on K∩.

5/ 18

slide-14
SLIDE 14

Example

S

  • r
  • l

⊕ ⊕k(K′

1)

K1 K2

K1 = K∩ ⊕ K ′

1

K2 = K∩ ⊕ K ′

2

K = K∩ ⊕ K ′

1 ⊕ K ′ 2

6/ 18

slide-15
SLIDE 15

Example

S

  • r
  • l

⊕ ⊕k(K′

1)

K1 K2

K1 = K∩ ⊕ K ′

1

K2 = K∩ ⊕ K ′

2

K = K∩ ⊕ K ′

1 ⊕ K ′ 2

Assuming the key schedule is linear, K = K2 ⊕ K ′

  • 1. Without loss
  • f generality, we can assume k depends only on K ′

1.

Compatibility : R(

  • l,

r, K ′

1)

iff S−1 r

6/ 18

slide-16
SLIDE 16

Example

S

  • r
  • l

⊕ ⊕k(K′

1)

K1 K2

Assuming the key schedule is linear, K = K2 ⊕ K ′

  • 1. Without loss
  • f generality, we can assume k depends only on K ′

1.

Compatibility : R(

  • l,

r, K ′

1)

iff S−1 r ⊕ k(K ′

1)

  • ↾{0,1} =

l

7/ 18

slide-17
SLIDE 17

Match box

S

  • r
  • l

⊕ ⊕k(K′

1)

K1 K2

Match box : (K ′

1 →

l) → ( r → {K ′

1 : R(

  • l,

r, K ′

1)})

K1 = K∩ ⊕ K ′

1

K2 = K∩ ⊕ K ′

2

K = K∩ ⊕ K ′

1 ⊕ K ′ 2

8/ 18

slide-18
SLIDE 18

Match box

S

  • r
  • l

⊕ ⊕k(K′

1)

K1 K2

Match box : (K ′

1 →

l) → ( r → {K ′

1 : R(

  • l,

r, K ′

1)})

K1 = K∩ ⊕ K ′

1

K2 = K∩ ⊕ K ′

2

K = K∩ ⊕ K ′

1 ⊕ K ′ 2

Limited by the size of the table : 2|

  • l||K′

1|+|

r|+|K ′

1| 8/ 18

slide-19
SLIDE 19

Cryptanalysis of KATAN

slide-20
SLIDE 20

KATAN

Block cipher by De Cannière, Dunkelman, Kneževi´ c, CHES 2009.

  • Ultralightweight. Barely more surface area than what is required

to store the state and key. Based on Non-Linear Shift Feedback Registers. 254 rounds. Accomodates three block sizes : 32, 48 or 64 bits. 80-bit key.

9/ 18

slide-21
SLIDE 21

Previous work on KATAN

KATAN32 Conditional differential : 78 rounds by Knellwolf, Meier, Naya-Plasencia, ASIACRYPT 2010. Exhaustive differential : 115 rounds by Albrecht and Leander, SAC 2012. Meet-in-middle : 110 rounds by Isobe and Shibutani, SAC 2013.

10/ 18

slide-22
SLIDE 22

KATAN32

+ k0 + + + × + k1 + + + + × × A B 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 31 30 29 28 27 26 25 24 23 22 21 20 19

80-bit key loaded into an LFSR → k0, k1 every round. Tours irréguliers déterminés par un second LFSR.

11/ 18

slide-23
SLIDE 23

KATAN32

+ k0 + + + + × × IR + k1 + + + + × × A B 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 31 30 29 28 27 26 25 24 23 22 21 20 19

80-bit key loaded into an LFSR → k0, k1 every round. Irregular rounds scheduled by another LFSR.

11/ 18

slide-24
SLIDE 24

Formal description of KATAN32

Definition Bit ai enters register A at round i. Bit bi enters register B at round i. = ⇒ At round n : A contains (an−12, . . . , an), B contains (bn−18, . . . , bn).

12/ 18

slide-25
SLIDE 25

Formal description of KATAN32

Definition Bit ai enters register A at round i. Bit bi enters register B at round i. = ⇒ At round n : A contains (an−12, . . . , an), B contains (bn−18, . . . , bn). Plaintext = (a−13, . . . , a−1, b−19, . . . , b−1). Encryption an = bn−19 ⊕ bn−8 ⊕ bn−11 · bn−13 ⊕ bn−4 · bn−9 ⊕ rk2n+1 bn = an−13 ⊕ an−8 ⊕ cn · an−4 ⊕ an−6 · an−9 ⊕ rk2n Ciphertext = (a241, . . . , a253, b235, . . . , b253).

12/ 18

slide-26
SLIDE 26

Meet-in-the-Middle Attack on KATAN

PT CT K1

  • v

K2

Small extras : Simultaneous matching : on several plaintext/ciphertext pairs. Indirect matching : removes key bits whose contribution is linear.

13/ 18

slide-27
SLIDE 27

Meet-in-the-Middle Attack on KATAN

PT CT K1

  • v

K2

Small extras : Simultaneous matching : on several plaintext/ciphertext pairs. Indirect matching : removes key bits whose contribution is linear. Result : attack on 121 rounds of KATAN32. K1 : 75 bits, K2 : 75 bits, K∩ : 70 bits forward : 69 rounds, backward : 52 rounds 4 known plaintexts, complexity 277.5.

13/ 18

slide-28
SLIDE 28

Meet-in-the-Middle Attack on KATAN

CT K1

  • v

K2 PT biclique

Addition of a biclique. Originally introduced to attack SKEIN and AES [BKR11]. Makes it possible to extend a meet-in-the-middle attack. Either an accelerated key search, or a classical attack (we use the latter).

14/ 18

slide-29
SLIDE 29

Meet-in-the-Middle Attack on KATAN

CT K1

  • v

K2 PT biclique

Addition of a biclique. Originally introduced to attack SKEIN and AES [BKR11]. Makes it possible to extend a meet-in-the-middle attack. Either an accelerated key search, or a classical attack (we use the latter). Result : attack on 131 rounds of KATAN32. Chosen plaintexts, low data requirements.

14/ 18

slide-30
SLIDE 30

Meet-in-the-middle attack on KATAN

K1 PT biclique CT K2

  • l
  • r

match box

Addition of a « match box ».

15/ 18

slide-31
SLIDE 31

Match Box on KATAN

Meeting in the middle at b62 : b62 = x0 ⊕ b68 · b70, x0 = a81 ⊕ b73 ⊕ b72 · b77 ⊕ rk163 b68 = x1 ⊕ rk175, x1 = a87 ⊕ b89 ⊕ b76 · b74 ⊕ b83 · b78 b70 = x2 ⊕ rk179, x2 = a89 ⊕ b91 ⊕ b78 · b76 ⊕ b85 · b80

16/ 18

slide-32
SLIDE 32

Match Box on KATAN

Meeting in the middle at b62 : b62 = x0 ⊕ b68 · b70, x0 = a81 ⊕ b73 ⊕ b72 · b77 ⊕ rk163 b68 = x1 ⊕ rk175, x1 = a87 ⊕ b89 ⊕ b76 · b74 ⊕ b83 · b78 b70 = x2 ⊕ rk179, x2 = a89 ⊕ b91 ⊕ b78 · b76 ⊕ b85 · b80 Let us decompose rkn = rk2

n ⊕ rk1′ n along K2 ⊕ K ′ 1.

  • l
  • l0 = b62
  • r

   r0 = x0 r1 = x1 ⊕ rk2

175

r2 = x2 ⊕ rk2

179

Compatibility R(

  • l,

r, K ′

1) :

l0 = r0 ⊕ (r1 ⊕ rk1′

175) · (r2 ⊕ rk1′ 179)

16/ 18

slide-33
SLIDE 33

Match Box on KATAN

  • l
  • l0 = b62
  • r

   r0 = x0 r1 = x1 ⊕ rk2

175

r2 = x2 ⊕ rk2

179

Compatibility R(

  • l,

r, K ′

1) :

l0 = r0 ⊕ (r1 ⊕ rk1′

175) · (r2 ⊕ rk1′ 179)

Benefit : We no longer need to know k1′

175 and rk1′ 179 from the right.

⇒ K2 shrinks by 2. ⇒ We can add two brand new round keys to K2 to add one more round to the attack.

17/ 18

slide-34
SLIDE 34

Summary of results

Rounds Model Data Memory Time Reference K32 78 CP 222 − 222 [KMN10] 115 CP 232 − 279 [AL12] 110 KP 27 275 277 [IS13] 121 KP 22 − 277.5 Base 131 CP 27 − 277.5 Biclique 153 CP 25 276 278.5

  • M. box

K48 70 CP 234 − 234 [KMN10] 100 KP 27 278 278 [IS13] 110 KP 22 − 277.5 Base 114 CP 26 − 277.5 Biclique 129 CP 25 276 278.5

  • M. box

K64 68 CP 235 − 235 [KMN10] 94 KP 27 277.5 277.5 [IS13] 102 KP 22 − 277.5 Base 107 CP 27 − 277.5 Biclique 119 CP 25 274 278.5

  • M. box

18/ 18

slide-35
SLIDE 35

Conclusion

Thank you for your attention. Questions ?

slide-36
SLIDE 36

Biclique

A0 C0 Ai Ci B0 K∗,0 K0,∗ Bj K∗,j Ki,∗ Ki,j biclique Biclique : ∀i, j, Enc0→b

Ki,j (Ai) = Bj.

Ki,∗ = information on the key common to Ki,j ∀j. K∗,j = information on the key common to Ki,j ∀i. Compatibility : v can be computed from (Bj, K∗,j), and also (Ci, Ki,∗).

slide-37
SLIDE 37

Biclique

A0 C0 Ai Ci B0 K∗,0 K0,∗ Bj K∗,j Ki,∗ Ki,j v m a t c h chiffrement d´ echiffrement biclique Biclique : ∀i, j, Enc0→b

Ki,j (Ai) = Bj.

Ki,∗ = information on the key common to Ki,j ∀j. K∗,j = information on the key common to Ki,j ∀i. Compatibility : v can be computed from (Bj, K∗,j), and also (Ci, Ki,∗).