Section: Overall Objectives
Introduction
The context of the research interests of the Cacao project-team goes with numbers and equations. We deal with mathematical objects of varying complexity, and strive for providing fast algorithms for manipulating them. In particular, algebraic curves over finite fields form a very important class of objects for our study, given their relevance to number theory and public-key cryptology.
The objectives of the Cacao project-team are along the following lines:
-
Study arithmetic of curves of small genus, with a particular emphasis on applications to cryptology;
-
Improve the efficiency and the reliability of arithmetics in a broad sense (i.e., the arithmetics of a wide variety of objects).
These two objectives interplay strongly. On the one hand, arithmetics are at the core of optimizing algorithms on curves, starting evidently with the arithmetic of curves themselves. On the other hand, curves can sometimes be a tool to solve some arithmetical problems as integer factorization.
To reach these objectives, we have isolated three key axes of work:
-
Algebraic Curves and Cryptology: the main issue here is to investigate curves of small genus over finite fields (base field
, for various p and n ). The main tasks are to compute in the Jacobian of a given curve, to be able to check that this variety is suitable for cryptography (cardinality, smoothness test) and to solve problems in those structures (discrete logarithm). Applications go from number theory (integer factorization) to cryptography (an alternative to RSA).
-
Arithmetics: Here, we consider algorithms dealing with multiple-precision integers, floating-point numbers, p -adic numbers and finite fields. For such basic data structures, we do not expect new algorithms with better asymptotic behavior to be discovered; however, since those are first-class objects in all our computations, any speedup is most welcome, even by a factor of 2. Since January 2007, Cacao has also been strongly involved in a project on the Number Field Sieve (NFS), an integer factorization algorithm. We aim at developing an efficient implementation of the NFS, study its distribution, and fine-tune it in the currently “practical” range, i.e., 100-150 decimal digits.
-
Linear Algebra and Lattices: solving large linear systems is a key point of factoring and of discrete logarithm algorithms, which we need to investigate if curves are to be applied in cryptology. Lattices are central points of the new ideas that have emerged over the very last years for several problems in computer arithmetic or discrete logarithm algorithms.