The following implementations have been kindly shared with the working group by their authors. See contact information if you would like to contribute to the standard.
DISCLAIMER: Links to these implementations are provided for information only. The IEEE P1363 working group has not verified or reviewed these implementations and makes no statement regarding their conformance to the current IEEE P1363 draft. In addition, the working group makes no representations regarding intellectual property coverage or ownership of the referenced implementations. The implementations may also be subject to regulations on the import, export and/or use of cryptography. Resolution of these issues is the responsibility of the user.
C++ source code
(20K)
Windows 95/NT Executable
(204K)
This program implements a hybrid algorithm for to count the number of points on an arbitrary elliptic curve defined over a prime field GF(p). Schoof's original algorithm, augmented by the use of prime powers, finds the number of points modulus the product of many small primes and large prime powers. The final phase search uses the Pollard Lambda ("Kangaroo") algorithm to determine the order of a random point on the curve. This information is used to finally determine the number of points on the curve. This final phase effectively stretches the range of Schoof's algorithm by about 80 bits, and makes the running time tolerable for curves in the range of Crytographic interest. This approach is only feasible due to the use of fast FFT methods for large degree polynomial multiplication.
Note: This algorithm is not a part of the current P1363 draft.
C++ source code (28K)
Windows 95/NT Executable (132K)
Robert Hofer's home page; click on "Cryptography" to get to the implementation
No frames version
This C++ cryptographic library tracks the ballot version of P1363 (October 5, 1998) and implements the following techniques from the main body of the document:
The Crypto++ download and information page
IEEE Home Page | IEEE Standards | P1363 Home Page |