# Elliptic Curves In a Finite Field

*Elliptic curves over finite fields are fundamental mathematical structures with implications in various areas of cryptography and number theory (*__Washington, L. C., 2008, pp-95-98, Section 4.1__)*.*

An elliptic curve can be defined by a cubic equation, in the form:

*y^2 = x^3 + Ax + B*

where *A* and *B* are constant coefficients that ensure the curve is non-singular, meaning it has no cusps or self-intersecting points - nonsingular (__Washington, L. C., 2008, p23, Definition 2.4__)*.*

When these curves are considered over a finite field - such as the set of integers modulo a prime number *p*, denoted as:

*F_p***

they exhibit algebraic and geometric properties that are crucial for applications such as __encryption__, __digital signatures__, and secure communications. The discrete nature of finite fields __adds layers of complexity and security, making elliptic curves ideal for cryptographic systems that require both efficient computations and robust security measures__. This setting provides the groundwork for __exploring advanced mathematical concepts__ while offering practical benefits for __real-world cryptographic applications__.

When exploring elliptic curves in a finite field, we generally use the elliptic curve in its Weierstrass form (at least for simplified analysis of the process) *(*__Washington, L. C., 2008, pp-9-11, Section 2.1__)*.*

As such we are guaranteed that the point on the elliptic curve will be symmetrical across the *x-axis*, as explored in this site's article on __elliptic curves defined in the field of Real numbers__.

The value and importance of that will become clear presently.

### Finding Points on a Curve in a Finite Field

What we are trying to find is:

Values for *y^2 (mod p)* that are equal to one of the values of the cubic *x^3 + Ax + B (mod p)*, where both *x* and *y* are integers, and *A* and *B* are constants. Only the values generated by:

*0 <= x, y < p (where x, y are integers)*

need be considered, due to __the properties of finite fields__, and the repeating groups created within them. These symmetries will also be explored visually, below.

**Visualising These Solutions**

NOTE: with all the animations below, please consider using the "full screen" option (the icon, like the one to the left, that looks like the corners of a square, above the progress bar, at the bottom, on the right-hand side). It will assist in being able to see the available details in the animation.

Below is an animation that explores (by cycling through different values for *p*), the solutions to *y^2 = x^3 + x + 1 (mod p)*:

OF NOTE:

BLUE: The equation for the elliptic curve is written in blue text, in the top left of the graph. The graph of this curve, when defined in the field of Real numbers is indicated on the graph in faint blue dots.

RED: The maximum and minimum values for x and y being used for these calculations is indicated by red dashed lines on the graph. The specific Prime Modulus being used to generate these results is indicated in red text, just outside the box creates by the red range lines. It changes over time, and steps up through the first 25 prime numbers, slowly.

GREEN: Due to the symmetrical nature of an elliptic curve in the Weierstrass form, the values for

*x*at*y = Y*is the same as the value for*x*at*y = -Y*(where*Y*is a value in the field in which*E*, the elliptic curve, is defined). That is:*(x, y) = (x, -y)*for all*x, y*in*F*. As such, there is a symmetry to the solutions between*0*and*p-1*. The line of reflection, for this symmetry is shown by a green dotted line, and specified in green text.All prime numbers, except 2, are odd. As such, the line of symmetry never has any value directly on it (as it does not sit at an integer point) except in the case of

*p = 2*. The one exception to this symmetry is when*y = 0*, at which point there is only one value, not its reflection (which would be at*p-0 = p*). This can be understood in 2 ways. In an infinite field, for and elliptic curve in the Weierstrass form,*y = 0*, is the point of intersection with the x-axis, and therefore there is no reflection across the x-axis, just one value for*x*. In a finite field, we consider*y = 0*as being part of the field, but not*y = p*- as*0 <= x, y < p (where x, y are integers).*

Also, due to the aforementioned symmetry and the fact that 1 is a square number, there will ALWAYS be a solution to the equation

*y^2 = x^3 + x + 1*, when*x = 0*and*y = 1*(because*x^3 + x + 1 = 1*, when*x = 0*). Therefore, the solution is there, throughout the animation, along with its "partner", at*x = 0*and*y = p - 1*.In fact, if B is a square number, for any elliptic curve in the Weierstrass form, there will be a persistent (i.e. always present) solution to that equation, at x = 0 and y = sqrt{B}.

**Making alterations**

One question that might arise is: what happens if we keep the prime modulus the same but alter the underlying elliptic curve?

To this end, the following 3 animations do just this.

First, while keeping *p = 97* and *B = 0*, we cycle through 11 values for A, starting with simply y^2 = x^3.

NOTE: the full equation for the elliptic curve, at any time (both drawn and written out), can still be seen in BLUE. However, at this resolution the graph of the real solutions to the elliptic curve does not move much.

Now, while keeping *p = 97* and *A = 0*, we cycle through 11 values for B, starting with y^2 = x^3 again.

The real solutions to the elliptic curve change a little bit more obviously, close to the origin, under this translation.

Now, while still keeping *p = 97*, we cycle through a wider set of values (-10 to 10) for both A and B at the same time, starting with y^2 = x^3 again. This is included, to give a wider view of just how varied the solutions to these equations are, from small, stepwise changes, and to give an indication (visually, at least) that those changes appear to be unpredictable, and not obvious in nature.

**Taking a closer look**

While the given above is useful for visualising how points in the graph are solutions to the equation, as *p* increases - let's now take a closer, a more "zoomed-in" view, to look at some lower values of p. This helps to resolve more detail and see what is happening, at a basic level, more clearly.

Specifically, let's look at the solutions listed in __Washington, L. C., 2008, p. 95, Example 4.1__, for:

*y^2 = x^3 + x + 1 (mod 5)*

(0, 1), (0, 4), (2, 1), (2, 4), (3, 1), (3, 4), (4, 2), (4, 3)

As seen here:

And, the solutions listed in __Washington, L. C., 2008, p. 96, Example 4.____2__, for:

*y^2 = x^3 + 2 (mod 7)*

(0, 3), (0, 4), (3, 1), (3, 6), (5, 1), (5, 6), (6, 1), (6, 6)

As seen here:

To show the solutions listed in __Washington, L. C., 2008, p. 96, Example 4.____2__, for:

*y^2 + xy = x^3 + 1 (mod 2)*

(0, 1), (1, 0), (1, 1)

We need to add some coefficients to the equation. To makes it clear we will switch to *a_x* notation, as commonly used for the more general form of the elliptic curve equation.

...

TODO: finish this page...

## Comments