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
public static class ECCurve.F2m extends ECCurve.AbstractF2m
Elliptic curves over F2m. The Weierstrass equation is given byy2 + 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
Constructors Modifier Constructor Description F2m(int m, int k1, int k2, int k3, BigInteger a, BigInteger b)Constructor for Pentanomial Polynomial Basis (PPB).F2m(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)Constructor for Trinomial Polynomial Basis (TPB).F2m(int m, int k, BigInteger a, BigInteger b, BigInteger order, BigInteger cofactor)Constructor for Trinomial Polynomial Basis (TPB).
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description protected ECCurvecloneCurve()protected ECMultipliercreateDefaultMultiplier()ECPointcreatePoint(BigInteger x, BigInteger y, boolean withCompression)protected ECPointcreateRawPoint(ECFieldElement x, ECFieldElement y, boolean withCompression)protected ECPointcreateRawPoint(ECFieldElement x, ECFieldElement y, ECFieldElement[] zs, boolean withCompression)protected ECPointdecompressPoint(int yTilde, BigInteger X1)Decompresses a compressed point P = (xp, yp) (X9.62 s 4.2.2).ECFieldElementfromBigInteger(BigInteger x)intgetFieldSize()BigIntegergetH()Deprecated.useECCurve.getCofactor()insteadECPointgetInfinity()intgetK1()intgetK2()intgetK3()intgetM()BigIntegergetN()Deprecated.useECCurve.getOrder()insteadbooleanisKoblitz()Returns true if this is a Koblitz curve (ABC curve).booleanisTrinomial()Return true if curve uses a Trinomial basis.booleansupportsCoordinateSystem(int coord)-
Methods inherited from class org.bouncycastle.math.ec.ECCurve
checkPoint, checkPoints, checkPoints, configure, createPoint, decodePoint, equals, equals, getA, getAllCoordinateSystems, getB, getCofactor, getCoordinateSystem, getEndomorphism, getField, getMultiplier, getOrder, getPreCompInfo, hashCode, importPoint, normalizeAll, normalizeAll, setPreCompInfo, validatePoint, validatePoint
-
-
-
-
Constructor Detail
-
F2m
public F2m(int m, int k, BigInteger a, BigInteger b)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.
-
F2m
public F2m(int m, int k, BigInteger a, BigInteger b, BigInteger order, BigInteger cofactor)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)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.
-
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 Detail
-
cloneCurve
protected ECCurve cloneCurve()
- Specified by:
cloneCurvein classECCurve
-
supportsCoordinateSystem
public boolean supportsCoordinateSystem(int coord)
- Overrides:
supportsCoordinateSystemin classECCurve
-
createDefaultMultiplier
protected ECMultiplier createDefaultMultiplier()
- Overrides:
createDefaultMultiplierin classECCurve
-
getFieldSize
public int getFieldSize()
- Specified by:
getFieldSizein classECCurve
-
fromBigInteger
public ECFieldElement fromBigInteger(BigInteger x)
- Specified by:
fromBigIntegerin classECCurve
-
createPoint
public ECPoint createPoint(BigInteger x, BigInteger y, boolean withCompression)
- Overrides:
createPointin classECCurve
-
createRawPoint
protected ECPoint createRawPoint(ECFieldElement x, ECFieldElement y, boolean withCompression)
- Specified by:
createRawPointin classECCurve
-
createRawPoint
protected ECPoint createRawPoint(ECFieldElement x, ECFieldElement y, ECFieldElement[] zs, boolean withCompression)
- Specified by:
createRawPointin classECCurve
-
getInfinity
public ECPoint getInfinity()
- Specified by:
getInfinityin classECCurve
-
isKoblitz
public boolean isKoblitz()
Returns true if this is a Koblitz curve (ABC curve).- Returns:
- true if this is a Koblitz curve (ABC curve), false otherwise
-
decompressPoint
protected ECPoint decompressPoint(int yTilde, BigInteger X1)
Decompresses a compressed point P = (xp, yp) (X9.62 s 4.2.2).- Specified by:
decompressPointin classECCurve- Parameters:
yTilde- ~yp, an indication bit for the decompression of yp.X1- The field element xp.- Returns:
- the decompressed point.
-
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()
-
getN
public BigInteger getN()
Deprecated.useECCurve.getOrder()instead
-
getH
public BigInteger getH()
Deprecated.useECCurve.getCofactor()instead
-
-