Enigma-machine

Een grote tekortkoming van de Enigma-code was dat een letter nooit als zichzelf kon worden gecodeerd. Met andere woorden, een “M” kon nooit als een “M” worden gecodeerd. Dit was een grote fout in de Enigma code omdat het codebrekers een stukje informatie gaf dat ze konden gebruiken om berichten te ontcijferen. Als de codebrekers een woord of zin konden raden die waarschijnlijk in het bericht zou voorkomen, konden ze deze informatie gebruiken om de code te breken. Omdat de Duitsers altijd een weerbericht stuurden aan het begin van het bericht, en meestal de zin “Heil Hitler” op het einde van het bericht plaatsten, waren er zinnen die ontcijferaars wisten te vinden. Ontcijferaars konden een gegeven zin vergelijken met de letters in de code, en als een letter in de zin overeenkwam met een letter in de code, wisten ze dat dat deel van de code de zin niet bevatte. De decoders konden dan beginnen met het kraken van de code met een proces van eliminatie aanpak.

Zoek mogelijke mededingers voor de codering van het woord “RAIN” in de gecodeerde reeks hieronder. (Het symbool % wordt gebruikt om onbekende letters aan te duiden).

Gecodeerd bericht E R W N I K O L K M M M M
Zin R A I N % % % %

RAIN kan niet als ERWN worden gecodeerd omdat de N in RAIN en de N in ERWN met elkaar overeenkomen. Aangezien N niet als zichzelf kan worden gecodeerd, is dit niet de codering.

Laten we ons bericht een slot naar rechts verschuiven, en kijken of het resultaat een geldige codering is.

Gecodeerd bericht E R W N I K O L K M M M M
Phrase % R A I N % % % % % % %

RAIN kan niet als RWNI worden gecodeerd omdat de R in RAIN overeenkomt met de R in RWNI. Laten we nog eens verschuiven.

Gecodeerd bericht E R W N I K O L K M M M M
Phrase % % R A I N % % % % % % %

RAIN kan niet als WNIK worden gecodeerd omdat de I in RAIN overeenkomt met de I in WNIK.

Gecodeerd bericht E R W N I K O L K M M M M
Phrase % % % R A I N % % % % % %

RAIN kan worden gecodeerd als NIKO omdat de twee zinnen geen letters hebben die bij elkaar passen. NIKO is dus een mogelijke codering van RAIN.

Als we dit proces herhalen, vinden we dat NIKO, IKOL, KOLK, OLKM, LKMM, KMMM, en MMMM alle mogelijke coderingen zijn van RAIN, omdat er geen letters zijn die overeenkomen tussen RAIN en de codering. Het is in orde dat MMMM RAIN zou kunnen coderen, ook al betekent dit dat M R, A, I, en N zou coderen, want vergeet niet dat bij elke druk op een toets, de letter-indeling in een Enigma machine verandert.

Het is echter niet gegarandeerd dat RAIN überhaupt in deze string gecodeerd is, maar het gaf decoders een goed uitgangspunt voor het ontcijferen van berichten.

Alan Turing en Gordon Welchman ontwierpen een machine, de Bombe machine, die elektrische circuits gebruikte om een Enigma gecodeerd bericht in minder dan 20 minuten op te lossen. De Bombe machine zou proberen de instellingen van de rotors en het stekkerbord van de Enigma machine te bepalen die gebruikt werden om een gegeven gecodeerd bericht te verzenden.

De standaard Britse Bombe machine bestond in wezen uit 36 aan elkaar gekoppelde Enigma machines, op deze manier simuleerde de Bombe machine meerdere Enigma machines tegelijk. De meeste Enigma machines hadden drie rotors en om dit in de Bombe na te bootsen, had elk van de Enigma simulators in de Bombe drie trommels, één voor elke rotor.

Trommels van Bombe machines

De trommels van de Bombe hadden een kleurcode die overeenkwam met welke rotor ze simuleerden. Hoewel een 3-rotor Enigma machine slechts drie rotors tegelijk gebruikte, zijn er meer om uit te kiezen. De trommels waren zo opgesteld dat de bovenste van de drie de linkse rotor van de Enigma vervormer simuleerde, de middelste de middelste rotor, en de onderste de rechtse rotor. De trommels draaiden om een nieuwe configuratie uit te proberen. Voor elke volledige omwenteling van de bovenste trommel werden de middelste trommels met één positie verhoogd, en evenzo voor de middelste en onderste trommels, waardoor het totaal van 26 × 26 × 26 = 17.576 posities van de 3-rotor Enigma scrambler.

Toen, voor een gegeven rotor configuratie (bij elke draai van de trommels), zou de Bombe machine een gok doen over een stekkerbord instelling, zeg “A is verbonden met Z.” Dan zou de Bombe machine bepalen wat de andere letters op het stekkerbord moeten zijn. Als er tegenstrijdigheden ontstonden, bijvoorbeeld, hij leidde af dat “A was verbonden met W,” dan moet het zijn dat A niet verbonden is met Z op het stekkerbord, een tegenstrijdigheid ontstaat. Omdat de andere lettercombinaties die de machine zojuist bedacht heeft gebaseerd zijn op een valse aanname (namelijk de aanname dat A verbonden is met Z), zijn al die combinaties ongeldig, en de Bombe machine weet dat hij geen tijd hoeft te verspillen aan het later controleren van die combinaties. Dus, stel dat de machine heeft geraden dat A is verbonden met Z, en dan leidt de machine af dat als A is verbonden met Z, dan moet B zijn verbonden met E. Als later wordt vastgesteld dat A niet is verbonden met Z, dan weet de machine dat B niet is verbonden met E. Als zo’n tegenspraak zich voordoet, zal de Bombe machine niet opnieuw raden dat A is verbonden met Z, en hij weet dat hij niet moet raden dat B is verbonden met E, enzovoort. De Bombe machine verschuift de rotorposities, en kiest een nieuwe gok, en herhaalt dit proces tot een bevredigende opstelling van instellingen verschijnt. Omdat elektrische circuits zeer snel berekeningen kunnen uitvoeren, kan de Bombe machine alle rotorcombinaties in ongeveer 20 minuten doorlopen.

Bij elke positie van de trommels zou de configuratie worden getest om te zien of de configuratie tot een logische tegenstrijdigheid leidde, waardoor die instelling werd uitgesloten. Indien de test niet tot een tegenstrijdigheid leidde, stopte de machine en noteerde de decoder die configuratie als een kandidaat-oplossing. Vervolgens wordt de machine opnieuw opgestart en worden meer configuraties getest. Deze tests zouden de lijst van mogelijke configuraties verkleinen en de kandidaat-oplossingen zouden verder worden getest om degenen die niet zouden werken te elimineren. Meestal waren er vele mislukte kandidaat-oplossingen voordat de juiste werd gevonden.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.