Implementations of portions of the P1363 draft

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.

A C++ Implementation of the Complex Multiplication (CM) Elliptic Curve Generation Algorithm from Annex A by Mike Scott

C++ source code (20K)
Windows 95/NT Executable (204K) 

A C++ Implementation Implementation of the Schoof's Algorithms for Counting Points on an Arbitrary Elliptic Curve by Mike Scott

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)

Maple and Java Implementations for generating Elliptic Curves over GF(p) and GF(2m) using the Complex Multiplication (CM) Method from Annex A by Robert Hofer

Robert Hofer's home page; click on "Cryptography" to get to the implementation
No frames version

Crypto++ 3.0 by Wei Dai

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:

It also implements EMSR-PSS from a submission to P1363a, and allows to build schemes as combinations of the above techniques.

The Crypto++ download and information page

This site was last modified on March 14, 2000.
IEEE Logo IEEE Standards Logo P1363 Logo
IEEE Home Page IEEE Standards P1363 Home Page