Universit´e Paris 7-Denis Diderot Alg`ebre et G´eom´etrie
Licence de math´ematiques et informatique Ann´ee 2004-05
M. Fouquet, L. Merel
Projet dans le cadre du cursus : math´ematiques et informatiques
L’algorithme de factorisation de Shanks
Il est utile, en cryptographie `a clef publique, de savoir d´ecomposer un nombre entier N en produit de facteurs premiers. L’une des m´ethodes les plus efficaces pour obtenir une telle factorisation, grˆace `a un ordinateur, est l’algorithme de Shanks. En effet le temps de calcul de cet algorithme est n´egligeable devant N1/4+ pour tout nombre r´eel >0. En voici une description sommaire.
Supposons l’entierN sans facteur carr´e et impair. PosonsD =−N siN ≡3 (mod 4) et D =−4N si N ≡ 1 (mod 4). Consid´erons le corps Q(√
D) = {a+b√
D/a, b ∈ Q}. C’est un corps quadratique imaginaire. On lui associe un groupe, ditgroupe des classes, qu’on noteraCD, dont la d´efinition est un peu compliqu´ee (voir [1], chapitre 5) et dont les ´el´ements sont appel´esclasses d’id´eaux. Ce groupe est ab´elien et fini. On notehD l’ordre deCD.
L’algorithme de Shanks repose sur l’assertion suivante, due `a Gauss, et que l’on admettra: Si N n’est pas premier,hD est un nombre pair.
D’apr`es le th´eor`eme de structure des groupes ab´eliens finis, dire que hD est pair revient `a dire que le groupeCDadmet un ´el´ement d’ordre 2. La connaissance d’un tel ´el´ement d’ordre 2 donne mˆeme un facteur deN.
Le travail `a effectuer consiste d’abord en la compr´ehension des objets math´ematiques mis en jeu par l’algorithme. Ensuite, il s’agit de mettre en œuvre l’algorithme. Cela se fait en deux ´etapes:
1) Le calcul dehD.
2) La recherche d’un ´el´ement d’ordre 2 dans CD.
En ce qui concerne l’´etape 1), il existe plusieurs m´ethodes simples, pour lesquelles on pourra consulter [1], chapitre 5.3. Ensuite on ´ecrithD comme le produit d’un nombre impairqet d’une puissance de 2.
Pour l’´etape 2), il faut d’abord savoir repr´esenter les ´el´ements deCD. Cela est expliqu´e dans [1], section 5.3.1: les classes d’id´eaux co¨ıncident avec les triplets (a, b, c) d’entiers, tels que pgcd(a, b, c) = 1,D=b2−4ac,
|b| ≤a≤c et, si|b|=aoua=c, on ab≥0. On appelle de tels tripletsformes r´eduites. ´Etant donn´e deux formes r´eduites, on peut composer les ´el´ements de CD associ´es et d´eterminer la forme r´eduite qui d´ecoule de cette composition. Cela permet de d´ecrire concr`etement la loi de groupe de CD. On choisit au hasard un ´el´ement deCD, que l’on compose qfois avec lui-mˆeme grˆace `a la loi de groupe de CD. L’´el´ement xde CD alors obtenu est d’ordre une puissance de 2, disons 2t. Si on n’est pas malchanceux, cette puissance de 2 n’est pas 1. En composant x avec lui-mˆeme 2t−1 fois, on obtient alors un ´el´ement d’ordre 2. La forme r´eduite associ´ee `a un ´el´ement d’ordre 2 deCD est diteforme ambige. En utilisant la forme ambige obtenue, on obtient la factorisation deN, voir [1], section 8.6.
Bibliographie
On utilisera comme r´ef´erence principale :
[1]A course in computational Number Theory, H. Cohen, Springer.
Pour les bases en th´eorie des nombres on pourra consulter : [2]Th´eorie Alg´ebrique des nombres, P. Samuel, Herman.
[3]Th´eorie des nombres, Borevitch, Chafarevitch, Gauthier-Villars.