Jump to content

Schoof's algorithm

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by GBL (talk | contribs) at 13:11, 2 January 2006 (Initial version). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)

Schoof's algorithm allows to calculate the number of points on an elliptic curve over a finite field and is used mostly in elliptic curve cryptography.

Due to the 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 . The 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 PC. Note that the Schoof-Elkies-Atkin has only time complexity and thus is always faster.

References

  • R. Schoof, Elliptic curves over finite fields and the computation of square roots mod p, Mathematics of Computation, Volume 44, 1985.

Implementations

Several algorithms were implemented in C++ by Mike Scott and are available with source code. The implementations are free (no terms, no conditions), but they use 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 implementation for with prime .
  • Schoof's algorithm implementation for .