Module ivc::poseidon_55_0_7_3_2::interpreter
source · Expand description
Implement an interpreter for a specific instance of the Poseidon inner permutation. The Poseidon construction is defined in the paper “Poseidon: A New Hash Function”.
The Poseidon instance works on a state of size STATE_SIZE
and is designed
to work only with full rounds. As a reminder, the Poseidon permutation is a
mapping from F^STATE_SIZE
to F^STATE_SIZE
.
The user is responsible to provide the correct number of full rounds for the given field and the state.
Also, it is hard-coded that the substitution is 7
. The user must verify
that 7
is coprime with p - 1
where p
is the order the field.
The constants and matrix can be generated the file
poseidon/src/pasta/params.sage
Traits
- Represents the parameters of the instance of the Poseidon permutation. Constants are the round constants for each round, and MDS is the matrix used by the linear layer.
Functions
- Apply the whole permutation of Poseidon to the state. The environment has to be initialized with the input values.
- Populates and checks one poseidon invocation.