Randomization with GIMLI

--

GIMLI is a cross-platform method which produces a 384-bit permutation state with high levels of security. and has excellent performance across a range of 8-bit, 16-bit, 32-bit and 64-bit platforms [paper]. It has 24 rounds and uses simple EX-OR, AND, OR, and Cyclic shift operations. In the following we will generate a seed value, and which is used to create an initial state for GIMLI.

GIMLI is focused on producing a relatively large state size (384 bits) and is efficient for energy consumption and processor requirements. It is free from side channel attacks and has protection against short messages. A few other methods for permuations includes:

  • Keccak provides a 1,600-bit permutation and is energy-efficient and has 24 rounds.
  • Chaskey provides a 128-bit permutation for a 128-bit key and runs well on microcontrollers [link].
  • Salsa20 and ChaCha20 provide a 512-bit permutation and is efficient on embedded systems.

A state in GIMLI is defined as 3×4 matrix of 32-bit words. A column j is defined with 96 bits, and row i by 128 bits. The algorithm used is:

--

--

Prof Bill Buchanan OBE FRSE
ASecuritySite: When Bob Met Alice

Professor of Cryptography. Serial innovator. Believer in fairness, justice & freedom. Based in Edinburgh. Old World Breaker. New World Creator. Building trust.