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.
RoundNumbersrequired for security based on known attacks.
Sbox(x) = x^\alpha.