Algorithme de Pohlig-Hellman

Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.
Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.

Certaines informations figurant dans cet article ou cette section devraient être mieux reliées aux sources mentionnées dans les sections « Bibliographie », « Sources » ou « Liens externes » ().

Vous pouvez améliorer la vérifiabilité en associant ces informations à des références à l'aide d'appels de notes.

L’algorithme de Pohlig-Hellman[1] est un algorithme pour résoudre le problème du logarithme discret[2] (PLD). Il divise un PLD en sous-problèmes (tous des PLD aussi) et utilise ensuite les résultats de ces sous-problèmes pour construire la solution.

Le problème du logarithme discret

Soit G = g {\displaystyle G=\langle g\rangle } un groupe cyclique engendré par g. Soient h un élément de G, et N l'ordre de G.

On cherche x tel que gx = h.

Si une telle solution existe, alors il en existe une dans {0, 1, … , N – 1}; on peut la trouver par exemple par une réduction modulaire.

En effet, par le Théorème de Lagrange, on a g N = 1 G {\displaystyle g^{N}=1_{G}} , ainsi si x x   ( mod   N ) {\displaystyle x\equiv x'\ ({\bmod {\ }}N)} avec x [ [ 0 ; N 1 ] ] {\displaystyle x'\in [\![0;N-1]\!]} , alors il existe un entier relatif k ∈ ℤ tel que x = x + k N {\displaystyle x=x'+k\cdot N} . Par conséquent : h = g x = g x + k N = g x ( g N ) k = g x {\displaystyle h=g^{x}=g^{x'+k\cdot N}=g^{x'}\cdot (g^{N})^{k}=g^{x'}} .

On peut donc considérer les solutions x Z / N Z . {\displaystyle x\in \mathbb {Z} /N\mathbb {Z} .}

L'algorithme

Algorithme de Pohlig-Hellman
Diagramme explicatif montrant les différentes étapes de l’algorithme. CRT signifie théorème des restes chinois (Chinese Remainder Theorem en anglais)

En utilisant la décomposition en produit de facteurs premiers, on peut écrire N = i = 1 n p i u i {\displaystyle N=\prod _{i=1}^{n}p_{i}^{u_{i}}} .

Pour chaque i allant de 1 à n on pose :

g i = g N / p i u i , h i = h N / p i u i {\displaystyle g_{i}=g^{N/p_{i}^{u_{i}}},\quad h_{i}=h^{N/p_{i}^{u_{i}}}} .

Soit x i {\displaystyle x_{i}} une solution modulo p i u i {\displaystyle p_{i}^{u_{i}}} pour le PLD g i x i = h i {\displaystyle g_{i}^{x_{i}}=h_{i}} (on peut par exemple utiliser un algorithme comme baby-step giant-step ou Pollard-rho pour cette étape).

On peut alors appliquer le théorème des restes chinois pour trouver une solution x Z / N Z {\displaystyle x\in \mathbb {Z} /N\mathbb {Z} } tel que pour chaque i de 1 à n on ait

x x i ( mod p i u i ) {\displaystyle x\equiv x_{i}{\pmod {p_{i}^{u_{i}}}}} .

Le théorème des restes chinois assure que ce x {\displaystyle x} est bien une solution valide pour le PLD gx = h.

Conséquences

Dans la cryptanalyse du PLD, cet algorithme permet d'affirmer que la difficulté du logarithme discret dans un groupe d'ordre N = i = 1 n p i u i {\displaystyle N=\prod _{i=1}^{n}p_{i}^{u_{i}}} avec p 1 < < p n {\displaystyle p_{1}<\ldots <p_{n}} se ramène à la difficulté du logarithme discret dans p n u n {\displaystyle p_{n}^{u_{n}}} .

Une conséquence de cette remarque est que les groupes d'ordre friable sont à éviter en cryptographie lorsque l’on souhaite utiliser l'hypothèse du logarithme discret comme hypothèse de complexité (ou toute autre hypothèse plus forte), puisqu’il suffirait de résoudre les différents logarithmes discrets dans des groupes de petites tailles, où il serait possible d'utiliser un algorithme comme l'algorithme rho de Pollard en temps raisonnable.

Notes et références

Annexes

Articles connexes

Bibliographie

  • [Menezes, van Oorschot et Vanstone 1996] (en) Alfred J. Menezes, Paul C. van Oorschot et Scott A. Vanstone, Handbook of Applied Cryptography, Boca Raton, CRC Press, , 816 p. (ISBN 978-0-8493-8523-0, BNF 37515673, lire en ligne), « Section 3.6.4 : Pohlig-Hellman algorithm ».
  • [Pohlig et Hellman 1978] (en) Stephen C. Pohlig et Martin E. Hellman, « An Improved Algorithm for Computing Logarithms over GF(p) and its Cryptographic Significance », IEEE Transactions on Information Theory, no 24,‎ , p. 106-110 (lire en ligne)
  • [Thomé 2003] Emmanuel Thomé, Algorithmes de calcul de logarithmes discrets dans les corps finis (thèse de doctorat en informatique), (lire en ligne), « Section 2.1 : L'algorithme de Pohlig-Hellman »
  • icône décorative Portail des mathématiques
  • icône décorative Portail de la cryptologie
  • icône décorative Portail de l'informatique théorique