Class ECFieldF2m

java.lang.Object
java.security.spec.ECFieldF2m
All Implemented Interfaces:
ECField

public class ECFieldF2m
extends Object
implements ECField
The parameters specifying a characteristic 2 finite field of an elliptic curve.
  • Constructor Summary

    Constructors
    Constructor Description
    ECFieldF2m​(int m)
    Creates a new ECFieldF2m with 2^m elements with a normal basis.
    ECFieldF2m​(int m, int[] ks)
    Creates a new ECFieldF2m with 2^m elements with a polynomial basis and the reduction polynomial based on ks.
    ECFieldF2m​(int m, BigInteger rp)
    Creates a new ECFieldF2m with 2^m elements with a polynomial basis and the reduction polynomial based on rp.
  • Method Summary

    Modifier and Type Method Description
    boolean equals​(Object obj)
    Returns whether the specified object equals to this finite field.
    int getFieldSize()
    Returns the size of this finite field (in bits).
    int getM()
    Returns the exponent m for this finite field, with 2^m as the number of elements.
    int[] getMidTermsOfReductionPolynomial()
    Returns a copy of the integer array containing the order of the middle term(s) of the reduction polynomial for a polynomial basis.
    BigInteger getReductionPolynomial()
    Returns the base of the reduction polynomial with the n-th bit corresponding to the n-th coefficient of the reduction polynomial for a polynomial basis.
    int hashCode()
    Returns the hashcode value for this finite field.

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • ECFieldF2m

      public ECFieldF2m​(int m)
      Creates a new ECFieldF2m with 2^m elements with a normal basis.
      Parameters:
      m - the exponent m for the number of elements.
      Throws:
      IllegalArgumentException - if m <= zero.
    • ECFieldF2m

      public ECFieldF2m​(int m, BigInteger rp)
      Creates a new ECFieldF2m with 2^m elements with a polynomial basis and the reduction polynomial based on rp.

      The reduction polynomial must be either trinomial or pentanomial.

      Parameters:
      m - the exponent m for the number of elements.
      rp - the base of the reduction polynomial with the n-th bit corresponding to the n-th coefficient of the reduction polynomial.
      Throws:
      IllegalArgumentException - if m <= zero or the rp is invalid.
    • ECFieldF2m

      public ECFieldF2m​(int m, int[] ks)
      Creates a new ECFieldF2m with 2^m elements with a polynomial basis and the reduction polynomial based on ks.

      The reduction polynomial must be either trinomial or pentanomial.

      Parameters:
      m - the exponent m for the number of elements.
      ks - the base of the reduction polynomial with coefficients given in descending order.
      Throws:
      IllegalArgumentException - if m <= zero or the reduction polynomial is not valid.
  • Method Details

    • equals

      public boolean equals​(Object obj)
      Returns whether the specified object equals to this finite field.
      Overrides:
      equals in class Object
      Parameters:
      obj - the object to compare to this finite field.
      Returns:
      true if the specified object is equal to this finite field, otherwise false.
      See Also:
      Object.hashCode()
    • getFieldSize

      public int getFieldSize()
      Returns the size of this finite field (in bits).
      Specified by:
      getFieldSize in interface ECField
      Returns:
      the size of this finite field (in bits).
    • getM

      public int getM()
      Returns the exponent m for this finite field, with 2^m as the number of elements.
      Returns:
      the exponent m for this finite field
    • getMidTermsOfReductionPolynomial

      public int[] getMidTermsOfReductionPolynomial()
      Returns a copy of the integer array containing the order of the middle term(s) of the reduction polynomial for a polynomial basis.
      Returns:
      a copy of the integer array containing the order of the middle term(s) of the reduction polynomial for a polynomial basis or null for a normal basis.
    • getReductionPolynomial

      public BigInteger getReductionPolynomial()
      Returns the base of the reduction polynomial with the n-th bit corresponding to the n-th coefficient of the reduction polynomial for a polynomial basis.
      Returns:
      the base of the reduction polynomial with the n-th bit corresponding to the n-th coefficient of the reduction polynomial for a polynomial basis or null for a normal basis.
    • hashCode

      public int hashCode()
      Returns the hashcode value for this finite field.
      Overrides:
      hashCode in class Object
      Returns:
      the hashcode value for this finite field.
      See Also:
      Object.equals(java.lang.Object)