| Constructor and Description |
|---|
ECFieldF2m(int m)
Creates an elliptic curve characteristic 2 finite field which has 2^
m elements with normal basis.
|
ECFieldF2m(int m, BigInteger
Creates an elliptic curve characteristic 2 finite field which has 2^
m elements with polynomial basis.
|
ECFieldF2m(int m, int[] ks)
Creates an elliptic curve characteristic 2 finite field which has 2^
m elements with polynomial basis.
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
equals(Object
Compares this finite field for equality with the specified object.
|
int |
getFieldSize()
Returns the field size in bits which is
m for this characteristic 2 finite field.
|
int |
getM()
Returns the value
m of this characteristic 2 finite field.
|
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.
|
public ECFieldF2m(int m)
m elements with normal basis.
m - with 2^
m being the number of elements.
IllegalArgumentException - if
m is not positive.
public ECFieldF2m(int m,
BigInteger rp)
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).
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.
NullPointerException - if
rp is null.
IllegalArgumentException - if
m is not positive, or
rp does not represent a valid reduction polynomial.
public ECFieldF2m(int m,
int[] ks)
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.
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.
NullPointerException - if
ks is null.
IllegalArgumentException - if
m 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.
public int getFieldSize()
m for this characteristic 2 finite field.
getFieldSize in interface
ECField
public int getM()
m of this characteristic 2 finite field.
m with 2^
m being the number of elements.
public BigIntegergetReductionPolynomial()
public int[] getMidTermsOfReductionPolynomial()
public boolean equals(Objectobj)
equals in class
Object
obj - the object to be compared.
obj is an instance of ECFieldF2m and both
m and the reduction polynomial match, false otherwise.
Object.hashCode() ,
HashMap
public int hashCode()
hashCode in class
Object
Object.equals(java.lang.Object) ,
System.identityHashCode(java.lang.Object)