Module oberon::inner_types
source · Expand description
The inner representation types
Re-exports
pub use bls12_381_plus::elliptic_curve;
pub use bls12_381_plus::group;
Modules
- RustCrypto: Elliptic Curve Traits
- Notes about how the BLS12-381 elliptic curve is designed, specified and implemented by this library.
Structs
- A [
pairing::Engine
] for BLS12-381 pairing operations. - This is an element of $\mathbb{G}_1$ represented in the affine coordinate space. It is ideal to keep elements in this representation to reduce memory usage and improve performance through the use of mixed curve model arithmetic.
- This is an element of $\mathbb{G}_1$ represented in the projective coordinate space.
- This is an element of $\mathbb{G}_2$ represented in the affine coordinate space. It is ideal to keep elements in this representation to reduce memory usage and improve performance through the use of mixed curve model arithmetic.
- This structure contains cached computations pertaining to a $\mathbb{G}_2$ element as part of the pairing function (specifically, the Miller loop) and so should be computed whenever a $\mathbb{G}_2$ element is being used in multiple pairings or is otherwise known in advance. This should be used in conjunction with the
multi_miller_loop
function provided by this crate. - This is an element of $\mathbb{G}_2$ represented in the projective coordinate space.
- This is an element of $\mathbb{G}_T$, the target group of the pairing function. As with $\mathbb{G}_1$ and $\mathbb{G}_2$ this group has order $q$.
- Represents results of a Miller loop, one of the most expensive portions of the pairing function.
MillerLoopResult
s cannot be compared with each other until.final_exponentiation()
is called, which is also expensive. - Represents an element of the scalar field $\mathbb{F}_q$ of the BLS12-381 elliptic curve construction.
Traits
- Efficient representation of an elliptic curve point guaranteed.
- This trait represents an element of a field.
- This trait represents an element of a cryptographic group.
- Affine representation of an elliptic curve point guaranteed to be in the correct prime order subgroup.
- This represents an element of a non-binary prime field.
- A helper trait for serializing Scalars as little-endian instead of big endian.
Functions
- Computes $$\sum_{i=1}^n \textbf{ML}(a_i, b_i)$$ given a series of terms $$(a_1, b_1), (a_2, b_2), …, (a_n, b_n).$$
- Invoke the pairing function without the use of precomputation and other optimizations.