# All elliptic curves over fields of order 2 and 3

Sometimes, but not usually.

Lenstra and Pila  proved that two elliptic curves can be equal as sets but not equal as groups if and only if the curve has 5 points and the field has characteristic 2.

Lenstra and Pila give the example of the two equationsy² + y = x³ + x²andy² + y = x³ + xover GF(2).

Both determine the same set of points, but the two curves are algebraically different because (0,0) + (0,0) equals (1,1) on the first curve and (1,0) on the second.

Enumerating points on curvesThe following Python code will enumerate the set of points on a given curve.

def on_curve(x, y, a1, a2, a3, a4, a6, p): left = y**2 + a1*x*y + a3*y right = x**3 + a2*x**2 + a4*x + a6 return (left – right)%p == 0 def affine_points(a1, a2, a3, a4, a6, p): pts = set() for x in range(p): for y in range(p): if on_curve(x, y, a1, a2, a3, a4, a6, p): pts.

add((x,y)) return pts We can use this code, along with Lenstra and Pila’s result, to enumerate all elliptic curves of small order.

All elliptic curves over GF(2)Now we can list all the elliptic curves over the field with two elements.

Curves of order 5The two curves in the example of Lendstra and Pila are the only ones over GF(2) with five points.

So the two curves of order 5 over GF(2) arey² + y = x³ + x² y² + y = x³ + x.

They determine the same set of points but are algebraically different.

Curves of order 4There are four curves of order 4.

They contain different sets of points, i.

e.

each omits a different one of the four possible affine points.

y² + xy = x³ + 1 y² + xy = x³ + x² + x y² + xy + y = x³ + x² y² + xy + y = x³ + x² + xCurves of order 3There are two distinct curves of order 3, each determined by two equations.

The first curve is determined by either ofy² + y = x³ y² + y = x³ + x² + xand the second by either ofy² + xy + y = x³ + 1 y² + y = x³ + x² + x + 1Curves of order 2There are 4 curves of order two; each contains a different affine point.

y² + xy + y = x³ + 1 y² + xy + y = x³ + x + 1 y² + xy = x³ + x² + 1 y² + xy = x³ + x² + xCurves of order 1These are curves containing only the point at infinityy² + y = x³ + x + 1 y² + y = x³ + x² + 1There are no affine points because the left side is always 0 and the right side is always 1 for x and y in {0, 1}.

All elliptic curves over GF(3)There are too many elliptic curves over GF(3) to explore as thoroughly as we did with GF(2) above, but I can report the following results that are obtainable using the Python code above.

An elliptic curve over GF(3) contains between 1 and 7 points.

Here are the number of parameter combinations that lead to each number of points.

1: 9 2: 22 3: 26 4: 15 5: 26 6: 22 7: 9 Obviously there’s only one curve with one point, the point at infinity, so the nine coefficient combinations that lead to a curve of order 1 determine the same curve.

There are 9 distinct curves of order 2 and 12 distinct curves of order 3.

All the curves of orders 4, 5, 6, and 7 are distinct.

Related postsWhat is an elliptic curve?Elliptic curves used in cryptography H.

W.

Lenstra, Jr and J.

Pila.

Does the set of points of an elliptic curve determine the group?.Computational Algebra and Number Theory, 111-118.

 We are not considering isomorphism classes here.

If two curves have a different set of points, or the same set of points but different group properties, we’re considering them different.