Computing Oesterlé’s bounds

This package contains two C programs. The first program computes a lower bound on the genus of a curve defined over a fixed finite field, given its number of points. The second one computes an upper bound on the number of rational points of a curve of given genus, over a fixed finite field.

Root finding algorithms over function fields of algebraic curves

Talk at Journées Nationales de Calcul Formel, CIRM (November 2005)

We propose an algorithm to find the roots of a univariate polynomial with coefficients in the function field of an algebraic curve (or more generally, in a discretely valued field). This method can be applied to the list decoding of algebraic-geometric codes when the Newton-Hensel method can’t be used.

A Newton-Puiseux root finding algorithm over function fields of curves (Unpublished preprint, November 2005)

Let k be a perfect field of any characteristic, X a geometrically irreducible curve defined over k and K its function field. Given a polynomial G over K and a divisor D, we propose an algorithm to find all roots of G in the Riemann-Roch space L(D). An application of this method is the root finding step in list decoding of algebraic-geometric codes, when the very efficient Newton-Hensel method can’t be used. Our algorithm has two steps:
1.) using a Newton-Puiseux method, compute sufficiently many terms of the roots of the polynomial’s image into some completion;
2.) pull-back its roots as functions of L(D) using linear algebra over k.
We generalize this method to discretely valued fields.

Functional Programming

Functional Programming handout, BSc in Computer Science

Functional Programming Course, BSc in Computer Science, University Paris XII (2001-2003)

Découvrez Objective Caml

Published in GNU/Linux & Hurd Magazine France n° 43 (Oct. 2002)

Objective Caml (aka Ocaml) is a wonderful programming language: flexible, safe, efficient, equipped with many libraries (graphics, network,…). It is often seen as a curiosity used only by theoretical computer scientists. In this article, we briefly browse the genealogical tree of this language to understand its main principles and to familiarize the reader with functional programming; then we present the different working modes and some of the original aspects of this language. We finish with a small example that features the graphics and Unix libraries and with the evocation of other developping tools that are available for Ocaml.

Resources about software validation and security

History’s Worst Software Bugs, by Simson Garfinkel, 2005.

Mathematics of Secret

Mathématiques du Secret

Talk at Camille Sée High School, Paris (December 6th, 2002)

This talk is made for students who specialize in mathematics during their last year in high school. We present fundamental principles of cryptology an describe precisely the RSA public key cryptosystem, for ciphering and signature since it uses almost only elementary arithmetics (fast modular exponentiation, Euclid’s extended algorithm, Fermat-Euler’s Theorem…). We give elements of cryptanalysis of RSA and explain how to build fake smartcards. We conclude by mentioning some other cryptosystems.