Class BLS12381
java.lang.Object
dk.jonaslindstrom.ruffini.elliptic.structures.bls12381.BLS12381
Implementation of the BLS12-381 pairing-friendly elliptic curve construction.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic BigPrimeField
The base fieldFP
= Fp.static AlgebraicFieldExtension<Polynomial<Polynomial<BigInteger>>,
AlgebraicFieldExtension<Polynomial<BigInteger>, AlgebraicFieldExtension<BigInteger, BigPrimeField>>> FP12
= FP6(w) / (w2 - v)) is a quadratic field extension ofFP6
.FP2
= FP(u) / (u2 + 1) is a quadratic field extension of base fieldFP
.static AlgebraicFieldExtension<Polynomial<BigInteger>,
AlgebraicFieldExtension<BigInteger, BigPrimeField>> FP6
= FP2(v) / (v3 - (u + 1)) is a cubic field extension ofFP2
.static BigPrimeField
Prime field of order q.static ShortWeierstrassCurveAffine<BigInteger,
?> Curve overFP
containing the G1 subgroup.static AffinePoint<BigInteger>
Generator for the G1 subgroup of order q.static ShortWeierstrassCurveAffine<Polynomial<BigInteger>,
?> Curve overFP2
containing the G2 subgroup.static AffinePoint<Polynomial<BigInteger>>
static Group<Polynomial<Polynomial<Polynomial<BigInteger>>>>
static BigInteger
Modulus of the base field.static java.util.function.BiFunction<AffinePoint<BigInteger>,
AffinePoint<Polynomial<BigInteger>>, Polynomial<Polynomial<Polynomial<BigInteger>>>> The optimal Ate pairing which is a bilinear function e: G1 x G2 → GT.static BigInteger
Order of subgroups of G1, G2 and GT -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic SamePair<Polynomial<Polynomial<Polynomial<BigInteger>>>>
-
Field Details
-
p
Modulus of the base field. -
FP
The base fieldFP
= Fp. -
FP2
FP2
= FP(u) / (u2 + 1) is a quadratic field extension of base fieldFP
. -
FP6
public static AlgebraicFieldExtension<Polynomial<BigInteger>,AlgebraicFieldExtension<BigInteger, FP6BigPrimeField>> FP6
= FP2(v) / (v3 - (u + 1)) is a cubic field extension ofFP2
. -
FP12
public static AlgebraicFieldExtension<Polynomial<Polynomial<BigInteger>>,AlgebraicFieldExtension<Polynomial<BigInteger>, FP12AlgebraicFieldExtension<BigInteger, BigPrimeField>>> FP12
= FP6(w) / (w2 - v)) is a quadratic field extension ofFP6
. -
GT
-
G2
Curve overFP2
containing the G2 subgroup. -
G1
Curve overFP
containing the G1 subgroup. -
G2_GENERATOR
-
q
Order of subgroups of G1, G2 and GT -
FQ
Prime field of order q. -
G1_GENERATOR
Generator for the G1 subgroup of order q. -
PAIRING
public static java.util.function.BiFunction<AffinePoint<BigInteger>,AffinePoint<Polynomial<BigInteger>>, PAIRINGPolynomial<Polynomial<Polynomial<BigInteger>>>> The optimal Ate pairing which is a bilinear function e: G1 x G2 → GT.
-
-
Constructor Details
-
BLS12381
public BLS12381()
-
-
Method Details
-
twist
public static SamePair<Polynomial<Polynomial<Polynomial<BigInteger>>>> twist(AffinePoint<BigInteger> p)
-