/** * Constructor. * * @param n the length of the code * @param k the dimension of the code * @param field the finite field <tt>GF(2<sup>m</sup>)</tt> * @param gp the irreducible Goppa polynomial * @param canonicalCheckMatrix the canonical check matrix * @param p the permutation * @param digest name of digest algorithm */ public McElieceCCA2PrivateKeyParameters(int n, int k, GF2mField field, PolynomialGF2mSmallM gp, GF2Matrix canonicalCheckMatrix, Permutation p, String digest) { super(true, digest); this.n = n; this.k = k; this.field = field; this.goppaPoly = gp; this.h = canonicalCheckMatrix; this.p = p; PolynomialRingGF2m ring = new PolynomialRingGF2m(field, gp); // matrix for computing square roots in (GF(2^m))^t this.qInv = ring.getSquareRootMatrix(); }
/** * Constructor. * * @param field the finite field * @param p the reduction polynomial */ public PolynomialRingGF2m(GF2mField field, PolynomialGF2mSmallM p) { this.field = field; this.p = p; computeSquaringMatrix(); computeSquareRootMatrix(); }
swapColumns(tmpMatrix, i, j); swapColumns(sqRootMatrix, i, j);
swapColumns(tmpMatrix, i, j); swapColumns(sqRootMatrix, i, j);
this.h = GoppaCode.createCanonicalCheckMatrix(field, gp); PolynomialRingGF2m ring = new PolynomialRingGF2m(field, gp); this.qInv = ring.getSquareRootMatrix();
/** * Constructor. * * @param field the finite field * @param p the reduction polynomial */ public PolynomialRingGF2m(GF2mField field, PolynomialGF2mSmallM p) { this.field = field; this.p = p; computeSquaringMatrix(); computeSquareRootMatrix(); }
PolynomialRingGF2m ring = new PolynomialRingGF2m(field, gp); PolynomialGF2mSmallM[] qInv = ring.getSquareRootMatrix();
PolynomialRingGF2m ring = new PolynomialRingGF2m(field, gp); PolynomialGF2mSmallM[] sqRootMatrix = ring.getSquareRootMatrix();
PolynomialRingGF2m ring = new PolynomialRingGF2m(field, gp); PolynomialGF2mSmallM[] sqRootMatrix = ring.getSquareRootMatrix();