Aller au contenu
Réussir mon BTS SIO

Tape une notion, une commande ou le nom d'une épreuve.

Par exemple

Chapitre 214 minIntermédiaire

Chiffrements historiques : César, Vigenère, Enigma

Par Josselyn C., prof de BTS SIO. Mis à jour le .

À la fin de ce chapitre, tu sauras

  • chiffrer et déchiffrer avec César et Vigenère ;
  • casser une substitution par l'analyse de fréquences ;
  • calculer un XOR et expliquer pourquoi le masque jetable est parfait mais impraticable ;
  • tirer de ces échecs les règles de la cryptographie moderne.

5 exercices corrigés

Les chiffrements historiques sont les méthodes utilisées avant l'informatique pour cacher un message : décaler les lettres (César), les remplacer selon une table (substitution), les décaler selon un mot-clé (Vigenère), ou les brouiller par une machine (Enigma). Tous ont été cassés. Ce chapitre les fait fonctionner à la main, puis montre comment on les a cassés : chaque faille a donné une règle que respectent les algorithmes actuels.

On distingue deux familles de procédés anciens :

  • la substitution remplace chaque lettre par une autre : le A devient D, le B devient E… ;
  • la transposition garde les lettres mais change leur ordre, comme une anagramme organisée : on écrit le message en lignes dans une grille et on le relit en colonnes.

Les algorithmes modernes, comme AES, combinent ces deux idées des milliers de fois, sur des bits plutôt que sur des lettres.

Le chiffrement de César

Jules César, selon l'historien Suétone, décalait chaque lettre de ses messages de trois rangs dans l'alphabet. Avec un décalage de 3, A devient D, B devient E, et la fin de l'alphabet repart au début : X devient A, Y devient B, Z devient C.

ClairABCDE…VWXYZ
Chiffré (décalage 3)DEFGH…YZABC

Le message « RENDEZVOUS A MIDI » devient « UHQGHCYRXV D PLGL ». Pour déchiffrer, on décale dans l'autre sens. En numérotant les lettres de A = 0 à Z = 25, chiffrer revient à calculer y = x + k modulo 26, et déchiffrer x = y − k modulo 26 : c'est de l'arithmétique modulaire.

Le ROT13, un César de décalage 13, a une particularité : l'appliquer deux fois redonne le message, puisque 13 + 13 = 26. Il sert encore à masquer la réponse d'une devinette sur un forum, jamais à protéger quoi que ce soit.

La faiblesse de César saute aux yeux : il n'y a que 25 clés utiles. Un attaquant les essaie toutes en quelques minutes à la main, en une microseconde avec un ordinateur. C'est la première leçon : l'espace des clés doit être immense. Le cours d'arithmétique pousse l'idée plus loin avec le chiffrement affine, qui tombe aux sujets d'E3 : y = ax + b modulo 26, avec 312 clés, pas davantage de sécurité.

La substitution et l'analyse de fréquences

Plutôt qu'un simple décalage, on peut remplacer chaque lettre par n'importe quelle autre, selon une table secrète : A → Q, B → M, C → X… Le nombre de tables possibles est 26! (factorielle 26), soit environ 4 × 10²⁶, l'équivalent d'une clé de 88 bits. Aucune force brute n'en viendrait à bout.

Pourtant, ce chiffrement se casse à la main en une heure, grâce à l'analyse de fréquences, décrite dès le IXᵉ siècle par le savant arabe Al-Kindi. Dans un texte français, les lettres n'apparaissent pas au hasard : le E est de loin la plus fréquente (environ 15 % des lettres), suivi de lettres comme S, A, I, T, N et R. Une substitution change les lettres mais pas leurs fréquences : la lettre la plus fréquente du chiffré correspond presque toujours au E. On repère ensuite les mots courts (LE, LA, DE, LES), les lettres doubles (SS, LL, EE), et le reste se déduit.

C'est la deuxième leçon : un bon chiffrement ne doit laisser passer aucune régularité du clair. Un chiffré moderne doit être indiscernable d'une suite aléatoire.

Le chiffre de Vigenère

Pour brouiller les fréquences, Blaise de Vigenère décrit en 1586 un chiffrement polyalphabétique : le décalage change à chaque lettre, selon un mot-clé répété. Avec la clé SIO, la première lettre est décalée de S (18), la deuxième de I (8), la troisième de O (14), la quatrième à nouveau de S, et ainsi de suite.

ClairRENDEZVOUSAMIDI
CléSIOSIOSIOSIOSIO
Calcul (modulo 26)17+184+813+143+184+825+1421+1814+820+1418+180+812+148+183+88+14
ChiffréJMBVMNNWIKIAALW

« RENDEZVOUSAMIDI » devient « JMBVMNNWIKIAALW ». Les deux E du clair donnent ici deux M, parce qu'ils tombent sur la même lettre de clé, mais le premier I donne A et le dernier W : une même lettre claire peut produire des lettres chiffrées différentes, et l'analyse de fréquences directe ne marche plus.

Le chiffre de Vigenère a longtemps été surnommé « le chiffre indéchiffrable ». Il a été cassé au XIXᵉ siècle, notamment par Charles Babbage puis par l'officier prussien Friedrich Kasiski, qui publie sa méthode en 1863. L'idée : la clé se répète. Si elle fait 3 lettres, les lettres de rang 1, 4, 7, 10… sont toutes chiffrées par un même César. On cherche d'abord la longueur de la clé (les séquences répétées dans le chiffré sont espacées d'un multiple de cette longueur), puis on fait une analyse de fréquences sur chaque sous-texte.

Troisième leçon : une clé courte qui se répète finit par trahir le message. Les algorithmes modernes ne réutilisent jamais un même flux de clé : c'est le rôle du vecteur d'initialisation ou du nonce.

Le masque jetable et le XOR

En 1917, l'ingénieur Gilbert Vernam imagine de combiner le message, écrit en binaire, avec une clé aussi longue que lui. L'opération utilisée est le OU exclusif (XOR, noté ⊕) : le résultat vaut 1 quand les deux bits sont différents, 0 quand ils sont égaux.

aba ⊕ b
000
011
101
110

Le XOR a une propriété magique pour le chiffrement : (m ⊕ k) ⊕ k = m. Appliquer deux fois la même clé redonne le message. La lettre H s'écrit 01001000 en ASCII ; avec la clé 10110101 :

text
  clair   H   01001000
⊕ clé         10110101
= chiffré     11111101
⊕ clé         10110101
= clair       01001000   (H)

En 1949, Claude Shannon démontre que ce masque jetable (one-time pad) offre une sécurité parfaite, à trois conditions : la clé est vraiment aléatoire, aussi longue que le message, et utilisée une seule fois. Un chiffré intercepté ne donne alors aucune information : toutes les lettres claires de même longueur sont également possibles.

Le masque jetable est donc incassable et pourtant presque jamais utilisé : il faut transmettre à l'avance une clé aussi grosse que tous les messages futurs, sur un canal sûr. Si l'on a un canal sûr pour la clé, autant l'utiliser pour le message. Et si l'on réutilise la clé, tout s'effondre : en combinant deux chiffrés, c₁ ⊕ c₂ = (m₁ ⊕ k) ⊕ (m₂ ⊕ k) = m₁ ⊕ m₂, la clé disparaît et il ne reste qu'un mélange des deux messages, qu'on démêle par analyse statistique. C'est ainsi que les services américains ont lu, dans le programme Venona, des messages soviétiques dont les masques avaient été réutilisés.

Le XOR reste partout dans la cryptographie actuelle : les chiffrements par flot comme ChaCha20, et AES en mode CTR ou GCM, produisent une suite pseudo-aléatoire qu'ils combinent au message par XOR. Les portes logiques correspondantes sont présentées dans le cours Logique et algèbre de Boole.

Enigma et la naissance de la cryptanalyse moderne

Pendant la Seconde Guerre mondiale, l'armée allemande chiffre ses communications avec Enigma, une machine électromécanique à rotors. Chaque frappe fait tourner les rotors : la substitution change à chaque lettre, sur une période de plus de 16 000 lettres, et un tableau de connexions ajoute encore des permutations. Le nombre de réglages possibles dépasse 10²⁰.

Les mathématiciens polonais, Marian Rejewski en tête, reconstituent le câblage de la machine dès 1932 et transmettent leurs travaux aux Alliés en 1939. À Bletchley Park, en Angleterre, l'équipe d'Alan Turing construit des machines électromécaniques, les « bombes », qui testent les réglages à grande vitesse. Elles exploitent les faiblesses de la machine (une lettre n'est jamais chiffrée en elle-même) et surtout des opérateurs : formules de politesse répétées, bulletins météo au format fixe, clés de message prévisibles.

Quatrième leçon : un très grand nombre de clés ne suffit pas. La sécurité tombe par une faiblesse de conception ou par les erreurs humaines dans l'usage du système. C'est toujours vrai : la plupart des incidents réels viennent d'une clé mal gardée, d'un mot de passe faible ou d'une mauvaise configuration, pas de la cryptanalyse d'AES.

Ce que ces chiffrements t'apprennent pour l'E7

Faille historiqueRègle actuelleOù tu la retrouves
César : 25 clés seulementUne clé symétrique fait au moins 128 bitsChapitre 3
Substitution : les fréquences transparaissentLe chiffré doit être indiscernable de l'aléatoire ; pas de mode ECBChapitre 3
Vigenère : la clé se répèteUn vecteur d'initialisation ou un nonce unique par messageChapitre 3
Masque jetable : la clé est impossible à distribuerÉchanger les clés par cryptographie asymétriqueChapitre 4
Masque réutilisé : c₁ ⊕ c₂ = m₁ ⊕ m₂Ne jamais réutiliser un nonce sous la même cléChapitre 3
Enigma : erreurs des opérateursProcédures, gestion des clés, formation des utilisateursChapitre 10
Tous : algorithmes gardés secrets puis cassésPrincipe de Kerckhoffs : algorithme public, clé secrèteChapitre 1

Exercices

Exercice 1 sur 5 César et ROT13 Réussi À revoir

  1. Chiffre « ATTAQUE A L AUBE » avec un décalage de 3.
  2. Chiffre « BONJOUR » en ROT13, puis applique ROT13 au résultat. Que constates-tu, et pourquoi ?
  3. Combien de clés un attaquant doit-il essayer, au maximum, pour casser un César ?
Voir la réponseMasquer la réponse de l'exercice 1
  1. « DWWDTXH D O DXEH ».
  2. ROT13 donne « OBAWBHE », et ROT13 appliqué à « OBAWBHE » redonne « BONJOUR » : décaler deux fois de 13, c'est décaler de 26, donc revenir au point de départ.
  3. 25 clés utiles (le décalage 0 laisse le message en clair). La force brute est immédiate.

Tu avais trouvé ?

Exercice 2 sur 5 Analyse de fréquences Réussi À revoir

Ce message a été chiffré par un César :

SLZ ZHBCLNHYKLZ KL SH ZLTHPUL ZVUA LUYLNPZAYLLZ ZBY SL ZLYCLBY KL ZLJVBYZ

  1. Compte les deux lettres les plus fréquentes.
  2. Déduis-en le décalage, puis déchiffre.
Voir la réponseMasquer la réponse de l'exercice 2
  1. L apparaît 15 fois et Z 11 fois.
  2. La lettre la plus fréquente en français est E. Si L (rang 11) correspond à E (rang 4), le décalage est 11 − 4 = 7. Vérification : Z (25) − 7 = 18, soit S, deuxième lettre la plus fréquente du texte clair. Le message est « LES SAUVEGARDES DE LA SEMAINE SONT ENREGISTREES SUR LE SERVEUR DE SECOURS ».

Tu avais trouvé ?

Exercice 3 sur 5 Vigenère à la main Réussi À revoir

  1. Chiffre « CHIFFREMENT » avec la clé CLE.
  2. Déchiffre « JMBVMNNWIKIAALW » avec la clé SIO.
  3. Pourquoi l'analyse de fréquences directe échoue-t-elle sur ce chiffrement, et comment Kasiski la contourne-t-il ?
Voir la réponseMasquer la réponse de l'exercice 3
  1. On ajoute les rangs modulo 26, lettre par lettre, avec la clé répétée C L E C L E C L E C L (2, 11, 4…) : C+C = E, H+L = S, I+E = M, F+C = H, F+L = Q, R+E = V, E+C = G, M+L = X, E+E = I, N+C = P, T+L = E (19 + 11 = 30, et 30 − 26 = 4). Résultat : ESMHQVGXIPE.
  2. On soustrait la clé : J − S = 9 − 18 = −9 ≡ 17, soit R, et ainsi de suite : RENDEZVOUSAMIDI, soit « rendez-vous à midi ».
  3. Une même lettre claire est chiffrée différemment selon la lettre de clé qui lui correspond : les fréquences sont aplaties. Kasiski cherche la longueur de la clé grâce aux répétitions du chiffré, découpe le texte en sous-textes chiffrés chacun par un seul décalage, puis fait une analyse de fréquences sur chacun.

Tu avais trouvé ?

Exercice 4 sur 5 Le danger de réutiliser une clé Réussi À revoir

Deux lettres O (01001111) et K (01001011) sont chiffrées par XOR avec la même clé 01011010.

  1. Calcule les deux chiffrés.
  2. Un attaquant intercepte les deux chiffrés et les combine par XOR. Qu'obtient-il ?
  3. Quelle règle de la cryptographie moderne cet exercice illustre-t-il ?
Voir la réponseMasquer la réponse de l'exercice 4
  1. O ⊕ clé = 01001111 ⊕ 01011010 = 00010101 ; K ⊕ clé = 01001011 ⊕ 01011010 = 00010001.
  2. 00010101 ⊕ 00010001 = 00000100, exactement O ⊕ K = 01001111 ⊕ 01001011. La clé a disparu : l'attaquant obtient une relation entre les deux messages clairs, qu'il exploite sur un texte long par analyse statistique.
  3. Une clé de flux ne sert qu'une fois : en AES-GCM ou ChaCha20, un nonce ne doit jamais être réutilisé sous la même clé, sinon on retombe dans le masque jetable réutilisé.

Tu avais trouvé ?

Exercice 5 sur 5 Comparer les espaces de clés Réussi À revoir

Classe du plus faible au plus fort, en nombre de clés possibles : un César, une substitution quelconque, un code PIN à 4 chiffres, une clé AES-128. Le classement par nombre de clés suffit-il à juger la sécurité ?

Voir la réponseMasquer la réponse de l'exercice 5

César : 25 clés ; code PIN : 10 000 = 10⁴ ; substitution : 26! ≈ 4 × 10²⁶ ; AES-128 : 2¹²⁸ ≈ 3,4 × 10³⁸.

Le classement ne suffit pas : la substitution a un espace de clés gigantesque mais se casse en une heure par analyse de fréquences, sans essayer les clés. Le nombre de clés est une condition nécessaire, pas suffisante : il faut aussi qu'aucune attaque ne soit plus rapide que la force brute. C'est précisément ce que des décennies d'analyse publique ont établi pour AES.

Tu avais trouvé ?

Chapitre terminé !

Fais les 5 exercices avant de passer à la suite : c'est en t'entraînant que tout se fixe.

chapitres
–
de série
–
du cours
–
Chapitre suivant : Chiffrement symétrique : AES, modes et clésRevoir le sommaire du cours