Hyperelliptic curve cryptography is similar to elliptic curve cryptography (ECC) insofar as the Jacobian of a hyperelliptic curve is an abelian group in which to do arithmetic, just as we use the group of points on an elliptic curve in ECC.
Definition An (imaginary) hyperelliptic curve of genus g {\displaystyle g} over a field K {\displaystyle K} is given by the equation C : y 2 + h ( x ) y = f ( x ) ∈ K [ x , y ] {\displaystyle C:y^{2}+h(x)y=f(x)\in K[x,y]} where h ( x ) ∈ K [ x ] {\displaystyle h(x)\in K[x]} is a polynomial of degree not larger than g {\displaystyle g} and f ( x ) ∈ K [ x ] {\displaystyle f(x)\in K[x]} is a monic polynomial of degree 2 g + 1 {\displaystyle 2g+1} . From this definition it follows that elliptic curves are hyperelliptic curves of genus 1. In hyperelliptic curve cryptography K {\displaystyle K} is often a finite field. The Jacobian of C {\displaystyle C} , denoted J ( C ) {\displaystyle J(C)} , is a quotient group, thus the elements of the Jacobian are not points, they are equivalence classes of divisors of degree 0 under the relation of linear equivalence. This agrees with the elliptic curve case, because it can be shown that the Jacobian of an elliptic curve is isomorphic with the group of points on the elliptic curve. The use of hyperelliptic curves in cryptography came about in 1989 from Neal Koblitz. Although introduced only 3 years after ECC, not many cryptosystems implement hyperelliptic curves because the implementation of the arithmetic isn't as efficient as with cryptosystems based on elliptic curves or factoring (RSA). The efficiency of implementing the arithmetic depends on the underlying finite field K {\displaystyle K} , in practice it turns out that finite fields of characteristic 2 are a good choice for hardware implementations while software is usually faster in odd characteristic. The Jacobian on a hyperelliptic curve is an Abelian group and as such it can serve as group for the discrete logarithm problem (DLP). In short, suppose we have an Abelian group G {\displaystyle G} and g {\displaystyle g} an element of G {\displaystyle G} , the DLP on G {\displaystyle G} entails finding the integer a {\displaystyle a} given two elements of G {\displaystyle G} , namely g {\displaystyle g} and g a {\displaystyle g^{a}} . The first type of group used was the multiplicative group of a finite field, later also Jacobians of (hyper)elliptic curves were used. If the hyperelliptic curve is chosen with care, then Pollard's rho method is the most efficient way to solve DLP. This means that, if the Jacobian has n {\displaystyle n} elements, that the running time is exponential in log ( n ) {\displaystyle \log(n)} . This makes it possible to use Jacobians of a fairly small order, thus making the system more efficient. But if the hyperelliptic curve is chosen poorly, the DLP will become quite easy to solve. In this case there are known attacks which are more efficient than generic discrete logarithm solvers or even subexponential. Hence these hyperelliptic curves must be avoided. Considering various attacks on DLP, it is possible to list the features of hyperelliptic curves that should be avoided.
… excerpt ends here. Continue reading the full article.
