RSA is a very popular public key cryptosystem. This algorithm is known to be secure, but this fact relies on the difficulty of factoring large numbers. Because of the popularity of the algorithm, much research has gone into this problem of factoring a large number. The size of the number that we are able to factor increases exponentially year by year. This fact is partly due to advancements in computing hardware, but it is largely due to advancements in factoring algorithms. The General Number Field Sieve is an example of just such an advanced factoring algorithm. This is currently the best known method for factoring large numbers. This paper is a presentation of the General Number Field Sieve. It begins with a discussion of the algorithm in general and covers the theory that is responsible for its success. Because often the best way to learn an algorithm is by applying it, an extensive numerical example is included as well. I. I NTRODUCTION The General Number Field Sieve is an algorithm for factoring very large numbers. Factoring is very important in the field of cryptography, specifically in the RSA cryptosystem. The Rivest, Shamir, Adleman (RSA) cryptosystem is a scheme for encrypting and decrypting messages, and its security relies on the fact that factoring large composite numbers is a very hard, computationally intensive task. The RSA algorithm works in the following way: • Choose two large primes p andq. Setn = pq. • Choose a randome satisfying1 ≤ e < n. • Setd = e−1 (mod (p− 1)(q − 1)). • A messagem is encrypted toc ≡ me (mod n). Note that onlye andn were needed to compute c. e andn are known as the public key and are public information.
[1]
J. Rotman.
A First Course in Abstract Algebra
,
1995
.
[2]
M. Briggs.
An Introduction to the General Number Field Sieve
,
1998
.
[3]
David M. Bressoud.
Factorization and Primality Testing
,
1989
.
[4]
E. T..
An Introduction to the Theory of Numbers
,
1946,
Nature.
[5]
R. Marije Elkenbracht-Huizing,et al.
An Implementation of the Number Field Sieve
,
1996,
Exp. Math..
[6]
Wade Trappe,et al.
Introduction to Cryptography with Coding Theory
,
2002
.