Attaque de Wiener

De testwiki
Version datée du 20 novembre 2024 à 14:36 par imported>R-ONE FR (Principe de l'attaque)
(diff) ← Version précédente | Version actuelle (diff) | Version suivante → (diff)
Aller à la navigation Aller à la recherche

Modèle:À sourcer

L’attaque de Wiener, du nom du cryptologue Michael J. WienerModèle:Sfn, est une attaque cryptographique contre le chiffrement RSA, utilisable lorsque l'exposant privé d est petitModèle:Sfn.

Rappels sur le RSA

Le système RSA est un système de chiffrement à clé publique. Alice et Bob sont deux personnes voulant communiquer de façon sécurisée. Plus précisément, Alice veut envoyer à Bob un message qu'il sera le seul à pouvoir déchiffrer. Tout d'abord Bob choisit deux nombres premiers p et q, puis il calcule le module n = pq. Il calcule ensuite φ(n)=(p1)(q1)φ est la fonction indicatrice d'Euler. Bob choisit ensuite un entier e inférieur et premier à φ(n) qui sera appelé exposant de chiffrement, puis calcule son inverse modulo n, c'est-à-dire que ed1(modφ(n)).

Le théorème RSA stipule qu'on a alors MMed(modn). Bob envoie alors le couple (n,e) appelé clé publique et garde pour lui le couple (n,d) appelé clé privée. Pour chiffrer le message M, Alice fait l'opération CMe(modn) et elle transmet le message chiffré C à Bob. Pour déchiffrer, Bob calcule Cd(Me)dMedM(modn) et retrouve ainsi le message d'origine.

Si on connaît la factorisation de n, on peut facilement récupérer la clé secrète d en utilisant l'algorithme d'Euclide; et en connaissant la clé secrète d, on peut facilement retrouver la factorisation de n.

Conditions d'utilisation et énoncé du théorème

L'attaque de Wiener consiste à retrouver d à partir de la clé publique (n,e).

Le théorème de Wiener dit que lorsque les conditions d<13n14 (d trop petit) et q<p<2q (qui signifie que p et q ont le même nombre de chiffres en binaire, ce n'est pas une hyptohèse restrictive pour utiliser RSA) sont remplies, il est facile de retrouver d.

Ce résultat peut être amélioré en remarquant (dans la démonstration qui suit) que p<q<2p entraîne p+q1<(22)n (pour cela on multiplie simplement par q l'inégalité de droite). Cela permet d'imposer une condition moins restrictive : d<12214n1412.38n14.

Principe de l'attaque

Comme ed1(modφ(n)), il existe un entier k vérifiant ed=kφ(n)+1.

Alors on a |edkφ(n)|=1 et |eφ(n)kd|=1dφ(n).

L'attaquant va alors utiliser n comme approximation de φ(n) car φ(n)=(p1)(q1)=npq+1 et donc nφ(n)=p+q1<3n du fait que q<p<2q.

On obtient alors : |enkd|=|edknnd|=|edknkφ(n)+kφ(n)nd|=|1k(nφ(n))nd|=|k(nφ(n))1nd|=|k(p+q1)1nd|<|3knnd|

Or, ke<kφ(n)=de1<de donc k<d<13n14.

D'où : |enkd|<3d(n)×n143<1dn14<12d2.

Le nombre de fractions kd (avec d<n) qui approchent en de si près est borné par log2(n). En fait, tous les nombres rationnels qui satisfont cette inégalité sont des réduites du développement en fraction continue de en, d'après un résultat classique sur les fractions continues[1]Modèle:,[2]. L'attaquant n'a plus qu'à calculer les log(n) premières réduites du développement en fraction continue de en, l'un d'eux sera égal à kd (qui est une fraction irréductible car comme edkφ(n)=1, on a pgcd(k,d)=1).

Un algorithme en temps linéaire suffit alors pour retrouver la clé secrète d.

Notes et références

Modèle:… Modèle:Références

Annexes

Bibliographie

Liens externes

Modèle:Sources à lier

Articles connexes

Modèle:Portail