\\Initialise an elliptic curve E E = ellinit([0,0,0,2,3]) \\Compute the trace of E over F_{17} ellap(E,17) \\Deduce the cardinality of E(F_{17}), i.e p+1-t 17+1--4 \\Define E modulo 17 Emod = ellinit([0,0,0,2,3]*Mod(1,17)) \\Find a point on Emod ellordinate(Emod,3) \\Define P on Emod P=[3,6] \\Check that P is on the curve ellisoncurve(Emod,P) \\Check that [22]P = [0] ellpow(Emod,P,22) \\Same computation modulo a larger prime p=nextprime(2^30):ellap(E,p) \\Same computation modulo a larger prime p=nextprime(2^80):ellap(E,p) \\needs to allocate more memory, Baby step giant step method needs memory allocatemem(100000000) p=nextprime(2^80):ellap(E,p) \\Load Schoof package read("c:/ed/schoof.gp") \\Test it on a large prime p = 2^60+33 \\Redefine Emod Emod = ellinit([0,0,0,2,3]*Mod(1,p)) \\P is on Emod P = [84831642191856994, 732955120815734277] \\Check that P is a 31-torsion point ellpow(Emod,P,31) \\Compute the L-division polynomials for Emod up to l = 31 L = Ldivision(Emod,31,p) \\Check that there is no 5-torsion rational point factor(L[5,1]) \\Use schoof algorithm to compute t mod 5 Find_trace_mod_l(E, 5, L, p) \\Use schoof algorithm to compute t mod 7 Find_trace_mod_l(E, 7, L, p) \\Use schoof algorithm to compute t mod 11 Find_trace_mod_l(E, 11, L, p) \\Use schoof algorithm to compute t mod 17 Find_trace_mod_l(E, 17, L, p) \\Load the SEA package read("c:/ed/sea.gp") \\Consider a prime too big for Shanks-Mestre or Schoof algorithms p = nextprime(random(2^100)) \\Find the cardinality of E over Fp using SEA ellsea(E,p) \\Find the cardinality of E over Fp using SEA and display additional information ellsea(E,p,1) \\Find the cardinality of E over a larger field Fp using SEA p=nextprime(random(2^140));ellsea(E,p,1) \\Find the cardinality of E over a larger field Fp using SEA p=nextprime(random(2^200));ellsea(E,p,1) \\Find the cardinality of E over a larger field Fp using SEA p=nextprime(random(2^256));ellsea(E,p,1) \\Find a suitable curve of size 100 bits for crypto applications ellcrypto(100); \\Load the package to perform EC arithmetic over a field of char 2 read("c:/ed/ecc_ed.gp") \\Initialise F_{2^17} InitFieldF2n(17) \\Initialise the elliptic curve E defined over F_{2^17} E = [1,0,0,0,(x^4+1)*OneF2n] \\Find a point on E P = FindPtAffF2n(E) \\Change the representation of P DispPtAffF2n(P,3) \\Load the package to compute the number of points on an elliptic curve using the AGM read("c:/ed/AGM.gp") \\Computes #E using the AGM AGM(E) \\Check that the result is correct MulPtAffF2n(P,131164,E)