java.lang.Object
java.security.spec.ECFieldF2m
- All Implemented Interfaces:
ECField
This immutable class defines an elliptic curve (EC)
characteristic 2 finite field.
- Since:
- 1.5
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionECFieldF2m(int m) Creates an elliptic curve characteristic 2 finite field which has 2^melements with normal basis.ECFieldF2m(int m, int[] ks) Creates an elliptic curve characteristic 2 finite field which has 2^melements with polynomial basis.ECFieldF2m(int m, BigInteger rp) Creates an elliptic curve characteristic 2 finite field which has 2^melements with polynomial basis. -
Method Summary
Modifier and TypeMethodDescriptionbooleanCompares this finite field for equality with the specified object.intReturns the field size in bits which ismfor this characteristic 2 finite field.intgetM()Returns the valuemof this characteristic 2 finite field.int[]Returns an integer array which contains the order of the middle term(s) of the reduction polynomial for polynomial basis or null for normal basis.Returns a BigInteger whose i-th bit corresponds to the i-th coefficient of the reduction polynomial for polynomial basis or null for normal basis.inthashCode()Returns a hash code value for this characteristic 2 finite field.
-
Constructor Details
-
ECFieldF2m
public ECFieldF2m(int m) Creates an elliptic curve characteristic 2 finite field which has 2^melements with normal basis.- Parameters:
m- with 2^mbeing the number of elements.- Throws:
IllegalArgumentException- ifmis not positive.
-
ECFieldF2m
Creates an elliptic curve characteristic 2 finite field which has 2^melements with polynomial basis. The reduction polynomial for this field is based onrpwhose i-th bit corresponds to the i-th coefficient of the reduction polynomial.Note: A valid reduction polynomial is either a trinomial (X^
m+ X^k+ 1 withm>k>= 1) or a pentanomial (X^m+ X^k3+ X^k2+ X^k1+ 1 withm>k3>k2>k1>= 1).- Parameters:
m- with 2^mbeing the number of elements.rp- the BigInteger whose i-th bit corresponds to the i-th coefficient of the reduction polynomial.- Throws:
NullPointerException- ifrpis null.IllegalArgumentException- ifmis not positive, orrpdoes not represent a valid reduction polynomial.
-
ECFieldF2m
public ECFieldF2m(int m, int[] ks) Creates an elliptic curve characteristic 2 finite field which has 2^melements with polynomial basis. The reduction polynomial for this field is based onkswhose content contains the order of the middle term(s) of the reduction polynomial. Note: A valid reduction polynomial is either a trinomial (X^m+ X^k+ 1 withm>k>= 1) or a pentanomial (X^m+ X^k3+ X^k2+ X^k1+ 1 withm>k3>k2>k1>= 1), soksshould have length 1 or 3.- Parameters:
m- with 2^mbeing the number of elements.ks- the order of the middle term(s) of the reduction polynomial. Contents of this array are copied to protect against subsequent modification.- Throws:
NullPointerException- ifksis null.IllegalArgumentException- ifmis not positive, or the length ofksis neither 1 nor 3, or values inksare not betweenm-1 and 1 (inclusive) and in descending order.
-
-
Method Details
-
getFieldSize
public int getFieldSize()Returns the field size in bits which ismfor this characteristic 2 finite field.- Specified by:
getFieldSizein interfaceECField- Returns:
- the field size in bits.
-
getM
public int getM()Returns the valuemof this characteristic 2 finite field.- Returns:
mwith 2^mbeing the number of elements.
-
getReductionPolynomial
Returns a BigInteger whose i-th bit corresponds to the i-th coefficient of the reduction polynomial for polynomial basis or null for normal basis.- Returns:
- a BigInteger whose i-th bit corresponds to the i-th coefficient of the reduction polynomial for polynomial basis or null for normal basis.
-
getMidTermsOfReductionPolynomial
public int[] getMidTermsOfReductionPolynomial()Returns an integer array which contains the order of the middle term(s) of the reduction polynomial for polynomial basis or null for normal basis.- Returns:
- an integer array which contains the order of the middle term(s) of the reduction polynomial for polynomial basis or null for normal basis. A new array is returned each time this method is called.
-
equals
Compares this finite field for equality with the specified object. -
hashCode
public int hashCode()Returns a hash code value for this characteristic 2 finite field.
-