Elliptic curves are a very important new area of mathematics which has been greatly explored over the past few decades. They have shown tremendous potential as a tool for solving complicated number problems and also for use in cryptography.
In 1994 Andrew Wiles, together with his former student Richard Taylor, solved one of the most famous maths problems of the last 400 years, Fermat's Last Theorem, using elliptic curves. In the last few decades there has also been a lot of research into using elliptic curves instead of what is called RSA encryption to keep data transfer safe online.
Public and private
Maths is keeping your data safe.
Elliptic curve cryptography, just as RSA cryptography, is an example of public key cryptography. The basic idea behind this is that of a padlock. If I want to send you a secret message I can ask you to send me an open padlock to which only you have the key. I then put my message in a box, lock it with the padlock, and send it to you. The good thing about this approach is that the message can be sent over insecure channels — even if someone intercepts the box, they don't have the key — and that we don't both need a key to the box. You could even get lots of people to send you secret messages in this way, without ever having to give away a single key.
In public key cryptography messages are encrypted using particular pieces of mathematical information, which constitute the public key — that's the open padlock and performing the encryption is like snapping the padlock shut. Decryption is only possible using a mathematical private key, which is next to impossible to determine if you only know the public key.
In RSA cryptography the public key involves a natural number which is used by computers to encrypt messages. To decrypt a message, you need to know the factors of If is very large, then factoring it takes such a large amount of computing power that breaking the code is practically impossible. Only people (or, realistically, computers) in possession of the private key — the factors of — can decrypt the message easily. (You can find out more about RSA here.)
Elliptic curve cryptography is based on the difficulty of solving number problems involving elliptic curves. On a simple level, these can be regarded as curves given by equations of the form
where and are constants. Below are some examples. In each case the graph shows all the points with coordinates , where and satisfy an equation of the form shown above.
The elliptic curves corresponding to whole number values of a between -2 and 1 and whole number values of values of b between -1 and 2. Only the curve for a = b = 0 doesn't qualify as an elliptic curve because it has a singular point.
For the sake of accuracy we need to say a couple of words about the constants and For an equation of the form given above to qualify as an elliptic curve, we need that This ensures that the curve has no singular points. Informally, it means that the curve is nice and smooth everywhere and doesn't contain any sharp points or cusps. In the examples above the constants and were chosen to be whole numbers between and and and respectively. But in general they can also take on other values. (For uses in cryptography and are required to come from special sets of numbers called finite fields). You can find out more about elliptic curves in this article.
Given an elliptic curve, we can define the addition of two points on it as in the following example.
Let’s consider the curve
and the two points and which both lie on the curve. We now want to find an answer for which we would also like to lie on the elliptic curve. If we add them as we might vectors we get – but unfortunately this is not on the curve. So we define the addition through the following geometric steps.
We join up the points and with a straight line. This line generally intersects the curve in one more place, We then reflect the point in the -axis.
We declare this new point, to be the sum of and So
In our example this means that
Trying another example,
(shown below), with and we have and . Therefore
We also need a definition for the sum when to understand what we mean by In this case we take the tangent to the curve at the point , and then as before find the intersection of this tangent line and the curve, before reflecting the point. This is probably easier to understand with another graph:
Here we use the elliptic curve
and consider the point We have drawn the tangent to the curve at which intersects the curve at a second point Reflecting in the - axis gives Therefore we say or
It’s now possible to define what we mean by for any point on the curve and any natural number
and so on.
The only situation in which our definition of doesn’t work is when is the reflection of in the -axis (which in the case where means that itself lies on the -axis). In this case, the line we use to define the sum is vertical and there isn’t a third point at which it meets they curve.
We can get around this problem by adding an extra point to the usual plane, called the point at infinity and denoted by To make the addition work for our exceptional situation we simply define For any point we also define — so with our new notion of addition, the point plays the same role as the number in ordinary addition.
It turns out that, given two points and on an elliptic curve, finding a number such that (if it exists) can take an enormous amount of computing power, especially when is large. Elliptic curve cryptography exploits this fact: the points and can be used as a public key, and the number as the private key. Anyone can encrypt a message using the publicly available public key (we won’t go into the details of the encryption method here), but only the person (or computer) in possession of the private key, the number can decrypt them.
NSA and hacking data
Elliptic curve cryptography has some advantages over RSA cryptography – which is based on the difficulty of factorising large numbers – as less digits are required to create a problem of equal difficulty. Therefore data can be encoded more efficiently (and thus more rapidly) than using RSA encryption. Currently the digital currency Bitcoin uses elliptic curve cryptography, and it is likely that its use will become more widespread as more and more data is digitalised. However, it's worth noting that as yet no-one has proved that it has to be difficult to crack elliptic curves – there may be a novel approach which is able to solve the problem in a much shorter time. Indeed many mathematicians and computer scientists are working in this field.
Government digital spy agencies like the NSA and GCHQ are also very interested in such encryption techniques. If there was a method of solving this problem quickly then overnight large amounts of encrypted data would be accessible – and for example Bitcoin currency exchange would no longer be secure. It also recently transpired that the NSA has built "backdoor" entries into some elliptic curve cryptography algorithms which have allowed them to access data that the people sending it thought was secure. Mathematics is at the heart of this new digital arms race.
To find out more about the development of codes, including modern elliptic curve cryptography, and their links to mathematics, the book by William Stein, Elementary Number Theory: Primes, Congruences and Secrets is an good starting place. Numberphile have also covered the NSA's attempts to circumvent elliptic curve cryptography in one of their ever excellent videos.
About the author
Andrew Chambers has an MSc in mathematics and is a teacher at the British International School Phuket, Thailand. He has written news and features articles for the Guardian, Observer and Bangkok Post, and was previously shortlisted for the Guardian's International Development Journalist of the Year Awards. Combining his love of both writing and mathematics, his website ibmathsresources.com contains hundreds of ideas for mathematical investigations (and some code breaking challenges) for gifted and talented students.