ECFieldF2m
public
class
ECFieldF2m
extends Object
implements
ECField
| java.lang.Object | |
| ↳ | java.security.spec.ECFieldF2m |
This immutable class defines an elliptic curve (EC) characteristic 2 finite field.
See also:
Summary
Public constructors | |
|---|---|
ECFieldF2m(int m)
Creates an elliptic curve characteristic 2 finite
field which has 2^ |
|
ECFieldF2m(int m, int[] ks)
Creates an elliptic curve characteristic 2 finite
field which has 2^ |
|
ECFieldF2m(int m, BigInteger rp)
Creates an elliptic curve characteristic 2 finite
field which has 2^ |
|
Public methods | |
|---|---|
boolean
|
equals(Object obj)
Compares this finite field for equality with the specified object. |
int
|
getFieldSize()
Returns the field size in bits which is |
int
|
getM()
Returns the value |
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. |
BigInteger
|
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. |
int
|
hashCode()
Returns a hash code value for this characteristic 2 finite field. |
Inherited methods | |
|---|---|
Public constructors
ECFieldF2m
public ECFieldF2m (int m)
Creates an elliptic curve characteristic 2 finite
field which has 2^m elements with normal basis.
| Parameters | |
|---|---|
m |
int: with 2^m being the number of elements. |
| Throws | |
|---|---|
IllegalArgumentException |
if m
is not positive. |
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 on ks 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
with m > k >= 1) or a
pentanomial (X^m + X^k3
+ X^k2 + X^k1 + 1 with
m > k3 > k2
> k1 >= 1), so ks should
have length 1 or 3.
| Parameters | |
|---|---|
m |
int: with 2^m being the number of elements. |
ks |
int: the order of the middle term(s) of the
reduction polynomial. Contents of this array are copied
to protect against subsequent modification. |
| Throws | |
|---|---|
NullPointerException |
if ks is null. |
IllegalArgumentException |
ifm
is not positive, or the length of ks
is neither 1 nor 3, or values in ks
are not between m-1 and 1 (inclusive)
and in descending order. |
ECFieldF2m
public ECFieldF2m (int m,
BigInteger rp)Creates an elliptic curve characteristic 2 finite
field which has 2^m elements with
polynomial basis.
The reduction polynomial for this field is based
on rp 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
with m > k >= 1) or a
pentanomial (X^m + X^k3
+ X^k2 + X^k1 + 1 with
m > k3 > k2
> k1 >= 1).
| Parameters | |
|---|---|
m |
int: with 2^m being the number of elements. |
rp |
BigInteger: the BigInteger whose i-th bit corresponds to
the i-th coefficient of the reduction polynomial. |
| Throws | |
|---|---|
NullPointerException |
if rp is null. |
IllegalArgumentException |
if m
is not positive, or rp does not represent
a valid reduction polynomial. |
Public methods
equals
public boolean equals (Object obj)
Compares this finite field for equality with the specified object.
| Parameters | |
|---|---|
obj |
Object: the object to be compared. |
| Returns | |
|---|---|
boolean |
true if obj is an instance
of ECFieldF2m and both m and the reduction
polynomial match, false otherwise. |
getFieldSize
public int getFieldSize ()
Returns the field size in bits which is m
for this characteristic 2 finite field.
| Returns | |
|---|---|
int |
the field size in bits. |
getM
public int getM ()
Returns the value m of this characteristic
2 finite field.
| Returns | |
|---|---|
int |
m with 2^m being the
number of elements. |
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 | |
|---|---|
int[] |
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. |
getReductionPolynomial
public BigInteger 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 | |
|---|---|
BigInteger |
a BigInteger whose i-th bit corresponds to the i-th coefficient of the reduction polynomial for polynomial basis or null for normal basis. |
hashCode
public int hashCode ()
Returns a hash code value for this characteristic 2 finite field.
| Returns | |
|---|---|
int |
a hash code value. |