# The computational complexity of discrete log

I am trying to find out what the asymptotic computational complexity, in terms of big $O()$ notation, is for discrete log. Specifically, consider an element of the field $x \in \mathbb{F}_{q}$, what is:

• The worst case rigorously provable complexity of computing the discrete log of $x$ if a) $q$ is a prime or b) if $q = 2^k$?
• The best known heuristic complexity of computing the discrete log of $x$ if a) $q$ is a prime or b) if $q = 2^k$?

This looks like a standard question and I have searched the web but I can't find clear answers to these questions (including on the wiki).

As a side note, are there particular fields for which discrete logs are easier than others?

An example of information from which I am not able to glean the answers to my questions is the paper The Past, evolving Present and Future of Discrete Logarithm. Section 4 lists a number of relevant methods but no clear statement of their asymptotic complexity in terms of the number of bits needed to represent the field element and $q$ (or $k$) that I can find. It's possible I am just not interpreting the paper well of course.

• Google "discrete log survey"... – fkraiem Jul 1 '17 at 10:38
• "The worst case rigorously provable complexity" - there are no nontrivial rigorously provable complexity results. In fact, there is no nontrivial results proven for any problem within $NP$. – poncho Jul 1 '17 at 11:31
• @poncho I am asking about upper bounds, that is the running times of algorithms that compute the discrete log. – Lembik Jul 1 '17 at 14:47
• @fkraiem I added an example of the difficulty I am having. – Lembik Jul 1 '17 at 14:50
• Ahh, so you are actually looking for the "best, rigourosly provable worst-case run-time to solve generic instances of the discrete logarithm problem". – SEJPM Jul 1 '17 at 18:41

The paper you mention actually does contain most of the answers at least as far as “heuristic complexity” is concerned (newer results improve the complexity bounds given in that paper in some parameter ranges, but not the ranges you are asking about). Note that the complexity of the discrete logarithm problem is usually given for a random $x$ (with respect to an arbitrary generator of $\mathbb{F}_q^*$), so the bit length of $x$ doesn't really come into play.
So the best known algorithm for discrete logarithms in $\mathbb{F}_q^*$ when $q$ is a random-looking prime is the general number field sieve (GNFS), which has a heuristic complexity of $L_q[1/3,\sqrt[3]{64/9}]$, where $L_q[\alpha,c]$ is a short-hand notation for $\exp\big((c+o(1))(\log q)^\alpha(\log\log q)^{1-\alpha}\big)$.
Still in the prime case, when $q$ has a special form (which roughly means that it can be expressed as the value of a polynomial with small coefficients at a small integer: think e.g. of a Mersenne prime), one can use the special number field sieve (SNFS) instead, and complexity drops down to $L_q[1/3,\sqrt[3]{32/9}]$ (so one can solve the problem for $q$ of roughly twice the bit size as for SNFS).
As for the case of $q=2^k$, the best asymptotic complexity is provided by Barbulescu et al.'s version of the function field sieve (FFS), which in that case runs in heuristic quasipolynomial time $2^{O((\log k)^2)}$.
Oh, and as a final note, you can probably deduce from the above that the answer to the question of whether the discrete log problem is easier in some fields than others is yes. Basically, for a field $\mathbb{F}_{p^k}$ with $p$ prime, the complexity will depend on the relative sizes of $p$ and $k$ (this is the distinction between the small prime, medium prime and large prime cases of the discrete log discussed in the paper of Joux et al.), and to a lesser extent on whether $p$ has a special form in the sense alluded to above.