Index calculus algorithm

In computational number theory, the index calculus algorithm is a probabilistic algorithm for computing discrete logarithms.

is a prime, index calculus leads to a family of algorithms adapted to finite fields and to some families of elliptic curves.

The algorithm collects relations among the discrete logarithms of small primes, computes them by a linear algebra procedure and finally expresses the desired discrete logarithm with respect to the discrete logarithms of small primes.

Roughly speaking, the discrete log problem asks us to find an x such that

This factor base is usually chosen to be the number −1 and the first r primes starting with 2.

From the point of view of efficiency, we want this factor base to be small, but in order to solve the discrete log for a large group we require the factor base to be (relatively) large.

In practical implementations of the algorithm, those conflicting objectives are compromised one way or another.

The first two stages depend only on the generator g and prime modulus q, and find the discrete logarithms of a factor base of r small primes.

The third stage finds the discrete log of the desired number h in terms of the discrete logs of the factor base.

The first stage consists of searching for a set of r linearly independent relations between the factor base and power of the generator g. Each relation contributes one equation to a system of linear equations in r unknowns, namely the discrete logarithms of the r primes in the factor base.

This stage is embarrassingly parallel and easy to divide among many computers.

The second stage solves the system of linear equations to compute the discrete logs of the factor base.

A system of hundreds of thousands or millions of equations is a significant computation requiring large amounts of memory, and it is not embarrassingly parallel, so a supercomputer is typically used.

This was considered a minor step compared to the others for smaller discrete log computations.

However, larger discrete logarithm records[1][2] were made possible only by shifting the work away from the linear algebra and onto the sieve (i.e., increasing the number of equations while reducing the number of variables).

The third stage searches for a power s of the generator g which, when multiplied by the argument h, may be factored in terms of the factor base gsh = (−1)f0 2f1 3f2···prfr.

The choice of the factor base size r is critical, and the details are too intricate to explain here.

The lack of the notion of prime elements in the group of points on elliptic curves makes it impossible to find an efficient factor base to run index calculus method as presented here in these groups.

Therefore this algorithm is incapable of solving discrete logarithms efficiently in elliptic curve groups.

However: For special kinds of curves (so called supersingular elliptic curves) there are specialized algorithms for solving the problem faster than with generic methods.

While the use of these special curves can easily be avoided, in 2009 it has been proven that for certain fields the discrete logarithm problem in the group of points on general elliptic curves over these fields can be solved faster than with generic methods.

The algorithms are indeed adaptations of the index calculus method.

Assuming an optimal selection of the factor base, the expected running time (using L-notation) of the index-calculus algorithm can be stated as

The basic idea of the algorithm is due to Western and Miller (1968),[4] which ultimately relies on ideas from Kraitchik (1922).

[5] The first practical implementations followed the 1976 introduction of the Diffie-Hellman cryptosystem which relies on the discrete logarithm.

Merkle's Stanford University dissertation (1979) was credited by Pohlig (1977) and Hellman and Reyneri (1983), who also made improvements to the implementation.

[8] Index Calculus inspired a large family of algorithms.

, the state-of-art algorithms are the Number Field Sieve for Discrete Logarithms,

and the Number Field Sieve in High Degree,

Discrete logarithm in some families of elliptic curves can be solved in time