Application of Divisors on a Hyperelliptic Curve in Python

Denys Boiko
2021 Mohyla Mathematical Journal  
The paper studies hyperelliptic curves of the genus g > 1, divisors on them and their applications in Python programming language. The basic necessary definitions and known properties of hyperelliptic curves are demonstrated, as well as the notion of polynomial function, its representation in unique form, also the notion of rational function, norm, degree and conjugate to a polynomial are presented. These facts are needed to calculate the order of points of desirable functions, and thus to
more » ... ly and efficiently calculate divisors. The definition of a divisor on a hyperelliptic curve is shown, and the main known properties of a divisor are given. There are also an example of calculating a divisor of a polynomial function, reduced and semi-reduced divisors are described, theorem of the existence of such a not unique semi-reduced divisor, and theorem of the existence of a unique reduced divisor, which is equivalent to the initial one, are proved. In particular, a semi-reduced divisor can be represented as an GCD of divisors of two polynomial functions. It is also demonstrated that each reduced divisor can be represented in unique form by pair of polynomials [a(x), b(x)], which is called Mumford representation, and several examples of its representation calculation are given. There are shown Cantor's algorithms for calculating the sum of two divisors: its compositional part, by means of which a not unique semi-reduced divisor is formed, and the reduction part, which gives us a unique reduced divisor. In particular, special case of the compositional part of Cantor's algorithm, doubling of the divisor, is described: it significantly reduces algorithm time complexity. Also the correctness of the algorithms are proved, examples of applications are given. The main result of the work is the implementation of the divisor calculation of a polynomial function, its Mumford representation, and Cantor's algorithm in Python programming language. Thus, the aim of the work is to demonstrate the possibility of e↵ective use of described algorithms for further work with divisors on the hyperelliptic curve, including the development of cryptosystem, digital signature based on hyperelliptic curves, attacks on such cryptosystems.
doi:10.18523/2617-70803202011-24 fatcat:guzbtetl5zf4xknx24k62sfggm