- Schoof's algorithm
Schoof's algorithm, first described by
R. Schoof in1985 , allows one to calculate the number of points on anelliptic curve over a finite field and is used mostly inelliptic curve cryptography .From
Hasse's theorem on elliptic curves the number of point on a curve is roughly known::
so to find the exact number it is enough to find it modulo . Schoof's algorithm calculates
:
for several small primes , where , and uses the
Chinese remainder theorem to combine the results.The running time of the original algorithm is proportional to and with several improvements can be reduced to , which is adequate for on a
personal computer .The algorithm has been extended by
Noam Elkies andA. O. L. Atkin to give theSchoof-Elkies-Atkin algorithm , which has only time complexity and thus is asymptotically faster.Implementations
Several algorithms were implemented in
C++ by Mike Scott and are available with [ftp://ftp.compapp.dcu.ie/pub/crypto/ source code] . The implementations are free (no terms, no conditions), but they use [http://indigo.ie/~mscott/ MIRACL] library which is only free for non-commercial use. Note that (unmodified) programs may be used to generate curves for commercial use. There are
* Schoof's algorithm [ftp://ftp.compapp.dcu.ie/pub/crypto/schoof.cpp implementation] for with prime .
* Schoof's algorithm [ftp://ftp.compapp.dcu.ie/pub/crypto/schoof2.cpp implementation] for .References
* R. Schoof, "Elliptic curves over finite fields and the computation of square roots mod p," Mathematics of Computation, Volume 44, 1985.
Wikimedia Foundation. 2010.