Plus facile à lire avec un fond crème, une teinte, plus de contraste ou un texte plus grand ? Choisissez vos couleurs et votre texte, une fois pour toutes les pages.

Leçon gratuite

Chiffrement symétrique et clé secrète

Après cette leçon: Je peux expliquer comment une même clé chiffre et déchiffre un message.

Leçon de 55 min5 commandesLab Linux du quotidien : la trentaine de commandes que les ingénieurs tapent de tête

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

MotCe que ça veut direExemple
Chiffrementrendre un message illisible sans la clé
Cléla valeur secrète qui commande le chiffrement
Texte clairle message avant chiffrement
Texte chiffréle message après chiffrement
Chiffre de Césarun décalage des lettres, cassé exprès dans ce coursdécalage de 3
Attaque par force bruteessayer 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

Commande
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

Commande
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 clairePlacePlace + 3Lettre chiffrée
B25E
O1518R
N1417Q
X2427, 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

ÉtapeCe que vous faitesRésultat
1Compter les lettres du texte chiffréLa lettre L revient 9 fois, plus que toute autre
2Supposer que cette lettre est un EE est la 5e lettre, L la 12e
3Calculer l’écart12 moins 5 : le décalage est 7
4Décaler en sens inverse de 7Le 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 ?

Commande
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é

Commande
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é

Commande
printf 'Ym9uam91cg==' | base64 -d

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.

À propos de ce labo et de sa source: Lab Linux du quotidien : la trentaine de commandes que les ingénieurs tapent de tête

Vous enseignez à une classe ? Proposez ce module à vos étudiants avec un guide de l'enseignant, des devoirs corrigés et un laboratoire pour chaque étudiant.