Exécution du chiffrement par clé : chiffrement basé sur un livre avec substitution polyalphabétique
Guide complet du chiffrement à clé en cours d'exécution, un chiffrement de substitution polyalphabétique utilisant des passages de livre comme clés. Apprenez le chiffrement, le déchiffrement, les attaques par traînage de berceau et comment cela se compare aux chiffrements de Vigenère et aux livres.
Présentation
Le chiffrement à clé en cours se situe à un carrefour fascinant de l’histoire de la cryptographie. Il reprend le mécanisme de chiffrement familier de Vigenère – tabula recta, addition modulaire, substitution polyalphabétique – et résout la faiblesse la plus flagrante de son prédécesseur : la clé répétitive. En remplaçant un mot-clé court par un passage entier de texte d'un livre, le chiffrement à clé courante élimine les modèles périodiques qui rendent les chiffrements Vigenère standards faciles à déchiffrer.
Pourtant, le chiffrement clé en cours n’est pas incassable. Son génie et sa faiblesse proviennent tous deux de la même source : l’utilisation du langage naturel comme matériau clé. Un passage de livre est suffisamment long pour éviter les répétitions clés, mais il n’est pas aléatoire. Les propriétés statistiques de l'anglais (fréquences des lettres, digraphes communs, modèles de mots prévisibles) persistent dans le texte clé et divulguent des informations sur le texte brut. Cela fait du chiffre à clé en cours d’exécution une étude fascinante sur la façon dont la sécurité se dégrade lorsque le caractère aléatoire est remplacé par la structure.
Ce guide couvre tout, des mécanismes de chiffrement de base aux attaques avancées par glissement de lit. Que vous soyez étudiant en cryptographie, passionné d'énigmes ou historien du renseignement de la guerre froide, vous trouverez ici un traitement approfondi de l'un des chiffres classiques les plus élégants.
Essayez notre encodeur et décodeur de chiffrement à clé d'exécution gratuit pour suivre les exemples de ce guide.
Quel est le chiffrement de la clé en cours d'exécution
Le chiffrement à clé en cours d'exécution est un chiffre de substitution polyalphabétiquequi utilise un long texte (généralement un passage d'un livre) comme clé de chiffrement. Chaque lettre du texte brut est combinée avec la lettre correspondante du texte clé à l'aide de latabula recta (une table 26x26 d'alphabets décalés par César) pour produire le texte chiffré.
La propriété déterminante du chiffrement à clé en cours d’exécution est que la clé est au moins aussi longue que le message. Contrairement au chiffre de Vigenère, où un mot-clé court comme "SECRET" se répète cycliquement, la clé en cours d'exécution ne se répète jamais dans un seul message. Cela élimine la structure périodique qui rend Vigenère vulnérable à l'examen de Kasiski et aux tests d'indice de coïncidence.
Le terme « touche courante » fait référence au fait que la touche « s'exécute » le long du texte brut, un caractère à la fois, tiré d'un texte source continu. Historiquement, les correspondants se mettaient d'accord sur un livre, une édition, un numéro de page et une ligne de départ spécifiques. Le livre servait de référentiel de clés partagé auquel les deux parties pouvaient accéder indépendamment – aucune transmission de clé n'était requise.
Le chiffrement à clé en cours d'exécution est parfois confondu avec le « chiffrement en livre », mais il s'agit de systèmes fondamentalement différents. Le chiffre à clé en cours d'exécution est un chiffre de substitution qui transforme mathématiquement chaque lettre. Le chiffrement de livre est un système de code qui utilise la position des mots (références de mots de ligne de page) pour identifier directement les mots en texte brut. Nous explorons cette distinction en détail plus loin dans cet article.
Fondation mathématique
La formule de chiffrement est identique à Vigenère :
Cryptage :C[i] = (P[i] + K[i]) mod 26Décryptage : P[i] = (C[i] - K[i] + 26) mod 26
Où :
- P[i] est la lettre en clair à la position i, mappée à 0-25 (A=0, B=1, ..., Z=25)
- K[i] est la lettre clé en position i
- C[i] est la lettre du texte chiffré en position i
Le "+26" dans la formule de décryptage garantit que le résultat n'est jamais négatif avant l'opération modulo.
Tutoriel de chiffrement étape par étape
Chiffrons le message "SEND MORE TROOPS" en utilisant un passage de The C Programming Language de Brian Kernighan et Dennis Ritchie. Nous utiliserons l’ouverture du chapitre 1 :
Source clé : "A TUTORIAL INTRODUCTION TO THE C PROGRAMMING LANGUAGE"
Après avoir supprimé les espaces et converti en majuscules, la clé devient : ATUTORIALINTRODUCTIONTOTHECPROGRAMMINGLANGUAGE
Texte brut (lettres uniquement) :SENDMORETROOPSTexte clé (14 premières lettres) : ATUTORIALINTRO
Maintenant, nous calculons chaque lettre du texte chiffré :
| Pos | Texte brut | Valeur | Clé | Valeur | Somme | module 26 | Texte chiffré |
|---|---|---|---|---|---|---|---|
| 1 | S | 18 | Un | 0 | 18 | 18 | S |
| 2 | E | 4 | T | 19 | 23 | 23 | X |
| 3 | N | 13 | U | 20 | 33 | 7 | H |
| 4 | D | 3 | T | 19 | 22 | 22 | W |
| 5 | M | 12 | Ô | 14 | 26 | 0 | Un |
| 6 | Ô | 14 | R | 17 | 31 | 5 | F |
| 7 | R | 17 | Je | 8 | 25 | 25 | Z |
| 8 | E | 4 | Un | 0 | 4 | 4 | E |
| 9 | T | 19 | L | 11 | 30 | 4 | E |
| 10 | R | 17 | Je | 8 | 25 | 25 | Z |
| 11 | Ô | 14 | N | 13 | 27 | 1 | B |
| 12 | Ô | 14 | T | 19 | 33 | 7 | H |
| 13 | P | 15 | R | 17 | 32 | 6 | G |
| 14 | S | 18 | Ô | 14 | 32 | 6 | G |
Résultat :SENDMORETROOPS chiffre enSXHWAFZEEZBHGG
Le message chiffré semble aléatoire et ne présente aucune relation évidente avec le texte brut ou la clé. Dans les blocs traditionnels de cinq lettres, il serait transmis comme : SXHWA FZEEZ BHGG.
Notez quelques détails importants :
- La première lettre S chiffre en S car la lettre clé A a la valeur 0 (pas de décalage). Il s'agit d'une faiblesse connue : un A dans la clé laisse le texte clair inchangé.
- Les lettres E et Z apparaissent plusieurs fois dans le texte chiffré, mais elles représentent à chaque fois des lettres de texte en clair différentes – une caractéristique des chiffrements polyalphabétiques.
Processus de décryptage
Pour déchiffrer, le destinataire a besoin exactement du même texte de clé. Ils appliquent la formule de décryptage : P[i] = (C[i] - K[i] + 26) mod 26.
Texte chiffré :SXHWAFZEEZBHGGTexte clé : ATUTORIALINTRO
| Pos | Texte chiffré | Valeur | Clé | Valeur | C-K + 26 | module 26 | Texte brut |
|---|---|---|---|---|---|---|---|
| 1 | S | 18 | Un | 0 | 44 | 18 | S |
| 2 | X | 23 | T | 19 | 30 | 4 | E |
| 3 | H | 7 | U | 20 | 13 | 13 | N |
| 4 | W | 22 | T | 19 | 29 | 3 | D |
| 5 | Un | 0 | Ô | 14 | 12 | 12 | M |
| 6 | F | 5 | R | 17 | 14 | 14 | Ô |
| 7 | Z | 25 | Je | 8 | 43 | 17 | R |
| 8 | E | 4 | Un | 0 | 30 | 4 | E |
| 9 | E | 4 | L | 11 | 19 | 19 | T |
| 10 | Z | 25 | Je | 8 | 43 | 17 | R |
| 11 | B | 1 | N | 13 | 14 | 14 | Ô |
| 12 | H | 7 | T | 19 | 14 | 14 | Ô |
| 13 | G | 6 | R | 17 | 15 | 15 | P |
| 14 | G | 6 | Ô | 14 | 18 | 18 | S |
Texte brut récupéré : SENDMORETROOPS
Les deux parties doivent se mettre d'accord non seulement sur le livre, mais aussi sur la manière exacte d'extraire les caractères clés : s'il faut inclure des espaces, de la ponctuation, des chiffres ou uniquement des caractères alphabétiques. Toute différence dans l’extraction de clé perturbera le décryptage.
Clé d'exécution vs chiffrement de livre
Le chiffrement clé en cours et le chiffrement livre sont souvent confondus, mais ils fonctionnent selon des principes totalement différents :
Chiffrement à clé d'exécution — Un chiffre de substitution. Le texte du livre sert de clé pour transformer chaque lettre en clair via la tabula recta. Le résultat est une chaîne de lettres. La relation mathématique C = (P + K) mod 26 régit chaque caractère. Le texte du livre et le texte brut ont la même longueur et le cryptage s'effectue lettre par lettre.
Chiffrement de livre — Un système de code. Le livre sert de livre de codes et chaque mot du texte brut est représenté par sa position dans le livre : numéro de page, numéro de ligne et numéro de mot. Le résultat est une série de triplets numériques (par exemple, « 42-7-3 » signifie page 42, ligne 7, mot 3). Aucune transformation mathématique ne se produit : le livre est une table de recherche de mots entiers.
| Aspects | Exécution du chiffrement par clé | Chiffre de livre |
|---|---|---|
| Unité de cryptage | Lettres individuelles | Mots entiers |
| Format de sortie | Lettres (ou chiffres 0-25) | Références de position (page-ligne-mot) |
| Opération mathématique | Ajout modulaire via tabula recta | Pas de calcul — recherche de position |
| Utilisation des clés | Texte du livre sous forme de clé caractère par caractère | Livre comme livre de codes de position de mot |
| Vulnérabilité | Attaques à grande échelle contre les statistiques linguistiques | Identifier la bonne édition du livre |
| Longueur de sortie | Identique au texte brut (lettres uniquement) | Variable (dépend de la position des mots) |
Conséquence pratique : le chiffre du livre ne peut coder que les mots qui apparaissent dans le livre source. Les noms propres, les termes techniques ou les mots inhabituels peuvent ne pas être codables. Le chiffrement à clé en cours d'exécution n'a pas une telle limitation : il fonctionne sur des lettres individuelles et peut crypter n'importe quel texte alphabétique.
Running Key vs Vigenère vs Autokey
Le chiffrement à clé en cours d'exécution appartient à une famille de chiffrements polyalphabétiques qui partagent tous le mécanisme tabula recta mais diffèrent dans la manière dont ils génèrent le flux de clés.
Chiffre de Vigenère: utilise un mot-clé court (par exemple, "LEMON") qui se répète de manière cyclique. Si la clé est de 5 lettres et le message de 50 lettres, la clé est répétée 10 fois. Cette répétition crée des modèles périodiques que l'examen de Kasiski et le test de Friedman peuvent détecter, révélant la longueur de la clé. Une fois la longueur de la clé connue, chaque position peut être résolue comme un simple chiffre César grâce à une analyse de fréquence.Chiffrement Autokey: utilise un mot-clé initial, puis ajoute le texte en clair lui-même à la clé. Par exemple, avec le mot-clé « QUEEN » et le texte en clair « ATTACKATDAWN », la clé complète devient « QUEENATTACKA ». La clé ne se répète pas, mais la clé automatique a sa propre vulnérabilité : puisque la clé est partiellement composée de texte en clair, une attaque de texte en clair connue sur n'importe quelle partie révèle simultanément le texte en clair et la clé ultérieurs.Chiffrement à clé en cours : utilise une source de texte externe (un passage de livre) comme clé. La clé ne se répète jamais et est indépendante du texte en clair. Cependant, le texte brut et la clé sont tous deux du langage naturel avec des propriétés statistiques similaires, permettant des attaques par glissement de lit.
| Fonctionnalité | Vigenère | Clé automatique | Clé de course |
|---|---|---|---|
| Source clé | Mot-clé court | Mot clé + texte brut | Passage de livre |
| Des répétitions clés ? | Oui | Non | Non |
| L’attaque Kasiski fonctionne ? | Oui | Non | Non |
| Des travaux de traînage de berceaux ? | Pas nécessaire | Possible | Attaque primaire |
| Distribution des clés | Partager un mot | Partager un mot | D'accord sur le livre + le poste |
| Sécurité relative | Le plus bas | Modéré | Modéré-élevé |
Pour une comparaison pratique, essayez notre outil de chiffrement Vigenère et notre outil de chiffrement Autokey aux côtés du chiffrement à clé en cours d'exécution.
Cryptanalyse : attaque par traînage de berceau
L’attaque par traînage de berceau est la principale méthode pour briser les chiffrements de clé en cours d’exécution. Il exploite le fait que le texte brut et la clé sont des textes en langage naturel dotés de propriétés statistiques prévisibles.
Comment fonctionne le déplacement de berceau
L'attaquant devine un mot probable en texte brut (un « berceau »), tel que « THE », « AND », « THAT » ou des termes spécifiques à un domaine comme « ATTACK » dans un contexte militaire. Ils « font ensuite glisser » cette crèche sur chaque position du texte chiffré, en la soustrayant du texte chiffré à chaque position en utilisant la formule de décryptage.
Si la crèche est correcte à une position donnée, la soustraction produit la section correspondante du texte clé. Puisque la clé est également du texte anglais, le résultat devrait être un fragment reconnaissable d’anglais. Si le résultat est du charabia, le berceau est erroné à cet endroit.
Exemple concret
Supposons que nous ayons intercepté le texte chiffré : SXHWAFZEEZBHGG
Un analyste essaie la crèche "THE" en position 1 :
- S (18) - T (19) + 26 = 25 → Z
- X (23) - H (7) + 26 = 42 → mod 26 = 16 → Q
- H (7) - E (4) + 26 = 29 → mod 26 = 3 → D
Résultat : "ZQD" — anglais non reconnaissable. Passez.
Essayez "THE" en position 5 :
- A (0) - T (19) + 26 = 7 → H
- F (5) - H (7) + 26 = 24 → Oui
- Z (25) - E (4) + 26 = 47 → mod 26 = 21 → V
Résultat : "HYV" — pas en anglais non plus.
Essayez "SEND" en position 1 :
- S (18) - S (18) + 26 = 26 → mod 26 = 0 → A
- X (23) - E (4) + 26 = 45 → mod 26 = 19 → T
- H (7) - N (13) + 26 = 20 → U
- W (22) - D (3) + 26 = 45 → mod 26 = 19 → T
Résultat : "ATUT" — cela ressemble au début de "A TUTORIAL" ! La crèche est probablement correcte.
L'analyste étend désormais l'hypothèse. Si la clé commence par "ATUTORIAL...", ils peuvent déchiffrer davantage de positions et vérifier si le texte en clair continue à avoir un sens. Ce processus de va-et-vient entre le texte brut et le texte clé récupère finalement les deux flux.
Pourquoi ça marche
L'attaque réussit en raison d'une asymétrie fondamentale : il n'existe qu'un seul déchiffrement valide qui produit simultanément un anglais lisible dans à la fois le texte brut et les flux de clés. Des combinaisons aléatoires de positions de berceau produisent du charabia dans le flux clé. Le caractère distinctif statistique du langage naturel (sa distribution de fréquence des lettres, ses digraphes courants tels que TH et HE et ses modèles de structure de mots) permet de distinguer facilement les décryptages valides et invalides.
C'est précisément la raison pour laquelle le chiffrement à clé en cours d'exécution n'est pas à la hauteur du pavé à usage unique : le pavé à usage unique utilise des clés véritablement aléatoires, ce qui signifie que chaque texte en clair possible est également probable. Aucune attaque par traînage de berceau ne peut gagner du terrain contre une clé aléatoire.
La connexion unique au pad
Le chiffre clé en cours et le pavé à usage unique partagent la même formule mathématique. La seule différence est la source de la clé :
- Clé d'exécution : la clé est le texte en langage naturel d'un livre.
- Pavé à usage unique : la clé est une séquence de caractères véritablement aléatoires
Cette seule différence sépare un chiffre qui peut être déchiffré (la clé courante) de celui dont il est mathématiquement prouvé qu'il est incassable (le pavé à usage unique). Claude Shannon a démontré en 1949 que si la clé est véritablement aléatoire, au moins aussi longue que le message, et jamais réutilisée, le chiffre atteint un « secret parfait » : le texte chiffré ne révèle absolument aucune information sur le texte en clair.
Le chiffrement clé en cours ne parvient pas à atteindre un secret parfait car le texte du livre n'est pas aléatoire. Le texte anglais a une entropie d'environ 1,0 à 1,5 bits par caractère, comparé aux 4,7 bits par caractère d'un alphabet véritablement aléatoire de 26 lettres. Cet écart entre l’entropie réelle de la clé et son maximum théorique est exactement l’information exploitée par les attaques par glissement de lit.
Historiquement, le chiffrement à clé en cours d’exécution peut être compris comme un compromis pratique. Générer et distribuer des clés véritablement aléatoires et d'une longueur suffisante était logistiquement peu pratique pour la plupart des communicateurs du XIXe et du début du XXe siècle. Le texte du livre offrait une approximation « assez bonne » : long, non répétitif et accessible aux deux parties sans transmission de clé. Le compromis était une sécurité réduite en échange d'une gestion des clés considérablement simplifiée.
Pour les utilisateurs modernes intéressés à explorer le concept du pavé unique, essayez notre outil Vernam Cipher, qui implémente la version binaire XOR du pavé unique.
Contexte historique
Développement précoce
Le concept de substitution polyalphabétique date des XVe et XVIe siècles. Johannes Trithemius a décrit la tabula recta en 1508 dans son ouvrage Polygraphia. Blaise de Vigenère développe ces idées en 1586 dans sa Traicté des Chiffres. Cependant, l’utilisation systématique de longs passages de texte comme clés de fonctionnement n’est apparue que des siècles plus tard.
Le mathématicien français Arthur Joseph Hermann a formalisé le concept de chiffrement à clé courante en 1892, décrivant comment les textes publiés pouvaient servir de clés polyalphabétiques non répétitives. Ses travaux reconnaissent à la fois l'avantage (élimination de la répétition des touches) et les limites (statistiques du langage naturel dans la clé) de l'approche.
Cryptanalyse de William Friedman
William Friedman (1891-1969), souvent appelé le père de la cryptanalyse américaine, a développé des méthodes systématiques pour attaquer les chiffrements à clé au cours des années 1920 et 1930, alors qu'il travaillait pour le Signal Intelligence Service de l'armée américaine.
L'approche de Friedman combinait le test de mots probables avec l'analyse digraphique haute fréquence. Il a reconnu que lorsque le texte en clair et la clé sont en anglais, les fréquences des lettres du texte chiffré qui en résultent s'écartent de la distribution uniforme de manière prévisible. Ses techniques d’exploitation de ces écarts ont jeté les bases de la cryptanalyse informatique moderne.
Les travaux de Friedman sur l'exécution des chiffrements à clé ont directement contribué à la compréhension théorique de la raison pour laquelle le caractère aléatoire est essentiel au cryptage sécurisé – un principe que Claude Shannon formaliserait mathématiquement dans son article historique de 1949 « Théorie de la communication des systèmes secrets ».
Guerre mondiale II et guerre froide
Pendant la Guerre mondiale II, l'exécution des chiffres à clé a connu une utilisation militaire limitée car des alternatives plus sécurisées étaient disponibles : la machine Enigma (pour l'Allemagne), la SIGABA (pour les États-Unis) et divers systèmes de tampons à usage unique. Cependant, les agents de renseignement et les réseaux de résistance utilisaient parfois des chiffres à clé car ils ne nécessitaient aucun équipement autre qu'un livre couramment disponible.
Pendant la guerre froide, le concept de clé courante a influencé la conception de systèmes de chiffrement manuel plus sophistiqués. Le chiffre soviétique VIC, par exemple, utilisait une phrase mémorisée plutôt qu'un passage de livre, mais appliquait le même principe consistant à dériver une longue clé à partir d'une source de texte préalablement convenue. Le chiffrement VIC a ensuite ajouté des couches de transposition qui manquent au chiffrement à clé simple.
Questions fréquemment posées
Quel est le meilleur livre à utiliser comme clé de course ?
Le meilleur livre est celui auquel l’expéditeur et le destinataire peuvent accéder dans des éditions identiques, qui contient de la prose continue (pas de poésie, de tableaux ou de listes) et qui ne constitue pas un choix évident qu’un adversaire testerait en premier. Historiquement, les manuels techniques, les publications commerciales et les almanachs étaient préférés aux romans célèbres, précisément parce qu'ils étaient moins susceptibles d'apparaître sur la liste des livres candidats d'un attaquant. L'édition spécifique est importante - différentes impressions peuvent avoir une pagination différente.
Un chiffrement à clé en cours d'exécution peut-il utiliser n'importe quel texte comme clé ?
Oui, n’importe quel texte peut servir de clé : des livres, des journaux, des lettres, des documents techniques, des paroles de chansons ou même un texte aléatoire. Cependant, la sécurité varie. Le texte aléatoire offre la sécurité la plus élevée (se rapprochant des niveaux de saisie unique), tandis que le texte répétitif ou formulé (comme les documents juridiques ou les textes religieux avec des phrases répétées) offre une sécurité moindre en raison de modèles prévisibles. Le texte clé doit être au moins aussi long que le message en clair.
Combien de temps faut-il pour briser un chiffrement de clé en cours d'exécution ?
Avec les ordinateurs modernes, un chiffrement à clé en cours d'exécution utilisant un livre connu peut être déchiffré en quelques minutes, voire quelques heures, à l'aide d'un déplacement automatisé sur une bibliothèque de textes candidats. Sans connaître le livre, le processus prend plus de temps mais reste réalisable pour des messages de longueur modérée (plus de 50 caractères). Les messages très courts (moins de 20 caractères) peuvent être pratiquement impossibles à déchiffrer en raison de données statistiques insuffisantes, tandis que les messages très longs sont plus faciles à déchiffrer car ils fournissent plus de données pour l'analyse statistique.
Le chiffrement à clé en cours d'exécution est-il utilisé aujourd'hui ?
Le chiffrement à clé en cours d’exécution n’est pas utilisé aujourd’hui pour une communication réellement sécurisée. Les algorithmes de chiffrement modernes tels que AES-256 et ChaCha20 offrent une sécurité bien supérieure avec une gestion des clés beaucoup plus simple. Cependant, le chiffrement à clé reste utile pour l'éducation, les compétitions d'énigmes, les défis de géocaching et la compréhension de l'évolution historique de la cryptographie. Il fournit une excellente démonstration pratique de l’importance du caractère aléatoire des clés pour la sécurité.
Que se passe-t-il si le texte clé est plus court que le message ?
Si le texte clé est plus court que le message, vous avez deux options : (1) étendre la clé en passant à la page, au chapitre ou à la section suivante du texte source, ou (2) revenir en arrière et réutiliser la clé depuis le début. L’option 2 reconvertit efficacement le chiffrement à clé en cours d’exécution en un chiffre de Vigenère avec une clé très longue, réintroduisant la vulnérabilité périodique – bien que la longue période rende les attaques beaucoup plus difficiles qu’un mot-clé court. L’option 1 est fortement préférée.
Pouvez-vous utiliser le chiffrement à clé en cours d'exécution avec des chiffres ou des caractères spéciaux ?
Le chiffrement à clé classique fonctionne uniquement sur l'alphabet anglais de 26 lettres. Les nombres, les espaces et les caractères spéciaux sont généralement supprimés du texte brut et de la clé avant le chiffrement. Cependant, l'arithmétique modulaire sous-jacente peut être étendue à des jeux de caractères plus grands. Un chiffrement à clé exécuté sur un ensemble ASCII de 256 caractères utiliserait le mod 256 au lieu du mod 26, et un texte clé contenant des chiffres et des signes de ponctuation participerait pleinement au cryptage.