As the strongest attack on the discrete logarithm based cryptosystems, the number field sieve algorithm and its variants will be studied deeply using the appropriate number theoretic tools. A historical background on sieving methods and the underlying search techniques will be covered.