java.lang.Object
org.bouncycastle.pqc.legacy.math.linearalgebra.GF2nField
org.bouncycastle.pqc.legacy.math.linearalgebra.GF2nONBField

public class GF2nONBField extends GF2nField
This class implements the abstract class GF2nField for ONB representation. It computes the fieldpolynomial, multiplication matrix and one of its roots mONBRoot, (see for example Certicoms Whitepapers). GF2nField is used by GF2nONBElement which implements the elements of this field.
See Also:
  • Constructor Details

    • GF2nONBField

      public GF2nONBField(int deg, SecureRandom random) throws RuntimeException
      constructs an instance of the finite field with 2deg elements and characteristic 2.
      Parameters:
      deg - -the extention degree of this field
      random - - a source of randomness for generating polynomials on the field.
      Throws:
      RuntimeException
  • Method Details

    • getRandomRoot

      protected GF2nElement getRandomRoot(GF2Polynomial polynomial)
      Computes a random root of the given polynomial.
      Specified by:
      getRandomRoot in class GF2nField
      Parameters:
      polynomial - a polynomial
      Returns:
      a random root of the polynomial
      See Also:
      • "P1363 A.5.6, p103f"
    • computeCOBMatrix

      protected void computeCOBMatrix(GF2nField B1)
      Computes the change-of-basis matrix for basis conversion according to 1363. The result is stored in the lists fields and matrices.
      Specified by:
      computeCOBMatrix in class GF2nField
      Parameters:
      B1 - the GF2nField to convert to
      See Also:
      • "P1363 A.7.3, p111ff"
    • computeFieldPolynomial

      protected void computeFieldPolynomial()
      Computes the field polynomial for a ONB according to IEEE 1363 A.7.2 (p110f).
      Specified by:
      computeFieldPolynomial in class GF2nField
      See Also:
      • "P1363 A.7.2, p110f"