java.lang.Object
org.bouncycastle.pqc.legacy.math.linearalgebra.GoppaCode

public final class GoppaCode extends Object
This class describes decoding operations of an irreducible binary Goppa code. A check matrix H of the Goppa code and an irreducible Goppa polynomial are used the operations are worked over a finite field GF(2^m)
See Also:
  • Method Details

    • createCanonicalCheckMatrix

      public static GF2Matrix createCanonicalCheckMatrix(GF2mField field, PolynomialGF2mSmallM gp)
      Construct the check matrix of a Goppa code in canonical form from the irreducible Goppa polynomial over the finite field GF(2m).
      Parameters:
      field - the finite field
      gp - the irreducible Goppa polynomial
    • computeSystematicForm

      public static GoppaCode.MaMaPe computeSystematicForm(GF2Matrix h, SecureRandom sr)
      Given a check matrix H, compute matrices S, M, and a random permutation P such that S*H*P = (Id|M). Return S^-1, M, and P as GoppaCode.MaMaPe. The matrix (Id | M) is called the systematic form of H.
      Parameters:
      h - the check matrix
      sr - a source of randomness
      Returns:
      the tuple (S^-1, M, P)
    • syndromeDecode

      public static GF2Vector syndromeDecode(GF2Vector syndVec, GF2mField field, PolynomialGF2mSmallM gp, PolynomialGF2mSmallM[] sqRootMatrix)
      Find an error vector e over GF(2) from an input syndrome s over GF(2m).
      Parameters:
      syndVec - the syndrome
      field - the finite field
      gp - the irreducible Goppa polynomial
      sqRootMatrix - the matrix for computing square roots in (GF(2m))t
      Returns:
      the error vector