Années 2013/2014


Le cryptage RSA

De quoi s'agit-il ?

     Le cryptage RSA, du nom de ses 3 concepteurs, (Ronald Rivest, Adi Shamir, Leonard Adleman) a été créée en 1977. Il est principalement utilisé pour sécuriser des échanges d'informations et de données, comme des mots de passe, des coordonnées bancaires, etc.


Ronald Rivest, Adi Shamir, et Leonard Adleman.

     C'est un algorithme de chiffrement asymétrique: il existe deux clés: une publique servant à crypter les données, et une privée, gardée secrètement par le destinataire des messages, qui permet le décryptage. Ce système est différent du cryptage symétrique, qui utilise la même clé pour crypter et décrypter un message. (L'exemple le plus connu étant le code César.)

Création des clés

Clé publique (n,e):
La clé publique est un couple de deux valeurs, n et e, choisies de la façon suivante:
-n = p x q avec p,q deux nombres premiers
-e premier avec h = (p-1)(q-1)

Clé privée (n,d):
La clé privée est un couple de deux valeurs, n et d, choisies de la façon suivante:
-n = p x q avec p,q deux nombres premiers
-d doit satisfaire d x e ≡ 1 [h]

Chiffrement/Déchiffrement

Pour chiffrer:
Soit B le bloc de données à chiffrer, et C le même bloc une fois chiffré:
On utilise la clé publique (n,e), et C est donné par la relation:
C ≡ Be [n]
(Autrement dit, on élève B à la puissance e puis on prend le reste de la division euclidienne de Be par n, ce reste vaut C.)

Pour déchiffrer:
Soit C le bloc de données à déchiffrer, et B le même bloc une fois déchiffré:
On utilise la clé privée (n,d), et B est donné par la relation:
B ≡ Cd [n]
(Autrement dit, on élève C à la puissance d puis on prend le reste de la division euclidienne de Cd par n, ce reste est le bloc initial B.)

Exemples:

Données : p = 5, q = 7, n = pq = 35, h = (p-1)(q-1) = 24, e = 65, d = 17
Clé publique : n = 35, e = 65
Clé privée : n = 35, d = 17

Chiffrement:

Déchiffrement:

Avantages:

-Seule la clé publique (servant à crypter) est transmise, il n'y a pas de risque d'interception de la clé privée (servant à décrypter).

-Casser un code RSA nécessite de trouver p et q à partir de n, ce qui prendra énormément de temps, si les nombres p et q sont assez grands.

-Système relativement sûr contre les attaques utilisant la « force brute » (connaissant seulement n), qui consiste à tester toutes les possibilités existantes jusqu’à trouver p et q.

Inconvénients:

-Manipulation de très grands nombres pour garantir la sécurité ( taille recommandée de 2048 bits minimum pour les clés actuelles, ce qui équivaut à 22048, soit: 3,231700607131100730071487668867x10616.)

-RSA n’est pas infaillible, il existe plusieurs types d’attaque: Wiener ou Håstad pour des clés trop courtes, attaque par chronométrage, attaque de type "man in the middle", (où un pirate s’intercale entre l’expéditeur et le destinataire, en se faisant passer pour l'un aux yeux de l'autre et inversement). Il existe cependant des mesures préventives pour se protéger de ces attaques.