Solution EX 5 : Attaque RSA par texte chiffré bien choisi
Contexte :
Alice possède une paire de clés RSA :
o Clé publique : ( e A , n A )
o Clé privée : ( d A ,n A ), où e A ⋅d A ≡1 ( mod ϕ ( n A ) ) .
e
Bob envoie un message chiffré c ≡ M ( mod n A ) à Alice.
A
Eve intercepte c et veut retrouver M sans connaître d A .
Attaque d'Eve :
1. Étape 1 : Eve choisit un entier aléatoire r tel que 0< r <n A et calcule :
eA
x ≡ r ( mod n A )
(C'est un chiffrement RSA de r avec la clé publique d'Alice.)
2. Étape 2 : Eve calcule :
y ≡ x ⋅ c ( mod n A )
En remplaçant x et c :
eA eA eA
y ≡r ⋅ M ≡ ( r ⋅ M ) ( mod n A )
Donc y est le chiffrement RSA de r ⋅ M .
3. Étape 3 : Eve demande à Alice de signer y . Alice interprète y comme
un message et calcule sa signature avec sa clé privée :
dA
u ≡ y ( mod n A )
eA
Or, comme y ≡ ( r ⋅ M ) ( mod n A ), on a :
e A dA
u ≡( (r ⋅ M ) ) ≡ r ⋅ M ( mod n A )
(Car e A ⋅d A ≡1 ( mod ϕ ( n A ) ) , donc y d "déchiffre" y .)
A
4. Étape 4 : Eve connaît u ≡r ⋅ M ( mod n A ) et r . Elle peut donc retrouver M en
calculant :
−1
M ≡ u ⋅r ( mod n A )
où r −1 est l'inverse modulaire de r modulo n A .
Exemple numérique (pour illustration) :
Supposons :
n A =143, e A =7, d A =103 (car 7 ×103 ≡ 1 ( mod 120 ), où ϕ ( 143 )=120 ).
Message original M =5 , chiffré par Bob :
c ≡57 ( mod 143 ) ≡ 47 ( mod 143 ) .
Attaque d'Eve :
1. Eve choisit r =2 (au hasard) et calcule :
7
x ≡ 2 ( mod 143 ) ≡ 128 ( mod 143 ) .
2. Elle calcule :
y ≡ x ⋅ c ≡128 × 47 ( mod 143 ) ≡ 6016 ( mod 143 ) ≡6016−42 ×143 ≡ 6016−6006 ≡ 10 ( mod 143 ) .
(Vérification : y ≡ ( 2 ×5 )7 ≡107 ( mod 143 ).)
3. Alice signe y=10 :
103
u ≡10 ( mod 143 ) .
En simplifiant (via l'exponentiation modulaire) :
ˊ
10103 ≡ 10 ( mod 143 ) (car 107 ≡10 ( mod 143 ) , et 103 ≡3 ( mod 6 ) dans cet exemple simplifi e ) .
4. Eve calcule r −1 ≡2−1 ( mod 143 ) ≡72 ( mod 143 ) (car 2 ×72=144 ≡1 ( mod 143 )).
−1
M ≡ u ⋅r ≡10 ×72 ( mod 143 ) ≡720 ( mod 143 ) ≡720−5 ×143 ≡720−715 ≡5 ( mod 143 ) .
Eve retrouve bien M =5 .
Moralité :
Cette attaque montre que demander la signature d'un message inconnu peut être dangereux
en RSA, surtout si l'attaquant peut manipuler ce message avant signature.
Conséquences pour la sécurité :
1. Ne jamais signer un message inconnu (même chiffré).
2. Toujours appliquer un hachage et un padding sécurisé (comme PKCS#1 v1.5 ou PSS)
avant de signer.
3. Utiliser des schémas de signature adaptés (comme RSA-PSS) qui empêchent ce type
d'attaques.
En résumé : La signature RSA naïve de données non contrôlées peut fuir de l'information. Il
faut des protocoles robustes pour éviter cela.