Package org.bouncycastle.math.ec
Class ECCurve.F2m
java.lang.Object
org.bouncycastle.math.ec.ECCurve
org.bouncycastle.math.ec.ECCurve.AbstractF2m
org.bouncycastle.math.ec.ECCurve.F2m
- Enclosing class:
ECCurve
Elliptic curves over F2m. The Weierstrass equation is given by
y2 + xy = x3 + ax2 + b.-
Nested Class Summary
Nested classes/interfaces inherited from class org.bouncycastle.math.ec.ECCurve
ECCurve.AbstractF2m, ECCurve.AbstractFp, ECCurve.Config, ECCurve.F2m, ECCurve.Fp -
Field Summary
Fields inherited from class org.bouncycastle.math.ec.ECCurve
a, b, cofactor, coord, COORD_AFFINE, COORD_HOMOGENEOUS, COORD_JACOBIAN, COORD_JACOBIAN_CHUDNOVSKY, COORD_JACOBIAN_MODIFIED, COORD_LAMBDA_AFFINE, COORD_LAMBDA_PROJECTIVE, COORD_SKEWED, endomorphism, field, multiplier, order -
Constructor Summary
ConstructorsModifierConstructorDescriptionF2m(int m, int k1, int k2, int k3, BigInteger a, BigInteger b, BigInteger order, BigInteger cofactor) Constructor for Pentanomial Polynomial Basis (PPB).protectedF2m(int m, int k1, int k2, int k3, ECFieldElement a, ECFieldElement b, BigInteger order, BigInteger cofactor) F2m(int m, int k, BigInteger a, BigInteger b, BigInteger order, BigInteger cofactor) Constructor for Trinomial Polynomial Basis (TPB). -
Method Summary
Modifier and TypeMethodDescriptionprotected ECCurvecreateCacheSafeLookupTable(ECPoint[] points, int off, int len) Create a cache-safe lookup table for the specified sequence of points.protected ECMultiplierprotected ECPointprotected ECPointcreateRawPoint(ECFieldElement x, ECFieldElement y, ECFieldElement[] zs) intintgetK1()intgetK2()intgetK3()intgetM()booleanReturn true if curve uses a Trinomial basis.booleansupportsCoordinateSystem(int coord) Methods inherited from class org.bouncycastle.math.ec.ECCurve.AbstractF2m
createPoint, decompressPoint, inverse, isKoblitz, isValidFieldElement, randomFieldElement, randomFieldElementMult, solveQuadraticEquationMethods inherited from class org.bouncycastle.math.ec.ECCurve
checkPoint, checkPoints, checkPoints, configure, decodePoint, equals, equals, getA, getAllCoordinateSystems, getB, getCofactor, getCoordinateSystem, getEndomorphism, getField, getMultiplier, getOrder, getPreCompInfo, hashCode, importPoint, normalizeAll, normalizeAll, precompute, validatePoint
-
Constructor Details
-
F2m
Constructor for Trinomial Polynomial Basis (TPB).- Parameters:
m- The exponentmofF2m.k- The integerkwherexm + xk + 1represents the reduction polynomialf(z).a- The coefficientain the Weierstrass equation for non-supersingular elliptic curves overF2m.b- The coefficientbin the Weierstrass equation for non-supersingular elliptic curves overF2m.order- The order of the main subgroup of the elliptic curve.cofactor- The cofactor of the elliptic curve, i.e.#Ea(F2m) = h * n.
-
F2m
public F2m(int m, int k1, int k2, int k3, BigInteger a, BigInteger b, BigInteger order, BigInteger cofactor) Constructor for Pentanomial Polynomial Basis (PPB).- Parameters:
m- The exponentmofF2m.k1- The integerk1wherexm + xk3 + xk2 + xk1 + 1represents the reduction polynomialf(z).k2- The integerk2wherexm + xk3 + xk2 + xk1 + 1represents the reduction polynomialf(z).k3- The integerk3wherexm + xk3 + xk2 + xk1 + 1represents the reduction polynomialf(z).a- The coefficientain the Weierstrass equation for non-supersingular elliptic curves overF2m.b- The coefficientbin the Weierstrass equation for non-supersingular elliptic curves overF2m.order- The order of the main subgroup of the elliptic curve.cofactor- The cofactor of the elliptic curve, i.e.#Ea(F2m) = h * n.
-
F2m
protected F2m(int m, int k1, int k2, int k3, ECFieldElement a, ECFieldElement b, BigInteger order, BigInteger cofactor)
-
-
Method Details
-
cloneCurve
- Specified by:
cloneCurvein classECCurve
-
supportsCoordinateSystem
public boolean supportsCoordinateSystem(int coord) - Overrides:
supportsCoordinateSystemin classECCurve
-
createDefaultMultiplier
- Overrides:
createDefaultMultiplierin classECCurve
-
getFieldSize
public int getFieldSize()- Specified by:
getFieldSizein classECCurve
-
fromBigInteger
- Specified by:
fromBigIntegerin classECCurve
-
createRawPoint
- Specified by:
createRawPointin classECCurve
-
createRawPoint
- Specified by:
createRawPointin classECCurve
-
getInfinity
- Specified by:
getInfinityin classECCurve
-
getM
public int getM() -
isTrinomial
public boolean isTrinomial()Return true if curve uses a Trinomial basis.- Returns:
- true if curve Trinomial, false otherwise.
-
getK1
public int getK1() -
getK2
public int getK2() -
getK3
public int getK3() -
createCacheSafeLookupTable
Description copied from class:ECCurveCreate a cache-safe lookup table for the specified sequence of points. All the points MUST belong to thisECCurveinstance, and MUST already be normalized.- Overrides:
createCacheSafeLookupTablein classECCurve
-