Enigma: de machine die zichzelf verraadde
Het geheimschrift van Caesar uit het vorige hoofdstuk heeft één groot lek: wat vaak voorkomt, blijft vaak voorkomen. In het Nederlands is de E de meest gebruikte letter, dus de letter die in de cijfertekst het vaakst voorkomt, ís de E. Tellen en klaar. Maar wat als het slot na élke letter opnieuw wordt ingesteld? Duitsland bouwde daar in de jaren dertig een machine voor, en die machine heet Enigma. Deze site is ernaar genoemd.
Woorden die je zo nodig hebt
- Rotor
- Een wiel met 26 contacten aan elke kant, en binnenin 26 kriskras gesoldeerde draadjes. Erin gaat een letter, eruit komt een andere. Er zitten er drie naast elkaar, en na elke toets draait de rechterste een stap verder.
- Reflector
- Een blok achteraan dat de stroom terugstuurt. De letter loopt dus eerst door de drie rotors heen, kaatst terug, en loopt er in omgekeerde volgorde weer doorheen. Dat ene onderdeel maakt de machine wat ze is — inclusief haar fout.
- Stand
- De drie letters die je door de venstertjes ziet voor je begint. Dat is de sleutel van het bericht. Jij en de ontvanger moeten er precies dezelfde drie instellen.
- Kerf
- Een inkeping in de rand van een rotor. Komt die langs, dan neemt het wiel zijn buurman één stap mee, zoals de kilometerteller van een auto.
- Gok
- Een stuk tekst waarvan je vermoedt dat het in het bericht staat. In het Engels heet dat een crib. Hier onderaan wordt dat het gereedschap waarmee je begint te kraken.
Een Caesar die na elke letter verspringt
Bij Caesar schuif je elke letter evenveel plaatsen op. Bij Enigma loopt de letter door drie wielen die elk hun eigen kriskras bedrading hebben, kaatst achteraan terug en komt er weer doorheen. Dat op zich is nog steeds één vaste vervanging. Het verschil zit in de laatste zin van de uitleg hierboven: na elke toets draait er een wiel. De vervanging die je bij de tweede letter gebruikt, is niet meer dezelfde als bij de eerste.
De rechter rotor draait bij elke toets. Heeft die een hele ronde gemaakt, dan duwt zijn kerf de middelste een stap verder, en die duwt op zijn beurt de linkse. Zoals de wieltjes van een kilometerteller, alleen zit er in elk wieltje een geheimschrift. Pas na 26 × 26 × 26 = 17 576 toetsen staat de machine weer precies zoals ze begon.
Typ op de machine
Alles gebeurt in je browser. Er wordt niets naar de server gestuurd.
- Klik Draai eraan. Je bericht komt er als cijfertekst uit, en je ziet waar de wieltjes gestopt zijn.
- Zet de stand terug op
QFR, plak de cijfertekst in het bovenste vak en klik weer. Je bericht komt terug. Dezelfde handeling, allebei de kanten op. - Klik Tien keer dezelfde toets. Tien keer A erin, en kijk wat eruit komt.
- Klik Wordt een letter ooit zichzelf? en lees het antwoord goed. Het volgende stuk van dit hoofdstuk gaat daarover.
Waarom niemand haar met tellen kraakte
Tel eens mee hoeveel manieren er zijn om zo'n machine in te stellen. Je kiest drie rotors uit een doos van vijf, en de volgorde telt: dat zijn 60 mogelijkheden. Je zet ze op een van de 17 576 standen. En vooraan zit nog een stekkerbord waarmee tien paren letters onderling verwisseld worden, goed voor 150 738 274 937 250 mogelijkheden.
60 × 17 576 × 150 738 274 937 250 ≈ 1,6 × 1020
Honderdzestig triljoen instellingen. Ter vergelijking: er zijn ongeveer 4 × 1017 seconden verstreken sinds de oerknal, dus dat zijn er ruim driehonderd keer zoveel. Alles uitproberen was geen optie, niet in 1940 en trouwens ook nu niet met de hand. En het letters tellen waarmee je een Caesar in tien minuten breekt, doet hier helemaal niets, want de E is bij elke aanslag iets anders geworden.
Dit is het hoofdstuk waarin je zou verwachten dat het verhaal ophoudt. Het houdt niet op.
De ene draad die het verraadde
Kijk nog eens naar de reflector. De stroom gaat erheen en komt over een ander draadje terug. Nu de vraag: wat als je een A indrukt en de machine zou er ook een A van maken? Dan zou de stroom op de terugweg precies hetzelfde pad moeten nemen als op de heenweg. Door hetzelfde draadje, twee kanten op tegelijk. Dat kan niet.
Dus: geen enkele letter wordt ooit zichzelf. Dat is geen toevalligheid en geen slordigheid, het volgt onvermijdelijk uit dat ene blok achteraan. En het is precies wat de machine handig maakte: omdat de weg heen en terug hetzelfde is, hoefde je niet te kiezen tussen versleutelen en ontsleutelen. Eén stand, één handeling.
Zo'n eigenschap is nooit gratis. Wat de bediening makkelijk maakte, gaf de aanvaller een regel in handen die altijd waar is. En een regel die altijd waar is, is een zeef.
De zeef
Duitse berichten begonnen vaak hetzelfde. Een weerbericht van zes uur 's ochtends, elke dag, met het woord Wetterbericht erin. Als je weet dát dat woord erin staat maar niet waar, dan kan je het onder de cijfertekst leggen en opschuiven, positie voor positie. Overal waar het woord op één plek dezelfde letter tegenkomt als de cijfertekst eronder, weet je zeker: hier staat het niet. Want een letter wordt nooit zichzelf.
Je weet dan nog altijd niet welke stand het was. Maar je hebt het aantal plaatsen waar je hoeft te zoeken flink teruggebracht, zonder één instelling te proberen.
Schuif de gok langs het bericht
Alles gebeurt in je browser. Er wordt niets naar de server gestuurd.
- Klik Schuif op. Onder de cijfertekst verschijnt een balk met een punt op elke plaats waar de gok kán staan, en een X waar hij botst.
- Tel de punten. Zoveel plaatsen blijven er over van het hele bericht.
- Verander de gok in
NIETSBIJZONDERSen schuif opnieuw. Andere gok, andere balk. - Typ een gok die er zeker niet in staat en kijk wat er gebeurt.
In hoofdstuk 9.5 ga je de laatste stap zetten: daar krijg je precies dit bericht, en zoek je de stand die het leesbaar maakt. Alle 17 576 uitproberen, want dat is wat er overblijft als je het stekkerbord even weglaat. Je browser doet er geen seconde over.
Wie het gedaan heeft
Niet de Britten als eersten. In 1932 reconstrueerde de Poolse wiskundige Marian Rejewski de bedrading van de rotors zonder er ooit een gezien te hebben, puur door na te denken over hoe je vervangingen achter elkaar kan zetten. Samen met Jerzy Różycki en Henryk Zygalski las Polen jaren voor de oorlog mee. Vlak voor de inval gaven ze alles door aan de Britten en de Fransen.
In Bletchley Park bouwden Alan Turing en Gordon Welchman daarop verder: een machine, de Bombe, die met een gok als startpunt alle instellingen doorliep die niet meteen zichzelf tegenspraken. Die gok was precies wat je hierboven zelf opschoof.
Wat je hiervan onthoudt: de wiskunde van Enigma was voor haar tijd uitstekend. Wat haar brak was een eigenschap die de bediening comfortabel maakte, plus mensen die elke ochtend hetzelfde woord intypten. Dat is dezelfde les als in hoofdstuk 9.5, alleen tachtig jaar eerder.
Dit is wiskunde: permutaties
Een instelling van Enigma is een permutatie van 26 letters: een manier om het alfabet door elkaar te schudden waarbij elke letter precies één plaats krijgt. Door de reflector is die permutatie van een heel bijzondere soort. Ze is haar eigen omgekeerde — pas ze twee keer toe en je bent terug bij af, en dat is precies waarom versleutelen en ontsleutelen hier hetzelfde zijn. En ze heeft geen enkel vast punt: geen letter blijft op zijn plaats. Zulke permutaties bestaan alleen als je het alfabet netjes in dertien paren kan verdelen, en op 26 letters zijn er daar 7 905 853 580 625 van. Rejewski kraakte de machine door te kijken naar wat er gebeurt als je zulke permutaties achter elkaar zet: de kringetjes die dan ontstaan, komen altijd in paren van dezelfde lengte voor. Dat is een stelling uit de groepentheorie, hetzelfde vak dat je in hoofdstuk 7.2 tegenkomt bij het optellen van punten. Dezelfde wiskunde, dertig jaar eerder, en toen won ze een oorlog.