trail bound techniques in primitives with weak alignment
play

Trail Bound Techniques in Primitives with Weak Alignment Silvia - PowerPoint PPT Presentation

Trail Bound Techniques in Primitives with Weak Alignment Silvia Mella 1 based on a joint work with Joan Daemen 2 and Gilles Van Assche 1 1 STMicroelectronics 2 Radboud University APBC 2018 Outline 1 Differential trails 2 Tree search 3 Bounds in


  1. Trail Bound Techniques in Primitives with Weak Alignment Silvia Mella 1 based on a joint work with Joan Daemen 2 and Gilles Van Assche 1 1 STMicroelectronics 2 Radboud University APBC 2018

  2. Outline 1 Differential trails 2 Tree search 3 Bounds in Keccak - f 4 Experimental results 5 Symmetry properties 6 Conclusions

  3. Differential trails Outline 1 Differential trails 2 Tree search 3 Bounds in Keccak - f 4 Experimental results 5 Symmetry properties 6 Conclusions

  4. Differential trails Differential trails in iterated mappings

  5. Differential trails Differential trails and weight w = − log 2 ( DP )

  6. Differential trails Trail extension

  7. Differential trails Trail extension

  8. Differential trails Trail extension

  9. Differential trails Trail extension

  10. Differential trails Trail cores min min

  11. Differential trails Bounding the weight of trails ◮ We restrict to trail cores... ◮ ...up to a given target weight T ◮ We start from 2-round trail cores and then extend min min

  12. Tree search Outline 1 Differential trails 2 Tree search 3 Bounds in Keccak - f 4 Experimental results 5 Symmetry properties 6 Conclusions

  13. Tree search Definition Set U of units with a total order relation ≺ Tree ◮ Node: subset of U , represented as a unit list a = ( u i ) i =1 ,..., n u 1 ≺ u 2 ≺ · · · ≺ u n ◮ Children of a node a : a ∪ { u n +1 } ∀ u n +1 : u n ≺ u n +1 ◮ Root: the empty set a = ∅

  14. Tree search Bounding the cost Goal: tree traversal up to given cost target T Cost-related functions ◮ Cost function: γ ( a ) (e.g. w rev ( a ) + w dir ( a )) ◮ Cost bounding function: L ( a ) s.t. for all descendants a ′ of a γ ( a ′ ) ≥ L ( a ) ⇒ Prune all the subtrees with L ( a ) > T

  15. Tree search Example: active bit positions

  16. Bounds in Keccak - f Outline 1 Differential trails 2 Tree search 3 Bounds in Keccak - f 4 Experimental results 5 Symmetry properties 6 Conclusions

  17. Bounds in Keccak - f Keccak - f Keccak - f Operates on 3D state: Round function with 5 steps: ◮ θ : mixing layer ◮ ρ : inter-slice bit transposition ◮ π : intra-slice bit transposition ◮ χ : non-linear layer state y ◮ ι : round constants z # rounds: 12 + 2 ℓ for width b = 2 ℓ 25 x ◮ 12 rounds in Keccak - f [25] ◮ (5 × 5)-bit slices ◮ 24 rounds in Keccak - f [1600] ◮ 2 ℓ -bit lanes ◮ parameter 0 ≤ ℓ < 7 [Bertoni, Daemen, Peeters, Van Assche, 2008]

  18. Bounds in Keccak - f Keccak - f Properties of θ + = column parity θ e ff ect combine ◮ The θ map adds a pattern, that depends on the parity, to each plane. ◮ Affected columns are complemented ◮ Unaffected columns are not changed

  19. Bounds in Keccak - f Keccak - f The parity Kernel + = column parity θ effect combine ◮ θ acts as the identity if parity is zero ◮ A state with parity zero is in the kernel (or in | K | ) ◮ A state with parity non-zero is outside the kernel (or in | N | )

  20. Bounds in Keccak - f Trails in Keccak - f Differential trails in Keccak - f Round: linear step λ = π ◦ ρ ◦ θ and non-linear step χ ◮ a i fully determines b i = λ ( a i ) ◮ χ has degree 2: w ( b i − 1 ) independent of a i ◮ Minimum reverse weight: w rev ( a 1 ) � min b 0 w ( b 0 )

  21. Bounds in Keccak - f Trails in Keccak - f Differential trails in Keccak - f Round: linear step λ = π ◦ ρ ◦ θ and non-linear step χ ◮ a i fully determines b i = λ ( a i ) ◮ χ has degree 2: w ( b i − 1 ) independent of a i ◮ Minimum reverse weight: w rev ( a 1 ) � min b 0 w ( b 0 )

  22. Bounds in Keccak - f Trails in Keccak - f Differential trails in Keccak - f Round: linear step λ = π ◦ ρ ◦ θ and non-linear step χ ◮ a i fully determines b i = λ ( a i ) ◮ χ has degree 2: w ( b i − 1 ) independent of a i ◮ Minimum reverse weight: w rev ( a 1 ) � min b 0 w ( b 0 )

  23. Bounds in Keccak - f Generating 3-round trail cores Covering the space of 6-round trail cores Lemma A 6-round trail of weight W always contains a 3-round trail of � W � weight below or equal to 2

  24. Bounds in Keccak - f Generating 3-round trail cores Covering the space of 3-round trail cores ◮ Space split based on parity of a i ◮ Four classes: | K | K | , | K | N | , | N | K | and | N | N |

  25. Bounds in Keccak - f Generating 3-round trail cores Covering the space of 3-round trail cores ◮ Generating ( a 1 , b 1 ) ◮ Extending forward by one round

  26. Bounds in Keccak - f Generating 3-round trail cores Covering the space of 3-round trail cores ◮ Generating ( a 1 , b 1 ) ◮ Extending forward by one round

  27. Bounds in Keccak - f Generating 3-round trail cores Covering the space of 3-round trail cores ◮ Generating ( a 2 , b 2 ) ◮ Extending backward by one round

  28. Bounds in Keccak - f Generating 3-round trail cores Covering the space of 3-round trail cores ◮ Generating ( a 2 , b 2 ) ◮ Extending backward by one round

  29. Bounds in Keccak - f Generating trail cores in | K | Orbitals ◮ orbital = [ z , x , y 1 , y 2 ] 2 1 0 -1 -2 y

  30. Bounds in Keccak - f Generating trail cores in | K | Orbitals (continued) ◮ y ′ 1 > y 2 2 1 0 -1 -2 y

  31. Bounds in Keccak - f Generating trail cores in | K | Generating trail cores in | K | ◮ Root: the empty state ◮ Units: orbitals = [ z , x , y 1 , y 2 ] ◮ Bound: cost of the node itself

  32. Bounds in Keccak - f Generating trail cores in | N | Parity-bare states Parity-bare state: a state with the minimum number of active bits before and after θ for a given parity ◮ 0 active bits in unaffected even columns ◮ 1 active bit in unaffected odd column ◮ 5 active bits in affected column either before or after θ θ

  33. Bounds in Keccak - f Generating trail cores in | N | States in | N | Lemma Each state can be decomposed in a unique way in a parity-bare state and a list of orbitals θ

  34. Bounds in Keccak - f Generating trail cores in | N | States in | N | Lemma Each state can be decomposed in a unique way in a parity-bare state and a list of orbitals θ

  35. Bounds in Keccak - f Generating trail cores in | N | Orbital tree ◮ Root: a parity-bare state ◮ Units: orbitals in unaffected columns ◮ Bound: cost of the trail itself

  36. Bounds in Keccak - f Generating trail cores in | N | Run tree ◮ Root: the empty state ◮ Units: column assignments (x, z, odd/affected, column value) ◮ Bound: cost minus potential loss due to new CAs

  37. Bounds in Keccak - f Extending trails Trail extension

  38. Bounds in Keccak - f Extending trails Tree-search on affine space ◮ Affine space: o + � b 1 , . . . , b m � � a = o + α j b j j ◮ Unit set U = { b 1 , . . . , b m } ◮ Root: a = o ◮ Node: a = ( b i ) : α i = 1 ◮ Define L ( a ) to take advantage of stable active bits

  39. Experimental results Outline 1 Differential trails 2 Tree search 3 Bounds in Keccak - f 4 Experimental results 5 Symmetry properties 6 Conclusions

  40. Experimental results Experimental results ◮ All 3-round trail cores with weight ≤ 45 10 4 Keccak - f [200] Keccak - f [400] 10 3 Keccak - f [800] # cores Keccak - f [1600] 10 2 10 1 20 22 24 26 28 30 32 34 36 38 40 42 44 T 3 ◮ No 6-round trail with weight ≤ 91

  41. Experimental results Trails for parity profile | K | K | | K | N | 10 4 10 4 10 3 10 3 # cores # cores 10 2 10 2 10 10 1 1 20 22 24 26 28 30 32 34 36 38 40 42 44 28 30 32 34 36 38 40 42 44 T 3 T 3 | N | K | | N | N | 10 4 10 3 10 3 10 2 # cores # cores 10 2 10 10 1 1 27 29 31 33 35 37 39 41 43 45 38 39 40 41 42 43 44 45 T 3 T 3

  42. Experimental results Bounds rounds b = 200 b = 400 b = 800 b = 1600 2 8 8 8 8 3 20 24 32 32 4 46 [48,63] [48,104] [48,134] 5 [50,89] [50,147] [50,247] [50,372] 6 [92,142] [92,278] [92,556] [92,1112] [276, · ] [280, · ] [292, · ] [368, · ] n r

  43. Symmetry properties Outline 1 Differential trails 2 Tree search 3 Bounds in Keccak - f 4 Experimental results 5 Symmetry properties 6 Conclusions

  44. Symmetry properties Invariance by translation or rotation E.g., in Keccak - f , w ( τ z a ) = w ( a ) for any translation τ z along z

  45. Symmetry properties Canonicity Canonical representation ◮ Define an order relation on states ◮ Define the canonical representation as the minimum one, e.g., a canonical ⇔ a = min τ z a z

  46. Symmetry properties Tree search restricted to canonical representations Reminder ◮ Set U of units with a total order relation ≺ ◮ Unit list: a = ( u i ) i =1 ,..., n with u 1 ≺ u 2 ≺ · · · ≺ u n Lemma Assuming that ◮ ≺ lex is the lexicographic order on unit lists ◮ canonicity is defined w.r.t. ≺ lex then the parent of a canonical pattern is canonical. ⇒ Complete non-canonical subtrees can be pruned [Mella, Daemen, Van Assche, FSE 2017]

  47. Symmetry properties Testing for canonicity Basic algorithm ◮ Input: unit list a = ( u i ) i =1 ,..., n ◮ For each i ◮ Transform a such that τ ( u i ) is ≺ -minimum ◮ Sort the resulting unit list ◮ Compare it (using ≺ lex ) to the currently minimum unit list ◮ Output: canonical representation (or just true/false)

  48. Conclusions Outline 1 Differential trails 2 Tree search 3 Bounds in Keccak - f 4 Experimental results 5 Symmetry properties 6 Conclusions

Recommend


More recommend