1 Introduction
La cryptographie `a cl´e publique ou cryptographie asym´etrique est une m´ethode
de chiffrement bas´ee sur l’´echange d’une cl´e publique (diffus´ee) et d’une cl´e
priv´ee (secr`ete), l’une permettant le chiffrement, l’autre le d´echiffrement. Elle
repose sur l’existence des fonctions `a sens unique. C’est `a dire la donn´ee d’une
fonction fde chiffrement qui soit rapide `a calculer mais telle que son inverse
f−1soit difficile `a trouver. Il faut donc que ´etant donn´e une image par f, il soit
difficile de lui trouver un ant´ec´edent.
Un exemple d’une telle fonction est l’exponentiation. En effet, grˆace `a l’al-
gorithme d’exponentiation rapide, il est tr`es rapide de calculer de grandes puis-
sances enti`eres d’un nombre, mais le calcul de la fonction inverse que l’on appelle
logarithme discret n’est pas si ais´e.
Concr`etement, on consid`ere un groupe cyclique Gd’ordre n(dont la loi est
not´ee multiplicativement), un g´en´erateur gde Get un ´el´ement x∈G. Le loga-
rithme discret de xen base gest le plus petit entier `∈Ntel que g`=x.
Pour certains groupes (bien choisis), le calcul du logarithme discret s’av`ere
difficile. Il est notamment utilis´ee dans le protocole d’´echange de cl´es Diffie-
Hellman ou le chiffrement El Gamal.
Na¨ıvement, on pourrait ´enum´erer toutes les puissances de g(puisque Gest
cyclique) jusqu’`a ce qu’on tombe sur le bon r´esultat. Cependant cette m´ethode
n’est pas viable pour de grands groupes Gcar mˆeme si sur le plan m´emoire cette
m´ethode est ´economique, sa complexit´e temporelle est en O(n) op´erations dans
G. Or pour les applications cryptographiques, le logarithme discret cherch´e est
au moins de l’ordre de 160 bits, c’est `a dire x≥2160. Ce qui nous am`enerait `a
faire au moins 2160 −1 multiplications dans G.
Il existe des algorithmes pour calculer le logarithme discret plus efficaces que
la recherche exhaustive que nous allons ´etudier.
Dans toute la suite, on se donne comme hypoth`ese la donn´ee d’un groupe
cyclique Gd’ordre n, d’un g´en´erateur gde Gainsi que d’un ´el´ement x∈G. Le
but est de trouver `∈N, 0 ≤` < n tel que g`=x.
2