Class 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.
    • Constructor Detail

      • 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 Detail

      • 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.