KeccakTools Documentation
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.
This code is hereby put in the public domain. It is given as is, without any guarantee.
KeccakTools version 2.1, June 2010.