RSA
RSA
RSA
Chiffrement RSA
• Le chiffrement RSA (nommé par les initiales de ses trois inventeurs) est un
algorithme de cryptographie asymétrique, très utilisé dans le commerce
électronique, et plus généralement pour échanger des données
confidentielles sur Internet. Cet algorithme a été décrit en 1977 par Ronald
Rivest, Adi Shamir et Leonard Adleman. RSA a été breveté par le
Massachusetts Institute of Technology (MIT) en 1983 aux États-Unis. Le
brevet a expiré le 21 septembre 2000.
Principe
• Le chiffrement RSA est asymétrique : il utilise une paire de clés (des nombres entiers) composée d'une
clé publique pour chiffrer et d'une clé privée pour déchiffrer des données confidentielles. Les deux clés
sont créées par une personne, qui souhaite que lui soient envoyées des données confidentielles. Cette
personne rend la clé publique accessible. Cette clé est utilisée par ses correspondants pour chiffrer les
données qui lui sont envoyées. La clé privée est quant à elle réservée à son créateur, et lui permet de
déchiffrer ces données. La clé privée peut aussi être utilisée par cette personne pour signer une
donnée qu'elle envoie, la clé publique permettant à n'importe lequel de ses correspondants de vérifier
la signature.
• Une condition indispensable est qu'il soit « calculatoirement impossible » de déchiffrer à l'aide de la
seule clé publique, en particulier de reconstituer la clé privée à partir de la clé publique, c'est-à-dire
que les moyens de calcul disponibles et les méthodes connues au moment de l'échange (et le temps
que le secret doit être conservé) ne le permettent pas.
• Le chiffrement RSA est souvent utilisé pour communiquer une clé de chiffrement symétrique, qui
permet alors de poursuivre l'échange de façon confidentielle.
Création des clés
L'étape de création des clés est à la charge du récepteur. Elle n'intervient pas à chaque chiffrement car les clés
peuvent être réutilisées, la difficulté première est que l’emetteur soit bien certain que la clé publique qu'il
détient est celle du recepteur. Le renouvellement des clés n'intervient que si la clé privée est compromise, ou
par précaution au bout d'un certain temps (qui peut se compter en années).
• Choisir « p » et « q », deux nombres premiers distincts ;
• calculer leur produit « n = pq », appelé module de chiffrement ;
• calculer « φ(n) = (p - 1)(q -1) »;
• choisir un entier naturel « e » premier avec « φ(n) » et strictement inférieur à « φ(n) », appelé exposant de
chiffrement ;
• calculer l'entier naturel d, inverse de e modulo « φ(n) », et strictement inférieur à « φ(n) », appelé exposant de
déchiffrement ;
Comme e est premier avec « φ(n) », d'après le théorème de Bachet-Bézout il existe deux entiers d et k tels que
« ed + kφ(n) = 1 », c'est-à-dire que « ed ≡ 1 ( mod φ(n) ) » : « e » est bien inversible modulo « φ(n) ».
Le couple « (n,e) » est la clé publique du chiffrement, alors que le couple « (n,d) » est sa clé privée.
Chiffrement du message
C =Me mod(n)
Déchiffrement du message
M =Cd mod(n)
Exemple
Un exemple avec de petits nombres premiers (en pratique il faut de très grands nombres premiers) :
• Résultat:?
• Rq: Si le texte est simplement codé en entier puis chiffrer nous nous retrouverons dans le cas d’un
chiffrement par substitution monoalphabétique, qu’on pourra casser par simple analyse de fréquence, pour
éviter cela, nous allon regrouper les entier par bloc de taille supérieure et dont les valeurs ne doivent pas
dépassés “n”
• Mohamed ⇒ 13 42 35 28 40 32 31 ⇒ 013 423 528 403 231 (on ajoute des “0” au debut si le nombre de caractère
n'ai pas divisible par la taille du bloc)