Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
bb::Bn254Fq12Params Struct Reference

The twelfth degree extension of the base field of BN254. More...

#include <fq12.hpp>

Static Public Attributes

static constexpr fq2 frobenius_coefficients_1
 
static constexpr fq2 frobenius_coefficients_2
 
static constexpr fq2 frobenius_coefficients_3
 

Detailed Description

The twelfth degree extension of the base field of BN254.

Fq12 is defined as Fq6[w] / (w^2 - v), where v is the variable added to Fq2 to construct Fq6. We store in the struct the coefficients to compute the frobenius morphism (we need powers up to q^3 to compute the final exponentiation in the pairing calculation)

  1. Power q

    \[ (a + bw)^q = a^q + b^q * w^q = a^q + b^q * \xi^{(q-1)/6} * v \]

  2. Power q^2

    \[ (a + bw)^{q^2} = a^{q^2} + b^{q^2} * w^{q^2} = a + b * \xi^{(q^2-1)/6} * v \]

  3. Power q^3

    \[ (a + bw)^{q^3} = a^{q^3} + b^{q^3} * w^{q^3} = a^q + b^q * \xi^{(q^3-1)/6} * v \]

Definition at line 36 of file fq12.hpp.

Member Data Documentation

◆ frobenius_coefficients_1

constexpr fq2 bb::Bn254Fq12Params::frobenius_coefficients_1
staticconstexpr
Initial value:
{
{ 0xb75446af8a0c2399UL, 0xb5e243df8d8526c8UL, 0x7f6d66278fc2b89bUL, 0x2e05603062b5af58UL },
{ 0xaeefbf6e3bc6cc33UL, 0x7f50c04b4ed87762UL, 0x9a8b7572eb6a58d4UL, 0x9b83e6c410c870UL }
}

Definition at line 54 of file fq12.hpp.

◆ frobenius_coefficients_2

constexpr fq2 bb::Bn254Fq12Params::frobenius_coefficients_2
staticconstexpr
Initial value:
{
{ 0xd96ee8726e4983b2UL, 0xe9b7ed6a458f581eUL, 0x5361c2c89ea5d262UL, 0x24594fd198a79c6eUL },
{ 0UL, 0UL, 0UL, 0UL }
}

Definition at line 59 of file fq12.hpp.

◆ frobenius_coefficients_3

constexpr fq2 bb::Bn254Fq12Params::frobenius_coefficients_3
staticconstexpr
Initial value:
{
{ 0x9dc006978e6a3d3dUL, 0x695b3f038ef4bf24UL, 0x1a238968ba7a7ccdUL, 0x103828f20e49839cUL },
{ 0x5cbbb0bd4f4e6b31UL, 0xe83ce8be1b5b282bUL, 0x646d437ef03fbae3UL, 0x133cf9860031f0c0UL }
}

Definition at line 64 of file fq12.hpp.


The documentation for this struct was generated from the following file: