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 dk.jonaslindstrom.ruffini.finitefields.BigPrimeFieldThe base fieldFP= Fp.static dk.jonaslindstrom.ruffini.finitefields.AlgebraicFieldExtension<dk.jonaslindstrom.ruffini.polynomials.elements.Polynomial<dk.jonaslindstrom.ruffini.polynomials.elements.Polynomial<BigInteger>>,dk.jonaslindstrom.ruffini.finitefields.AlgebraicFieldExtension<dk.jonaslindstrom.ruffini.polynomials.elements.Polynomial<BigInteger>, dk.jonaslindstrom.ruffini.finitefields.AlgebraicFieldExtension<BigInteger, dk.jonaslindstrom.ruffini.finitefields.BigPrimeField>>> FP12= FP6(w) / (w2 - v)) is a quadratic field extension ofFP6.static dk.jonaslindstrom.ruffini.finitefields.AlgebraicFieldExtension<BigInteger,dk.jonaslindstrom.ruffini.finitefields.BigPrimeField> FP2= FP(u) / (u2 + 1) is a quadratic field extension of base fieldFP.static dk.jonaslindstrom.ruffini.finitefields.AlgebraicFieldExtension<dk.jonaslindstrom.ruffini.polynomials.elements.Polynomial<BigInteger>,dk.jonaslindstrom.ruffini.finitefields.AlgebraicFieldExtension<BigInteger, dk.jonaslindstrom.ruffini.finitefields.BigPrimeField>> FP6= FP2(v) / (v3 - (u + 1)) is a cubic field extension ofFP2.static dk.jonaslindstrom.ruffini.finitefields.BigPrimeFieldPrime field of order q.static ShortWeierstrassCurveAffine<BigInteger,?> Curve overFPcontaining the G1 subgroup.static AffinePoint<BigInteger>Generator for the G1 subgroup of order q.static ShortWeierstrassCurveAffine<dk.jonaslindstrom.ruffini.polynomials.elements.Polynomial<BigInteger>,?> Curve overFP2containing the G2 subgroup.static AffinePoint<dk.jonaslindstrom.ruffini.polynomials.elements.Polynomial<BigInteger>>static dk.jonaslindstrom.ruffini.common.abstractions.Group<dk.jonaslindstrom.ruffini.polynomials.elements.Polynomial<dk.jonaslindstrom.ruffini.polynomials.elements.Polynomial<dk.jonaslindstrom.ruffini.polynomials.elements.Polynomial<BigInteger>>>>static BigIntegerModulus of the base field.static java.util.function.BiFunction<AffinePoint<BigInteger>,AffinePoint<dk.jonaslindstrom.ruffini.polynomials.elements.Polynomial<BigInteger>>, dk.jonaslindstrom.ruffini.polynomials.elements.Polynomial<dk.jonaslindstrom.ruffini.polynomials.elements.Polynomial<dk.jonaslindstrom.ruffini.polynomials.elements.Polynomial<BigInteger>>>> The optimal Ate pairing which is a bilinear function e: G1 x G2 → GT.static BigIntegerOrder of subgroups of G1, G2 and GT -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic dk.jonaslindstrom.ruffini.common.util.SamePair<dk.jonaslindstrom.ruffini.polynomials.elements.Polynomial<dk.jonaslindstrom.ruffini.polynomials.elements.Polynomial<dk.jonaslindstrom.ruffini.polynomials.elements.Polynomial<BigInteger>>>>
-
Field Details
-
p
Modulus of the base field. -
FP
public static dk.jonaslindstrom.ruffini.finitefields.BigPrimeField FPThe base fieldFP= Fp. -
FP2
public static dk.jonaslindstrom.ruffini.finitefields.AlgebraicFieldExtension<BigInteger,dk.jonaslindstrom.ruffini.finitefields.BigPrimeField> FP2FP2= FP(u) / (u2 + 1) is a quadratic field extension of base fieldFP. -
FP6
public static dk.jonaslindstrom.ruffini.finitefields.AlgebraicFieldExtension<dk.jonaslindstrom.ruffini.polynomials.elements.Polynomial<BigInteger>,dk.jonaslindstrom.ruffini.finitefields.AlgebraicFieldExtension<BigInteger, FP6dk.jonaslindstrom.ruffini.finitefields.BigPrimeField>> FP6= FP2(v) / (v3 - (u + 1)) is a cubic field extension ofFP2. -
FP12
public static dk.jonaslindstrom.ruffini.finitefields.AlgebraicFieldExtension<dk.jonaslindstrom.ruffini.polynomials.elements.Polynomial<dk.jonaslindstrom.ruffini.polynomials.elements.Polynomial<BigInteger>>,dk.jonaslindstrom.ruffini.finitefields.AlgebraicFieldExtension<dk.jonaslindstrom.ruffini.polynomials.elements.Polynomial<BigInteger>, FP12dk.jonaslindstrom.ruffini.finitefields.AlgebraicFieldExtension<BigInteger, dk.jonaslindstrom.ruffini.finitefields.BigPrimeField>>> FP12= FP6(w) / (w2 - v)) is a quadratic field extension ofFP6. -
GT
public static dk.jonaslindstrom.ruffini.common.abstractions.Group<dk.jonaslindstrom.ruffini.polynomials.elements.Polynomial<dk.jonaslindstrom.ruffini.polynomials.elements.Polynomial<dk.jonaslindstrom.ruffini.polynomials.elements.Polynomial<BigInteger>>>> GT -
G2
public static ShortWeierstrassCurveAffine<dk.jonaslindstrom.ruffini.polynomials.elements.Polynomial<BigInteger>,?> G2Curve overFP2containing the G2 subgroup. -
G1
Curve overFPcontaining the G1 subgroup. -
G2_GENERATOR
public static AffinePoint<dk.jonaslindstrom.ruffini.polynomials.elements.Polynomial<BigInteger>> G2_GENERATOR -
q
Order of subgroups of G1, G2 and GT -
FQ
public static dk.jonaslindstrom.ruffini.finitefields.BigPrimeField FQPrime field of order q. -
G1_GENERATOR
Generator for the G1 subgroup of order q. -
PAIRING
public static java.util.function.BiFunction<AffinePoint<BigInteger>,AffinePoint<dk.jonaslindstrom.ruffini.polynomials.elements.Polynomial<BigInteger>>, PAIRINGdk.jonaslindstrom.ruffini.polynomials.elements.Polynomial<dk.jonaslindstrom.ruffini.polynomials.elements.Polynomial<dk.jonaslindstrom.ruffini.polynomials.elements.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 dk.jonaslindstrom.ruffini.common.util.SamePair<dk.jonaslindstrom.ruffini.polynomials.elements.Polynomial<dk.jonaslindstrom.ruffini.polynomials.elements.Polynomial<dk.jonaslindstrom.ruffini.polynomials.elements.Polynomial<BigInteger>>>> twist(AffinePoint<BigInteger> p)
-