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§

Modules§

Structs§

  • The Grøstl-256 hash function.
  • Portable version of the Grøstl256 hash function’s P and Q permutations that uses the implementation of section 8.1.2 from Grøstl
  • A compression function for Grøstl hash digests based on the Grøstl output transformation.
  • Adapter that wraps a [Digest] references and exposes the [BufMut] interface.
  • The MDS step in the Vision Permutation which uses AdditiveNTT to compute matrix multiplication of the state vector 24x32b
  • This is the complete permutation function for the Vision hash which implements Permutation and CryptographicPermutation traits over PackedAESBinary8x32b as well as BinaryField32b
  • This is the struct that implements the Vision hash over AESTowerField32b and BinaryField32b isomorphically. Here the generic P represents the input type to the update function

Functions§

Type Aliases§

  • The type of output digest for Grøstl256 over F which should be isomorphic to AESTowerField8b
  • An alias for Grøstl256 defined over BinaryField8b
  • The vision specialization over BinaryField32b as per Vision Mark-32