Overall Objectives
Scientific Foundations
Application Domains
New Results
Other Grants and Activities

Section: Software

Finite fields

Participants : Pierrick Gaudry, Emmanuel Thomé [ contact ] .

mp Im8 $\#120125 _q$ is (yet another) library for computing in finite fields. The purpose of mp Im8 $\#120125 _q$ is not to provide a software layer for accessing finite fields determined at runtime within a computer algebra system like Magma, but rather to give a very efficient, optimized code for computing in finite fields precisely known at compile time . mp Im8 $\#120125 _q$ is not restricted to a finite field in particular, and can adapt to finite fields of any characteristic and any extension degree. However, one of the targets being the use in cryptology, mp Im8 $\#120125 _q$ somehow focuses on prime fields and on fields of characteristic two.

mp Im8 $\#120125 _q$ 's ability to generate specialized code for desired finite fields differentiates this library from its competitors. The performance achieved is far superior. For example, mp Im8 $\#120125 _q$ can be readily used to assess the throughput of an efficient software implementation of a given cryptosystem. Such an evaluation is the purpose of the “EBats” benchmarking tool( ). mp Im8 $\#120125 _q$ entered this trend in 2007, establishing reference marks for fast elliptic curve cryptography: the authors improved over the fastest examples of key-sharing software in genus 1 and 2, both over binary fields and prime fields. These timings are now comparison references for other implementations  [29] .

The library's purpose being the generation of code rather than its execution, the working core of mp Im8 $\#120125 _q$ consists of roughly 18,000 lines of Perl code, which generate most of the C code. Some part of mp Im8 $\#120125 _q$ is distributed at .

In 2009, some experimental code for polynomials over prime fields has been added to mp Im8 $\#120125 _q$ . Although not yet distributed it has been used for the record in genus 2 point counting (see below).


Logo Inria