Skip to main content

Module serpent

Module serpent 

Source
Expand description

Serpent block cipher — AES submission / FSE 1998.

128-bit block cipher with three standard key sizes:

  • Serpent128 / Serpent128Ct
  • Serpent192 / Serpent192Ct
  • Serpent256 / 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).
Serpent128Ct
Constant-time Serpent with a 128-bit key.
Serpent192Ct
Constant-time Serpent with a 192-bit key.
Serpent256Ct
Constant-time Serpent with a 256-bit key.

Type Aliases§

Serpent
SerpentCt