Description
The security of RSA, the most well-known and widely used public cryptographic system nowadays, rests on the presumption that factoring integers either cannot be done efficiently or at least nobody knows how to do it efficiently, that is, by a polynomial-time algorithm. With the ever-increasing need to secure information that travels on the Internet, the problem of factoring has been the focus of attention of researchers throughout the world, professional and amateur alike. This thesis is about the Special Number Field Sieve (SNFS), one of the best algorithms in the literature for factoring large integers. The algorithm is designed to factor positive integers n of the form rt - s where r, t, and s are known. It is called the SNFS because it does part of the work in an algebraic number field, Q(_) where Q is the field of rational numbers and _ is a root of an irreducible, monic, integral polynomial f determined from n. In 1990, Lenstra, Lenstra, Manasse, and Pollard factored the ninth Fermat number F9 = 22 9 + 1 (a 155-digit integer) using the SNFS. However, they used a trick to stay out of Q(_) and work in Z, the integer ring: Instead of directly using the principal ideals (_), with _ = a + b_ _ Z[_], to generate an algebraic number field factor basis, they used a one-to-one correspondence existing between _ and the pair (p, r) where a + br _ 0 (mod p). Here, p is prime not exceeding B, the smoothness bound. For the sieve to find smooth relations, (a, b), the norm is computed as |N(a + b_)| = ad - c(-b)d . The factorization of this is done by each of the pairs (p, r) in the factor basis by testing if a + br _ 0 (mod p). While it holds, keep dividing the norm by p then move to the next pair. The use of quadratic characters is also introduced to assist in determining perfect squares in Z[_]. The contribution of this work is to show that by using the power of the MAGMA Computational Algebra System to work directly with ideals in an algebraic number field, the above "tricks" are not necessary. This thesis demonstrates the direct correlation between the rational and algebraic parts of the SNFS algorithm. A different sieving procedure is also implemented.