Class ECFieldElement.F2m

  • All Implemented Interfaces:
    ECConstants
    Enclosing class:
    ECFieldElement

    public static class ECFieldElement.F2m
    extends ECFieldElement
    Class representing the Elements of the finite field F2m in polynomial basis (PB) representation. Both trinomial (TPB) and pentanomial (PPB) polynomial basis representations are supported. Gaussian normal basis (GNB) representation is not supported.
    • Field Detail

      • GNB

        public static final int GNB
        Indicates gaussian normal basis representation (GNB). Number chosen according to X9.62. GNB is not implemented at present.
        See Also:
        Constant Field Values
      • TPB

        public static final int TPB
        Indicates trinomial basis representation (TPB). Number chosen according to X9.62.
        See Also:
        Constant Field Values
      • PPB

        public static final int PPB
        Indicates pentanomial basis representation (PPB). Number chosen according to X9.62.
        See Also:
        Constant Field Values
      • representation

        private int representation
        TPB or PPB.
      • m

        private int m
        The exponent m of F2m.
      • k1

        private int k1
        TPB: The integer k where xm + xk + 1 represents the reduction polynomial f(z).
        PPB: The integer k1 where xm + xk3 + xk2 + xk1 + 1 represents the reduction polynomial f(z).
      • k2

        private int k2
        TPB: Always set to 0
        PPB: The integer k2 where xm + xk3 + xk2 + xk1 + 1 represents the reduction polynomial f(z).
      • k3

        private int k3
        TPB: Always set to 0
        PPB: The integer k3 where xm + xk3 + xk2 + xk1 + 1 represents the reduction polynomial f(z).
      • x

        private IntArray x
        The IntArray holding the bits.
      • t

        private int t
        The number of ints required to hold m bits.
    • Constructor Detail

      • F2m

        public F2m​(int m,
                   int k1,
                   int k2,
                   int k3,
                   java.math.BigInteger x)
        Constructor for PPB.
        Parameters:
        m - The exponent m of F2m.
        k1 - The integer k1 where xm + xk3 + xk2 + xk1 + 1 represents the reduction polynomial f(z).
        k2 - The integer k2 where xm + xk3 + xk2 + xk1 + 1 represents the reduction polynomial f(z).
        k3 - The integer k3 where xm + xk3 + xk2 + xk1 + 1 represents the reduction polynomial f(z).
        x - The BigInteger representing the value of the field element.
      • F2m

        public F2m​(int m,
                   int k,
                   java.math.BigInteger x)
        Constructor for TPB.
        Parameters:
        m - The exponent m of F2m.
        k - The integer k where xm + xk + 1 represents the reduction polynomial f(z).
        x - The BigInteger representing the value of the field element.
      • F2m

        private F2m​(int m,
                    int k1,
                    int k2,
                    int k3,
                    IntArray x)
    • Method Detail

      • checkFieldElements

        public static void checkFieldElements​(ECFieldElement a,
                                              ECFieldElement b)
        Checks, if the ECFieldElements a and b are elements of the same field F2m (having the same representation).
        Parameters:
        a - field element.
        b - field element to be compared.
        Throws:
        java.lang.IllegalArgumentException - if a and b are not elements of the same field F2m (having the same representation).
      • getRepresentation

        public int getRepresentation()
        Returns:
        the representation of the field F2m, either of TPB (trinomial basis representation) or PPB (pentanomial basis representation).
      • getM

        public int getM()
        Returns:
        the degree m of the reduction polynomial f(z).
      • getK1

        public int getK1()
        Returns:
        TPB: The integer k where xm + xk + 1 represents the reduction polynomial f(z).
        PPB: The integer k1 where xm + xk3 + xk2 + xk1 + 1 represents the reduction polynomial f(z).
      • getK2

        public int getK2()
        Returns:
        TPB: Always returns 0
        PPB: The integer k2 where xm + xk3 + xk2 + xk1 + 1 represents the reduction polynomial f(z).
      • getK3

        public int getK3()
        Returns:
        TPB: Always set to 0
        PPB: The integer k3 where xm + xk3 + xk2 + xk1 + 1 represents the reduction polynomial f(z).
      • equals

        public boolean equals​(java.lang.Object anObject)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object