
Dans l'univers de la cryptographie, on distingue deux types de chiffrement : le chiffrement
asymétrique et
symétrique. Les systèmes symétriques utilisent une seule clé pour chiffrer et déchiffrer (exemple :
Chiffre de César). On peut utiliser la métaphore du coffre fort : le coffre fort dispose d'une seule clé qui est la même pour ouvrir et fermer le coffre. En revanche, les systèmes asymétriques utilisent deux clés. Une pour chiffrer et une autre pour déchiffrer. On appelle
clé publique la clé servant à chiffrer et
clé privée la clé servant à déchiffrer.
La clé publique est visible par tout le monde dans une espèce d'annuaire qui associe à chaque personne sa clé publique.
La clé privée n'est visible et connue que par son propriétaire. Il ne faut en aucun cas que quelqu'un d'autre que le propriétaire entre en possession de celle-ci. Si une quelconque personne obtenait une clé privée qui n'est pas la sienne, elle serait alors en mesure de lire les messages chiffrés qui ne lui sont pas destinés.
On peut ainsi voir la clé publique comme une espèce de boite aux lettres (où n'importe qui peut mettre - chiffrer - des messages) et seul le propriétaire de la clé de la boite (clé privée) peut lire - déchiffrer - les messages)
Le système de chiffrement RSA est un système de chiffrement dit
asymétrique.
Pour la suite du tutoriel, on va prendre deux personnages : Alice et Bob.
(Ce sont les personnages que l'on utilise très souvent quand on parle de cryptographie, alors je ne vais pas changer
)
J'ai donc l'honneur de vous présenter nos chers compagnons, en chair et en os, Alice :

et Bob :
Alice et Bob possèdent tout deux une clé publique et une clé privée.
Comment Bob fait-il pour envoyer un message chiffré à Alice ?
Nous avons vu précédemment que pour chiffrer un message, on utilisait la clé publique. Bob va donc aller sur un annuaire et prendre la clé publique d'Alice. Une fois qu'il la possède, il chiffre le message qu'il veut envoyer à Alice, puis le lui envoie.
Comment Alice déchiffre-t-elle le message reçu ?
Alice vient de recevoir le message chiffré de Bob, grâce à sa clé privée (qu'elle seule possède), elle peut déchiffrer et lire le message que Bob a envoyé.
Où réside la force du système RSA ?
- Contrairement à de nombreux systèmes de chiffrement, tel que le chiffrement affine, qui sont des systèmes de chiffrement symétriques, dit à clé secrète, le système RSA ne nécessite pas de transfert de clé entre l'expéditeur et le destinataire. C'est un point de sécurité qui n'est nullement négligeable puisqu'ainsi personne d'autres que les concernés ne peuvent comprendre le message chiffré.
- Le système RSA, comme tous les systèmes asymétriques, est basé sur les fonctions à sens uniques. (C'est à dire qu'il est simple d'appliquer la fonction, mais extrêmement difficile de retrouver l'antécédent la fonction à partir de son image seulement). Pour inverser cette fonction, il faut un élément supplémentaire, une aide : la clé privée.
Mais, ce genre de système, ce n'est pas infaillible, si ?
Eh non, malheureusement, ce n'est pas infaillible...
Il existe plusieurs attaques contre le système RSA. Notamment les attaques de Wiener, Hastad, par chronométrage, ou encore l'attaque du milieu. Pour ma part, je vais détailler l'attaque du milieu, car c'est une attaque "type" des systèmes asymétriques
(Pour plus d'explications sur les autres types d'attaques cliquez ici)
Qu'est-ce que l'attaque du milieu ?
Afin d'expliquer le plus clairement possible ce qu'on appelle "attaque du milieu", je vais faire intervenir un troisième personnage, "l'espion" :
Le rôle de l'espion est de se faire passer pour Bob aux yeux d'Alice, et de se faire passer pour Alice aux yeux de Bob.
L'espion va se placer "au milieu" d'Alice et Bob.
Il va récupérer dans l'annuaire la clé publique d'Alice. Puis va s'arranger pour que Bob prenne sa clé publique au lieu de celle d'Alice (sans que Bob ne s'en aperçoive, évidement). Bob va donc chiffrer le message avec la clé publique de l'espion. Lors de l'envoi du message chiffré de Bob à Alice, l'espion va l'intercepter, et grâce à sa propre clé privée le déchiffrer et le lire. Une fois qu'il aura le message en clair, il peut éventuellement le re-chiffrer avec la clé publique d'Alice et lui envoyer le message afin de passer inaperçu...