Package org.bouncycastle.math.ec
Class ECCurve.F2m
java.lang.Object
org.bouncycastle.math.ec.ECCurve
org.bouncycastle.math.ec.ECCurve.F2m
- Enclosing class:
- ECCurve
public static class ECCurve.F2m extends 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.F2m, ECCurve.Fp -
Constructor Summary
Constructors 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 n, BigInteger h)Constructor for Pentanomial Polynomial Basis (PPB).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 n, BigInteger h)Constructor for Trinomial Polynomial Basis (TPB). -
Method Summary
Modifier and Type Method Description ECPointcreatePoint(BigInteger x, BigInteger y, boolean withCompression)protected ECPointdecompressPoint(int yTilde, BigInteger X1)Decompresses a compressed point P = (xp, yp) (X9.62 s 4.2.2).booleanequals(Object anObject)Compares this instance with the specified object and indicates if they are equal.ECFieldElementfromBigInteger(BigInteger x)intgetFieldSize()BigIntegergetH()ECPointgetInfinity()intgetK1()intgetK2()intgetK3()intgetM()BigIntegergetN()inthashCode()Returns an integer hash code for this object.booleanisKoblitz()Returns true if this is a Koblitz curve (ABC curve).booleanisTrinomial()Return true if curve uses a Trinomial basis.Methods inherited from class org.bouncycastle.math.ec.ECCurve
decodePoint, getA, getB
-
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.
-
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.n- The order of the main subgroup of the elliptic curve.h- The cofactor of the elliptic curve, i.e.#Ea(F2m) = h * n.
-
F2m
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
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.n- The order of the main subgroup of the elliptic curve.h- The cofactor of the elliptic curve, i.e.#Ea(F2m) = h * n.
-
-
Method Details
-
getFieldSize
public int getFieldSize()- Specified by:
getFieldSizein classECCurve
-
fromBigInteger
- Specified by:
fromBigIntegerin classECCurve
-
createPoint
- Specified by:
createPointin classECCurve
-
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
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.
-
equals
Description copied from class:ObjectCompares this instance with the specified object and indicates if they are equal. In order to be equal,omust represent the same object as this instance using a class-specific comparison. The general contract is that this comparison should be reflexive, symmetric, and transitive. Also, no object reference other than null is equal to null.The default implementation returns
trueonly ifthis == o. See Writing a correctequalsmethod if you intend implementing your ownequalsmethod.The general contract for the
equalsandObject.hashCode()methods is that ifequalsreturnstruefor any two objects, thenhashCode()must return the same value for these objects. This means that subclasses ofObjectusually override either both methods or neither of them.- Overrides:
equalsin classObject- Parameters:
anObject- the object to compare this instance with.- Returns:
trueif the specified object is equal to thisObject;falseotherwise.- See Also:
Object.hashCode()
-
hashCode
public int hashCode()Description copied from class:ObjectReturns an integer hash code for this object. By contract, any two objects for whichObject.equals(java.lang.Object)returnstruemust return the same hash code value. This means that subclasses ofObjectusually override both methods or neither method.Note that hash values must not change over time unless information used in equals comparisons also changes.
See Writing a correct
hashCodemethod if you intend implementing your ownhashCodemethod.- Overrides:
hashCodein classObject- Returns:
- this object's hash code.
- See Also:
Object.equals(java.lang.Object)
-
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
-
getH
-