Keccak Reference 3.0
Keccak Reference 3.0
Guido B 1
Joan D 1
Michaël P 2
Gilles V A 1
http://keccak.noekeon.org/
2 / 69
Contents
1 K specifications 7
1.1 Conventions and notation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.1.1 Bitstrings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.1.2 Padding rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2 The K - f permutations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3 The sponge construction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.4 The K sponge functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.5 Security claim for the K sponge functions . . . . . . . . . . . . . . . . . . 9
1.6 Parts of the state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2 The K - f permutations 13
2.1 Translation invariance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2 The Matryoshka structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3 The step mappings of K -f . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3.1 Properties of χ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3.2 Properties of θ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3.3 Properties of π . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.3.4 Properties of ρ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.3.5 Properties of ι . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.3.6 The order of steps within a round . . . . . . . . . . . . . . . . . . . . . 23
2.4 Differential and linear cryptanalysis . . . . . . . . . . . . . . . . . . . . . . . . 23
2.4.1 A formalism for describing trails adapted to K -f . . . . . . . . . 23
2.4.2 The Matryoshka consequence . . . . . . . . . . . . . . . . . . . . . . . . 24
2.4.3 The column parity kernel . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.4.4 One and two-round trails . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.4.5 Three-round trails: kernel vortices . . . . . . . . . . . . . . . . . . . . . 26
2.4.6 Beyond three-round trails: choice of π . . . . . . . . . . . . . . . . . . . 27
2.4.7 Truncated trails and differentials . . . . . . . . . . . . . . . . . . . . . . 29
2.4.8 Other group operations . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.4.9 Differential and linear cryptanalysis variants . . . . . . . . . . . . . . . 29
2.5 Solving constrained-input constrained-output (CICO) problems . . . . . . . . 30
2.6 Strength in keyed mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.7 Symmetry weaknesses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3 Trail propagation in K -f 33
3.1 Relations between different kinds of weight . . . . . . . . . . . . . . . . . . . . 33
3.2 Propagation properties related to the linear step θ . . . . . . . . . . . . . . . . 35
3.3 Exhaustive trail search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.3.1 Upper bound for the weight of two-round trails to scan . . . . . . . . . 36
3 / 69
The K reference CONTENTS
4 Analysis of K -f 45
4.1 Algebraic normal form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.1.1 Statistical tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.1.2 Symmetric trails . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.1.3 Slide a acks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.2 Solving CICO problems algebraically . . . . . . . . . . . . . . . . . . . . . . . 48
4.2.1 The goal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.2.2 The supporting so ware . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.2.3 The experiments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.2.4 Third-party analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.3 Properties of K - f [25] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.3.1 Algebraic normal statistics . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.3.2 Differential probability distributions . . . . . . . . . . . . . . . . . . . . 52
4.3.3 Correlation distributions . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.3.4 Cycle distributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
4.4 Distinguishers exploiting low algebraic degree . . . . . . . . . . . . . . . . . . 59
4.4.1 Zero-sum distinguishers . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.4.2 Pre-image a acks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4 / 69
Introduction
In this document we specify, analyze and motivate the design of the cryptographic primitive
K . Based on the sponge construction, K inherits many of its features. We gath-
ered all our analysis on sponge functions in a separate document titled Cryptographic sponge
functions [8]. Reading it is a requisite for understanding the usability and security properties
of K and the security requirements for K - f , the permutation used in K .
Other documents and files are of interest to the readers of this K reference.
• This document comes with a set of files containing results of tests and experiments,
available from http://keccak.noekeon.org/.
• Chapter 2 explains the properties of the building blocks of K - f and motivates the
choices made in its design.
Finally, Chapter 5 summarizes the design choices behind K and contains our estimation
of the safety margin of K .
Acknowledgments
We wish to thank (in no particular order) Charles Bouillaguet and Pierre-Alain Fouque for
discussing their results later published in [13] with us, Dmitry Khovratovich for discussing
with us the results published in [29] and for his analysis in [1], Jean-Philippe Aumasson for
his analysis in [1] and [2], Joel Lathrop for his analysis in [34] and Willi Meier for his analysis
in [2], Anne Canteaut and Christina Boura for their analysis in [15, 14, 16], Christophe De
Cannière for his analysis in [16], Paweł Morawiecki and Marian Srebrny for their analysis
in [36], Dan Bernstein for his analysis in [3], Ming Duan and Xuejia Lai for their analysis in
[26], Yves Moulart, Bernard Kasser and all our colleagues at STMicroelectronics and NXP
Semiconductors for creating the working environment in which we could work on this. Fi-
nally we would like to thank Agentschap voor Innovatie door Wetenschap en Technologie (IWT)
for funding two of the authors (Joan Daemen and Gilles Van Assche).
5 / 69
The K reference CONTENTS
6 / 69
Chapter 1
K specifications
K (pronounced [kɛtʃak]) is a family of sponge functions [8] that use as a building block a
permutation from a set of 7 permutations. In this chapter, we introduce our conventions and
notation, specify the 7 permutations underlying K and the K sponge functions.
We also give conventions for naming parts of the K state.
1.1.1 Bitstrings
We denote the length in bits of a bitstring M by | M |. A bitstring M can be considered as a
sequence of blocks of some fixed length x, where the last block may be shorter. The number
of blocks of M is denoted by | M | x . The blocks of M are denoted by Mi and the index ranges
from 0 to | M | x − 1.
We denote the set of all bitstrings including the empty string by Z2∗ and excluding the
empty string by Z2+ . The set of infinite-length bitstrings is denoted by Z2∞ .
7 / 69
The K reference 1. K specifications
4 4
θ : a[ x ][y][z] ← a[ x ][y][z] + ∑ a[ x − 1][y′ ][z] + ∑ a[ x + 1][y′ ][z − 1],
′
y =0 ′
y =0
ρ : a[ x ][y][z] ← a[ x ][y][z − (t + 1)(t + 2)/2],
( )t ( ) ( )
0 1 1 x
with t satisfying 0 ≤ t < 24 and = in GF(5)2×2 ,
2 3 0 y
or t = −1 if x = y = 0,
( ) ( ) ( ′)
′ ′ x 0 1 x
π: a[ x ][y] ← a[ x ][y ], with = ,
y 2 3 y′
χ: a[ x ] ← a [ x ] + ( a [ x + 1] + 1) a [ x + 2],
ι: a ← a + RC[ir ].
The additions and multiplications between the terms are in GF(2). With the exception of
the value of the round constants RC[ir ], these rounds are identical. The round constants are
given by (with the first index denoting the round number)
RC[ir ][0][0][2 j − 1] = rc[ j + 7ir ] for all 0 ≤ j ≤ ℓ,
and all other values of RC[ir ][ x ][y][z] are zero. The values rc[t] ∈ GF(2) are defined as the
output of a binary linear feedback shi register (LFSR):
( )
rc[t] = x t mod x8 + x6 + x5 + x4 + 1 mod x in GF(2)[ x ].
8 / 69
1. K specifications The K reference
This specifies K [r, c] for any combination of r > 0 and c such that r + c is a width
supported by the K - f permutations.
The default value for r is 1600 − c and the default value for c is 576:
Claim 1. The expected success probability of any a ack against K [r, c] with a workload equiv-
alent to N calls to K - f [r + c] or its inverse shall be smaller than or equal to that for a random
oracle plus
( )
1 − exp − N ( N + 1)2−(c+1) .
We exclude here weaknesses due to the mere fact that K - f [r + c] can be described com-
pactly and can be efficiently executed, e.g., the so-called random oracle implementation impossibility
[8, Section “The impossibility of implementing a random oracle”].
Note that the claimed capacity is equal to the capacity used by the sponge construction.
9 / 69
The K reference 1. K specifications
10 / 69
1. K specifications The K reference
11 / 69
The K reference 1. K specifications
12 / 69
Chapter 2
The K - f permutations
This chapter discusses the properties of the K - f permutations that are relevant for the
security of K . A er discussing some structural properties, we treat the different map-
pings that make up the round function. This is followed by a discussion of differential and
linear cryptanalysis to motivate certain design choices. Subsequently, we briefly discuss the
applicability of a number of cryptanalytic techniques to K -f.
Definition 3. The z-period of a state a is the smallest integer d > 0 such that:
13 / 69
The K reference 2. The K - f permutations
• A state a with z-period d can be represented by the lane size w, its z-period d, and its d
first slices a[.][.][z] with z < d. We call this the z-reduced representation of a.
• The number of states with z-period d is zero if d does not divide w and fully determined
by d only, otherwise.
• For w values that are a power of two (the only ones allowed in K ), the state space
consists of the states with z-period 1, 2, 22 up to 2ℓ = w.
• The number of states with z-period 1 is 225 . The number of states with z-period 2d for
d d −1
d ≥ 1 is 22 25 − 22 25 .
• There is a one-to-one mapping between the states a′ with z-period d for any lane length
w that is a multiple of d and the states a with z-period d of lane length d: a′ [.][.][z] =
a[.][.][z mod d].
14 / 69
2. The K - f permutations The K reference
with rotate instructions. Otherwise a number of shi and bitwise Boolean instructions must
be combined or bit-interleaving can be applied [10].
In this section we discuss the difference propagation and input-output correlation prop-
erties of the different mappings. We refer to [8, Sections “Differential cryptanalysis” and
“Linear cryptanalysis”] for an introduction of the terminology and concepts.
2.3.1 Properties of χ
Figure 2.1 contains a schematic representation of χ and Algorithm 2 its pseudocode.
Algorithm 2 χ
for y = 0 to 4 do
for x = 0 to 4 do
A[ x, y] = a[ x, y] ⊕ ((NOT a[ x + 1, y]) AND a[ x + 2, y])
end for
end for
15 / 69
The K reference 2. The K - f permutations
• If ai′ ai′+1 ai′+2 ai′+3 ∈ {·100, ·11·, 001·}, extend the basis with δ(i ).
• If ai′ ai′+1 ai′+2 ai′+3 = ·101, extend the basis with δ(i, i + 1).
16 / 69
2. The K - f permutations The K reference
We characterize the linear affine variety with an offset U ′ and a basis ⟨c j ⟩ and build the
offset and basis by running over the output mask. First initialize the offset to 0 and the basis
to the empty set. Then for each of the 1-runs as as+1 . . . as+ℓ−1 do the following:
• As long as ai ai+1 = 11 extend the basis with δ(i + 1, i + 3) and δ(i + 2), add 2 to i and
continue.
2.3.2 Properties of θ
Figure 2.2 contains a schematic representation of θ and Algorithm 3 its pseudocode.
Algorithm 3 θ
for x = 0 to 4 do
C [ x ] = a[ x, 0]
for y = 1 to 4 do
C [ x ] = C [ x ] ⊕ a[ x, y]
end for
end for
for x = 0 to 4 do
D [ x ] = C [ x − 1] ⊕ ROT(C [ x + 1], 1)
for y = 0 to 4 do
A[ x, y] = a[ x, y] ⊕ D [ x ]
end for
end for
The θ mapping is linear and aimed at diffusion and is translation-invariant in all direc-
tions. Its effect can be described as follows: it adds to each bit a[ x ][y][z] the bitwise sum of
the parities of two columns: that of a[ x − 1][·][z] and that of a[ x + 1][·][z − 1]. Without θ, the
K - f round function would not provide diffusion of any significance. The θ mapping
has a branch number as low as 4 but provides a high level of diffusion on the average. We
refer to Section 2.4.3 for a more detailed treatment of this.
In fact, we have chosen θ for its high average diffusion and low gate count: two XORs
per bit. Thanks to the interaction with χ each bit at the input of a round potentially affects 31
bits at its output and each bit at the output of a round depends on 31 bits at its input. Note
that without the translation of one of the two sheet parities this would only be 25 bits.
17 / 69
The K reference 2. The K - f permutations
y z z
Here the coefficient of the monomial xi y j zk denotes the value of bit a[i ][ j][k]. The exponents
i and j range from 0 to 4 and the exponent k ranges from 0 to w − 1. In this representa-
tion a translation τ [t x ][ty ][tz ] corresponds with the multiplication by the monomial x tx yty ztz
modulo the three polynomials 1 + x5 , 1 + y5 and 1 + zw . More exactly, the polynomial rep-
resenting the state is an element of a polynomial quotient ⟨ ring defined by ⟩the polynomial
ring over GF(2)[ x, y, z] modulo the ideal generated by 1 + x5 , 1 + y5 , 1 + zw . A translation
corresponds with multiplication by x tx yty ztz in this quotient ring. The z-period of a state a
is d if d is the smallest nonzero integer such that 1 + zd divides a. Let a′ be the polynomial
corresponding to the z-reduced state of a, then a can be wri en as
1 + zw
a = (1 + zd + z2d + . . . + zw−d ) × a′ = × a′ .
1 + zd
When the state is represented by a polynomial, the mapping θ can be expressed as the
multiplication (in the quotient ring defined above) by the following polynomial :
( ) 4
1 + y5
1 + ȳ x + x4 z with ȳ = ∑ yi = 1+y
. (2.1)
i =0
The inverse of θ corresponds with the multiplication by the polynomial that is the inverse
of polynomial (2.1). For w = 64, we have computed this with the open source mathematics
so ware SAGE [38] a er doing a number of manipulations. First, we assume it is of the form
1 + ȳQ with Q a polynomial in x and z only:
( ) ⟨ ⟩
1 + ȳ( x + x4 z) × (1 + ȳQ) = 1 mod 1 + x5 , 1 + y5 , 1 + z64 .
The inverse of 1 + x + x4 z can be computed with a variant of the extended Euclidian algo-
rithm for polynomials in multiple variables. At the time of writing this was unfortunately
18 / 69
2. The K - f permutations The K reference
not supported by SAGE. Therefore, we reduced the number of variables to one by using the
change of variables t = x −2 z. We have x = t192 and x4 z = t193 , yielding:
−1
Q = 1 + (1 + t192 + t193 ) mod (1 + t320 ) .
∑ u[x][y][z]b[x][y][z] = ∑ v[x][y][z]a[x][y][z] .
x,y,z x,y,z
Filling in the value of b[ x ][y][z] from the specification of θ in [5] and working this out yields:
∑ u[x][y][z]b[x][y][z] =
x,y,z
( )
∑ u[ x ][y][z] + ∑ u[ x + 1][y′ ][z] + ∑ u[ x − 1][y′ ][z + 1] a[ x ][y][z]
x,y,z y′ y′
It follows that:
2.3.3 Properties of π
Figure 2.3 contains a schematic representation of π and Algorithm 4 its pseudocode.
Note that in an efficient program π can be implemented implicitly by addressing.
19 / 69
The K reference 2. The K - f permutations
Algorithm 4 π
for x = 0 to 4 do
for(y =) 0 to(4 do) ( )
X 0 1 x
=
Y 2 3 y
A[ X, Y ] = a[ x, y]
end for
end for
Figure 2.3: π applied to a slice. Note that x = y = 0 is depicted at the center of the slice.
20 / 69
2. The K - f permutations The K reference
The mapping π is a transposition of the lanes that provides dispersion aimed at long-
term diffusion. Without it, K - f would exhibit periodic trails of low weight. π operates
in a linear way on
(0 1) the coordinates ( x, y): the lane in position ( x, y) goes to position ( x, y) MT ,
with M = 2 3 a 2 by 2 matrix with elements in GF(5). It follows that the lane in the origin
(0, 0) does not change position. As π operates on the slices independently, it is translation-
invariant in the z-direction. The inverse of π is defined by M−1 .
Within a slice, we can define 6 axes, where each axis defines a direction that partitions the
25 positions of a slice in 5 sets:
The x axis is just the row through the origin, the y axis is the column through the origin, etc.
There are many matrices that could be used for π. In fact, the invertible 2 by 2 matrices
with elements in GF(5) with the matrix multiplication form a group with 480 elements con-
taining elements of order 1, 2, 3, 4, 5, 6, 8, 10, 12, 20 and 24. Each of these matrices defines
a permutation on the 6 axes, and equivalently, on the 6 directions. Thanks to its linearity,
the 5 positions on an axis are mapped to 5 positions on an axis (not necessarily the same).
Similarly, the 5 positions that are on a line parallel to an axis, are mapped to 5 positions on
a line parallel to an axis.
For π we have chosen a matrix that defines a permutation of the axes where they are in a
single cycle of length 6 for reasons explained in Section 2.4.6. Implementing π in hardware
requires no gates but results in wiring.
As π is a linear function, a mask u at the output propagates to the mask v at the input
with v = π T (u) (see Section 2.3.2.2). Moreover, we have π T = π −1 , yielding u = π (v). This
follows directly from the fact that π is a bit transposition and that subsequently its matrix is
orthogonal: MT M = I.
2.3.4 Properties of ρ
Figure 2.4 contains a schematic representation of ρ, while Table 2.1 lists its translation offsets.
Algorithm 5 gives pseudocode for ρ.
Algorithm 5 ρ
A[0,
( )0] =( a[)0, 0]
x 1
=
y 0
for t = 0 to 23 do
A[ x,
( )y] =
( ROT)( a(
[ x,)
y], (t + 1)(t + 2)/2)
x 0 1 x
=
y 2 3 y
end for
21 / 69
The K reference 2. The K - f permutations
Figure 2.4: ρ applied to the lanes. Note that x = y = 0 is depicted at the center of the slices.
The mapping ρ consists of translations within the lanes aimed at providing inter-slice
dispersion. Without it, diffusion between the slices would be very slow. It is translation-
invariant in the z-direction. The inverse of ρ is the set of lane translations where the constants
are the same but the direction is reversed.
The 25 translation constants are the values defined by i (i + 1)/2 modulo the lane length.
It can be proven that for any ℓ, the sequence i (i + 1)/2 mod 2ℓ has period 2ℓ+1 and that any
sub-sequence with n2ℓ ≤ i < (n + 1)2ℓ runs through all values of Z2ℓ . From this it follows
that for lane lengths 64 and 32, all translation constants are different. For lane length 16,
9 translation constants occur twice and 7 once. For lane lengths 8, 4 and 2, all translation
constants occur equally o en except the translation constant 0, that occurs one time more
o en. For the mapping of the (one-dimensional) sequence of translation constants to the
lanes arranged in two dimensions x and y we make use of the matrix of π. This groups
the lanes in a cycle of length 24 on the one hand and the origin on the other. The non-zero
translation constants are allocated to the lanes in the cycle, starting from (1, 0).
ρ is very similar to the transpositions used in R G [4], P [21] and S -
R U [20]. In hardware its computational cost corresponds to wiring.
As ρ is a linear function, a mask u at the output propagates to the mask v at the input
with v = ρT (u) (see Section 2.3.2.2). Moreover, we have ρT = ρ−1 , yielding u = ρ(v). This
follows directly from the fact that ρ is a bit transposition and that subsequently its matrix is
orthogonal: MT M = I.
2.3.5 Properties of ι
The mapping ι consists of the addition of round constants and is aimed at disrupting sym-
metry. Without it, the round function would be translation-invariant in the z direction and
all rounds would be equal making K - f subject to a acks exploiting symmetry such as
slide a acks. The number of active bit positions of the round constants, i.e., the bit positions
22 / 69
2. The K - f permutations The K reference
in which the round constant can differ from 0, is ℓ + 1. As ℓ increases, the round constants
add more and more asymmetry.
The bits of the round constants are different from round to round and are taken as the
output of a maximum-length LFSR. The constants are only added in a single lane of the state.
Because of this, the disruption diffuses through θ and χ to all lanes of the state a er a single
round.
In hardware, the computational cost of ι is a few XORs and some circuitry for the gener-
ating LFSR. In so ware, it is a single bitwise XOR instruction.
23 / 69
The K reference 2. The K - f permutations
Note that the way B( ai ) is formed depends on whether we consider differential or linear
trails. Moreover, the meaning of λ depends on whether we consider differential or linear
trails.
Consider now the set obtained by applying λ to all elements of B( ai ). Thanks to the
linearity of λ this is again a linear affine variety and we denote it by A( ai ).
We now define a ℓ-round trail Q by a sequence of state pa erns ai with 0 ≤ i ≤ ℓ. Every
ai denotes a state pa ern before χ and ai must be compatible with ai−1 , i.e., ai ∈ A( ai−1 ). We
use bi to denote the pa erns a er χ, i.e., ai+1 = λ(bi ). So we have:
χ λ χ λ χ λ
a0 → b0 → a1 → b1 → a2 → b2 → . . . aℓ . (2.3)
wr ( Q ) = ∑ wr ( ai ) .
0≤i <ℓ
Note that the restriction weight of the last difference aℓ does not contribute to that of the
trail. Hence the weight of any ℓ-round trail is fully determined by its ℓ first differences. For
weight values well below the width of the permutation, a good approximation for the DP of
a trail is given by DP( Q) ≈ 2−wr (Q) . If wr ( Q) is near the width b, this approximation is no
longer valid due to the fact that the cardinality of a trail is an integer. While the mapping ι
has no role in the existence of differential trails, it does in general impact their DP. For trails
with weight above the width, it can make the difference between having cardinality zero or
non-zero.
The correlation weight of a linear trail over an iterative mapping determines its contri-
bution to a correlation between output and input defined by the masks a0 and aℓ . The corre-
lation weight of a trail is given by
wc ( Q ) = ∑ wc ( ai ) .
0≤i <ℓ
Here also the correlation weight of aℓ does not contribute and hence the weight of any ℓ-
round trail is fully determined by its ℓ first masks. The magnitude of the correlation contri-
bution of a trail is given by 2−wc (Q) . The sign is the product of the correlations over the χ and
ι steps in the trail. The sign of the correlation contribution of a linear trail hence depends on
the round constants.
In our analysis we focus on the weights of trails. As the weight of a ℓ-round trail is
determined by its first ℓ pa erns, in the following we will ignore the last pa ern and describe
ℓ-round trail with only ℓ pa erns ai , namely a0 to aℓ−1 .
24 / 69
2. The K - f permutations The K reference
The mapping θ is there to provide diffusion. As said, it can be expressed as follows: add to
each bit a[ x ][y][z] the bitwise sum of the parities of two columns: that of a[ x − 1][·][z] and
that of a[ x + 1][·][z − 1]. From this we can see that for states in which all columns have even
parity, θ is the identity. We call this set of states the column parity kernel or CP-kernel for short.
The size of the CP-kernel is 220w as there are in total 2b = 225w states and there are 25w
independent parity conditions. The kernel contains states with Hamming weight values as
low as 2: those with two active bits in a single column. Due to these states, θ only has a
branch number (expressed in Hamming weight) of 4.
The low branch number is a consequence of the fact that only the column parities prop-
agate. One could consider changing θ to improve the worst-case diffusion, but this would
significantly increase the computational cost of θ as well. Instead, we have chosen to address
the CP-kernel issue by carefully choosing the mapping π.
We can compute from a 25w-bit state its 5w-bit column parity pa ern. These pa erns par-
tition the state space in 25w subsets, called the parity classes, with each 220w elements. We
can now consider the branch number restricted to the states in a given parity class. As said,
the minimum branch number that can occur is 4 for the CP-kernel, the parity class with the
all-zero column parity pa ern. Over all other parity classes, the branch number is at least
12.
Note that for states where all columns have odd parity, θ adds 0 to every bit and also acts
as the identity. However, the Hamming weight of states in the corresponding parity class is
at least 5w resulting in a branch number of 10w.
Now we will have a look at minimum weights for trails with one and two rounds. The
minimum weight for a one-round differential trail ( a0 ) is obtained by taking a difference a0
with a single active bit and has weight 2. For a linear trail this is obtained by a mask a0 with
a single active bit or two neighboring active bits in the same row, and the weight is also 2.
This is independent of the width of K -f.
For the minimum weight of two-round trails we use the following property of χ: if a
difference before χ restricted to a row has a single active bit, the same difference is a possible
difference a er χ. Hence for difference with zero or one active bits per row, χ can behave as
the identity. Similarly, for masks with zero or one active bits per row, χ can behave as the
identity. We call such trails in which the pa erns at the input and output of χ are the same,
χ-zero trails. Note that all pa erns in a χ-zero trail are fully determined by the first pa ern
a0 .
For all widths, the two-round trails with minimum weight are χ-zero trails. For a differ-
ential trail, we choose for a0 a difference with two active bits that are in the same column. Af-
ter χ the difference has not changed and as it is in the CP-kernel, it goes unchanged through
θ as well. The mappings π and ρ move the two active bits to different columns, but in no
case to the same row. This results in a value of a1 with two active bits in different rows. As
the weight of both a0 and a1 is 4, the resulting trail has weight 8. For linear trails, the two
active bits in a0 must be chosen such that a er ρ and π they are in the same column. with
a similar reasoning it follows that the minimum trail weight is also 8. Note that the low
weight of these trails is due to the fact that the difference at the input of θ in round 0 is in the
CP-kernel.
25 / 69
The K reference 2. The K - f permutations
with r [ x ][y] denoting the translation offset of ρ in position ( x, y). They can be converted to
the following two conditions:
In any case z0 can be freely chosen, and this determines z2 . Subtracting these two equations
eliminates z0 and z2 and results in:
26 / 69
2. The K - f permutations The K reference
for Equation (2.5), there are 2ℓ pa erns a0 , one for each choice of z0 . Second, if Equation (2.5)
′
is not satisfied for ℓ but it is for some ℓ′ < ℓ, it implies a pa ern a0 with 2ℓ−ℓ 4 points rather
than 4 for which both a0 and π (ρ( a0 )) are in the kernel.
These pa erns can be generalized by extending the number of active bits: a pa ern a0
with both a0 and π (ρ( a0 )) in the kernel can be constructed by arranging 2e points in a cycle in
the ( x, y) plane and giving the appropriate z-coordinates. In such a cycle each combination
of points {2i, 2i + 1} are in the same sheet and each combination of points {2i + 1, 2i + 2}
are in the same plane. We call such a cycle of 2e ( x, y) positions a kernel vortex V.
For the z coordinates, the conditions that the points {2i, 2i + 1} are in the same column
in a0 and the points {2i + 1, 2i + 2} are in the same column in a1 results in 2e conditions.
Similar to the rectangle case, these conditions only have a solution if the ρ rotation constants
in the lanes of the cycle satisfy a condition. For a given kernel vortex V, we define its depth
d(V ) as:
2e−1
d (V ) = ∑ (−1)i r [point i ]. (2.6)
i =0
Now, the vortex results in a valid pa ern a0 if d(V ) mod w = 0. We call the largest power
of 2 dividing d(V ) the character of the vortex c(V ). If d(V ) = 0, we say its character is
c(V ) = ∞. Summarizing, a vortex V defines a valid pa ern a0 with 2e active bits for lane
length w ≤ c(V ). For constructing low-weight 3-round trails, it suffices to find vortices with
small e and large character: given a vortex V it results in a 3-round trail with weight 12e
for all values of 2ℓ ≤ c(V ) and with weight 12e2ℓ /c(V ) for all values of 2ℓ > c(V ) (using
symmetric trails of period c(V )).
As the length of vortices grows, so does their number. There are 600 vortices of length
6, 8400 of length 8 and 104040 of length 10. The character c(V ) over these vortices has an
exponential distribution: about half of them has character 1, 1/4 have character 2, 1/8 have
character 4 and so on. It follows that as their length 2e grows, there are more and more
vortices that result in valid pa ern a0 with 2e active bits, even for lane length 64.
Moreover, one can construct pa erns a0 containing two or more vortices, provided that
they do not result in a row with two active bits in either a0 or a1 . The character of such a
combination is just the minimum of the characters of its component vortices. Clearly, due
the large number of kernel vortices, it is likely that there are three-round trails with low
weight for any choice of ρ and π. For our choice of π and ρ, the vortex that leads to the
3-round trail with the smallest weight for K - f is one of length 6 and character 64. It
results in a 3-round trail with weight 36.
27 / 69
The K reference 2. The K - f permutations
character c(V ) and fix the z coordinates of all points but one. We will now study the impli-
cations of the grouping in a2 on the ( x, y) coordinates. Grouping in columns (sheets) in a2
implies grouping in planes in a1 and subsequently grouping in rising 1-slopes in a0 .
For the z-coordinates this results in 3 additional conditions: points 1 and 4, points 2 and
5 and points 3 and 0 must have the same z-coordinate in a2 . Similar to Equation (2.4) these
conditions are equalities modulo 2ℓ . For each of the equations, the a priori probability that it
is satisfied for a given value of 2ℓ is 2−ℓ . With each of these equations we can again associate
a character: the largest value w that is a power of two for which the equation is satisfied. The
4-round character (i.e. leading to a0 , a1 and a2 all three in the kernel) of the vortex in this
context is now the minimum of the 3-round character (i.e. leading to both a0 and a1 in the
kernel) of the vortex and the characters of the three additional equations. The probability
that the 4-round character is larger than 2ℓ is approximately 2−4(ℓ+1) . It turns out that for
our choice of π and ρ, 8 of the 50 candidate vortices have 4-round character 2 and the others
have all 4-round character 1.
The conditions on the ( x, y) coordinates imply that only vortices are suited that have an
even number of active points in each sheet, each plane and each rising 1-slope. This limits
the number of suitable vortices of length 6 to 50, of length 8 to 300, of length 10 to 4180 and
of length 12 to 53750. To illustrate this, let us now study the number of activity pa erns in
the ( x, y) coordinates of a0 assuming there is only a single active bit in each lane. In total
there are 225 − 1 nonzero pa erns. If we impose the pa ern to be in the CP-kernel, the parity
of each sheet must be even, resulting in 5 independent linear equations. Hence there are
220 − 1 pa erns in the kernel. Additionally requiring a1 to be in the kernel imposes that the
number of points in each plane of a0 must be even. This adds 5 parity conditions. However,
one is redundant with the ones due to a0 as the total parity of the activity pa ern over the
state is even. Hence there are 216 − 1 such pa erns. Additionally requiring a2 to be in the
kernel imposes that the number of points in each rising 1-slope of a0 must be even. This
adds again 5 new parity condition, with one of them redundant and reduces the number of
possible pa erns to 212 − 1. Since π runs through all directions, adding more rounds results
in 28 − 1, and 24 − 1 and finally 0 pa erns. It follows that the range of possible activity
pa erns shrinks exponentially as the number of rounds grows.
This is the main reason for choosing a π that runs through all axes in a single cycle.
Consider a π that would map sheets to rising 1-slopes and rising 1-slopes back to sheets. For
such a π there would be 216 − 1 activity pa erns with a0 , a1 and a2 in the kernel. Moreover,
this number would not decrease for more rounds and periodic χ-zero trails of low weight
might appear.
When trying vortices with length above 6, the conditions on the z coordinates can be more
involved. If in a particular sheet of a2 the number of active points is 2, the condition is the
same as for the case described above: their z coordinates should match. However, if there
are 4, 6 or any even number of active points, there are several ways for them to be grouped in
different columns. In general a character can be computed per sheet and the character of the
complete structure is the minimum of all these characters. The character for a given sheet
can be computed in a recursive way. The probability that an active sheet has character 1 is
1/2. For larger characters, the probability decreases faster with growing number of active
bits in the character.
We have done tests for vortex lengths up to 14 and for constructions making use of two
vortices totaling to about 1 million valid a0 pa erns. The vast majority have character 1, less
than 13000 have character 2, 103 have character 4 and one has character 8. This last one is
based on vortex of length 8 and it results in a 4-round trail with weight 512 in K - f [1600].
28 / 69
2. The K - f permutations The K reference
29 / 69
The K reference 2. The K - f permutations
is of the order DP−2 LP−2 with DP the differential probability of the distinguisher’s
differential and LP the square of the distinguisher’s correlation. If we assume the
differentials are dominated by a single low-weight differential trail, we have DP ≈
2−wr (Qd ) . Additionally, if we assume the correlation is dominated by a single low-
weight linear trail, we have DP ≈ 2−wc (Ql ) . This gives for the number of required
pairs: 22(wr (Qd )+wc (Ql )) . The number of required pairs to exploit a trail in a simple dif-
ferential or linear a ack is of the order 2wc (Q) . Hence, over a number of rounds, the
differential-linear distinguisher is more powerful than a simple differential or linear
distinguisher if wr ( Qd ) + wc ( Ql ) < wc ( Q)/2. Where Q is a trail over all rounds, Qd
a trail of the first n rounds and Ql a trail over the remaining rounds. As we expect in
the K - f variants with large width and a low number of rounds, the minimum
trail weight tends to grow exponentially, and the chaining of two half-length trails is
favored over a single full-length trail.
• (Amplified) Boomerang [39, 28] and rectangle a acks [11]: These a acks chain (sets of)
differentials over a small number of rounds to construct distinguishers over a larger
number of rounds. These are also likely candidates for good structural distinguishers,
for the same reason as differential-linear ones.
• Integral cryptanalysis (Square a acks) [22]: this type of cryptanalysis lends itself very
well to ciphers that treat the state in blocks. It was applied to bit-oriented ciphers in
[42]. Based on the findings of that paper we estimate that it will only work on reduced-
round versions of K - f with three to four rounds.
In this section we have limited ourselves to the construction of structural distinguishers.
We have not discussed how these distinguishers can be used to a ack the sponge function
making use of the permutation. In [8, Section “Some structural distinguishers”], we discuss
the applicability of structural distinguishers when a acking sponge functions.
30 / 69
2. The K - f permutations The K reference
tion of structural distinguishers and the second one is an algebraic approach, similar to the
one presented in Section 2.5. A possible third approach is the intelligent combination of ex-
ploiting a structural distinguisher and algebraic techniques. In our opinion, the strength in
keyed modes depends on the absence of good structural distinguishers and the difficulty of
algebraically solving sets of equations.
31 / 69
The K reference 2. The K - f permutations
32 / 69
Chapter 3
Trail propagation in K -f
Definition 4. The Hamming weight of a pa ern a is the number of active bits in the pa ern and
is denoted by || a||.
For a generic definition of the restriction weight and the correlation weight we refer to [8,
Sections “Differential cryptanalysis” and “Linear cryptanalysis”]. These two weights relate
to the properties of χ, which are detailed in Section 2.3.1. Since χ operates on each row
independently, the restriction and correlation weights of a pa ern can be computed row per
row and the results are summed. The weights for all row pa erns are listed explicitly in
Tables 3.1 and 3.2.
Definition 5. The (propagation) weight of a pa ern a, denoted by w( a), is a generic term for either
the restriction weight or the correlation weight of a pa ern before χ. Since χ operates on rows, the
pa ern a must consist of full rows implying that the weight is only defined for states, slices, planes
and rows.
Note that the size of the linear affine varieties B( ai ) and A( ai ) (see Section 2.3.1) is deter-
mined by the propagation weight of ai :
33 / 69
The K reference 3. Trail propagation in K -f
Difference a wr ( a ) wrev
r ( a) || a|| ∥ a∥row
00000 0 0 0 0
10000 2 2 1 1
11000 3 2 2 1
10100 3 2 2 1
11100 4 2 3 1
11010 3 3 3 1
11110 4 3 4 1
11111 4 3 5 1
Mask a wc ( a ) wrev
c ( a) || a|| ∥ a∥row
00000 0 0 0 0
10000 2 2 1 1
11000 2 2 2 1
10100 4 2 2 1
11100 4 2 3 1
11010 4 2 3 1
11110 4 2 4 1
11111 4 4 5 1
Definition 6. For a pa ern b a er χ, we define the minimum reverse weight wrev (b) as the min-
imum weight over all compatible a. Namely,
Definition 7. For a pa ern a before (or a er) χ, the number of active rows, denoted by ∥ a∥row is
simply the number of rows whose value is non-zero. This weight applies to states, slices, planes and
rows.
The different kinds of weight for all row pa erns are given in Tables 3.1 and 3.2. We now
give some relations between the various kinds of weights. The following bounds relate the
Hamming weight to the weight:
⌊ ⌋
|| a||
ŵ(|| a||) , || a|| − + [1 if || a|| = 1 (mod 5)] ≤ w( a) ≤ 2|| a||,
5
⌈ ⌉ ⌊ ⌋
w( a ) 5w( a)
≤ || a|| ≤ .
2 4
34 / 69
3. Trail propagation in K -f The K reference
The following bounds relate the number of active rows to the weight:
2∥ a∥row ≤ w( a) ≤ 4∥ a∥row ,
⌈ ⌉ ⌊ ⌋
w( a ) w( a )
≤ ∥ a∥row ≤ .
4 2
Given the Hamming weight, the minimum reverse restriction weight can be lower bounded
as follows:
0 if || a|| = 0 (mod 5),
⌊
|| a|| 1 if || a|| = 1 (mod 5),
⌋
wr ( a) ≥ ŵr (|| a||) , 3
rev rev
+ 2 if || a|| = 2 (mod 5),
5
2 if || a|| = 3 (mod 5),
3 if || a|| = 4 (mod 5).
Given the Hamming weight, the minimum reverse correlation weight can be lower bounded
as follows: ⌈ ⌉
|| a||
wc ( a) ≥ ŵc (|| a||) , 2
rev rev
.
4
Other relations on the minimum reverse weight follow:
35 / 69
The K reference 3. Trail propagation in K -f
Definition 10. The θ-effect of a state a before θ is a pa ern E( a)[ x ][z] defined as the result of applying
the operator ȳ( x + x4 z) to the state, or equivalently by applying the operator ( x + x4 z) to its parity,
i.e., E( a)[ x ][z] = P( a)[ x − 1][z] + P( a)[ x + 1][z − 1].
Definition 11. The θ-gap is defined as the Hamming weight of the θ-effect divided by two.
Hence, if the θ-gap of a state at the input of θ is g, the number of affected columns is 2g
and applying θ to it results in 10g bits being flipped.
When a state is in the CP-kernel, the θ-gap is zero. However, the θ-gap is also zero when
the parity is all-one, i.e., when all columns have odd parity before θ.
We have defined the θ-gap using the θ-effect, but it can also be defined using the parity
itself. For this, we need to represent the parity p[ x ][z] differently. We map the ( x, z) coor-
dinates to a single coordinate t as specified in Section 2.3.2.1 (i.e., t goes to ( x, z) = (−2t, t))
and denote the result by p[t].
In this representation, a run is defined as a sequence R of consecutive t-coordinates, R =
{s, s + 1, . . . , s + n − 1}, such that p[s − 1] = 0, p[t] = 1∀t ∈ R and p[s + n] = 0. The
following lemma links the number of runs to the θ-gap.
Lemma 2. To list all ℓ-round trails of weight not higher than Tℓ exhaustively,⌊ it⌋is necessary to
start from all 2-round trails with weight up to (and including) T2 , with T2 = 2Tℓ ℓ if ℓ is even, or
⌊ ⌋
2( Tℓ −2)
T2 = ℓ−1 if ℓ is odd.
36 / 69
3. Trail propagation in K -f The K reference
37 / 69
The K reference 3. Trail propagation in K -f
Definition 14. The Hamming branch number of a parity p before θ is defined as the minimum Ham-
ming branch number over all states with the given parity:
Bh ( p) = min Bh ( a′ ) .
a′ :P( a′ )= p
In a state a′ we can use its parity p to partition its columns a′ [ x ][z] in four kinds: odd
(P( a′ )[ x ][z] = 1) and even (P( a′ )[ x ][z] = 0), combined with affected (E( a′ )[ x ][z] = 1) and
unaffected (E( a′ )[ x ][z] = 0). We can use this to easily compute Bh ( p) for any parity p.
• An unaffected odd column has at least one active bit before θ and is preserved a er it.
Hence, it contributes at least 2 to Bh ( a′ ). As this minimal case can be constructed, the
contribution to Bh ( p) is strictly equal to 2.
• An affected (odd or even) column having n active bits before θ has 5 − n bits a erwards,
hence contributes exactly 5 to Bh ( a′ ) and to Bh ( p).
• An unaffected even column can have zero active bits, hence does not contribute to
Bh ( p).
with g the θ-gap of p, · the componentwise product, 0̄ the all-1 state and uo the number of
unaffected odd columns.
We can now generate all states a′ up to some given propagation branch number and with
given parity p in two phases.
• In a first phase we generate all states a′ with Bh ( a′ ) = Bh ( p). We call those states
branch-parity-minimal.
38 / 69
3. Trail propagation in K -f The K reference
• For each unaffected odd column, put a single active bit. There are 5 possibilities: one
for each positions y.
• For each affected even column, put an even number of active bits. There are 24 possi-
bilities.
• For each affected odd column, put an odd number of active bits. There are in 24 possi-
bilities.
The number of branch-parity-minimal states a′ with given parity p is thus 28g 5| p(1+e)| .
From the monotonicity of the weights it follows that in the set of states a′ with given
parity p, the subset of branch-parity-minimal states contain the states that minimize Bp ( a′ ).
Adding a pair of active bits in a single column of a′ leaves its parity intact and thanks to the
monotonicity cannot decrease Bp ( a′ ). From this, we devise the following strategy to generate
all states a′ with given parity p with Bp ( a′ ) ≤ T2 .
For each branch-parity-minimal state a′ with Bp ( a′ ) ≤ T2 do the following:
• Output a′ .
• Iteratively construct states a′ by adding pairs of active bits in each column, as long as
Bp ( a′ ) ≤ T2 . To avoid duplicates the active bits shall have y coordinates with larger
values than any active bits in the columns.
To generate all states a′ for which Bp ( a′ ) ≤ T2 we must do this for all parities with a small
enough θ-gap. Actually, we can compute a lower bound on Bp ( a′ ) given only P( a′ ). We then
have to consider only those parities for which this bound is lower than or equal to T2 . We
compute it in the following way. First, we consider the Hamming branch number Bh ( p) and
assume that |λ−1 ( a)| = Bh ( p) − n and | a| = n for some value n. Then, we use the bounds
found in Section 3.1 and minimize over n. Note that we have checked that the minimum is
always at n = 1, hence:
= ŵrev ( Bh ( p) − 1) + 2
= ŵrev (10g + 2uo − 1) + 2.
Hence the θ-gap of the parity p imposes a lower bound to the propagation branch number
of a state.
Then, it is possible to determine the maximum θ-gap gmax above which the lower bound
is above T2 . If we further relate gmax to the number of runs in the parity, as in Lemma 1, we
can generate all possible parities we need to consider by generating those with up to gmax
runs.
Notice that both χ and λ are invariant by translation along z. It is thus necessary to keep
only a single member of the states (or parities) in α( T2 ) that are equal modulo the translations
along z.
39 / 69
The K reference 3. Trail propagation in K -f
constructing trails Q′ of which Q is a prefix (resp. suffix). It can also be in both directions,
i.e., adding a number of steps as a prefix and another number of steps as a suffix of Q.
In the forward direction, the general idea is the following. Given the last state aℓ−1 of the
trail Q, we characterize the affine space A( aℓ−1 ) as an offset and a basis, i.e.,
A( aℓ ) = s + ⟨t1 , t2 , . . . , tw(aℓ ) ⟩ .
We can then loop through the affine space, produce the state values aℓ and check the weight
w( aℓ ). If the weight is low enough for the extended trail to be interesting in the search, we
can append aℓ to Q and recursively continue the search from there if necessary.
In the backward direction, we cannot use an affine space representation of a−1 as a func-
tion of a0 . As the weight is determined by the to-be-found state a−1 , we can list, for each
active row of b0 , the possible input rows and their corresponding weight in increasing or-
der. The weight of a−1 is the sum of the weights of each individual row, and we can take
advantage of this to choose input rows such that the weight stays below or equal to a given
threshold. We set each active row to the input row with lowest weight, the total weight
w( a−1 ) being equal to wrev (b0 ) for the output state b0 . Then, we can generate all other input
states a−1 by looping through the input rows, locally knowing up to which weight we can
go.
• For 4 rounds, the differential trail with minimum weight has weight 30. For the small
number of trails found up to weight 36, we checked that these trails cannot be chained
together. Hence, this guarantees that a 8-round differential trail has at least weight 36 +
37 = 73. For 5 and 6 rounds, the best trails we have found so far have weight 54 and 85,
respectively (but these do not provide bounds). For the 16 rounds of K - f [100],
we can guarantee that there are no differential trails of weight below 2 × 73 = 146.
• For 4 rounds, the linear trail with minimum weight has weight 38. For 5 and 6 rounds,
the best trails we have found so far have weight 66 and 94, respectively (but these do
not provide bounds). For the 16 rounds of K - f [100], we can guarantee that there
are no linear trails of weight below 4 × 38 = 152.
40 / 69
3. Trail propagation in K -f The K reference
Number DC LC
of rounds w=1 w=2 w=4 w=8 w=1 w=2 w=4 w=8
2 8 8 8 8 8 8 8 8
3 16 18 19 20 16 16 20 20
4 23 29 30 46 24 30 38 46
5 30 42 ≤ 54 30 40 ≤ 66
6 37 54 ≤ 85 38 52 ≤ 94
For w = 8, the search was complete up to weight 49 and 48 for 4 rounds, for differential
and linear trails respectively:
• For 4 rounds, the differential trail with minimum weight has weight 46. For the small
number of trails found up to weight 49, we checked that these trails cannot be chained
together. Hence, this guarantees that a 8-round differential trail has at least weight
49 + 50 = 99. For the 18 rounds of K - f [200], we can guarantee that there are no
differential trails of weight below 2 × 99 + 8 = 206.
• For 4 rounds, the linear trail with minimum weight has weight 46. For the small num-
ber of trails found up to weight 48, we checked that these trails cannot be chained
together. Hence, this guarantees that a 8-round differential trail has at least weight
48 + 50 = 98. For the 18 rounds of K - f [200], we can guarantee that there are no
linear trails of weight below 8 × 98 + 8 = 204.
41 / 69
The K reference 3. Trail propagation in K -f
We call such a slice tame and a state with only tame slices also tame. For slice pa erns
with few active bits it can be easily verified whether it is tame. A slice with no active bits is
tame, a slice with a single active bit can never be tame and a slice with two active bits is tame
iff the active bits are in the same column. As the number of active bits grows, the proportion
of slice pa erns that are not tame decreases exponentially. As there are only 225 different
slice pa erns, the tameness check can be precomputed and implemented by a simple table-
lookup. Generating all states a1 of a given (small) Hamming weight, that are tame and for
which b0 is in the CP-kernel can be done efficiently.
We can now construct all valid states a1 as the combination of a number of kernel chains.
A kernel chain is set of active bits determined by a sequence of bit positions ci in a1 . A kernel
chain forms a set of active bits with the following properties:
• In position a1 every slice contains exactly two bits of the kernel chain and is tame, except
the slice containing the initial bit c0 and the slice containing the final bit c2n+1 , that each
just contain a single slice and are not tame.
Actually, a kernel chain is a generalization of a kernel vortex. It follows that in b0 , the bits c2i
and c2i+1 are in the same column and in a1 , the bits c2i+1 and c2i+2 are in the same column.
This implies that the total number of kernel chains of a given length 2n starting from a given
position is only 42n−1 . Clearly, any combination of kernel chains is in the CP-kernel in b0 .
Likewise, all slices in a1 that contain only two kernel chain bits (excluding the initial and
final bits) are tame. Now we must arrange the initial and final kernel chain bits such that the
slides in a1 that contain them are tame. The first possibility is that the bits c0 and c2n−1 are in
the same column in a1 : this kernel chain forms a kernel vortex. The second possibility is to
group the initial and final bits of kernel chains in tame knots. We call a slice in a1 with more
than 2 active bits a knot. We construct states a1 by combining kernel chains such that their
initial and final bits are grouped in a set of knots. If all knots are tame, the state is tame. For
a given Hamming weight x, valid states may exist with 0 up to ⌊ x/3⌋ knots.
In our program we first fix the number of knots and their slice positions and then effi-
ciently search for all valid states. Table 3.4 lists the number of valid states a1 (modulo transla-
tion over the z-axis) for all K - f widths and up to a Hamming weight of 14. The question
marks mark the limitations of our search algorithm: we have not yet been able to compute
those values due to time constraints. It can be seen that for a given Hamming weight, overall
the number of valid states decreases with increasing width. For a given width, the number
of valid states increases with increasing Hamming weight.
42 / 69
3. Trail propagation in K -f The K reference
Table 3.4: The number of valid difference pa erns a1 per K - f width and Hamming
weight
Table 3.5: Minimum differential trail weight values of tame 3-round trails per K -f
width and Hamming weight of a1 .
43 / 69
The K reference 3. Trail propagation in K -f
Table 3.6: Minimum differential trail weight values of tame 4-round trails per K -f
width and Hamming weight of pa ern a er first χ
44 / 69
Chapter 4
Analysis of K -f
• Bits in slice (BIS) In this test, the 25 bits of the slice z = 0 are varied. For b > 25, the
remaining b − 25 bits are set to zero.
45 / 69
The K reference 4. Analysis of K -f
Table 4.1: The BIS ANF statistical test on K - f [1600] and its inverse
• Bits in lane (BIL) In this test, the first 25 bits of lane x = y = 0 are varied. This test
applies only to b ≥ 800. The remaining b − 25 bits are set to zero.
• Bits in two lanes, kernel In this test, the first 25 bits of lane x = y = 0 and of lane
( x, y) = (0, 1) are varied simultaneously. The remaining b − 50 bits are set to zero. The
idea behind this test is that θ will behave like the identity in the first round since the
input state is always in the column-parity kernel (see 2.4.3).
• BIS, symmetry in lanes In this test, the 25 bits of the slice z = 0 are varied. The b − 25
other bits are set as a[ x ][y][z] = a[ x ][y][0] so that all lanes contain either all zeroes or all
ones. The output bits a[ x ][y][0] are xored into a[ x ][y][z] for all z > 0. Only the b − 25
output bits with z > 0 are considered for the test—this test applies only when b > 25.
The purpose of this test is discussed in Section 4.1.2.
• BIS, slide This test is like the first BIS test, except that the function tested is differ-
ent. Instead of testing it against K - f [b, nr = n] itself, we test it against the func-
tion slide[b, n] defined in Equation (4.1). The purpose of this test is discussed in Sec-
tion 4.1.3.
The results for K - f [1600] are summarized in Tables 4.1 and 4.2. All results of the
tests can be found in the file ANF-Keccak-f.ods. It is interesting to observe the fast increase of
degree of the monomials that are densely present in the algebraic description of the K -f
permutations. Note that the round function has only degree two and thus no monomial of
degree higher than 2i can appear a er a er i rounds. The degree of the inverse of the round
function is three and thus no monomial of degree higher than 3i can appear a er a er i
inverse rounds.
Taking the worst case among all these tests, the K - f permutations and their inverses
pass the test for the maximum degree tested here (i.e., max(25, b − 1)) a er 6 to 8 rounds,
depending on the width.
46 / 69
4. Analysis of K -f The K reference
Table 4.2: The BIL ANF statistical test on K - f [1600] and its inverse
the pa erns of Q over any non-zero offset in the z direction. If all pa erns in a trail have a
z-period below or equal to d, this implies only d − 1 other trails.
Moreover, a trail for a given width b implies a trail for all larger widths b′ . The pa erns
are just defined by their z-reduced representations and the weight must be multiplied by
b′ /b. Note that this is not true for the cardinality of differential trails and the sign of the
correlation contribution of linear trails, as these do depend on the round constants.
To find a pair in a differential trail of weight W requires the a acker to fulfill W conditions
on the absolute values when following that trail. In the case of a b′ -symmetric case, the
conditions are repeated b′ /b times on translated sets of bits. The question is to determine
whether the symmetry induced by this duplication can be exploited by the a acker, even
with the asymmetry introduced by ι.
In the absence of ι, K - f [b] presented with a symmetric input behaves as b parallel
identical instances of K - f [25]. In such a modified permutation, a symmetric trail with
weight eb would only impose e conditions (on the symmetric absolute values) rather than eb.
To determine how much asymmetry ι introduces on the absolute values, we express the
K - f [b] permutation on a different set of variables and compute the ANF on it. The
change of variables is defined as:
a′ [ x ][y][0] = a[ x ][y][0],
a′ [ x ][y][z] = a[ x ][y][z] ⊕ a[ x ][y][0], z > 0.
In the absence of asymmetry (i.e., without ι), a′ [ x ][y][z], z > 0 remains zero if the input
of the permutation is 1-symmetric, i.e., if a[ x ][y][z] depends only on x and y.
The a acker can try to introduce a symmetric difference and to keep it symmetric through
the rounds. In these new variables, it is equivalent to keeping a′ [ x ][y][z] = 0 for z > 0. By
analyzing the ANF in these new variables, it gives the degree of the equations to solve to
keep the symmetry in the state at a given round by adjusting the input.
The results of these tests can be found in the file ANF-Keccak-f.ods. The maximum degree
to pass test is indicated in the BIS, sym lane columns. To impose dense non-linear equations
to the a acker, K - f [50] to K - f [400] need at least 3 rounds, while K - f [800]
and K - f [1600] need at least 4 rounds. A dense number of monomials with maximum
degree tested here (i.e., max(25, b − 1)) is reached a er 6 rounds for all widths. Similar con-
clusions apply to the inverse of K - f : The maximum degree tested is reached a er 6
rounds for the inverse of K - f [50], 5 rounds for the inverse of K - f [100] and of
K - f [200] and 4 rounds for the other inverses. According to this test, the a acker should
have a very difficult time to keep the differences symmetric a er such a number of rounds.
47 / 69
The K reference 4. Analysis of K -f
where roundi is the round permutation number i. In the absence of ι, the slide[b, n] function
would constantly return zeroes. With ι, it returns the difference between two sets of n rounds
slid by one round.
The results of these tests can be found in the file ANF-Keccak-f.ods. The maximum degree
to pass test is indicated in the BIS, slide columns. The degree increases more slowly than for
other tests such as bits in slice. However, the maximum degree tested here (i.e., max(25, b −
1)) is reached a er 8 rounds for K - f [25] and a er 6 rounds for all other widths. For the
inverse of K - f [25], the maximum degree tested is reached a er 7 rounds and, for the
other inverses, a er 4 rounds.
48 / 69
4. Analysis of K -f The K reference
problem instance. This separation is defined at the sponge level and can be done alphabeti-
cally on the bit names.
We have installed a SAGE server version 1.4 [38] and automated the tests using Python
scripts [18] interpreted by the SAGE server.
There is a variable for every bit at the input of each round and for the output bits, totalling to
b(nr + 1) variables. There is a round equation for each output bit of every round, expressing
the output bit as a Boolean expression of the input bits. Additionally there is an equation for
each input or output bit that is fixed, simply expressing the equality of the corresponding
variable with a binary constant. Hence in total the number of equations is bnr + (b − r ) + n =
b(nr + 1) + n − r.
We use SAGE to solve the CICO problems using Ideals and Gröbner bases [19]. We pro-
vide a short intuitive explanation here and refer to [19] for thorough treatment of Ideals and
Gröbner bases. To solve a CICO problem we do the following:
• Define a ring R of Boolean polynomials, providing the b(nr + 1) variable names and
specifying the so-called term ordering [19].
• Define an ideal over the ring, providing the b(nr + 1) + n − r equations as generator
polynomials.
49 / 69
The K reference 4. Analysis of K -f
is not a polynomial ring, but rather the quotient ring of the polynomial ring over the field
with two elements modulo the field equations x2 = x for each variable x. Therefore, the
usual polynomial data structures seem not to be appropriate for fast Gröbner basis com-
putations. The PolyBoRi authors state that they introduces a specialised data structure for
Boolean polynomials, capable of handling these polynomials more efficiently with respect
to memory consumption and also computational speed.
If the number of equation is smaller than the number of variables, we expect there to be
multiple solutions. If the number of equations is larger than the number of variables, chances
are that there is no solution at all. A priori, the expected number of solutions of a CICO
problem is 2r−n . In our experiments we have focused on the case r = n where we expect to
have one solution on the average and across experiments we expect the number of solutions
to have a Poisson distribution with λ = 1. This is an interesting case as it corresponds with
the CICO problems encountered when searching a (second) pre-image.
We investigated the case n = r for values of r up to 12, values of nr up to 8 and widths
from 25 to 400. We used lexicographical order with the output variables declared first and
the input variables declared last, as from preliminary experiments this turned out to be the
most efficient choice. For each set of parameters, a number of CICO problems was solved
with at least 5 problems resulting in a solution and 5 problems resulting in the absence of a
solution. We arranged the output of SAGE for analysis in the file Keccak-CICO-results.ods.
Analysing this data, we can make the following observations:
• For small values of r PolyBoRi is efficient in computing the Gröbner basis, and this for
all values of nr and width b.
• For certain parameter choices, solving CICO problems that have no solution takes sig-
nificantly less time than CICO problems that have a solution. The difference is espe-
cially large for large widths and small rate values. When the rate increases, the com-
putation times for the two cases (solution and no solution) converge.
• Doubling the width, keeping all other parameters constant also roughly doubles the
computation time. Hence the computation time appears to grows roughly linearly in
the width.
• Increasing the number of rounds from nr to nr + 1, keeping all other parameters con-
stant, results in an increase roughly independent from the value of nr . Hence the com-
putation time appears to grow linearly in the number of rounds.
• The effect of increasing bitrate by 1 from r to r + 1, keeping all other parameters con-
stant, appears to increase the computation time by a factor that weakly increases with
r and the number of rounds. At r = 12 its value is around 3. If we may extrapolate this
behaviour, solving a CICO problem quickly becomes infeasible with this method as r
grows.
Hence for this class of CICO problems the case of a small rate and small output length can be
relatively easily solved. Although surprising at first sight, this poses no threat to the security
of K - f as such a CICO problem can be efficiently solved by exhaustive search for any
permutation. It suffices to try all 2r possible values of the r unknown input bits, apply the
permutation and verify whether the generated output has the correct value in the known bit
positions.
50 / 69
4. Analysis of K -f The K reference
Table 4.3: The ANF statistical test on K - f [25] and its inverse
Aumasson and Khovratovich report in [1] on a empts of solving instances of the CICO prob-
lem for different widths of K - f using a so-called triangulation tool. Solutions were
found for K - f [1600] reduced to three rounds. For more rounds the fast backwards
diffusion in θ apparently prevented solving the CICO problems.
Morawiecki and Srebrny report in [36] on a empts of solving instances of the CICO
problem for different widths of K - f by first expressing the round equations in con-
junctive normal form (CNF) and then run SAT solvers on the resulting set of equations. The
SAT solver performed be er than exhaustive search for some CICO problem instances of
K - f [1600], K - f [200] and K - f [50] reduced to three rounds. For more rounds
the SAT solvers were less efficient than exhaustive search.
The results of the ANF analysis of K - f [25] are displayed in Table 4.3. Starting from 7
rounds, all monomials up to order 24 exist and appear with a fraction close to one half. Since
K - f [25] is a permutation, the monomial of order 25 does not appear.
51 / 69
The K reference 4. Analysis of K -f
1.E+13
1.E+12
1.E+11
1.E+10
1.E+09
1.E+08
1.E+07
1.E+06
1.E+05
1.E+04
1.E+03
1.E+02
1.E+01
1.E+00
1.E-01
0 2 4 6 8 10 12 14
52 / 69
4. Analysis of K -f The K reference
1.E+12
1.E+11
1.E+10
1.E+09
1.E+08
1.E+07
1.E+06
1.E+05
1.E+04
1.E+03
1.E+02
1.E+01
1.E+00
1.E-01
of pairs is slightly higher than the number of pairs predicted by the weight: 224−17 = 27 . The
3-round trails with weight 16 (see Table 3.3) were not encountered in our sampling.
Figure 4.4 shows the distribution for the four-round version of K - f [25]. The sam-
pling does no longer allow to distinguish the distribution from that of a random permutation.
The largest cardinality encountered is now 12. The pairs of this differential are in 12 different
trails with weight ranging from 56 to 64. For the 4-round trails with weight 23 (see Table 3.3)
it is not clear whether they were encountered in our sampling: the expected number of pairs
is only 2 and this may have gone unnoticed.
Finally, Figure 4.5 shows the distribution for the 12-round version of K - f [25]. As
expected, the distribution is typical of a random permutation. The maximum cardinality
observed is 12.
53 / 69
The K reference 4. Analysis of K -f
1.E+12
1.E+11
1.E+10
1.E+09
1.E+08
1.E+07
1.E+06
1.E+05
1.E+04
1.E+03
1.E+02
1.E+01
1.E+00
1.E-01
1.E+13
1.E+12
1.E+11
1.E+10
1.E+09
1.E+08
1.E+07
1.E+06
1.E+05
1.E+04
1.E+03
1.E+02
1.E+01
1.E+00
1.E-01
0 2 4 6 8 10 12 14
54 / 69
4. Analysis of K -f The K reference
1.E+13
1.E+12
1.E+11
1.E+10
1.E+09
1.E+08
1.E+07
1.E+06
1.E+05
1.E+04
1.E+03
1.E+02
1.E+01
1.E+00
1.E-01
0 2 4 6 8 10 12 14
adopted a logarithmic scale in the y axis to make the deviations stand out as much as possible.
Figure 4.6 shows that Perm-R exhibits a distribution that follows quite closely the normal
envelope. At its tails the experimental distribution exhibits its discrete nature. Because it is
a permutation, the correlation can only be non-zero in values that are a multiple of 22−b . For
a given correlation value c that is a multiple of 22−b , the a priori distribution of the corre-
sponding value in the histogram is a Poisson distribution with λ given by the value of the
normal envelope in that point. The largest correlation magnitude observed is 0.001226, quite
close to the theoretically predicted value.
Figure 4.7 shows the distribution for the two-round version of K - f [25]: the distri-
bution deviates significantly from the theoretical normal envelope. Additionally, it is zero
for all values that are not a multiple of 2−15 (rather than 2−23 ). This is due to the fact that the
Boolean component functions of K - f [25] have only reached degree 4 a er two rounds,
rather than full degree 24. The largest correlation magnitude encountered is 0.03125 (outside
the scale of the figure). This is the correlation magnitude 2−5 one would obtain by a single
linear trail with weight 10. By measuring the correlation of the same pair of masks for vari-
ants of the two-round version of K - f [25] where different constant vectors are XORed
in between the two rounds, it turns out that the correlation value is either 25 or −2−5 . This
implies that the correlation is the result of a single trail. The 2-round linear trails with weight
8 (see Table 3.3) were apparently not encountered in our sampling.
Figure 4.8 shows the distribution for the three-round version of K - f [25]: the devi-
ation from the theoretical normal envelope becomes smaller. This distribution is zero for all
values that are not a multiple of 2−18 due to the fact that the Boolean component functions
of K - f [25] have only reached degree 8 a er three rounds. The largest correlation mag-
nitude encountered is 0.003479. This is a correlation magnitude that cannot be obtained by
a single linear trail. 3-round linear trails with weight 16 would give correlation magnitude
2−8 ≈ 0.0039. It is quite possible that the observed correlation value is the sum of the (signed)
correlation contributions of some trails, including one with weight 16 and some with higher
weight. By measuring the correlation of this pair of masks in variants of the three-round
version of K - f [25] where different constant vectors are XORed in between the rounds,
we obtain 491 different values. This implies that this correlation has contributions from at
55 / 69
The K reference 4. Analysis of K -f
1.E+09
1.E+08
1.E+07
1.E+06
1.E+05
1.E+04
1.E+03
1.E+02
1.E+01
1.E+00
1.E-01
-0.0014 -0.0012 -0.001 -0.0008 -0.0006 -0.0004 -0.0002 0 0.0002 0.0004 0.0006 0.0008 0.001 0.0012 0.0014
1.E+11
1.E+10
1.E+09
1.E+08
1.E+07
1.E+06
1.E+05
1.E+04
1.E+03
1.E+02
1.E+01
1.E+00
1.E-01
-0.01 -0.008 -0.006 -0.004 -0.002 0 0.002 0.004 0.006 0.008 0.01
56 / 69
4. Analysis of K -f The K reference
1.E+10
1.E+09
1.E+08
1.E+07
1.E+06
1.E+05
1.E+04
1.E+03
1.E+02
1.E+01
1.E+00
1.E-01
-0.004 -0.003 -0.002 -0.001 0 0.001 0.002 0.003 0.004
least 9 trails.
Figure 4.9 shows the distribution for the four-round version of K - f [25]. The shape
of the distribution and the maximum values do no longer allow to distinguish the distribu-
tion from that of a random permutation. The largest correlation magnitude encountered is
0.001196. However, this distribution differs from that of a random permutation because it is
zero for all values that are not a multiple of 2−20 due to the fact that the Boolean component
functions of K - f [25] have only reached degree 16 a er four rounds. By measuring the
correlation of this pair of masks in variants of the four-round version of K - f [25] where
different constant vectors are XORed in between the rounds, we obtain many different val-
ues implying that this correlation is the result of a large amount of trails. Moreover, the value
of the correlation exhibits a normal distribution.
A er 5 rounds the distribution is zero for values that are not a multiple of 2−22 and only
a er 6 rounds this becomes 2−23 .
Finally, Figure 4.10 shows the distribution for the 12-round version of K - f [25]. As
expected, the distribution is typical of a random permutation. The maximum correlation
magnitude observed is 0.001226.
57 / 69
The K reference 4. Analysis of K -f
1.E+10
1.E+09
1.E+08
1.E+07
1.E+06
1.E+05
1.E+04
1.E+03
1.E+02
1.E+01
1.E+00
1.E-01
-0.0014 -0.0012 -0.001 -0.0008 -0.0006 -0.0004 -0.0002 0 0.0002 0.0004 0.0006 0.0008 0.001 0.0012 0.0014
1.E+09
1.E+08
1.E+07
1.E+06
1.E+05
1.E+04
1.E+03
1.E+02
1.E+01
1.E+00
1.E-01
-0.0014 -0.0012 -0.001 -0.0008 -0.0006 -0.0004 -0.0002 0 0.0002 0.0004 0.0006 0.0008 0.001 0.0012 0.0014
58 / 69
4. Analysis of K -f The K reference
two even permutation is an even permutation and that all step mappings of K - f are
even permutations. We cite here a number of arguments we found in [40, Lemma 2]:
• The mappings θ, π and ρ are linear. In fact all invertible linear transformations over Z2b
with b > 2 are even permutations. This follows from the fact that each invertible binary
matrix can be obtained from the identity matrix by elementary row transformations
(binary addition of one row to another row), and that these elementary row transfor-
mations (considered as linear mappings) are permutations with 2b−1 fixed points and
2b−2 cycles of length 2.
59 / 69
The K reference 4. Analysis of K -f
60 / 69
4. Analysis of K -f The K reference
distinguishers. This may be the case for other distinguishers too and so we felt it would be
more appropriate to increase the number of rounds by 2 when doubling the width.
The zero-sum partitions distinguish the 24 rounds of K - f [1600] from a randomly-
chosen permutation, although without implying a distinguisher on K itself [16, 26].
Not increasing the number of rounds, strictly speaking, contradicts the hermetic sponge
strategy. Still, we decided to stick the number of rounds specified by 12 + 2ℓ due to the fact
that these distinguishers can in no way be used to a ack K for many reasons, of which
the following two are the most important (see also [8, Section “The usability of structural
distinguishers”]).
First, the advantage of a zero-sum distinguisher (or partition) is 0 for any number of
queries N to f or f −1 with N smaller than the size of the partition. This means that using
a permutation f that has zero-sum distinguishers has no impact on the RO differentiating
advantage for N below the size of the partition. In the flat sponge claim, no resistance is
claimed for a acks requiring a workload of more than 2c/2 queries to f and the maximum
value for the capacity is c = b − 1. So distinguishers that have zero advantage for N below
2b/2 do not compromise the flat sponge claim. The zero-sum distinguishers for the full 24
rounds of K - f [1600] have zero advantage below something like 21575 queries. Only
structural distinguishers on f that have non-zero advantage below 2800 queries can possibly
qualify as a threat for the security of a sponge function that uses it.
Second, exploiting zero-sum distinguishers would require the adversary to apply inputs
to the sponge function such that the input to f has the values of her choice, for many different
inputs. In the sponge construction, an a acker can not choose the value of bits in the inner
part of the input to f directly, but only influence their value in an indirect way by injecting
bits in the previous iteration of f .
Further discussions about the applicability of the zero-sum distinguishers can be found
in [7].
61 / 69
The K reference 4. Analysis of K -f
• Subset B (with | B| = m) of the digest bit positions, such that for any fixed value of the
message bits not in A, the bits in B have algebraic degree d < n as functions of bits in
A.
If this degree d is sufficiently small, the computation effort of finding (second) pre-images
can be reduced.
This a ack can be applied to a hash function (possibly round-reduced) where a subset
B of the digest bits have a low algebraic degree in a subset A of the message bits of the last
block. The bits in B are only separated from the bits in A by a single compression function
(or permutation) call.
The downside of the a ack is that this workload reduction comes at the cost of memory.
For it to be a reduction, one considers the computational effort not including the cost of mem-
ory access. The memory required for the a ack is m2n bits. This may be reduced somewhat
by some clever programming techniques at the cost of increasing the computational effort.
For K with K - f [1600] reduced to 6, 7 or 8 rounds, the length of the message L
plays no role. The active bits must all be in the last block, so n is limited by the bitrate (minus
the padding). One can tune m and n resulting in different memory-time trade-offs. The ones
reported in [3] are:
• 8 rounds: 2508 bits of memory give a workload reduction by a factor 1.4 (half a bit)
62 / 69
Chapter 5
The purpose of this chapter is to list the design choices and to briefly motivate them, although
further analysis is provided in the subsequent chapters.
Variable-length output It can generate outputs of any length and hence a single function
can be used for different output lengths.
Flexibility Security level can be incremented at the cost of speed by trading in bitrate for
capacity, using the same permutation (or transformation).
Functionality Thanks to its long outputs and proven security bounds with respect to generic
a acks, a sponge function can be used in a straightforward way as a MAC function,
stream cipher and a mask generating function. Thanks to the duplex construction,
a sponge function can be used as a reseedable pseudorandom bit generator and for
efficient authenticated encryption (see [8, Section “Authenticated encryption”]).
To support arbitrary bit strings as input, the sponge construction requires a padding func-
tion. We have chosen the simplest padding rule that allows to use the same permutation in
combination with different bitrate values [8, Section “Optimum security of multi-rate sponge
functions”] without loss of security.
63 / 69
The K reference 5. Design rationale summary
64 / 69
5. Design rationale summary The K reference
State recovery State recovery from a keyed sponge with success probability above N M2−c
with a workload equivalent to N calls to K - f [r + c] and a sequence of queries to
the keyed sponge requiring it to make in total M calls to the permutation.
We list the number of rounds that we estimate to be sufficient to resist these a acks in
Table 5.1. These estimates are based on the results of our preliminary analysis that is treated
in this document and the third-party analysis in [1, 34, 2, 15, 14, 36, 16, 3].
65 / 69
The K reference 5. Design rationale summary
66 / 69
Bibliography
[1] J.-P. Aumasson and D. Khovratovich, First analysis of Keccak, Available online, 2009,
http://131002.net/data/papers/AK09.pdf.
[2] J.-P. Aumasson and W. Meier, Zero-sum distinguishers for reduced Keccak-f and for the core
functions of Luffa and Hamsi, Available online, 2009, http://131002.net/data/papers/
AM09.pdf.
[3] D. J. Bernstein, Second preimages for 6 (7? (8??)) rounds of keccak?, 2010,
h p://cr.yp.to/hash/keccak-20101127.txt.
[10] G. Bertoni, J. Daemen, M. Peeters, G. Van Assche, and R. Van Keer, K implementa-
tion overview, January 2011, http://keccak.noekeon.org/.
[11] E. Biham, O. Dunkelman, and N. Keller, The rectangle a ack - rectangling the serpent, Ad-
vances in Cryptology – Eurocrypt 2001 (B. Pfitzmann, ed.), Lecture Notes in Computer
Science, vol. 2045, Springer, 2001, pp. 340–357.
[12] A. Biryukov and D. Wagner, Slide a acks, in Knudsen [31], pp. 245–259.
[13] C. Bouillaguet and P.-A. Fouque, Analysis of the collision resistance of RadioGatún using al-
gebraic techniques, Selected Areas in Cryptography, Lecture Notes in Computer Science,
vol. 4876, Springer, 2008.
[14] C. Boura and A. Canteaut, Zero-sum distinguishers on the Keccak-f permutation with 20
rounds (working dra ), private communication, 2010.
67 / 69
The K reference BIBLIOGRAPHY
[15] , A zero-sum property for the Keccak-f permutation with 18 rounds, Available online,
2010, http://www-roc.inria.fr/secret/Anne.Canteaut/Publications/zero_sum.pdf.
[17] M. Brickenstein and A. Dreyer, PolyBoRi: A framework for Gröbner-basis computations with
Boolean polynomials, Journal of Symbolic Computation 44 (2009), no. 9, 1326–1345, Effec-
tive Methods in Algebraic Geometry.
[18] The Python community, Python Programming Language, Python So ware Foundation,
2009, http://www.python.org/.
[19] D. A. Cox, J. B. Li le, and D. O’Shea, Ideals, varieties, and algorithms, third ed., Springer,
2007.
[20] J. Daemen, Cipher and hash function design strategies based on linear and differential crypt-
analysis, PhD thesis, K.U.Leuven, 1995.
[21] J. Daemen and C. S. K. Clapp, Fast hashing and stream encryption with PANAMA, Fast
So ware Encryption 1998 (S. Vaudenay, ed.), LNCS, no. 1372, Springer-Verlag, 1998,
pp. 60–74.
[22] J. Daemen, L. R. Knudsen, and V. Rijmen, The block cipher Square, Fast So ware Encryp-
tion 1997 (E. Biham, ed.), Lecture Notes in Computer Science, vol. 1267, Springer, 1997,
pp. 149–165.
[23] J. Daemen, M. Peeters, G. Van Assche, and V. Rijmen, Nessie proposal: the block cipher
, Nessie submission, 2000, http://gro.noekeon.org/.
[24] J. Daemen and V. Rijmen, The design of Rijndael — AES, the advanced encryption standard,
Springer-Verlag, 2002.
[26] M. Duan and X. Lai, Improved zero-sum distinguisher for full round keccak-f permutation,
Cryptology ePrint Archive, Report 2011/023, 2011, http://eprint.iacr.org/.
[27] M. Gorski, S. Lucks, and T. Peyrin, Slide a acks on a class of hash functions, Asi-
acrypt (J. Pieprzyk, ed.), Lecture Notes in Computer Science, vol. 5350, Springer, 2008,
pp. 143–160.
[28] J. Kelsey, T. Kohno, and B. Schneier, Amplified boomerang a acks against reduced-round
mars and serpent, Fast So ware Encryption 2000 (B. Schneier, ed.), Lecture Notes in Com-
puter Science, vol. 1978, Springer, 2000, pp. 75–93.
[30] L. R. Knudsen, Truncated and higher order differentials, Fast So ware Encryption 1994
(B. Preneel, ed.), Lecture Notes in Computer Science, vol. 1008, Springer, 1994,
pp. 196–211.
68 / 69
BIBLIOGRAPHY The K reference
[31] L. R. Knudsen (ed.), Fast so ware encryption, 6th international workshop, fse ’99, rome, italy,
march 24-26, 1999, proceedings, Lecture Notes in Computer Science, vol. 1636, Springer,
1999.
[32] D. E. Knuth, The art of computer programming, vol. 2, third edition, Addison-Wesley Pub-
lishing Company, 1998.
[34] J. Lathrop, Cube a acks on cryptographic hash functions, Master’s thesis, Available online,
2009, http://www.cs.rit.edu/~jal6806/thesis/.
[36] P. Morawiecki and M. Srebrny, A sat-based preimage analysis of reduced KECCAK hash
functions, Cryptology ePrint Archive, Report 2010/285, 2010, http://eprint.iacr.org/.
[37] R. L. Rivest, M. J. B. Robshaw, R. Sidney, and Y. L. Yin, The RC6 block cipher, AES pro-
posal, August 1998.
[38] W. A. Stein et al., Sage Mathematics So ware, The Sage Development Team, 2009, http:
//www.sagemath.org/.
[40] R. Wernsdorf, The round functions of Rijndael generate the alternating group, Fast So ware
Encryption 2002 (J. Daemen and V. Rijmen, eds.), Lecture Notes in Computer Science,
vol. 2365, Springer, 2002, pp. 143–148.
[42] M. R. Z’aba, H. Raddum, M. Henricksen, and E. Dawson, Bit-pa ern based integral a ack,
Fast So ware Encryption 2008 (K. Nyberg, ed.), Lecture Notes in Computer Science,
vol. 5086, Springer, 2008, pp. 363–381.
69 / 69