Solving DLP by Baby Step, Giant Step

3.4k Views Asked by At

I want to solve the DLP $6\equiv 2^x\pmod {101}$ using Baby Step, Giant Step.

$$$$

I have done the following:

We have that $n=\phi (101)=100$, since $101$ is prime.

$m=\lceil \sqrt{100}\rceil=10$.

For each $j\in \{0,1,\ldots , 9\}$ we calculate $(j,2^j)$:

\begin{align*}j \ \ \ & & \ \ \ 2^j \\ 0 \ \ \ & & \ \ \ 1 \\ 1 \ \ \ & & \ \ \ 2 \\ 2 \ \ \ & & \ \ \ 4 \\ 3 \ \ \ & & \ \ \ 8 \\ 4 \ \ \ & & \ \ \ 16 \\ 5 \ \ \ & & \ \ \ 32 \\ 6 \ \ \ & & \ \ \ 64 \\ 7 \ \ \ & & \ \ \ 27 \\ 8 \ \ \ & & \ \ \ 54 \\ 9 \ \ \ & & \ \ \ 7\end{align*}

It holds that $2^{-10}=1024^{-1}\equiv 65$.

For each $i\in \{0,1,\ldots , 9\}$ we calculate $6\cdot 65^i$: \begin{align*}i \ \ \ & & \ \ \ 6\cdot 65^i \\ 0 \ \ \ & & \ \ \ 6 \\ 1 \ \ \ & & \ \ \ 87 \\ 2 \ \ \ & & \ \ \ 100 \\ 3 \ \ \ & & \ \ \ 36 \\ 4 \ \ \ & & \ \ \ 17 \\ 5 \ \ \ & & \ \ \ 95 \\ 6 \ \ \ & & \ \ \ 14 \\ 7 \ \ \ & & \ \ \ 1\end{align*}

Therefore for $i=1$ and $j=0$we get the same result, and so \begin{equation*}\log_26=7\cdot 10+0=70\end{equation*}

Is everything correct?

1

There are 1 best solutions below

1
On BEST ANSWER

Using An Introduction to Mathematical Cryptography, J. Hoffstein, J. Pipher, J. H. Silverman, let's use Shank's Babystep, Giantstep Algorithm:

  • Let $G$ be a group and let $g \in G$ be an element of order $N \ge 2$. The following algorithm solves the discrete logarithm problem in $\mathscr{O}(\sqrt{N} . \log N)$ steps.

  • $(1)$ Let $N$ be the multiplicative order of $p$ and then $n = 1 + \lfloor \sqrt{N} \rfloor$, so in particular $n \gt \sqrt{N}$.

  • $(2)$ Create two lists,

    List $1: g, g^2, g^3, \ldots, g^n$,

    List $2: h, h g^{-n}, h g^{-2n},h g^{-3n},\ldots, hg^{-n^2}$.

  • $(3)$ Find a match between the two lists, say $g^{i} = h g^{-j\cdot n}$.

  • $(4)$ Then, $x = i + jn$ is a solution to $g^x = h \pmod {p}$.

For this problem, we want to perform the algorithm to solve for $x$ in

$$2^x\equiv 6\pmod {101}$$

We have

$$g = 2, h = 6, p = 101$$

For $p = 101$, we have order $N = \phi{(101)} = 100$ in $\mathbb{F}^*_{101}$, so set $$n = 1 + \lfloor \sqrt{N} \rfloor = 1 + \lfloor\sqrt{100}\rfloor = 11$$

Set

$$u = g^{-n}\pmod{101} = 2^{-11} \pmod{101} = 83$$

Create the table

$$\begin{array}{|c|c|c|} \hline \text{k} & g^k & h u^k \\ \hline 1 & 2 & 94 \\ \hline 2 & 4 & 25 \\ \hline 3 & 8 & 55 \\ \hline 4 & 16 & 20 \\ \hline 5 & 32 & 44 \\ \hline 6 & 64 & 16 \\ \hline 7 & 27 & 15 \\ \hline 8 & 54 & 33 \\ \hline 9 & 7 & 12 \\ \hline 10 & 14 & 87 \\ \hline 11 & 28 & 50 \\ \hline \end{array}$$

From the table, we find the collision at $16$, so we have

$$x = i + jn = 4 + (6)(11) = 70$$

Hence, $x = 70$ solves the problem $2^x \equiv 6 \pmod{101}$ in $\mathbb{F}^*_{101}$.

Aside: Here is a calculator and nice description of the algorithm to verify or you can solve this using Wolfram Alpha.