Trail Bound Techniques in Primitives with Weak Alignment
Silvia Mella1 based on a joint work with Joan Daemen2 and Gilles Van Assche1
1STMicroelectronics 2Radboud University
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
1STMicroelectronics 2Radboud University
Differential trails
Differential trails
Differential trails
Differential trails
Differential trails
Differential trails
Differential trails
Differential trails
min min
Differential 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
Tree search
Tree search
◮ Node: subset of U, represented as a unit list
◮ Children of a node a:
◮ Root: the empty set a = ∅
Tree search
◮ Cost function: γ(a)
◮ Cost bounding function: L(a) s.t.
Tree search
Bounds in Keccak-f
Bounds in Keccak-f Keccak-f
x y z state
◮ (5 × 5)-bit slices ◮ 2ℓ-bit lanes ◮ parameter 0 ≤ ℓ < 7
◮ θ: mixing layer ◮ ρ: inter-slice bit transposition ◮ π: intra-slice bit transposition ◮ χ: non-linear layer ◮ ι: round constants
◮ 12 rounds in Keccak-f [25] ◮ 24 rounds in Keccak-f [1600]
Bounds in Keccak-f Keccak-f
column parity θ effect combine
◮ The θ map adds a pattern, that depends on the parity, to
◮ Affected columns are complemented ◮ Unaffected columns are not changed
Bounds in Keccak-f Keccak-f
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|)
Bounds in Keccak-f Trails in Keccak-f
◮ ai fully determines bi = λ(ai) ◮ χ has degree 2: w(bi−1) independent of ai ◮ Minimum reverse weight:
b0 w(b0)
Bounds in Keccak-f Trails in Keccak-f
◮ ai fully determines bi = λ(ai) ◮ χ has degree 2: w(bi−1) independent of ai ◮ Minimum reverse weight:
b0 w(b0)
Bounds in Keccak-f Trails in Keccak-f
◮ ai fully determines bi = λ(ai) ◮ χ has degree 2: w(bi−1) independent of ai ◮ Minimum reverse weight:
b0 w(b0)
Bounds in Keccak-f Generating 3-round trail cores
2
Bounds in Keccak-f Generating 3-round trail cores
◮ Space split based on parity of ai ◮ Four classes: |K|K|, |K|N|, |N|K| and |N|N|
Bounds in Keccak-f Generating 3-round trail cores
◮ Generating (a1, b1) ◮ Extending forward by one round
Bounds in Keccak-f Generating 3-round trail cores
◮ Generating (a1, b1) ◮ Extending forward by one round
Bounds in Keccak-f Generating 3-round trail cores
◮ Generating (a2, b2) ◮ Extending backward by one round
Bounds in Keccak-f Generating 3-round trail cores
◮ Generating (a2, b2) ◮ Extending backward by one round
Bounds in Keccak-f Generating trail cores in |K|
◮ orbital = [z, x, y1, y2]
2 1
y
Bounds in Keccak-f Generating trail cores in |K|
◮ y′ 1 > y2
2 1
y
Bounds in Keccak-f Generating trail cores in |K|
◮ Root: the empty state ◮ Units: orbitals = [z, x, y1, y2] ◮ Bound: cost of the node itself
Bounds in Keccak-f Generating trail cores in |N|
◮ 0 active bits in unaffected even columns ◮ 1 active bit in unaffected odd column ◮ 5 active bits in affected column either before or after θ
Bounds in Keccak-f Generating trail cores in |N|
Bounds in Keccak-f Generating trail cores in |N|
Bounds in Keccak-f Generating trail cores in |N|
◮ Root: a parity-bare state ◮ Units: orbitals in unaffected columns ◮ Bound: cost of the trail itself
Bounds in Keccak-f Generating trail cores in |N|
◮ Root: the empty state ◮ Units: column assignments (x, z, odd/affected, column value) ◮ Bound: cost minus potential loss due to new CAs
Bounds in Keccak-f Extending trails
Bounds in Keccak-f Extending trails
◮ Affine space: o + b1, . . . , bm
◮ Unit set U = {b1, . . . , bm} ◮ Root: a = o ◮ Node: a = (bi) : αi = 1 ◮ Define L(a) to take advantage of stable active bits
Experimental results
Experimental results
◮ All 3-round trail cores with weight ≤ 45 20 22 24 26 28 30 32 34 36 38 40 42 44 1 10 102 103 104 T3 # cores Keccak-f [200] Keccak-f [400] Keccak-f [800] Keccak-f [1600] ◮ No 6-round trail with weight ≤ 91
Experimental results
20 22 24 26 28 30 32 34 36 38 40 42 44 1 10 102 103 104 T3 # cores |K|K| 28 30 32 34 36 38 40 42 44 1 10 102 103 104 T3 # cores |K|N| 27 29 31 33 35 37 39 41 43 45 1 10 102 103 104 T3 # cores |N|K| 38 39 40 41 42 43 44 45 1 10 102 103 T3 # cores |N|N|
Experimental results
Symmetry properties
Symmetry properties
Symmetry properties
◮ Define an order relation on states ◮ Define the canonical representation as the minimum one, e.g.,
z
Symmetry properties
◮ Set U of units with a total order relation ≺ ◮ Unit list: a = (ui)i=1,...,n with u1 ≺ u2 ≺ · · · ≺ un
◮ ≺lex is the lexicographic order on unit lists ◮ canonicity is defined w.r.t. ≺lex
Symmetry properties
◮ Input: unit list a = (ui)i=1,...,n ◮ For each i ◮ Transform a such that τ(ui) is ≺-minimum ◮ Sort the resulting unit list ◮ Compare it (using ≺lex) to the currently minimum unit
◮ Output: canonical representation (or just true/false)
Conclusions
Conclusions
◮ How to represent differences in a monotonic way? ◮ Can symmetry properties be exploited? ◮ Code available on
Conclusions