Hyperelliptic Curve Library

Niels Lubbes

Many cryptosystems are based on the Discrete Logarithm Problem (DLP). When considering a finite Abelian group with large prime order, computing the exponent of a group element can be done fast but the inverse of this operation (Discrete Logarithm) is assumed to be hard.

A hyperelliptic curve is given by the solutions of a certain type of equation. Carefully chosen subsets of these solutions can be seen as group elements, which form a finite Abelian group. The problem of computing the DL over such a group is called the Hyperelliptic Curve DLP (HCDLP).

The C++ library HCL implements the arithmetic on hyperelliptic curves. Also the algorithms Pollard rho and Pollard lambda are implemented in order to solve the HCDLP.

The implementation of HCL is part of my graduation project. HCL (Hyperelliptic Curve Library) uses Victor Shoup's NTL (Number Theory Library) in combination with the GMP (GNU Multi-Precision) library.

HCL is free software, and may be used according to the terms of the GNU General Public License.