Counting points on elliptic curves
An important aspect in the study of elliptic curves is devising effective ways of counting points on the curve. There have been several approaches to do so, and the algorithms devised have proved to be useful tools in the study of various fields such as number theory, and more recently in cryptography and Digital Signature Authentication (See elliptic curve cryptography and elliptic curve DSA). While in number theory they have important consequences in the solving of Diophantine equations, with respect to cryptography, they enable us to make effective use of the difficulty of the discrete logarithm problem (DLP) for the group , of elliptic curves over a finite field , where q = pk and p is a prime. The DLP, as it has come to be known, is a widely used approach to Public key cryptography, and the difficulty in solving this problem determines the level of security of the cryptosystem. This article covers algorithms to count points on elliptic curves over fields of large characteristic, in particular p > 3. For curves over fields of small characteristic more efficient algorithms based on p-adic methods exist.
Approaches to counting points on elliptic curves
There are several approaches to the problem. Beginning with the naive approach, we trace the developments up to Schoof's definitive work on the subject, while also listing the improvements to Schoof's algorithm made by Elkies (1990) and Atkin (1992).
Several algorithms make use of the fact that groups of the form are subject to an important theorem due to Hasse, that bounds the number of points to be considered.
Hasse's theorem Let E be an elliptic curve over the finite field . Then the order of satisfies
Naive approach
The naive approach to counting points, which is the least sophisticated, involves running through all the elements of the field and testing which ones satisfy the Weierstrass form of the elliptic curve
Example
Let be the curve over . To count points on , we make a list of the possible values of , then of , then of the square roots of . This yields the points on .
Points | |||
---|---|---|---|
Therefore, has order 9: the 8 points listed before and the point at infinity.
This algorithm requires running time , because all the values of must be considered.
Baby-step giant-step
An improvement in running time is obtained using a different approach: we pick an element by selecting random values of until is a square in and then computing the square root of this value in order to get . Hasse's theorem tells us that lies in the interval . Thus, by Lagrange's theorem, finding a unique lying in this interval and satisfying , results in finding the cardinality of . The algorithm fails if there exist two integers and in the interval such that . In such a case it usually suffices to repeat the algorithm with another randomly chosen point in .
Trying all values of in order to find the one that satisfies takes around steps.
However, by applying the baby-step giant-step algorithm to , we are able to speed this up to around steps. The algorithm is as follows.
The algorithm
1. choose integer, 2. FOR{ to } DO 3. 4. ENDFOR 5. 6. 7. REPEAT compute the points 8. UNTIL : \\the -coordinates are compared 9. \\note 10. Factor . Let be the distinct prime factors of . 11. WHILE DO 12. IF 13. THEN 14. ELSE 15. ENDIF 16. ENDWHILE 17. \\note is the order of the point 18. WHILE divides more than one integer in 19. DO choose a new point and go to 1. 20. ENDWHILE 21. RETURN \\it is the cardinality of
Notes to the algorithm
- In line 8. we assume the existence of a match. Indeed, the following lemma assures that such a match exists.
Let be an integer with . There exist integers and with
- Computing once has been computed can be done by adding to instead of computing the complete scalar multiplication anew. The complete computation thus requires additions. can be obtained with one doubling from . The computation of requires doublings and additions, where is the number of nonzero digits in the binary representation of ; note that knowledge of the and allows us to reduce the number of doublings. Finally, to get from to , simply add rather than recomputing everything.
- We are assuming that we can factor . If not, we can at least find all the small prime factors and check that for these. Then will be a good candidate for the order of .
- The conclusion of step 17 can be proved using elementary group theory: since , the order of divides . If no proper divisor of realizes , then is the order of .
One drawback of this method is that there is a need for too much memory when the group becomes large. In order to address this, it might be more efficient to store only the coordinates of the points (along with the corresponding integer ). However, this leads to an extra scalar multiplication in order to choose between and .
One must note that other generic algorithms for computing discrete logarithms exist, such as the Pollard's rho algorithm for logarithms and the Pollard kangaroo methods, which do not use memory. Pollard kangaroo allows to search for a solution in prescribed subsets and its running time is .
Schoof's algorithm
A theoretical breakthrough for the problem of computing the cardinality of groups of the type was achieved by René Schoof, who, in 1985, published the first deterministic polynomial time algorithm. Central to Schoof's algorithm are the use of division polynomials and Hasse's theorem, along with the Chinese remainder theorem.
Schoof's insight exploits the fact that, by Hasse's Theorem, there is a finite range of possible values for . It suffices to compute modulo an integer . This is achieved by computing modulo primes whose product exceeds , and then applying the Chinese remainder theorem. The key to the algorithm is using the division polynomial to efficiently compute modulo .
The running time of Schoof's Algorithm is polynomial in , with an asymptotic complexity of , where denotes the complexity of multiplication.[1]
Schoof–Elkies–Atkin algorithm
In the 1990s, Noam Elkies, followed by A. O. L. Atkin devised improvements to Schoof's basic algorithm by restricting the set of primes considered before to primes of a certain kind. These came to be called Elkies primes and Atkin primes respectively. A prime is called an Elkies prime if the characteristic equation: splits over , while an Atkin prime is a prime that is not an Elkies prime. Atkin showed how to combine information obtained from the Atkin primes with the information obtained from Elkies primes to produce an efficient algorithm, which came to be known as the Schoof-Elkies-Atkin algorithm. The first problem to address is to determine whether a given prime is Elkies or Atkin. In order to do so, we make use of modular polynomials, which come from the study of modular forms and an interpretation of elliptic curves over the complex numbers as lattices. Once we have determined which case we are in, instead of using division polynomials, we proceed by working modulo the modular polynomials which have a lower degree than the corresponding division polynomial (degree rather than ). This results in a further reduction in the running time, giving us an algorithm more efficient than Schoof's, with complexity [2].
See also
- Schoof's algorithm
- Elliptic curve cryptography
- Baby-step giant-step
- Public key cryptography
- Schoof-Elkies-Atkin algorithm
- Pollard rho
- Pollard kangaroo
- Elliptic curve primality proving
Bibliography
- A. Enge: Elliptic Curves and their Applications to Cryptography: An Introduction. Kluwer Academic Publishers, Dordrecht, 1999.
- G. Musiker: Schoof's Algorithm for Counting Points on . Available at http://www.math.mit.edu/~musiker/schoof.pdf
- R. Schoof: Counting Points on Elliptic Curves over Finite Fields. J. Theor. Nombres Bordeaux 7:219-254, 1995. Available at http://www.mat.uniroma2.it/~schoof/ctg.pdf
- L. C. Washington: Elliptic Curves: Number Theory and Cryptography. Chapman \& Hall/CRC, New York, 2003.
- C. Peters: Counting points on elliptic curves over . Available at http://www.win.tue.nl/~cpeters/presentations/2008.eccs.pdf
References
- ^ "Elliptic Curves in Cryptography", Blake, Seroussi, and Smart, Cambridge University Press, 1999.
- ^ C. Peters: Counting ponts on elliptic curves over . Available at http://www.win.tue.nl/~cpeters/presentations/2008-eccs.pdf