KeccakTools is a set of C++ classes that can help analyze the Keccak sponge function family, designed by Guido Bertoni, Joan Daemen, Michaël Peeters and Gilles Van Assche. For more information, please refer to our website: http://keccak.noekeon.org/
KeccakTools provides the following features:
- the parameterized implementation of the seven Keccak-f permutations, from Keccak-f[25] to Keccak-f[1600], possibly with a specific number of rounds;
- the implementation of the inverses of the Keccak-f permutations;
- the generation of look-up tables for Keccak-f[25];
- the generation of GF(2) equations of the round functions and step mappings in the Keccak-f permutations and their inverses;
- the generation of optimized C code for the Keccak-f round functions, including lane complementing and bit interleaving techniques;
- the implementation of the sponge construction using any transformation or permutation, and of the Keccak sponge function family;
- the processing of linear and differential trails:
- the representation and serialization of linear and differential trails;
- for χ, the affine representation of
- the output differences compatible with a given input difference, and
- the input masks compatible with a given output mask;
- for the round function, the iteration through all
- the output differences compatible with a given input difference,
- the input differences compatible with a given output difference (possibly up to a specified weight),
- the input masks compatible with a given output mask,
- the output masks compatible with a given input mask (possibly up to a specified weight);
- the generation of the conditions, expressed as equations in GF(2), for a pair to follow a given differential trail.
Note that the equations can be generated in a format compatible with SAGE.
Implementation by the designers, hereby denoted as "the implementer". To the extent possible under law, the implementer has waived all copyright and related or neighboring rights to KeccakTools. http://creativecommons.org/publicdomain/zero/1.0/
KeccakTools version 3.0, January 2011.