Crate binius_hash

Source
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§

HashBuffer
Adapter that wraps a [Digest] references and exposes the [BufMut] interface.
INV_PACKED_TRANS_AES
Vision32Compression
One-way compression function that compresses two 32-byte strings into a single 32-byte string.
Vision32MDSTransform
The MDS step in the Vision Permutation which uses AdditiveNTT to compute matrix multiplication of the state vector 24x32b
Vision32bPermutation
This is the complete permutation function for the Vision hash which implements Permutation and CryptographicPermutation traits over PackedAESBinary8x32b as well as BinaryField32b
VisionHasherDigest
VisionHasherDigestByteSliced

Constants§

AFFINE_FWD_AES
AFFINE_FWD_CONST_AES
AFFINE_INV_AES
AFFINE_INV_CONST_AES
NUM_ROUNDS
ROUND_KEYS

Functions§

hash_serialize
Hashes a sequence of serializable items.

Type Aliases§

Vision32ParallelDigest