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
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. -
hashCode
public int hashCode()Returns a hash code value for this characteristic 2 finite field.
-