General Number Field Sieve - Implementations

Implementations

Some implementations focus on a certain smaller class of numbers. These are known as special number field sieve techniques, such as used in the Cunningham project. A project called NFSNET ran from 2002 through at least 2007. It used volunteer distributed computing on the Internet. Paul Leyland of the United Kingdom and Richard Wackerbarth of Texas were involved.

Until 2007, the gold-standard implementation was a suite of software developed and distributed by CWI in the Netherlands, which was available only under a relatively restrictive license. In 2007, Jason Papadopoulos developed a faster implementation of final processing as part of msieve, which is public-domain. Both implementations feature the ability to be distributed among several nodes in a cluster with a sufficiently fast interconnect.

Polynomial selection is normally performed by GPL software written by Kleinjung, or by msieve, and lattice sieving by GPL software written by Franke and Kleinjung; these are distributed in GGNFS.

  • NFS@Home
  • GGNFS
  • pGNFS
  • factor by gnfs
  • CADO-NFS
  • msieve, which contains excellent final-processing code, a good implementation of the polynomial selection which is very good for smaller numbers, and an implementation of the line sieve.
  • kmGNFS

Read more about this topic:  General Number Field Sieve