Module column

Module column 

Source
Expand description

This module defines the custom columns used in the Keccak witness, which are aliases for the actual Keccak witness columns also defined here.

Structsยง

AbsorbsIter
An iterator over the variants of Absorbs
SpongesIter
An iterator over the variants of Sponges
StepsIter
An iterator over the variants of Steps

Enumsยง

Absorbs
Order of absorb steps in the computation depending on the number of blocks to absorb
ColumnAlias
Column aliases used by the Keccak circuit. The number of aliases is not necessarily equal to the actual number of columns. Each alias will be mapped to a column index depending on the step kind (Sponge or Round) that is currently being executed.
Sponges
Variants of Keccak sponges
Steps
Variants of Keccak steps available for the interpreter. These selectors determine the specific behaviour so that Keccak steps can be split into different instances for folding

Constantsยง

CURR_LEN ๐Ÿ”’
CURR_OFF ๐Ÿ”’
FLAG_FST_OFF ๐Ÿ”’
FLAG_LST_OFF ๐Ÿ”’
FLAG_MID_OFF ๐Ÿ”’
FLAG_ONE_OFF ๐Ÿ”’
FLAG_ROUND_OFF ๐Ÿ”’
FLAG_SQUEEZE_OFF ๐Ÿ”’
NEXT_LEN ๐Ÿ”’
NEXT_OFF ๐Ÿ”’
N_ZKVM_KECCAK_COLS
Total number of columns used in Keccak, including relation and selectors
N_ZKVM_KECCAK_REL_COLS
The maximum total number of witness columns used by the Keccak circuit. Note that in round steps, the columns used to store padding information are not needed.
N_ZKVM_KECCAK_SEL_COLS
The number of columns required for the Keccak selectors. They are located after the relation columns.
PAD_BYTES_LEN ๐Ÿ”’
The maximum number of padding bytes involved
PAD_BYTES_OFF ๐Ÿ”’
PAD_FLAGS_OFF ๐Ÿ”’
PAD_LEN_OFF ๐Ÿ”’
PAD_SUFFIX_LEN ๐Ÿ”’
The padding suffix of 1088 bits is stored as 5 field elements: 1x12 + 4x31 bytes
PAD_SUFFIX_OFF ๐Ÿ”’
PAD_TWO_OFF ๐Ÿ”’
RC_LEN ๐Ÿ”’
RC_OFF ๐Ÿ”’
ROUND_CONST_LEN ๐Ÿ”’
The number of sparse round constants used per round
STATUS_LEN ๐Ÿ”’
STATUS_OFF ๐Ÿ”’

Type Aliasesยง

KeccakWitness
The witness columns used by the Keccak circuit. The Keccak circuit is split into two main modes: Sponge and Round. The columns are shared between the Sponge and Round steps. The hash and step indices are shared between both modes. The row is split into the following entries: