Le RSA a été inventé par Rivest, Shamir et Adleman. C'est un algorithme de cryptage à 2 clés. La première est publique et sert au cryptage du message et l'autre clés privé sert au décryptage du message. La deuxième clé est uniquement connue par le destinataire.
Explication mathématiques:
n = p.q avec p et q premier
Après on choisit e pour que e et (p - 1)(q - 1) soit premier entre eux.
On calcul d avec:
e.d = 1 (mod(p - 1)(q - 1)) ou d = e^(-1) mod((p - 1)(q - 1))
e et n represente la clé publique transmise a tous le monde.
d et n constitue la clé privée à conserver soigneusement.
Pour chiffre un message m, il faut le diviser en bloc numériques m(i) plus petit que n. Le message crypté est obtenu par c(i) = m(i)^e mod n.
Pour déchiffrer le message m, on fait m(i) = c(i)^d mod n.
Concours:
Pour vous montrez a quel point l'algorithme RSA des que l'on augmente la taille de la clé, essayer de faire ce petit concours
Exemple:
p = 47 et q = 71 alors n = p.q = 3337
La clé e ne doit avoir aucun facteur commun avec n : e = 79
On publie e et n, on garde d.
m = 6882326879666683 on le coupe en 6 blocs.
m1 = 688, m2 = 232, m3 = 687, m4 = 966, m5 = 668, m6 = 003
Le premier bloc crypter sera : 688^79 mod 3337 = 1570 = c1
En répétant l'opération : c = 1570 2756 2091 2276 2423 158
Pour décrypter, on fait : 1570^1019 mod 3337 = 688 = m1
|