Expand description
Serpent block cipher — AES submission / FSE 1998.
128-bit block cipher with three standard key sizes:
Serpent128/Serpent128CtSerpent192/Serpent192CtSerpent256/Serpent256Ct
The public API follows the original Serpent submission / reference-implementation byte order. That matches many existing Serpent libraries, but it differs from the byte-reversed NESSIE presentation. Internally, the core still works on 32-bit little-endian words, so the wrappers reverse the incoming key and block bytes around that native representation.
The fast path uses direct 4-bit S-box lookups across the 32 parallel lanes
of the bitslice round state. The Ct path evaluates the same 4->4 S-boxes
in packed ANF form so substitution avoids secret-indexed table reads.
Structs§
- Serpent128
- Serpent with a 128-bit key (public byte order matches the original submission vectors).
- Serpent192
- Serpent with a 192-bit key (public byte order matches the original submission vectors).
- Serpent256
- Serpent with a 256-bit key (public byte order matches the original submission vectors).
- Serpent128
Ct - Constant-time Serpent with a 128-bit key.
- Serpent192
Ct - Constant-time Serpent with a 192-bit key.
- Serpent256
Ct - Constant-time Serpent with a 256-bit key.