Machine Enigma

Un défaut majeur du code Enigma était qu’une lettre ne pouvait jamais être codée comme elle-même. En d’autres termes, un « M » ne serait jamais codé comme un « M ». Il s’agissait d’une énorme faille dans le code Enigma, car elle donnait aux briseurs de code une information qu’ils pouvaient utiliser pour décrypter les messages. Si les briseurs de code pouvaient deviner un mot ou une phrase qui apparaissait probablement dans le message, ils pouvaient utiliser cette information pour commencer à déchiffrer le code. Comme les Allemands envoyaient toujours un bulletin météo au début du message et qu’ils incluaient généralement la phrase « Heil Hitler » à la fin du message, les décrypteurs savaient qu’ils devaient rechercher certaines phrases. Les décodeurs pouvaient comparer une phrase donnée aux lettres du code, et si une lettre de la phrase correspondait à une lettre du code, ils savaient que cette partie du code ne contenait pas la phrase. Les décodeurs pouvaient alors commencer à craquer le code avec une approche par processus d’élimination.

Recherchez les prétendants possibles au codage du mot « RAIN » dans la chaîne codée ci-dessous. (Le symbole % est utilisé pour désigner les lettres inconnues).

.

.

.

Message codé E R W N I K O L K M M M M
Phrase R A I N % % % % % % % % % %

RAIN ne peut pas être codé comme ERWN car le N de RAIN et le N de ERWN correspondent. Puisque N ne peut pas être encodé comme lui-même, ce n’est pas l’encodage.

Décalons notre message d’un slot vers la droite, et voyons si le résultat est un encodage valide.

.

Message codé E R W N I K O L K M M M M
Phrase % R A I N % % % % % % % % %

RAIN ne peut pas être codé comme RWNI parce que le R de RAIN correspond au R de RWNI. Décalons à nouveau.

.

Message codé E R W N I K O L K M M M M
Phrase % % R A I N % % % % % % % %

RAIN ne peut être codé comme WNIK car le I de RAIN correspond au I de WNIK.

.

Message codé E R W N I K O L K M M M M
Phrase % % % R A I N % % % % % %

RAIN peut être encodé comme NIKO car les deux phrases n’ont pas de lettres qui correspondent. Donc NIKO est un encodage possible de RAIN.

Si nous répétons ce processus, nous trouverons que NIKO, IKOL, KOLK, OLKM, LKMM, KMMM, et MMMM sont tous des encodages possibles de RAIN puisqu’aucune lettre ne correspond entre RAIN et l’encodage. Il est correct que MMMM puisse coder RAIN même si cela signifie que M coderait R, A, I, et N car rappelez-vous qu’à chaque pression de touche, la correspondance des lettres dans une machine Enigma change.

Il n’est pas du tout garanti que RAIN soit codé dans cette chaîne, cependant, mais cela a donné aux décodeurs un bon point de départ pour décrypter les messages.

Alan Turing et Gordon Welchman ont conçu une machine appelée la machine Bombe qui utilisait des circuits électriques pour résoudre un message codé Enigma en moins de 20 minutes. La machine Bombe essayait de déterminer les réglages des rotors et du panneau de connexion de la machine Enigma utilisée pour envoyer un message codé donné.

La machine Bombe britannique standard était essentiellement constituée de 36 machines Enigma câblées ensemble, de cette façon, la machine Bombe simulait plusieurs machines Enigma à la fois. La plupart des machines Enigma avaient trois rotors et pour représenter cela dans la Bombe, chacun des simulateurs Enigma de la Bombe avait trois tambours, un pour chaque rotor.

Tambours de la machine Bombe

Les tambours de la Bombe avaient un code couleur correspondant au rotor qu’ils simulaient. Alors qu’une machine Enigma à trois rotors n’en utilisait que trois à la fois, il en existe d’autres. Les tambours étaient disposés de manière à ce que celui du haut simule le rotor de gauche du brouilleur Enigma, celui du milieu le rotor du milieu et celui du bas le rotor de droite. Les tambours tournaient pour essayer une nouvelle configuration. Pour chaque rotation complète des tambours du haut, les tambours du milieu étaient incrémentés d’une position, et de même pour les tambours du milieu et du bas, ce qui donnait un total de 26 × 26 × 26 = 17 576 positions du brouilleur Enigma à 3 rotors.

Puis, pour une configuration de rotor donnée (à chaque tour des tambours), la machine Bombe faisait une supposition sur un réglage de la carte à fiches, disons « A est connecté à Z. » Elle détermine ensuite à quoi doivent correspondre toutes les autres lettres sur la fiche. Si des contradictions apparaissent, par exemple, si elle déduit que « A est connecté à W », alors il faut que A ne soit pas connecté à Z sur le panneau de connexion, une contradiction apparaît. Puisque les autres correspondances de lettres que la machine vient de trouver ont été déterminées sur la base d’une fausse hypothèse (à savoir l’hypothèse que A est connecté à Z), toutes ces combinaisons sont invalides, et la machine Bombe sait qu’elle ne doit pas perdre de temps à vérifier ces combinaisons plus tard. Ainsi, disons que la machine a supposé que A est connecté à Z, et ensuite la machine déduit que si A est connecté à Z, alors B doit être connecté à E. Si elle détermine plus tard que A n’est pas connecté à Z, elle sait que B n’est pas connecté à E. Après une telle contradiction, la machine Bombe ne supposera plus que A est connecté à Z, et elle sait qu’elle ne supposera plus que B est connecté à E, et ainsi de suite. La machine Bombe déplace les positions du rotor, choisit une nouvelle supposition et répète ce processus jusqu’à ce qu’un arrangement satisfaisant des paramètres apparaisse. Comme les circuits électriques peuvent effectuer des calculs très rapidement, la machine Bombe peut passer en revue toutes les combinaisons de rotor en 20 minutes environ.

À chaque position des tambours, la configuration était testée pour voir si elle conduisait à une contradiction logique, excluant ce réglage. Si le test ne conduisait pas à une contradiction, la machine s’arrêtait et le décodeur notait cette configuration comme une solution candidate. Ensuite, la machine est redémarrée et d’autres configurations sont testées. Ces tests permettent de réduire la liste des configurations possibles et les solutions candidates sont testées plus avant pour éliminer celles qui ne fonctionnent pas. Il y avait généralement de nombreuses solutions candidates infructueuses avant que la bonne ne soit trouvée.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.