Kaz Kobara on Sat, 01 Feb 2014 03:31:44 +0100

• To: <pari-users@pari.math.u-bordeaux.fr>
• Subject: RE: Your help needed
• From: "Kaz Kobara" <k-kobara@aist.go.jp>
• Date: Sat, 1 Feb 2014 11:31:28 +0900
• Delivery-date: Sat, 01 Feb 2014 03:31:44 +0100
• References: <CAEKgtqn4o=4VMYPqB1NUnvb8=HTb6=3S+RkOagLFvMJDt1rg+w@mail.gmail.com> <20140127130256.GA21404@pari.math.u-bordeaux1.fr> <CAEKgtqk-zx18_hz7JmMapzM988XZcydoaSt9532Tr7xfUPe-ow@mail.gmail.com> <20140128131730.GA8530@pari.math.u-bordeaux1.fr>

```Hi Firas,

Thank you for your explanation and examples.
That became clear to me.

Kaz

----------------------------
A short Weierstrass equation is always singular (and thus never defines an
elliptic curve) in characteristic 2, so you need to use the long form. Then
pass a generator of the desired finite field (as returned by ffgen()) as the
second argument of ellinit(), like so:

(00:07) gp > t = ffgen((t^163+t^7+t^6+t^3+1)*Mod(1,2));
(00:08) gp > E = ellinit([1,0,1,0,1],t);
(00:08) gp > ellgroup(E)
[11692013098647223345629483507196896696658237148126]
(00:08) gp > E = ellinit([1,0,1,0,1],2);
(00:08) gp > ellgroup(E)
[2]

Of course if you want to use an element of F_{2^k}\F_2 in the equation of
your curve you can use it (for example as a polynomial in t) in the array
you pass to ellinit() (then you don't need a second argument):

(00:17) gp > E = ellinit([t,0,t^54+t^3+1,0,1]);
(00:18) gp > ellgroup(E)
[11692013098647223345629473880242739878671255430896]

Firas

```