We introduce the discrete log problem (DLP), the basis of many cryptosystems is founded upon the fact that it is very difficult to solve.

The Discrete Log Problem§

Discrete Log Problem

Given $h, y$ are non-zero elements belonging to $\mathbb{Z}_p$, where $p$ prime, the discrete log problem is finding an exponent $x$ such that

$$ g^x \equiv_p y. $$

There may not exist an exponent $x$ for all $g$ and $y$, the simplest counterexample would be $g = 1$, then the discrete log problem only has a solution if $y = 1$ as well.

The discrete log problem is in $\textbf{NP}\cap\textbf{coNP}$. We do not know of an efficient method to solve the discrete log problem, and we will investigate some methods that work in specific instances of the discrete log.

Primitive Roots§

Theorem 6.1

Let $p$ be prime, then there exists an element $g \in \mathbb{Z}_p$ with powers giving every element ${1, \dots, p-1} \leftrightarrow {1,g,g^2,\dots,g^{p-2}}$.

Primitive Roots

From Theorem 6.1, the values of $g$ are called “primitive roots”.

Primitive roots exist in $\mathbb{Z}_n$ for $n = 1,2,4, p^k, 2p^k$ where $p$ is an odd prime.