ECFieldF2m (Java 2 Platform SE 5.0) (original) (raw)


java.security.spec

Class ECFieldF2m

java.lang.Object extended by java.security.spec.ECFieldF2m

All Implemented Interfaces:

ECField


public class ECFieldF2m

extends Object

implements ECField

This immutable class defines an elliptic curve (EC) characteristic 2 finite field.

Since:

1.5

See Also:

ECField


Constructor Summary
ECFieldF2m(int m) Creates an elliptic curve characteristic 2 finite field which has 2^m elements with normal basis.
[ECFieldF2m](../../../java/security/spec/ECFieldF2m.html#ECFieldF2m%28int, java.math.BigInteger%29)(int m,BigInteger rp) Creates an elliptic curve characteristic 2 finite field which has 2^m elements with polynomial basis.
[ECFieldF2m](../../../java/security/spec/ECFieldF2m.html#ECFieldF2m%28int, int[]%29)(int m, int[] ks) Creates an elliptic curve characteristic 2 finite field which has 2^m elements with polynomial basis.
Method Summary
boolean equals(Object obj) 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.
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, [wait](../../../java/lang/Object.html#wait%28long, int%29)
Constructor Detail

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](../../../java/lang/IllegalArgumentException.html "class in java.lang") - if m is not positive.


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 correspondes 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 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](../../../java/lang/NullPointerException.html "class in java.lang") - if rp is null.

[IllegalArgumentException](../../../java/lang/IllegalArgumentException.html "class in java.lang") - if m is not positive, or rp 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 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 withm > k3 > k2 > k1 >= 1), so ks 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](../../../java/lang/NullPointerException.html "class in java.lang") - if ks is null.

[IllegalArgumentException](../../../java/lang/IllegalArgumentException.html "class in java.lang") - 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.

Method Detail

getFieldSize

public int getFieldSize()

Returns the field size in bits which is m for this characteristic 2 finite field.

Specified by:

[getFieldSize](../../../java/security/spec/ECField.html#getFieldSize%28%29) in interface [ECField](../../../java/security/spec/ECField.html "interface in java.security.spec")

Returns:

the field size in bits.


getM

public int getM()

Returns the value m of this characteristic 2 finite field.

Returns:

m with 2^m being the number of elements.


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:

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

public boolean equals(Object obj)

Compares this finite field for equality with the specified object.

Overrides:

[equals](../../../java/lang/Object.html#equals%28java.lang.Object%29) in class [Object](../../../java/lang/Object.html "class in java.lang")

Parameters:

obj - the object to be compared.

Returns:

true if obj is an instance of ECFieldF2m and both m and the reduction polynomial match, false otherwise.

See Also:

Object.hashCode(), Hashtable


hashCode

public int hashCode()

Returns a hash code value for this characteristic 2 finite field.

Overrides:

[hashCode](../../../java/lang/Object.html#hashCode%28%29) in class [Object](../../../java/lang/Object.html "class in java.lang")

Returns:

a hash code value.

See Also:

Object.equals(java.lang.Object), Hashtable



Submit a bug or feature
For further API reference and developer documentation, see Java 2 SDK SE Developer Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.

Copyright © 2004, 2010 Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.