## Section: Software

### CADO-NFS

Participants : Cyril Bouvier, Jérémie Detrey, Pierrick Gaudry, Alexander Kruppa, Lionel Muller, Emmanuel Thomé [ contact ] , Antonio Vera, Paul Zimmermann.

Cado-nfs is a program to factor integers using the Number Field Sieve algorithm (NFS), developped in the context of the ANR-CADO project.

NFS is a complex algorithm which contains a large number of sub-algorithms. The implementation of all of them is now complete, but still leaves many places to be improved. Compared to existing implementations, the Cado-nfs implementation is already a reasonable player. Several factorizations have been completed using our implementations.

In 2009, the linear algebra code in Cado-nfs (which uses the
block Wiedemann algorithm) has been reprogrammed mostly from scratch in
`C` , and now works as a multi-thread, multi-node implementation,
using both POSIX threads and the MPI interface. A number of algorithms
have been implemented for the basic matrix times vector multiplications,
which account for the largest share of the computation time.

During the sieving step of NFS a great number of smaller integers need to be factored. For this task an implementation of the P–1, P+1 and Elliptic Curve factoring methods has been written, optimized for high-throughput factorization of relatively small numbers (unlike GMP-ECM, which uses asymptotically fast algorithms to find factors as large as possible with these algorithms). The code is competitive in terms of performance/cost-ratio with recently proposed hardware implementations of ECM for NFS. The details of the implementation are published in the research report [15] .

In 2009, the Cado-nfs program has been made available publicly from http://cado-nfs.gforge.inria.fr/ . New versions of programs for the filtering step have been designed — with the help of Cyril Bouvier — for the factorization of RSA-768; those programs will be integrated within Cado-nfs by Lionel Muller.