Cryptograph I Ers A
Cryptograph I Ers A
Cryptograph I Ers A
Exponentiation modulaire
On verra que le système de cryptage RSA nécessite d’effectuer une exponen-
tiation modulaire, c’est-à-dire de calculer an mod m, lorsque m et n sont très
grands. Heureusement, il existe un algorithme, appelé l’exponentiation bi-
naire, qui réduit considérablement le nombre des opérations.
Illustrons-le en calculant 1552 mod 23.
On commence par écrire 52 en base 2 comme on l’a fait au chapitre 1 :
52 2
0 26 2
0 13 2
1 6 2
0 3 2
1 1 2
1 0
2n 2
calculent facilement si l’on remarque que 15 2n+1
= 15 2n ·2
= 15 : les valeurs
successives de 152 s’obtiennent en calculant le carré de la précédente :
n
152 mod 23
n
n
0 15
1 152 ≡ 225 ≡ 18
2 182 ≡ 324 ≡ 2
3 22 ≡ 4
4 42 ≡ 16
5 162 ≡ 256 ≡ 3
5 4 2
Finalement, 1552 ≡ 152 · 152 · 152 ≡ 3 · 16 · 2 ≡ 96 ≡ 4 mod 23.
On peut aussi synthétiser cette démarche sous la forme d’un seul tableau :
contribution
reste r 152
n
x n mod 23 (si r = 1)
52 0 0 15
26 0 1 152 ≡ 18
13 1 2 182 ≡ 2 2
6 0 3 22 ≡ 4
3 1 4 42 ≡ 16 16
1 1 5 162 ≡ 3 3
L’autre problème est qu’il est impossible de savoir si l’expéditeur d’un message
est bien celui que l’on croit. Un intrus, s’étant emparé de la clé, pourrait
très bien fabriquer de faux messages, ou changer subrepticement une partie
d’un message intercepté. En l’absence d’une signature de l’expéditeur, ces
falsifications demeurent indétectables.
Si Alice veut envoyer un message à Bob, elle doit procéder comme suit :
1) Elle prend connaissance de la clé publique (n, e) de Bob.
2) Elle traduit chaque lettre du texte en clair en un équivalent numérique
adéquat (le code ascii par exemple). Elle partage les chiffres de ce mes-
sage en blocs de même taille.
3) Elle encrypte chaque bloc m séparément en calculant c ≡ me mod n.
4) Elle envoie chaque bloc c à Bob.
7.3 Alice a pris connaissance de la clé publique de Bob : (253, 3). Elle veut lui
envoyer le message salut.
1) Elle numérise son message selon le code suivant :
A B C D E F G H I J K L M
00 01 02 03 04 05 06 07 08 09 10 11 12
N O P Q R S T U V W X Y Z
13 14 15 16 17 18 19 20 21 22 23 24 25
Quelle est la transcription numérique de son message en clair ?
2) Si elle divise son message en blocs de 2 chiffres, quel message crypté
envoie-t-elle à Bob ?
Décryptage RSA
Théorème RSA Soient (n, e) une clé publique RSA et d la clé secrète RSA
correspondante. Alors (ae )d ≡ a mod n pour tout entier a.
7.6 Crypter le message m en utilisant le système RSA avec les données suivantes :
1) p = 3 q = 11 e = 7 m = 5
2) p = 7 q = 11 e = 17 m = 8
3) p = 17 q = 31 e = 7 m = 2
puis retrouver m à partir du message crypté.
1) Il
le décrypte au moyende sa clé privée dB et obtient ainsi :
dB eB (m) , dB eB (s) = (m, s).
2) Il vérifie la signature d’Alice à l’aide de la clé publique eA d’Alice en
calculant eA (s). Le message provient d’Alice si et seulement si eA (s) = m.
7.14 Pour assurer l’authenticité des messages contenant les notes, le secrétariat
demande au professeur de signer ses messages codés en RSA. On sait que la
clé publique du professeur est (15, 3) et celle du secrétariat (77, 7).
1) Quel est le message envoyé par le professeur pour indiquer la note 4 ?
2) Quelle note correspond au message crypté (41, 41) reçu par le secrétariat ?
Ce message a-t-il vraiment été envoyé par le professeur ?
3) Le secrétariat reçoit le message crypté (12, 27). Ce message a-t-il été en-
voyé par le professeur ?
Réponses
7.1 1) 16 2) 4 3) 69 4) 91
7.3 1) 18 00 11 20 19 2) 13 00 66 157 28
7.5 18 00 11 20 19 → salut
7.6 1) c = 14 2) c = 57 3) c = 128
7.12 Bob vérifie que 341076251 ≡ 11911 mod 638611 : le message est valide.
7.13 s = 156