Un message que seul le destinataire lit
Le chiffrement symétrique protège un message avec une seule clé secrète, la même pour chiffrer et pour déchiffrer. Il garde vos données illisibles pour qui n’a pas la clé.
Deux collègues partagent un fichier de salaires. S’ils connaissent la même clé, ils le lisent. Quelqu’un qui intercepte le fichier ne voit que du bruit.
À la fin de cette leçon
Remarque
Je peux expliquer comment une même clé chiffre et déchiffre un message.
Mots-clés
| Mot | Ce que ça veut dire | Exemple |
|---|---|---|
| Chiffrement | rendre un message illisible sans la clé | |
| Clé | la valeur secrète qui commande le chiffrement | |
| Texte clair | le message avant chiffrement | |
| Texte chiffré | le message après chiffrement | |
| Chiffre de César | un décalage des lettres, cassé exprès dans ce cours | décalage de 3 |
| Attaque par force brute | essayer toutes les clés une par une |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Le chiffre de César décale les lettres
Le plus vieux chiffrement connu décale chaque lettre d’un nombre fixe de places dans l’alphabet. Avec un décalage de 3, B devient E et O devient R.
Le décalage est la clé. Pour déchiffrer, on décale dans l’autre sens. Ce chiffre est utile pour comprendre, et jamais pour protéger un secret.
Chiffrer BONJOUR avec un décalage de 3
echo 'BONJOUR' | tr 'A-Z' 'D-ZA-C'Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Déchiffrer le résultat
echo 'ERQMRXU' | tr 'D-ZA-C' 'A-Z'Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Exemple travaillé : décalage de 3
| Lettre claire | Place | Place + 3 | Lettre chiffrée |
|---|---|---|---|
| B | 2 | 5 | E |
| O | 15 | 18 | R |
| N | 14 | 17 | Q |
| X | 24 | 27, donc 1 (on repart de A) | A |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Un chiffre à 25 clés se casse
Le chiffre de César n’a que 25 clés possibles. Un ordinateur les essaie toutes en un instant : c’est une attaque par force brute.
Il y a plus simple encore. Dans un texte français, la lettre E revient le plus souvent. La lettre la plus fréquente du texte chiffré est donc probablement un E décalé, et le décalage s’en déduit.
Exemple travaillé : deviner le décalage
| Étape | Ce que vous faites | Résultat |
|---|---|---|
| 1 | Compter les lettres du texte chiffré | La lettre L revient 9 fois, plus que toute autre |
| 2 | Supposer que cette lettre est un E | E est la 5e lettre, L la 12e |
| 3 | Calculer l’écart | 12 moins 5 : le décalage est 7 |
| 4 | Décaler en sens inverse de 7 | Le texte clair réapparaît |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Erreur fréquente
Attention
Beaucoup de gens pensent qu’un chiffrement bien compliqué, inventé par eux, est plus sûr qu’un standard. C’est l’inverse. Un algorithme tient grâce à des années d’attaques publiques. Utilisez une bibliothèque éprouvée, et n’écrivez jamais votre propre chiffre.
La taille de la clé compte
Les chiffrements actuels, comme AES, découpent les données en blocs et les mélangent de nombreuses fois avec la clé. On les appelle des chiffrements par blocs. Leur algorithme est public : seule la clé reste secrète.
Chaque bit ajouté à la clé double le nombre de clés possibles. Une clé de 128 bits donne 2 puissance 128 clés.
Combien de clés pour 128 bits ?
python3 -c "print(2 ** 128)"Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Le XOR : appliquer deux fois la même clé
python3 -c "print(65 ^ 42, 107 ^ 42)"Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Le même calcul chiffre et déchiffre
Le ou exclusif, noté XOR, combine deux nombres bit à bit. Appliqué deux fois avec la même clé, il redonne le nombre de départ : 65 donne 107, puis 107 redonne 65.
C’est l’idée du chiffrement symétrique : une seule clé, partagée à l’avance. Son défaut est la partager sans que personne ne l’intercepte.
Base64 n’est pas un chiffrement
Attention
Beaucoup de gens pensent que le texte en base64 est protégé. Base64 change seulement la forme du texte, sans aucune clé. N’importe qui le décode en une commande.
Décoder du base64 sans aucune clé
printf 'Ym9uam91cg==' | base64 -dAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.