Expand description
Implementations of cryptographic hash functions and related utilities used in Binius.
The default hash function Binius uses is Grøstl-256. Grøstl-256 was a SHA-3 competition finalist and based on the design of the AES block cipher. Binius selects Grøstl-256 as the default hash function because it internally makes use of the 8-bit Rijndael binary field, and so can be arithmetized efficiently with a Binius constraint system.
This crate also provides an implementation of Vision Mark-32, a cryptographic sponge function designed for efficient Binius arithmetization.
Re-exports§
pub use permutation::INV_PACKED_TRANS_AES;
pub use permutation::INV_PACKED_TRANS_AES;
pub use compression::*;
Modules§
- compression
- These interfaces are taken from p3_symmetric in Plonky3.
- constants
- digest
- groestl
- multi_
digest - permutation
- These interfaces are taken from p3_symmetric in Plonky3.
- sha2
Structs§
- Hash
Buffer - Adapter that wraps a [
Digest
] references and exposes the [BufMut
] interface. - INV_
PACKED_ TRANS_ AES - Vision32
Compression - One-way compression function that compresses two 32-byte strings into a single 32-byte string.
- Vision32MDS
Transform - The MDS step in the Vision Permutation which uses AdditiveNTT to compute matrix multiplication of the state vector 24x32b
- Vision32b
Permutation - This is the complete permutation function for the Vision hash which implements
Permutation
andCryptographicPermutation
traits overPackedAESBinary8x32b
as well asBinaryField32b
- Vision
Hasher Digest - Vision
Hasher Digest Byte Sliced
Constants§
Functions§
- hash_
serialize - Hashes a sequence of serializable items.