An Implementation of the Number Field Sieve

The Number Field Sieve (NFS) is the asymptotically fastest known factoring algorithm for large integers. This article describes an implementation of the NFS, including the choice of two quadratic polynomials, both classical sieving and a special form of lattice sieving (line sieving), the block Lanczos method and a new square root algorithm. Finally some data on factorizations obtained with this implementation are listed, including the record factorization of 12151 – 1.

[1]  H. Riesel Prime numbers and computer methods for factorization , 1985 .

[2]  Thomas A. Standish Data Structure Techniques , 1980 .

[3]  J. Pollard Factoring with cubic integers , 1993 .

[4]  S. Lang Algebraic Number Theory , 1971 .

[5]  D. Coppersmith Solving linear equations over GF(2): block Lanczos algorithm , 1993 .

[6]  László Lovász,et al.  Factoring polynomials with rational coefficients , 1982 .

[7]  Arjen K. Lenstra,et al.  The number field sieve , 1990, STOC '90.

[8]  A. K. Lenstra,et al.  The factorization of the ninth Fermat number , 1993 .

[9]  Arjen K. Lenstra,et al.  Lattice sieving and trial division , 1994, ANTS.

[10]  G. Frobenius Über Beziehungen zwischen den Primidealen eines algebraischen Körpers und den Substitutionen seiner Gruppe , 1926 .

[11]  Donald E. Knuth,et al.  The art of computer programming. Vol.2: Seminumerical algorithms , 1981 .

[12]  Peter L. Montgomery,et al.  A Block Lanczos Algorithm for Finding Dependencies Over GF(2) , 1995, EUROCRYPT.

[13]  Peter L. Montgomery,et al.  Square roots of products of algebraic numbers , 1994 .

[14]  Carl Pomerance,et al.  The Development of the Number Field Sieve , 1994 .

[15]  J. Pollard The lattice sieve , 1993 .

[16]  H. Lenstra,et al.  Factoring integers with the number field sieve , 1993 .

[17]  Leonard M. Adleman,et al.  Factoring numbers using singular integers , 1991, STOC '91.

[18]  Andrew M. Odlyzko,et al.  Solving Large Sparse Linear Systems over Finite Fields , 1990, CRYPTO.

[19]  Carl Pomerance,et al.  The Quadratic Sieve Factoring Algorithm , 1985, EUROCRYPT.

[20]  J. Couveignes Computing a square root for the number field sieve , 1993 .

[21]  Henri Cohen,et al.  A course in computational algebraic number theory , 1993, Graduate texts in mathematics.