Discrete Logarithm Algorithms
❖ Abstract
In the context of computational exercises assigned in class, we had to use the following
- Shanks’ algorithm (also named Baby-step Giant-step algorithm)
- Adleman’s algorithm
- Discrete Pollard’s algorithm (otherwise known as Pollard’s rho algorithm for logarithms)
- Pohlig-Hellman algorithm (also named Index calculus algorithm)
for calculating the discrete logarithm of a number. My task was to calculate the discrete logarithm $x$ inside $Z_N$ = $Z_{1693}$, where $17^x ≡ 101 \, (mod \, 1693)$.
❖ Files Included
- Interactive Python Notebook - Shanks’ Algorithm (english)
- Interactive Python Notebook - Adleman’s Algorithm (english)
- Interactive Python Notebook - Discrete Pollard’s Algorithm (english)
- Interactive Python Notebook - Pohlig-Hellman Algorithm (english)
❖ Keywords
Discrete Logarithm algorithms, Shanks algorithm, Baby-step Giant-step algorithm, Adleman’s algorithm, Discrete Pollard’s algorithm, Pollard’s rho algorithm for logarithms, Pohlig-Hellman algorithm, Index calculus algorithm