Crate poseidon_paramgen
source ·Expand description
Module for generating parameters for the Poseidon SNARK-friendly hash function.
This crate will, given a choice of:
- M, the desired security level (in bits),
- t, the width of the desired hash function, e.g. $t=3$ corresponds to 2-to-1 hash.
- p, the prime modulus,
allow_inverse
, whether or not to allow an inverse alpha for the Sbox layer.
generate the best choice of parameters, for both the unoptimized version of Poseidon specified in the Poseidon paper, as well as the optimizations described in Appendix B.
Modules
For generating parameters at build time.
Structs
Represents an matrix of round constants.
Input parameters that are used to generate Poseidon parameters.
Represents a matrix over
PrimeField
elements.Represents an MDS (maximum distance separable) matrix.
Represents an optimized matrix of round constants.
Represents an optimized MDS (maximum distance separable) matrix.
A set of Poseidon parameters for a given set of input parameters.
RoundNumbers
required for security based on known attacks.Represents a square matrix over
PrimeField
elementsEnums
The exponent in
Sbox(x) = x^\alpha
.Traits
Basic matrix operations all matrices should implement.
Matrix operations that are defined on square matrices.
Functions
Compute vector dot product
Computes the binary log of a
BigInteger
Multiply two matrices