org.bouncycastle.pqc.legacy.math.linearalgebra
Class GoppaCode
java.lang.Object
|
+--org.bouncycastle.pqc.legacy.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
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
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(2 m).
- 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 as
GoppaCode.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(2 m).
- Parameters:
syndVec
- the syndromefield
- the finite fieldgp
- the irreducible Goppa polynomialsqRootMatrix
- the matrix for computing square roots in
(GF(2 m)) t- Returns:
- the error vector