Counting points on elliptic curves explained
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 states that if
E is an elliptic curve over the finite field
, then the
cardinality of
satisfies
||E(Fq)|-(q+1)|\leq2\sqrt{q}.
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 E be the curve y2 = x3 + x + 1 over
. To count points on
E, we make alist of the possible values of
x, then of the
quadratic residues of x mod 5 (for lookup purpose only), then of
x3 +
x + 1 mod 5, then of
y of
x3 +
x + 1 mod 5. This yields the points on
E.
E.g. the last row is computed as follows: If you insert
in the equation
x3 +
x + 1 mod 5 you get
as result (3rd column). This result can be achieved if
(
Quadratic residues can be looked up in the 2nd column). So the points for the last row are
.
Therefore,
has
cardinality of 9: the 8 points listed before and the point at infinity.
This algorithm requires running time O(q), 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
(q+1-2\sqrt{q},q+1+2\sqrt{q})
. 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 distinct 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 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.
L\leftarrow\operatorname{lcm}(L,M)
\\note
is the order of the point
18.
WHILE
divides more than one integer
in
(q+1-2\sqrt{q},q+1+2\sqrt{q})
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
-m<a0\leqmand-m\leqa1\leqms.t.a=a0+2ma1.
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
.
There are other generic algorithms for computing the order of a group element that are more space efficient, such as Pollard's rho algorithm and the Pollard kangaroo method. The Pollard kangaroo method allows one to search for a solution in a prescribed interval, yielding a running time of
, using
space.
Schoof's algorithm
See main article: 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
O(n2M(n3)/log{n})=O(n5+o(1))
, where
denotes the
complexity of integer multiplication. Its space complexity is
.
Schoof–Elkies–Atkin algorithm
See main article: Schoof–Elkies–Atkin algorithm.
In the 1990s, Noam Elkies, followed by A. O. L. Atkin devised improvements to Schoof's basic algorithm by making a distinction among the primes
that are used. A prime
is called an Elkies prime if the characteristic equation of the Frobenius endomorphism,
, splits over
. Otherwise
is called an Atkin prime. Elkies primes are the key to improving the asymptotic complexity of Schoof's algorithm. Information obtained from the Atkin primes permits a further improvement which is asymptotically negligible but can be quite important in practice. The modification of Schoof's algorithm to use Elkies and Atkin primes is known as the Schoof–Elkies–Atkin (SEA) algorithm.
The status of a particular prime
depends on the elliptic curve
, and can be determined using the
modular polynomial
. If the univariate polynomial
has a root in
, where
denotes the
j-invariant of
, then
is an Elkies prime, and otherwise it is an Atkin prime. In the Elkies case, further computations involving modular polynomials are used to obtain a proper factor of the division polynomial
. The degree of this factor is
, whereas
has degree
.
Unlike Schoof's algorithm, the SEA algorithm is typically implemented as a probabilistic algorithm (of the Las Vegas type), so that root-finding and other operations can be performed more efficiently. Its computational complexity is dominated by the cost of computing the modular polynomials
, but as these do not depend on
, they may be computed once and reused. Under the heuristic assumption that there are sufficiently many small Elkies primes, and excluding the cost of computing modular polynomials, the asymptotic running time of the SEA algorithm is
O(n2M(n2)/log{n})=O(n4+o(1))
, where
. Its space complexity is
, but when precomputed modular polynomials are used this increases to
.
See also
Bibliography
- I. Blake, G. Seroussi, and N. Smart: Elliptic Curves in Cryptography, Cambridge University Press, 1999.
- 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.umn.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.