Skip to main content

Crate binius_field

Crate binius_field 

Source
Expand description

Binary tower field implementations for use in Binius.

This library implements binary tower field arithmetic. The canonical binary field tower construction is specified in DP23, section 2.3. This is a family of binary fields with extension degree $2^{\iota}$ for any tower height $\iota$. Mathematically, we label these sets $T_{\iota}$.

Re-exports§

pub use arithmetic_traits::WideMul;
pub use field::Field;
pub use field::FieldOps;
pub use packed::PackedField;
pub use sliced_packed_field::SlicedPackedField;
pub use transpose::square_transpose;
pub use aes_field::*;
pub use binary_field::*;
pub use extension::*;
pub use ghash::*;
pub use ghash_sq::*;
pub use packed_aes::*;
pub use packed_binary_field::*;
pub use packed_extension::*;

Modules§

aes_field
arch
arithmetic_traits
binary_field
extension
field
ghash
Binary field implementation of GF(2^128) with a modulus of X^128 + X^7 + X^2 + X + 1. This is the GHASH field used in AES-GCM.
ghash_sq
Binary field implementation of GF(2^256) as a degree-two extension of the GHASH field.
linear_transformation
packed
Traits for packed field elements which support SIMD implementations.
packed_aes
packed_binary_field
packed_extension
sliced_packed_field
A packed extension field in a sliced (struct-of-arrays) memory layout.
transpose
util

Macros§

impl_packed_field_display

Structs§

GhashSqInvert
InvertOrZero strategy for PackedGhashSq1x256b.
GhashSqSquare
Square strategy for PackedGhashSq1x256b.
SlicedGhashSqWide
The unreduced product of two GHASH² elements, as three separate GHASH products.

Traits§

Divisible
Divides an underlier type into smaller underliers in memory and iterates over them.
Maskable
Branchless conditional lane selection for fields and packed fields.
Random
A value that can be randomly generated
UnderlierType
Primitive integer underlying a binary field or packed binary field implementation. Note that this type is not guaranteed to be POD, U1, U2 and U4 have some unused bits.
WithUnderlier
A type that is transparently backed by an underlier.

Type Aliases§

PackedBinaryGhash1x128b
PackedBinaryGhash2x128b
PackedBinaryGhash4x128b
PackedGhashSq1x256b
PackedGhashSq2x256b
SlicedGhashSq1x256b
Packed GhashSq256b holding one extension scalar (the degenerate width-one packing).
SlicedGhashSq2x256b
Packed GhashSq256b holding two extension scalars.
SlicedGhashSq4x256b
Packed GhashSq256b holding four extension scalars.
SlicedGhashSq256b
A GHASH² packing whose two GHASH coordinates pack into PackedPrimitiveType<U, Ghash128b>.