mirror of
https://github.com/arnaucube/ark-curves-cherry-picked.git
synced 2026-01-27 14:13:46 +01:00
Update BLS12-381
This commit is contained in:
@@ -111,5 +111,5 @@ impl FpParameters for FqParameters {
|
||||
]);
|
||||
}
|
||||
|
||||
pub const FQ_ONE: Fq = field_new!(Fq, FqParameters::R);
|
||||
pub const FQ_ZERO: Fq = field_new!(Fq, BigInteger([0, 0, 0, 0, 0, 0]));
|
||||
pub const FQ_ONE: Fq = field_new!(Fq, "1");
|
||||
pub const FQ_ZERO: Fq = field_new!(Fq, "0");
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
use crate::*;
|
||||
use ark_ff::{biginteger::BigInteger384, field_new, fields::*};
|
||||
use ark_ff::{field_new, fields::*};
|
||||
|
||||
pub type Fq12 = Fp12<Fq12Parameters>;
|
||||
|
||||
@@ -11,183 +11,66 @@ impl Fp12Parameters for Fq12Parameters {
|
||||
|
||||
const NONRESIDUE: Fq6 = field_new!(Fq6, FQ2_ZERO, FQ2_ONE, FQ2_ZERO);
|
||||
|
||||
#[rustfmt::skip]
|
||||
const FROBENIUS_COEFF_FP12_C1: &'static [Fq2] = &[
|
||||
// Fq2(u + 1)**(((q^0) - 1) / 6)
|
||||
FQ2_ONE,
|
||||
// Fq2(u + 1)**(((q^1) - 1) / 6)
|
||||
// Fp2::NONRESIDUE^(((q^0) - 1) / 6)
|
||||
field_new!(Fq2,
|
||||
field_new!(Fq, BigInteger384([
|
||||
0x7089552b319d465,
|
||||
0xc6695f92b50a8313,
|
||||
0x97e83cccd117228f,
|
||||
0xa35baecab2dc29ee,
|
||||
0x1ce393ea5daace4d,
|
||||
0x8f2220fb0fb66eb,
|
||||
])),
|
||||
field_new!(Fq, BigInteger384([
|
||||
0xb2f66aad4ce5d646,
|
||||
0x5842a06bfc497cec,
|
||||
0xcf4895d42599d394,
|
||||
0xc11b9cba40a8e8d0,
|
||||
0x2e3813cbe5a0de89,
|
||||
0x110eefda88847faf,
|
||||
])),
|
||||
field_new!(Fq, "1"),
|
||||
field_new!(Fq, "0"),
|
||||
),
|
||||
// Fq2(u + 1)**(((q^2) - 1) / 6)
|
||||
// Fp2::NONRESIDUE^(((q^1) - 1) / 6)
|
||||
field_new!(Fq2,
|
||||
field_new!(Fq, BigInteger384([
|
||||
0xecfb361b798dba3a,
|
||||
0xc100ddb891865a2c,
|
||||
0xec08ff1232bda8e,
|
||||
0xd5c13cc6f1ca4721,
|
||||
0x47222a47bf7b5c04,
|
||||
0x110f184e51c5f59,
|
||||
])),
|
||||
FQ_ZERO,
|
||||
field_new!(Fq, "3850754370037169011952147076051364057158807420970682438676050522613628423219637725072182697113062777891589506424760"),
|
||||
field_new!(Fq, "151655185184498381465642749684540099398075398968325446656007613510403227271200139370504932015952886146304766135027"),
|
||||
),
|
||||
// Fq2(u + 1)**(((q^3) - 1) / 6)
|
||||
// Fp2::NONRESIDUE^(((q^2) - 1) / 6)
|
||||
field_new!(Fq2,
|
||||
field_new!(Fq, BigInteger384([
|
||||
0x3e2f585da55c9ad1,
|
||||
0x4294213d86c18183,
|
||||
0x382844c88b623732,
|
||||
0x92ad2afd19103e18,
|
||||
0x1d794e4fac7cf0b9,
|
||||
0xbd592fc7d825ec8,
|
||||
])),
|
||||
field_new!(Fq, BigInteger384([
|
||||
0x7bcfa7a25aa30fda,
|
||||
0xdc17dec12a927e7c,
|
||||
0x2f088dd86b4ebef1,
|
||||
0xd1ca2087da74d4a7,
|
||||
0x2da2596696cebc1d,
|
||||
0xe2b7eedbbfd87d2,
|
||||
])),
|
||||
field_new!(Fq, "793479390729215512621379701633421447060886740281060493010456487427281649075476305620758731620351"),
|
||||
field_new!(Fq, "0"),
|
||||
),
|
||||
// Fq2(u + 1)**(((q^4) - 1) / 6)
|
||||
// Fp2::NONRESIDUE^(((q^3) - 1) / 6)
|
||||
field_new!(Fq2,
|
||||
field_new!(Fq, BigInteger384([
|
||||
0x30f1361b798a64e8,
|
||||
0xf3b8ddab7ece5a2a,
|
||||
0x16a8ca3ac61577f7,
|
||||
0xc26a2ff874fd029b,
|
||||
0x3636b76660701c6e,
|
||||
0x51ba4ab241b6160,
|
||||
])),
|
||||
FQ_ZERO,
|
||||
field_new!(Fq, "2973677408986561043442465346520108879172042883009249989176415018091420807192182638567116318576472649347015917690530"),
|
||||
field_new!(Fq, "1028732146235106349975324479215795277384839936929757896155643118032610843298655225875571310552543014690878354869257"),
|
||||
),
|
||||
// Fq2(u + 1)**(((q^5) - 1) / 6)
|
||||
// Fp2::NONRESIDUE^(((q^4) - 1) / 6)
|
||||
field_new!(Fq2,
|
||||
field_new!(Fq, BigInteger384([
|
||||
0x3726c30af242c66c,
|
||||
0x7c2ac1aad1b6fe70,
|
||||
0xa04007fbba4b14a2,
|
||||
0xef517c3266341429,
|
||||
0x95ba654ed2226b,
|
||||
0x2e370eccc86f7dd,
|
||||
])),
|
||||
field_new!(Fq, BigInteger384([
|
||||
0x82d83cf50dbce43f,
|
||||
0xa2813e53df9d018f,
|
||||
0xc6f0caa53c65e181,
|
||||
0x7525cf528d50fe95,
|
||||
0x4a85ed50f4798a6b,
|
||||
0x171da0fd6cf8eebd,
|
||||
])),
|
||||
field_new!(Fq, "793479390729215512621379701633421447060886740281060493010456487427281649075476305620758731620350"),
|
||||
field_new!(Fq, "0"),
|
||||
),
|
||||
// Fq2(u + 1)**(((q^6) - 1) / 6)
|
||||
// Fp2::NONRESIDUE^(((q^5) - 1) / 6)
|
||||
field_new!(Fq2,
|
||||
field_new!(Fq, BigInteger384([
|
||||
0x43f5fffffffcaaae,
|
||||
0x32b7fff2ed47fffd,
|
||||
0x7e83a49a2e99d69,
|
||||
0xeca8f3318332bb7a,
|
||||
0xef148d1ea0f4c069,
|
||||
0x40ab3263eff0206,
|
||||
])),
|
||||
FQ_ZERO,
|
||||
field_new!(Fq, "3125332594171059424908108096204648978570118281977575435832422631601824034463382777937621250592425535493320683825557"),
|
||||
field_new!(Fq, "877076961050607968509681729531255177986764537961432449499635504522207616027455086505066378536590128544573588734230"),
|
||||
),
|
||||
// Fq2(u + 1)**(((q^7) - 1) / 6)
|
||||
// Fp2::NONRESIDUE^(((q^6) - 1) / 6)
|
||||
field_new!(Fq2,
|
||||
field_new!(Fq, BigInteger384([
|
||||
0xb2f66aad4ce5d646,
|
||||
0x5842a06bfc497cec,
|
||||
0xcf4895d42599d394,
|
||||
0xc11b9cba40a8e8d0,
|
||||
0x2e3813cbe5a0de89,
|
||||
0x110eefda88847faf,
|
||||
])),
|
||||
field_new!(Fq, BigInteger384([
|
||||
0x7089552b319d465,
|
||||
0xc6695f92b50a8313,
|
||||
0x97e83cccd117228f,
|
||||
0xa35baecab2dc29ee,
|
||||
0x1ce393ea5daace4d,
|
||||
0x8f2220fb0fb66eb,
|
||||
])),
|
||||
field_new!(Fq, "-1"),
|
||||
field_new!(Fq, "0"),
|
||||
),
|
||||
// Fq2(u + 1)**(((q^8) - 1) / 6)
|
||||
// Fp2::NONRESIDUE^(((q^7) - 1) / 6)
|
||||
field_new!(Fq2,
|
||||
field_new!(Fq, BigInteger384([
|
||||
0xcd03c9e48671f071,
|
||||
0x5dab22461fcda5d2,
|
||||
0x587042afd3851b95,
|
||||
0x8eb60ebe01bacb9e,
|
||||
0x3f97d6e83d050d2,
|
||||
0x18f0206554638741,
|
||||
])),
|
||||
FQ_ZERO,
|
||||
field_new!(Fq, "151655185184498381465642749684540099398075398968325446656007613510403227271200139370504932015952886146304766135027"),
|
||||
field_new!(Fq, "3850754370037169011952147076051364057158807420970682438676050522613628423219637725072182697113062777891589506424760"),
|
||||
),
|
||||
// Fq2(u + 1)**(((q^9) - 1) / 6)
|
||||
// Fp2::NONRESIDUE^(((q^8) - 1) / 6)
|
||||
field_new!(Fq2,
|
||||
field_new!(Fq, BigInteger384([
|
||||
0x7bcfa7a25aa30fda,
|
||||
0xdc17dec12a927e7c,
|
||||
0x2f088dd86b4ebef1,
|
||||
0xd1ca2087da74d4a7,
|
||||
0x2da2596696cebc1d,
|
||||
0xe2b7eedbbfd87d2,
|
||||
])),
|
||||
field_new!(Fq, BigInteger384([
|
||||
0x3e2f585da55c9ad1,
|
||||
0x4294213d86c18183,
|
||||
0x382844c88b623732,
|
||||
0x92ad2afd19103e18,
|
||||
0x1d794e4fac7cf0b9,
|
||||
0xbd592fc7d825ec8,
|
||||
])),
|
||||
field_new!(Fq, "4002409555221667392624310435006688643935503118305586438271171395842971157480381377015405980053539358417135540939436"),
|
||||
field_new!(Fq, "0"),
|
||||
),
|
||||
// Fq2(u + 1)**(((q^10) - 1) / 6)
|
||||
// Fp2::NONRESIDUE^(((q^9) - 1) / 6)
|
||||
field_new!(Fq2,
|
||||
field_new!(Fq, BigInteger384([
|
||||
0x890dc9e4867545c3,
|
||||
0x2af322533285a5d5,
|
||||
0x50880866309b7e2c,
|
||||
0xa20d1b8c7e881024,
|
||||
0x14e4f04fe2db9068,
|
||||
0x14e56d3f1564853a,
|
||||
])),
|
||||
FQ_ZERO,
|
||||
field_new!(Fq, "1028732146235106349975324479215795277384839936929757896155643118032610843298655225875571310552543014690878354869257"),
|
||||
field_new!(Fq, "2973677408986561043442465346520108879172042883009249989176415018091420807192182638567116318576472649347015917690530"),
|
||||
),
|
||||
// Fq2(u + 1)**(((q^11) - 1) / 6)
|
||||
// Fp2::NONRESIDUE^(((q^10) - 1) / 6)
|
||||
field_new!(Fq2,
|
||||
field_new!(Fq, BigInteger384([
|
||||
0x82d83cf50dbce43f,
|
||||
0xa2813e53df9d018f,
|
||||
0xc6f0caa53c65e181,
|
||||
0x7525cf528d50fe95,
|
||||
0x4a85ed50f4798a6b,
|
||||
0x171da0fd6cf8eebd,
|
||||
])),
|
||||
field_new!(Fq, BigInteger384([
|
||||
0x3726c30af242c66c,
|
||||
0x7c2ac1aad1b6fe70,
|
||||
0xa04007fbba4b14a2,
|
||||
0xef517c3266341429,
|
||||
0x95ba654ed2226b,
|
||||
0x2e370eccc86f7dd,
|
||||
])),
|
||||
field_new!(Fq, "4002409555221667392624310435006688643935503118305586438271171395842971157480381377015405980053539358417135540939437"),
|
||||
field_new!(Fq, "0"),
|
||||
),
|
||||
// Fp2::NONRESIDUE^(((q^11) - 1) / 6)
|
||||
field_new!(Fq2,
|
||||
field_new!(Fq, "877076961050607968509681729531255177986764537961432449499635504522207616027455086505066378536590128544573588734230"),
|
||||
field_new!(Fq, "3125332594171059424908108096204648978570118281977575435832422631601824034463382777937621250592425535493320683825557"),
|
||||
),
|
||||
];
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
use crate::*;
|
||||
use ark_ff::{biginteger::BigInteger384 as BigInteger, field_new, fields::*};
|
||||
use ark_ff::{field_new, fields::*};
|
||||
|
||||
pub type Fq2 = Fp2<Fq2Parameters>;
|
||||
|
||||
@@ -10,57 +10,19 @@ impl Fp2Parameters for Fq2Parameters {
|
||||
|
||||
/// NONRESIDUE = -1
|
||||
#[rustfmt::skip]
|
||||
const NONRESIDUE: Fq = field_new!(Fq, BigInteger([
|
||||
0x43f5fffffffcaaae,
|
||||
0x32b7fff2ed47fffd,
|
||||
0x7e83a49a2e99d69,
|
||||
0xeca8f3318332bb7a,
|
||||
0xef148d1ea0f4c069,
|
||||
0x40ab3263eff0206,
|
||||
]));
|
||||
const NONRESIDUE: Fq = field_new!(Fq, "-1");
|
||||
|
||||
/// QUADRATIC_NONRESIDUE = (U + 1)
|
||||
#[rustfmt::skip]
|
||||
const QUADRATIC_NONRESIDUE: (Fq, Fq) = (
|
||||
field_new!(Fq, BigInteger([
|
||||
0x760900000002fffd,
|
||||
0xebf4000bc40c0002,
|
||||
0x5f48985753c758ba,
|
||||
0x77ce585370525745,
|
||||
0x5c071a97a256ec6d,
|
||||
0x15f65ec3fa80e493,
|
||||
])),
|
||||
field_new!(Fq, BigInteger([
|
||||
0x760900000002fffd,
|
||||
0xebf4000bc40c0002,
|
||||
0x5f48985753c758ba,
|
||||
0x77ce585370525745,
|
||||
0x5c071a97a256ec6d,
|
||||
0x15f65ec3fa80e493,
|
||||
])),
|
||||
);
|
||||
const QUADRATIC_NONRESIDUE: (Fq, Fq) = (FQ_ONE, FQ_ONE);
|
||||
|
||||
/// Coefficients for the Frobenius automorphism.
|
||||
#[rustfmt::skip]
|
||||
const FROBENIUS_COEFF_FP2_C1: &'static [Fq] = &[
|
||||
// Fq(-1)**(((q^0) - 1) / 2)
|
||||
field_new!(Fq, BigInteger([
|
||||
0x760900000002fffd,
|
||||
0xebf4000bc40c0002,
|
||||
0x5f48985753c758ba,
|
||||
0x77ce585370525745,
|
||||
0x5c071a97a256ec6d,
|
||||
0x15f65ec3fa80e493,
|
||||
])),
|
||||
field_new!(Fq, "1"),
|
||||
// Fq(-1)**(((q^1) - 1) / 2)
|
||||
field_new!(Fq, BigInteger([
|
||||
0x43f5fffffffcaaae,
|
||||
0x32b7fff2ed47fffd,
|
||||
0x7e83a49a2e99d69,
|
||||
0xeca8f3318332bb7a,
|
||||
0xef148d1ea0f4c069,
|
||||
0x40ab3263eff0206,
|
||||
])),
|
||||
field_new!(Fq, "-1"),
|
||||
];
|
||||
|
||||
#[inline(always)]
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
use crate::*;
|
||||
use ark_ff::{biginteger::BigInteger384, field_new, fields::*};
|
||||
use ark_ff::{field_new, fields::*};
|
||||
|
||||
pub type Fq6 = Fp6<Fq6Parameters>;
|
||||
|
||||
@@ -12,173 +12,75 @@ impl Fp6Parameters for Fq6Parameters {
|
||||
/// NONRESIDUE = (U + 1)
|
||||
#[rustfmt::skip]
|
||||
const NONRESIDUE: Fq2 = field_new!(Fq2,
|
||||
field_new!(Fq, BigInteger384([
|
||||
0x760900000002fffd,
|
||||
0xebf4000bc40c0002,
|
||||
0x5f48985753c758ba,
|
||||
0x77ce585370525745,
|
||||
0x5c071a97a256ec6d,
|
||||
0x15f65ec3fa80e493,
|
||||
])),
|
||||
field_new!(Fq, BigInteger384([
|
||||
0x760900000002fffd,
|
||||
0xebf4000bc40c0002,
|
||||
0x5f48985753c758ba,
|
||||
0x77ce585370525745,
|
||||
0x5c071a97a256ec6d,
|
||||
0x15f65ec3fa80e493,
|
||||
])),
|
||||
field_new!(Fq, "1"),
|
||||
field_new!(Fq, "1"),
|
||||
);
|
||||
|
||||
#[rustfmt::skip]
|
||||
const FROBENIUS_COEFF_FP6_C1: &'static [Fq2] = &[
|
||||
// Fq2(u + 1)**(((q^0) - 1) / 3)
|
||||
field_new!(Fq2,
|
||||
field_new!(Fq, BigInteger384([
|
||||
0x760900000002fffd,
|
||||
0xebf4000bc40c0002,
|
||||
0x5f48985753c758ba,
|
||||
0x77ce585370525745,
|
||||
0x5c071a97a256ec6d,
|
||||
0x15f65ec3fa80e493,
|
||||
])),
|
||||
field_new!(Fq, BigInteger384([0x0, 0x0, 0x0, 0x0, 0x0, 0x0])),
|
||||
// Fp2::NONRESIDUE^(((q^0) - 1) / 3)
|
||||
field_new!(Fq2,
|
||||
field_new!(Fq, "1"),
|
||||
field_new!(Fq, "0"),
|
||||
),
|
||||
// Fq2(u + 1)**(((q^1) - 1) / 3)
|
||||
field_new!(Fq2,
|
||||
field_new!(Fq, BigInteger384([0x0, 0x0, 0x0, 0x0, 0x0, 0x0])),
|
||||
field_new!(Fq, BigInteger384([
|
||||
0xcd03c9e48671f071,
|
||||
0x5dab22461fcda5d2,
|
||||
0x587042afd3851b95,
|
||||
0x8eb60ebe01bacb9e,
|
||||
0x3f97d6e83d050d2,
|
||||
0x18f0206554638741,
|
||||
])),
|
||||
// Fp2::NONRESIDUE^(((q^1) - 1) / 3)
|
||||
field_new!(Fq2,
|
||||
field_new!(Fq, "0"),
|
||||
field_new!(Fq, "4002409555221667392624310435006688643935503118305586438271171395842971157480381377015405980053539358417135540939436"),
|
||||
),
|
||||
// Fq2(u + 1)**(((q^2) - 1) / 3)
|
||||
field_new!(Fq2,
|
||||
field_new!(Fq, BigInteger384([
|
||||
0x30f1361b798a64e8,
|
||||
0xf3b8ddab7ece5a2a,
|
||||
0x16a8ca3ac61577f7,
|
||||
0xc26a2ff874fd029b,
|
||||
0x3636b76660701c6e,
|
||||
0x51ba4ab241b6160,
|
||||
])),
|
||||
field_new!(Fq, BigInteger384([0x0, 0x0, 0x0, 0x0, 0x0, 0x0])),
|
||||
// Fp2::NONRESIDUE^(((q^2) - 1) / 3)
|
||||
field_new!(Fq2,
|
||||
field_new!(Fq, "793479390729215512621379701633421447060886740281060493010456487427281649075476305620758731620350"),
|
||||
field_new!(Fq, "0"),
|
||||
),
|
||||
// Fq2(u + 1)**(((q^3) - 1) / 3)
|
||||
field_new!(Fq2,
|
||||
field_new!(Fq, BigInteger384([0x0, 0x0, 0x0, 0x0, 0x0, 0x0])),
|
||||
field_new!(Fq, BigInteger384([
|
||||
0x760900000002fffd,
|
||||
0xebf4000bc40c0002,
|
||||
0x5f48985753c758ba,
|
||||
0x77ce585370525745,
|
||||
0x5c071a97a256ec6d,
|
||||
0x15f65ec3fa80e493,
|
||||
])),
|
||||
// Fp2::NONRESIDUE^(((q^3) - 1) / 3)
|
||||
field_new!(Fq2,
|
||||
field_new!(Fq, "0"),
|
||||
field_new!(Fq, "1"),
|
||||
),
|
||||
// Fq2(u + 1)**(((q^4) - 1) / 3)
|
||||
field_new!(Fq2,
|
||||
field_new!(Fq, BigInteger384([
|
||||
0xcd03c9e48671f071,
|
||||
0x5dab22461fcda5d2,
|
||||
0x587042afd3851b95,
|
||||
0x8eb60ebe01bacb9e,
|
||||
0x3f97d6e83d050d2,
|
||||
0x18f0206554638741,
|
||||
])),
|
||||
field_new!(Fq, BigInteger384([0x0, 0x0, 0x0, 0x0, 0x0, 0x0])),
|
||||
// Fp2::NONRESIDUE^(((q^4) - 1) / 3)
|
||||
field_new!(Fq2,
|
||||
field_new!(Fq, "4002409555221667392624310435006688643935503118305586438271171395842971157480381377015405980053539358417135540939436"),
|
||||
field_new!(Fq, "0"),
|
||||
),
|
||||
// Fq2(u + 1)**(((q^5) - 1) / 3)
|
||||
field_new!(Fq2,
|
||||
field_new!(Fq, BigInteger384([0x0, 0x0, 0x0, 0x0, 0x0, 0x0])),
|
||||
field_new!(Fq, BigInteger384([
|
||||
0x30f1361b798a64e8,
|
||||
0xf3b8ddab7ece5a2a,
|
||||
0x16a8ca3ac61577f7,
|
||||
0xc26a2ff874fd029b,
|
||||
0x3636b76660701c6e,
|
||||
0x51ba4ab241b6160,
|
||||
])),
|
||||
// Fp2::NONRESIDUE^(((q^5) - 1) / 3)
|
||||
field_new!(Fq2,
|
||||
field_new!(Fq, "0"),
|
||||
field_new!(Fq, "793479390729215512621379701633421447060886740281060493010456487427281649075476305620758731620350"),
|
||||
),
|
||||
];
|
||||
];
|
||||
|
||||
#[rustfmt::skip]
|
||||
const FROBENIUS_COEFF_FP6_C2: &'static [Fq2] = &[
|
||||
// Fq2(u + 1)**(((2q^0) - 2) / 3)
|
||||
field_new!(Fq2,
|
||||
field_new!(Fq, BigInteger384([
|
||||
0x760900000002fffd,
|
||||
0xebf4000bc40c0002,
|
||||
0x5f48985753c758ba,
|
||||
0x77ce585370525745,
|
||||
0x5c071a97a256ec6d,
|
||||
0x15f65ec3fa80e493,
|
||||
])),
|
||||
field_new!(Fq, BigInteger384([0x0, 0x0, 0x0, 0x0, 0x0, 0x0])),
|
||||
field_new!(Fq, "1"),
|
||||
field_new!(Fq, "0"),
|
||||
),
|
||||
// Fq2(u + 1)**(((2q^1) - 2) / 3)
|
||||
field_new!(Fq2,
|
||||
field_new!(Fq, BigInteger384([
|
||||
0x890dc9e4867545c3,
|
||||
0x2af322533285a5d5,
|
||||
0x50880866309b7e2c,
|
||||
0xa20d1b8c7e881024,
|
||||
0x14e4f04fe2db9068,
|
||||
0x14e56d3f1564853a,
|
||||
])),
|
||||
field_new!(Fq, BigInteger384([0x0, 0x0, 0x0, 0x0, 0x0, 0x0])),
|
||||
field_new!(Fq, "4002409555221667392624310435006688643935503118305586438271171395842971157480381377015405980053539358417135540939437"),
|
||||
field_new!(Fq, "0"),
|
||||
),
|
||||
// Fq2(u + 1)**(((2q^2) - 2) / 3)
|
||||
field_new!(Fq2,
|
||||
field_new!(Fq, BigInteger384([
|
||||
0xcd03c9e48671f071,
|
||||
0x5dab22461fcda5d2,
|
||||
0x587042afd3851b95,
|
||||
0x8eb60ebe01bacb9e,
|
||||
0x3f97d6e83d050d2,
|
||||
0x18f0206554638741,
|
||||
])),
|
||||
field_new!(Fq, BigInteger384([0x0, 0x0, 0x0, 0x0, 0x0, 0x0])),
|
||||
field_new!(Fq, "4002409555221667392624310435006688643935503118305586438271171395842971157480381377015405980053539358417135540939436"),
|
||||
field_new!(Fq, "0"),
|
||||
),
|
||||
// Fq2(u + 1)**(((2q^3) - 2) / 3)
|
||||
field_new!(Fq2,
|
||||
field_new!(Fq, BigInteger384([
|
||||
0x43f5fffffffcaaae,
|
||||
0x32b7fff2ed47fffd,
|
||||
0x7e83a49a2e99d69,
|
||||
0xeca8f3318332bb7a,
|
||||
0xef148d1ea0f4c069,
|
||||
0x40ab3263eff0206,
|
||||
])),
|
||||
field_new!(Fq, BigInteger384([0x0, 0x0, 0x0, 0x0, 0x0, 0x0])),
|
||||
field_new!(Fq, "-1"),
|
||||
field_new!(Fq, "0"),
|
||||
),
|
||||
// Fq2(u + 1)**(((2q^4) - 2) / 3)
|
||||
field_new!(Fq2,
|
||||
field_new!(Fq, BigInteger384([
|
||||
0x30f1361b798a64e8,
|
||||
0xf3b8ddab7ece5a2a,
|
||||
0x16a8ca3ac61577f7,
|
||||
0xc26a2ff874fd029b,
|
||||
0x3636b76660701c6e,
|
||||
0x51ba4ab241b6160,
|
||||
])),
|
||||
field_new!(Fq, BigInteger384([0x0, 0x0, 0x0, 0x0, 0x0, 0x0])),
|
||||
field_new!(Fq, "793479390729215512621379701633421447060886740281060493010456487427281649075476305620758731620350"),
|
||||
field_new!(Fq, "0"),
|
||||
),
|
||||
// Fq2(u + 1)**(((2q^5) - 2) / 3)
|
||||
field_new!(Fq2,
|
||||
field_new!(Fq, BigInteger384([
|
||||
0xecfb361b798dba3a,
|
||||
0xc100ddb891865a2c,
|
||||
0xec08ff1232bda8e,
|
||||
0xd5c13cc6f1ca4721,
|
||||
0x47222a47bf7b5c04,
|
||||
0x110f184e51c5f59,
|
||||
])),
|
||||
field_new!(Fq, BigInteger384([0x0, 0x0, 0x0, 0x0, 0x0, 0x0])),
|
||||
field_new!(Fq, "793479390729215512621379701633421447060886740281060493010456487427281649075476305620758731620351"),
|
||||
field_new!(Fq, "0"),
|
||||
),
|
||||
];
|
||||
|
||||
|
||||
Reference in New Issue
Block a user