// GHS Attack test file // written by Florian Hess, version 20050829 k := GF(2); K := GF(2^3); n := 3; a := K!0; c := K!1; b := K.1; E := ArtinSchreierExtension(c, a, b); WeilDescentGenus(E, k); WeilDescentGenus(E, K); WeilDescentComposita(E, k); WeilDescentDeltas(E, k); WeilDescentRationalParametrization(E, k); WeilDescentFrobeniusExtensions(E, k); E := ArtinSchreierExtension(c, a, b); WeilDescent(E, k); a := K!0; c := NormalElement(K, k); b := c^2 + c; E := ArtinSchreierExtension(c, a, b); WeilDescent(E, k); a := K!0; c := K.1; b := K!0; E := ArtinSchreierExtension(c, a, b); WeilDescent(E, k); k := GF(2); K := GF(2^3); n := 3; a := K!0; c := K.1; b := K.1; E := ArtinSchreierExtension(c, a, b); WeilDescent(E, k); k := GF(2); K := GF(2^4); n := 4; a := NormalElement(K, k); c := a + 1; b := a^2 + a; b := b^2 + b; E := ArtinSchreierExtension(c, a, b); WeilDescent(E, k); k := GF(2); K := GF(2, 2); a := K!0; c := NormalElement(K, k); b := c^3 + c; E := ArtinSchreierExtension(c, a, b); WeilDescent(E, k); k := GF(3); K := GF(3, 2); a := K!0; c := NormalElement(K, k); b := c^3 + c; E := ArtinSchreierExtension(c, a, b); WeilDescent(E, k); k := GF(3); K := GF(3, 4); a := NormalElement(K, k) + 1; c := NormalElement(K, k); b := c^3 + c; E := ArtinSchreierExtension(c, a, b); WeilDescent(E, k); k := GF(2); K := GF(2, 7); a := K!0; c := K!1; b := K.1; E := ArtinSchreierExtension(c, a, b); WeilDescent(E, k); k := GF(2); K := GF(2, 31); a := K!0; c := K!1; b := K.1; E := ArtinSchreierExtension(c, a, b); WeilDescent(E, k); k := GF(2); K := GF(2, 127); a := K!0; c := K!1; b := K.1; E := ArtinSchreierExtension(c, a, b); WeilDescent(E, k); a := K!0; c := K.1; b := K.1; k := GF(2); K := GF(2^7); n := 7; a := K!0; c := Random(K); b := Random(K); C, g, y, Kxf, Frob := ASfromDelta(c, a, b, k); RationalEquation(C, y, Kxf, Frob, k); ///////////////////////////////////////////////////////////////////////////// k := GF(2,5); K := GF(2,155); n := 31; gf2t := PolynomialRing(GF(2)); h := Factorisation(t^n - 1)[2][1]; hh := (t^n - 1) div h; a := K!0; c := Mult(hh, Random(K), k); b := Mult(hh, Random(K), k); data := WeilDescent(c, a, b, k); // Beispiel: kxf := RationalFunctionField(k); kxfy := PolynomialRing(kxf); f := y^32 + k.1^28*y^16 + y^8 + k.1^13*y^4 + k.1^16*y^2 + k.1^18*y + (k.1^19*x^32 + k.1^16*x^24 + k.1^15*x^20 + k.1^3*x^18 + k.1^25*x^17 + k.1^21*x^16 + k.1^22*x^15 + k.1^24*x^14 + k.1^19*x^12 + k.1^3*x^8 + k.1^6)/x^16;