Class GoppaCode
- java.lang.Object
-
- org.bouncycastle.pqc.math.linearalgebra.GoppaCode
-
public final class GoppaCode extends java.lang.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:
GF2mField
,PolynomialGF2mSmallM
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
GoppaCode.MaMaPe
This class is a container for two instances ofGF2Matrix
and one instance ofPermutation
.static class
GoppaCode.MatrixSet
This class is a container for an instance ofGF2Matrix
and one int[].
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static GoppaCode.MaMaPe
computeSystematicForm(GF2Matrix h, java.security.SecureRandom sr)
Given a check matrix H, compute matrices S, M, and a random permutation P such that S*H*P = (Id|M).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).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).
-
-
-
Method Detail
-
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 fieldgp
- the irreducible Goppa polynomial
-
computeSystematicForm
public static GoppaCode.MaMaPe computeSystematicForm(GF2Matrix h, java.security.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 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
-
-