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ยง
- Absorbs
Iter - An iterator over the variants of Absorbs
- Sponges
Iter - An iterator over the variants of Sponges
- Steps
Iter - An iterator over the variants of Steps
Enumsยง
- Absorbs
- Order of absorb steps in the computation depending on the number of blocks to absorb
- Column
Alias - 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ยง
- Keccak
Witness - 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: