Comprendre le chiffrement asymétrique

Temps de lecture estimé : 10 minutes

Dans l'article précédent sur la cryptographie symétrique, nous avons exploré les fonctions cryptographie symétrique. Ces outils sont puissants, résistants à des ordinateurs quantiques (si un jour ils existent), mais ils partagent une faiblesse commune : pour chiffrer et déchiffrer un message, les deux parties doivent posséder la même clé secrète. Et ça pose immédiatement une question épineuse : comment se transmettre cette clé sans risquer qu'elle soit interceptée ?


Ce problème a tenu en échec les cryptographes pendant des siècles. Jusqu'en 1976, quand une idée radicalement nouvelle a tout changé.

La révolution : et si on utilisait deux clés ?

L'idée centrale de la cryptographie asymétrique est aussi élégante que contre-intuitive : chaque personne possède non pas une, mais deux clés mathématiquement liées.


  1. Une clé publique, qu'on distribue librement à tout le monde — on peut la publier sur son site web, l'afficher dans sa signature email, la déposer sur un annuaire en ligne.
  2. Une clé privée, qu'on garde précieusement pour soi et qu'on ne communique à personne.

La propriété magique du système : ce qui est chiffré avec la clé publique ne peut être déchiffré qu'avec la clé privée correspondante. Et également, ce qui est signé avec la clé privée peut être vérifié par n'importe qui avec la clé publique.


Une analogie pour visualiser ça : imaginez que Bob fabrique des centaines de cadenas ouverts (la clé publique) et les distribue à tout le monde. Alice prend un cadenas, glisse son message dedans et le referme. Le cadenas est verrouillé — même Alice ne peut plus l'ouvrir. Seul Bob, qui possède la clé unique (clé privée) de tous ces cadenas, peut le déverrouiller et lire le message.


Ce mécanisme résout élégamment le problème de distribution : on n'échange plus jamais de clé secrète. On ne distribue que des cadenas ouverts.


L'algorithme le plus emblématique, RSA, repose sur un problème mathématique redoutable : multiplier deux grands nombres premiers est trivial, mais retrouver ces deux nombres à partir de leur produit est pratiquement impossible avec les ordinateurs actuels.

Application 1 — Envoyer un email confidentiel

Alice veut envoyer un email secret à Bob. Elle récupère sa clé publique en ligne, chiffre son message, et seul Bob peut le déchiffrer avec sa clé privée. C'est le principe de PGP/GPG, encore largement utilisé aujourd'hui, notamment dans des services d'emails privés comme ProtonMail ou MailFence, mais qui peut aussi facilement être intégré dans votre client mail Thunderbird.  


Un détail important : la crypto asymétrique est lente ! PGP utilise donc un modèle hybride en coulisses — le message est chiffré avec une clé AES (rapide), et seule cette clé AES est chiffrée avec RSA. Vous reconnaissez la crypto symétrique de l'article précédent : les deux approches se complètent parfaitement.

Application 2 — Signer pour prouver son identité

La signature numérique, c'est l'inverse du chiffrement : on signe avec sa clé privée, et n'importe qui peut vérifier avec la clé publique. Pour les mêmes raisons de lenteur du chiffrement asymétrique, PGP ne signe pas le message directement, mais son empreinte de hachage (voir articles sur les hash) — ce qui garantit trois choses à la fois : authenticité, intégrité, et non-répudiation. 


C'est aussi ce mécanisme qui sécurise les mises à jour logicielles : votre système vérifie la signature du paquet avant de l'installer.

La minute geek : signature RSA en pratique
  1. On calcule le hash du message (SHA-256) → empreinte de 256 bits
  2. On "chiffre" cette empreinte avec la clé privée → c'est la signature
  3. Le destinataire "déchiffre" la signature avec la clé publique → il retrouve l'empreinte
  4. Il calcule lui-même le hash du message reçu et compare. Si identiques → signature valide.


Les implémentations modernes utilisent des schémas de padding spécifiques (RSA-PSS pour la signature, OAEP pour le chiffrement) pour éviter certaines attaques.

Mais à qui appartient cette clé publique ?

Comment Alice sait-elle que la clé publique trouvée en ligne appartient vraiment à Bob, et pas à un imposteur ? Deux modèles coexistent :


  • La toile de confiance (Web of Trust) de PGP : les utilisateurs se signent mutuellement leurs clés. Donc on fait confiance aux clés qui ont été signées par nos contacts sûrs. Décentralisé, apprécié des communautés open source, mais demande un effort de gestion.
  • Les autorités de certification (PKI - Public Key Infrastructure), c'est le principe de la Chain of Trust : un tiers de confiance certifie les clés. C'est ce modèle qui sécurise tout le web via HTTPS — avec la puissance et les risques que centralisation implique.
La minute geek : Anatomie d'un certificat X.509

Un certificat (comme ceux utilisés dans HTTPS) contient : l'identité du propriétaire, sa clé publique, la période de validité, et la signature de l'autorité de certification (CA).


Quand votre navigateur visite un site, il vérifie cette signature en remontant une chaîne de confiance jusqu'à une CA racine pré-installée dans votre système. Si un maillon est compromis, toute la chaîne l'est aussi — c'est la principale faiblesse du modèle PKI.

Et demain ?

RSA et les algorithmes modernes de chiffrement asymétrique reposent sur des problèmes difficiles pour les ordinateurs classiques. Contrairement au chiffrement symétrique, un ordinateur quantique suffisamment puissant pourrait les briser. Cet ordinateur quantique suffisamment puissant n'existera peut-être que dans 20 ans, mais on se prépare déjà : le NIST a finalisé en 2024 ses premiers standards de cryptographie post-quantique pour anticiper cette menace.


Dans le prochain article, nous aborderons un autre problème clé : que se passe-t-il si votre clé privée est compromise ? Toutes vos communications passées sont-elles exposées ? C'est le défi de la Perfect Forward Secrecy.

Soyez le premier à commenter