Hyperelliptic Curve Library
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.