In this thesis, we deal with the discrete logarithm problem and attacks on this problem. First, we explain the mathematical background necessary to understand the functioning of algorithms. In the third chapter, we define elliptic curves and the elliptic curve method for integer factorization and testing smoothness of integers. We also derive its time complexity. In the fourth chapter, we present two simple algorithms for solving the discrete logarithm problem: "baby step, giant step" and Pohlig-Hellman algorithm. We also derive their time complexity, and support the explanation with an example. In the fifth chapter, we introduce the subexponential algorithm index calculus for solving the discrete logarithm problem, derive its time complexity, and support the explanation with an example.
|