GRECC LIX ENS X

ZEN-1.0b

A new toolbox for fast computation in finite extension over finite rings

Florent Chabaud (GRECC) and Reynald Lercier (LIX).


These pages are still under construction.


Contents


Overview

Many computational problems need arithmetic operations in polynomial finite rings of Z/nZ where n is an integer (n>1). Integer factorizations, primality testing are for instance such applications. To solve them, programmers use general symbolic mathematical softwares or write specific programs (most of the time in C).

On the first hand, symbolic mathematical softwares (Maple, Mathematica,...) handle with difficulty computations in finite fields. In the worst cases, such programs perform computations with rationals before finally reducing the objects modulo the characteristic n, in the best cases, such reductions are performs but extensions of a finite ring can't be implemented. In any cases, applications written with such softwares are ten to hundred times slower than an ad hoc implementation in C. On the other hand, optimized C libraries (CESAR, Lidia) deal only with one side of finite fields, mainly Z/nZ.

We hardly believe we can keep the efficiency of these C libraries while working in any polynomial extension of Z/nZ. We designed the ZEN library to perform efficient arithmetic operations in these sets. That means you can work not only, in any polynomial extension of Z/nZ, but also in any polynomial extension of another finite ring even if n is not a prime or even if the polynomial which defines an extension is not irreducible.

Besides, these functionalities are provided without loss of simplicity. Of course, a compromise had to be chosen between simplicity and efficiency. Therefore, this library can be used at two levels.

The current version of our library provides the following features: A separate little package gives example of what is possible with the library. Zenfact contains an irreducibility test for polynomials using Berlekamp's algorithm, as well as pseudo-primality test. These two functionnalities are used in a boolean function that tests whether a finite ring is a pseudo-finite field.


License

The ZEN library uses intensively the BigNum package. We reproduce hereafter the BigNum license

BigNum license

This document and the source code of the BigNum package bear the marking "Copyright Digital Equipment Corporation & INRIA 1989"

This documentation, and the source code of the BigNum package may be reproduced and distributed freely to non commercial usage provided that the following conditions are respected:

INRIA and Digital Equipment Corporation make no representations, express or implicit, with respect to this documentation or the software it describes, including without limitations, any implied warranties of merchandability or fitness for a particular purpose, all of which are expressly disclaimed. INRIA and Digital Equipment Corporation or subsequent distributors shall in no event be liable for any indirect, incidental or consequential damages.

ZEN license

The ZEN library can be freely redistributed provided the above license is not violated. It is provided as is with no express warranty of correctness or efficiency. As mentioned above, we shall in no event be liable for any indirect, incidental or consequential damages. You may copy the zen package in whole or in part as long as you don't try to make money of it, or pretend that you wrote it.


Sources

The following description reflects the future of ZEN. For the beta version, the complete library is the only one available, because the modules are not completely independant for the moment.


Documentation

The LaTeX sources of the documentation of the library are contained in the C sources. The command make doc provides a dvi file. You can also download the following files, that are included in the above one.


Examples

We have already intensively used the library to implement various applications. Some of them are listed below.


Bug reports

As this is a beta release of ZEN, we are sure that bugs still exist in the library, even if we have done our best to avoid them. Here is a list of how to fix some of them that we are aware of. All bug reports, remarks, suggestions, etc... should be sent to zen@lix.polytechnique.fr


GRECC-LIENS
Ecole Normale Supérieure
45, rue d'Ulm
75230 Paris cedex 05 France

Fax: (+33) (1) 44 32 20 80


HTML pages maintained by Florent.Chabaud@ens.fr