Skip to main content

Module present

Module present 

Source
Expand description

PRESENT lightweight block cipher — CHES 2007 / ISO/IEC 29192-2.

64-bit block cipher with two standard key schedules:

  • Present80 / Present80Ct: 80-bit key
  • Present128 / Present128Ct: 128-bit key

The round structure is a 31-round SP-network:

state <- state xor round_key
state <- sbox_layer(state)
state <- p_layer(state)

followed by a final round-key xor. The fast path keeps the direct 4-bit S-box table lookup. The Ct path uses a packed 16-term ANF form of the same 4->4 bijection so substitution avoids secret-indexed table reads while the rest of the permutation network stays unchanged.

Structs§

Present80
PRESENT-80 fast software path.
Present80Ct
PRESENT-80 constant-time software path.
Present128
PRESENT-128 fast software path.
Present128Ct
PRESENT-128 constant-time software path.

Type Aliases§

Present
The original PRESENT instantiation from the CHES 2007 paper (80-bit key).
PresentCt
Constant-time PRESENT-80 alias.