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:
ECField
-
Constructor Summary
ConstructorDescriptionECFieldF2m(int m)
Creates an elliptic curve characteristic 2 finite field which has 2^m
elements with normal basis.ECFieldF2m(int m, int[] ks)
Creates an elliptic curve characteristic 2 finite field which has 2^m
elements with polynomial basis.ECFieldF2m(int m, BigInteger rp)
Creates an elliptic curve characteristic 2 finite field which has 2^m
elements with polynomial basis. -
Method Summary
Modifier and TypeMethodDescriptionboolean
Compares this finite field for equality with the specified object.int
Returns the field size in bits which ism
for this characteristic 2 finite field.int
getM()
Returns the valuem
of 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.int
hashCode()
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^m
elements with normal basis.- Parameters:
m
- with 2^m
being the number of elements.- Throws:
IllegalArgumentException
- ifm
is not positive.
-
ECFieldF2m
Creates an elliptic curve characteristic 2 finite field which has 2^m
elements with polynomial basis. The reduction polynomial for this field is based onrp
whose 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^m
being the number of elements.rp
- the BigInteger whose i-th bit corresponds to the i-th coefficient of the reduction polynomial.- Throws:
NullPointerException
- ifrp
is null.IllegalArgumentException
- ifm
is not positive, orrp
does not represent a valid reduction polynomial.
-
ECFieldF2m
public ECFieldF2m(int m, int[] ks)Creates an elliptic curve characteristic 2 finite field which has 2^m
elements with polynomial basis. The reduction polynomial for this field is based onks
whose 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), soks
should have length 1 or 3.- Parameters:
m
- with 2^m
being 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
- ifks
is null.IllegalArgumentException
- ifm
is not positive, or the length ofks
is neither 1 nor 3, or values inks
are not betweenm
-1 and 1 (inclusive) and in descending order.
-
-
Method Details
-
getFieldSize
public int getFieldSize()Returns the field size in bits which ism
for this characteristic 2 finite field.- Specified by:
getFieldSize
in interfaceECField
- Returns:
- the field size in bits.
-
getM
public int getM()Returns the valuem
of this characteristic 2 finite field.- Returns:
m
with 2^m
being 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.- Overrides:
equals
in classObject
- Parameters:
obj
- the object to be compared.- Returns:
- true if
obj
is an instance of ECFieldF2m and bothm
and the reduction polynomial match, false otherwise. - See Also:
Object.hashCode()
,HashMap
-
hashCode
public int hashCode()Returns a hash code value for this characteristic 2 finite field.- Overrides:
hashCode
in classObject
- Returns:
- a hash code value.
- See Also:
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
-