Class GoppaCode
java.lang.Object
org.bouncycastle.pqc.legacy.math.linearalgebra.GoppaCode
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:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classThis class is a container for two instances ofGF2Matrixand one instance ofPermutation.static classThis class is a container for an instance ofGF2Matrixand one int[]. -
Method Summary
Modifier and TypeMethodDescriptionstatic GoppaCode.MaMaPeGiven a check matrix H, compute matrices S, M, and a random permutation P such that S*H*P = (Id|M).static GF2MatrixConstruct the check matrix of a Goppa code in canonical form from the irreducible Goppa polynomial over the finite field GF(2m).static GF2VectorsyndromeDecode(GF2Vector syndVec, GF2mField field, PolynomialGF2mSmallM gp, PolynomialGF2mSmallM[] sqRootMatrix) Find an error vector e over GF(2) from an input syndrome s over GF(2m).
-
Method Details
-
createCanonicalCheckMatrix
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 fieldgp- the irreducible Goppa polynomial
-
computeSystematicForm
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 asGoppaCode.MaMaPe. The matrix (Id | M) is called the systematic form of H.- Parameters:
h- the check matrixsr- 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 syndromefield- the finite fieldgp- the irreducible Goppa polynomialsqRootMatrix- the matrix for computing square roots in (GF(2m))t- Returns:
- the error vector
-