Chiffrement hybride : la pratique réelle
Tu as maintenant deux types de cadenas. Le symétrique (une seule clé) est ultra-rapide et peut chiffrer un film entier — mais tu dois d'abord faire parvenir la clé à l'autre. L'asymétrique (deux clés) résout ça — mais peut à peine chiffrer une phrase et est lent. Lequel choisis-tu ? Aucun des deux. Tu les utilises ensemble, et c'est exactement ce que fait chaque système réel — du petit cadenas dans ton navigateur à ton appli de messagerie.
Les mots dont tu as besoin
- Hybride
- Une forme mixte. Ici : le chiffrement asymétrique pour le petit, le chiffrement symétrique rapide pour le grand.
- Clé de session
- Une clé symétrique que tu n'utilises qu'une seule fois : pour ce message-ci, ou pour cette visite-ci d'un site web. Ensuite, on la jette.
- TLS
- Le système derrière le petit cadenas et le
https://dans ta barre d'adresse. Il convient d'une clé de session avec une astuce asymétrique, puis chiffre tout symétriquement ensuite.
La recette
- Crée une clé symétrique fraîche et aléatoire. Uniquement pour ce message.
- Chiffre le message avec elle (AES). Rapide, et aussi grand que tu veux.
- Chiffre cette clé — mais 32 octets seulement — avec la clé publique du destinataire. Ça passe largement sous la limite RSA de 190 octets.
- Envoie les deux paquets ensemble : le grand (message) et le petit (clé).
Le destinataire fait l'inverse : d'abord ouvrir le petit paquet avec sa clé privée pour récupérer la clé de session, puis déchiffrer le grand paquet avec elle. Deux cadenas, une seule lettre.
Essaie toi-même
Tout se passe dans ton navigateur. Rien n'est envoyé au serveur.
- Clique sur Le destinataire crée une paire de clés. Elle met sa clé publique en ligne ; tu n'as besoin de rien de plus.
- Clique sur Chiffrer. Regarde les trois parties et leur taille.
- Colle le message dix fois de suite et chiffre à nouveau. La partie RSA reste exactement 256 octets. Seule la partie AES grandit.
- Clique sur Déchiffrer et suis les deux étapes que fait le destinataire.
Où tu utilises ça tous les jours
| Où | Comment |
|---|---|
| Le petit cadenas dans ton navigateur (TLS) | À l'ouverture d'un site, ton navigateur et le serveur conviennent d'une clé de session avec une astuce asymétrique — généralement avec une courbe elliptique. Tout ce qui va et vient ensuite est chiffré symétriquement. |
| WhatsApp, Signal | Le même principe, avec une couche en plus : la clé change à chaque message, de sorte qu'une seule clé qui fuit ne dévoile qu'un seul message. |
| Les soins de santé belges (eHealth) | Les médecins s'envoient des messages chiffrés avec exactement cette recette. Le message est d'abord signé puis scellé : le destinataire sait qui l'a envoyé et que personne d'autre n'a pu le lire au passage. |
Pourquoi une nouvelle clé par message
Suppose qu'une clé fuite un jour — un piratage, une erreur, un portable perdu. Si tu utilisais cette clé pour tout, alors tout est exposé, même ce que tu as envoyé il y a des années. Avec une clé fraîche par message, les dégâts se limitent à ce seul message. Ça s'appelle la forward secrecy (confidentialité persistante) : le passé reste fermé, même si le présent fuit.
Voici les maths : combien de clés te faut-il ?
Suppose que 30 élèves dans une classe veulent tous pouvoir s'écrire en secret, uniquement avec des clés symétriques. Chaque paire a besoin de sa propre clé. Combien de paires y a-t-il ? 30 × 29 / 2 = 435 clés. Avec 1000 personnes : 499 500. Avec le monde entier : impossible. Avec des clés asymétriques, chaque personne n'a besoin que d'une seule paire de clés, quel que soit le nombre de personnes. C'est de la combinatoire : les mathématiques qui comptent le nombre de manières possibles. Elle détermine si une idée fonctionne pour dix personnes ou pour huit milliards.