Académique Documents
Professionnel Documents
Culture Documents
46 (mod 17) = 12
Tout le monde pratique ce genre d’arithmétique sans même le réaliser, par exemple,
supposons qu’il est 22h et que vous devez régler votre réveil-matin de manière à
dormir 8 heures. Le calcul que vous faîtes intuitivement est le suivant:
22+8 (mod 12) = 6 car 30 divisé par 12 = 2 résiduel 6, donc vous mettrez votre
réveil à 6h00.
Ce qui est encore plus intéressant est d’ajouter un exposant x au premier terme, de
manière à obtenir l’expression 3^x (mod 17), si vous choisissez x de manière
aléatoire, la réponse aura une probabilité égale d’être n’importe quel chiffre
compris entre 0 et 17:
b = 9
e = 3
m = 23
Car 729 = 31 * 23 + 16
Si b, e et m ne sont pas négatifs et que b est plus petit que m, il n’existera qu’une
seule solution, ce qui est une propriété intéressante pour un cryptographe. De plus,
l’opération est à sens unique, car même si je vous donne la réponse C (16) et m
(23), vous ne serez pas capable de deviner b et e.
Cependant, si N est un nombre premier, Phi[N] sera égal à N-1 car en tant que
nombre premier, aucun chiffre ne peut diviser N en un nombre entier autre que 1.
La fonction du totient d’Euler. La ligne formée par les points en haut sont des
nombres premiers, le résultat étant n-1.
1 = M^Phi[N] (mod N)
Un exemple simplifié
La première étape consiste à ce qu’Alice construise sa boîte et la clé. Elle choisit
simplement deux nombres premiers P et Q. Pour mon exemple, j’utiliserai 11 et
17, mais il serait préférable d’utiliser des nombres beaucoup plus grands.
E*D (mod Z) = 1
3D (mod 160) = 1
En isolant D, on obtient sa valeur de 107. Donc D = 107
Alice peut rendre publiques les valeurs de E et N, mais doit absolument garder
P, Q, Z et D secrets. Les valeurs de E et N constituent sa boite ouverte.
De son côté, Bob veut envoyer un message secret M à Alice, soit le chiffre 15.
Donc M = 15
Bob calcule la valeur encryptée de son message C = M^E (mod N) en utilisant les
valeurs transmises par Alice.
Bob peut ensuite envoyer la valeur de C (9) à Alice de manière publique. Pour le
décrypter, Alice n’aura qu’à utiliser son exposant secret D:
Difficile, mais pas impossible. Il faut juste y dédier un puissant ordinateur qui
essayera toutes les combinaisons possibles, ce qui prendra des jours, voire des
années, lorsque les valeurs utilisées ont des centaines de chiffres. Tout ce qu’il faut
pour que le code soit indéchiffrable est de changer les valeurs de la clé dans un
intervalle de temps suffisamment court pour qu’aucun pirate n’ait le temps de les
calculer.
Exemples
1. p = 5, q = 11, et e = 3. Question 4. Combien valent N, ϕ(N), et d ?
Considérons alors le message M = 13 et les signatures S1 = 9 et S2 = 7.
Question 5. Laquelle de ces deux signatures correspond à M? Question 6.
Calculez (à la main) une signature valide pour le message M = 7.
Fastidieux, n’est-il pas ? Essayez de ruser pour ne pas avoir à calculer 26
produits modulo N.
3. p = 7 et q = 19
n = 7 * 19 = 133
m = (p-1) * (q-1) = 6 * 18 = 108
Choix de e premier avec m PGCD(2,108) = 2 ; PGCD(3,108) = 3 ;
PGCD(4,108) = 4 ; PGCD(5,108) = 1 → e = 5
Détermination de d tel que de mod m = 1 Autrement dit, il existe k tel
que d = (1+km) / e k = 0 → d = 1/5 ; k = 1 → d = 109/5 ; k = 2 → d = 217/5
; k = 3 → d = 325/5 = 65
● Clé publique : (n = 133 ; e = 5)
● Clé privée : (n = 133 ; d = 65)
n = 133 ; e = 5 ; d = 65