Leçon
La théorie — Diffie–Hellman : un secret convenu en public
Lors d’un échange de clés Diffie–Hellman, deux correspondants s’accordent sur un nombre secret à travers un canal ouvert à tous les regards. Ils choisissent publiquement un nombre premier p ainsi qu’une base g. Chacun tire un exposant privé, diffuse la puissance correspondante de g mod p, puis élève le nombre reçu à son propre exposant secret : (gᵇ)ᵃ = (gᵃ)ᵇ = gᵃᵇ mod p. Casser ce protocole revient à résoudre un logarithme discret : connaissant A = gᵃ mod p, trouver un entier x vérifiant gˣ ≡ A (mod p). Diffie et Hellman indiquaient dès 1976 qu’ils ne concevaient aucun moyen d’extraire le secret partagé des valeurs publiques sans résoudre ce problème, tout en admettant n’avoir aucune preuve de cette impossibilité. L’ordre de g est le plus petit entier n ≥ 1 tel que gⁿ ≡ 1 (mod p) ; g est dit générateur lorsque son ordre atteint p − 1.
Ce que signifie chaque symbole
p- le module premier, public
g- la base, publique
a, b- les exposants secrets d’Alice et de Bob
A, B- leurs valeurs publiques, gᵃ mod p et gᵇ mod p
x- l’exposant déterminé par Eve ; tout x vérifiant gˣ ≡ A convient, si bien qu’elle obtient a modulo l’ordre de g
ord(g)- l’ordre de g : le nombre de valeurs distinctes que peut prendre le secret partagé
- Suppose
- p est un nombre premier compris entre 5 et 1 999, g une base quelconque entre 2 et p − 2, tandis que a et b parcourent l’intervalle de 1 à p − 2. Chaque essai correspond à la comparaison d’une puissance calculée avec la cible visée, et les deux totaux comptabilisent l’essai fructueux. Chaque chiffre de Pohlig–Hellman s’obtient en testant successivement les candidats dans l’ordre, selon la méthode décrite par Pohlig et Hellman pour les petits facteurs ; pour un grand facteur, ils proposent également une recherche combinant mémoire et rapidité, que cette page n’exécute pas. L’exemple original de Diffie et Hellman reposait sur un premier d’environ 200 bits, pour lequel ils estimaient le calcul d’un logarithme à quelque 2¹⁰⁰ opérations.
Problème entièrement résolu
-
Retrouver le secret d’Alice pour p = 101 5 étapes
Alice et Bob choisissent p = 101 et g = 2. Eve intercepte A = 12 et B = 53. Déterminez par l’algorithme de Pohlig–Hellman un entier x tel que 2ˣ ≡ 12 (mod 101), dénombrez les essais, puis déduisez-en le secret partagé. Indiquez ensuite ce que coûterait la même attaque pour p = 65 537.
Ouvrez ce problème dans l'outil
-
100 = 2² · 5², de sorte que x est entièrement déterminé par x mod 4 et x mod 25. L’ordre de 2 divise 100 ; or 2⁵⁰ = 100 et 2²⁰ = 95 sont tous deux distincts de 1, ce qui impose un ordre de 100 : 2 est donc générateur.
-
Modulo 4, γ = 2⁵⁰ = 100, soit −1. Pour le premier chiffre binaire : 12⁵⁰ = 100, d’où d = 1 dès le second essai. On élimine ce terme : 12 · 2⁻¹ = 12 · 51 = 612 ≡ 6, puis 6²⁵ = 100, ce qui donne à nouveau 1 pour chiffre suivant, là encore au second essai. Ainsi, x ≡ 1 + 1 · 2 = 3 (mod 4).
-
Modulo 25, γ = 2²⁰ = 95, dont les puissances successives valent 1, 95, 36, 87, 84. Premier chiffre en base 5 : 12²⁰ = 95, d’où d = 1 au second essai. On élimine ce terme : 6⁴ = 1 296 ≡ 84, ce qui livre 4 pour chiffre suivant, au cinquième essai. D’où x ≡ 1 + 4 · 5 = 21 (mod 25).
-
Les entiers inférieurs à 100 congrus à 21 mod 25 sont 21, 46, 71 et 96 ; seul 71 est congru à 3 mod 4. On trouve donc x = 71 en 2 + 2 + 2 + 5 = 11 essais, alors que le pire des cas en prévoit 2·2 + 2·5 = 14. La force brute aurait testé de 0 à 71, soit 72 essais. Le secret partagé vaut 53⁷¹ mod 101 = 35.
-
65 537 = 2¹⁶ + 1 est premier, et p − 1 = 2¹⁶. Pohlig–Hellman résout ses seize chiffres binaires un à un, à raison de deux candidats chacun : au pire 32 essais, là où la force brute pourrait en nécessiter 65 536. Pohlig et Hellman ont résolu ce cas précis, p = 2ⁿ + 1, avant d’aborder le cadre général.
Réponse
x = 71, au terme de 11 essais (au pire 14), et le secret partagé est 35. Pour p = 65 537, l’attaque requiert au plus 32 essais. La page s’arrêtant à 1 999, cette dernière valeur relève du calcul théorique et non d’une simulation.
-
Parcours
Comment casser les chiffres
Références (2)
- The exchange itself, the definition's sentence that its authors could see no way round a logarithm and had no proof, and the 200-bit example in `assumes`: Whitfield Diffie and Martin E. Hellman, "New Directions in Cryptography," IEEE Transactions on Information Theory 22(6), 644–654, November 1976. §III, p. 649.
- The second insight's quotation, the digit-by-digit search the page runs, and the worked problem's p = 2ⁿ + 1: Stephen C. Pohlig and Martin E. Hellman, "An Improved Algorithm for Computing Logarithms over GF(p) and Its Cryptographic Significance," IEEE Transactions on Information Theory 24(1), 106–110, January 1978. §III–IV, pp. 107–110.