Enigma Damaz de Jong (3680355) June 19, 2012
1
Inleiding
De Enigma is een codeermachine die in 1918 is uitgevonden door Arthur Scherbius. Hij vroeg er patent op aan, maar had in eerste instantie weinig succes. Bedrijven hadden namelijk weinig interesse in een peperdure machine. Ook het Duitse leger wilde zijn machines niet kopen. Zij dachten dat hun cryptografische systeem van de eerste wereldoorlog ongekraakt was, maar aan die illusie kwam in 1923 een eind. Engeland publiceerde hoe het de codes van de Duitsers kon kraken. Hierdoor kreeg het Duitse leger wel interesse in de uitvinding van Arthur Scherbius. De versie die het leger in gebruik nam verschilde wel van de commerci¨ele versie van de Enigma. De bedrading van de rotoren was bijvoorbeeld anders, zodat kopers van de Enigma niet de complete kennis hadden over de militaire machine. Dat de werking en de bedrading uiteindelijk bekend werden bij de geallieerden is te danken aan Hans-Thilo Schmidt, geboren in Berlijn. Om geld te verdienen en wraak te nemen stond hij een Franse geheim agent toe om foto’s te nemen van twee belangrijke documenten. Deze foto’s stelden de geallieerden in staat om een replica te bouwen van de Enigma. Dit alleen was echter niet genoeg om de berichten te kraken. In overeenstemming met het principe van Kerckhoff, hangt de beveiliging van de Enigma niet alleen af van de constructie van de Enigma.[7]
2 2.1
De werking van de Enigma Overzicht
De Enigma lijkt op het eerste gezicht vrij veel op een typemachine. Alleen in plaats van dat de letters op papier worden gedrukt, gaan op de Enigma lampjes branden. Om de tekst te versleutelen zitten er een aantal verschillende onderdelen in de Enigma. Eerst zal aangegeven worden hoe deze onderdelen aan elkaar zijn gekoppeld en daarna zal ingegaan worden op de exacte werking van deze onderdelen.
1
Als er op een van de letters van de Enigma wordt gedrukt, gaat er een elektrisch stroompje lopen. Vanaf de toets gaat dat via het stekkerbord naar de rotoren en door naar de reflector. Deze stuurt het signaal via een andere weg weer terug door de rotoren en het stekkerbord. Dit stroompje laat tenslotte een lampje branden waardoor er afgelezen kan worden hoe de letter wordt versleuteld. Zie voor een schematisch overzicht figuur 1.
Figure 1: Schematische weergave van een Enigma met 6 letters. instelling zal een ’A’ als een ’E’ worden versleuteld
2.2
In deze
Stekkerbord
Met het stekkerbord kunnen letters met elkaar verwisseld worden. Elke letter op het stekkerbord heeft twee gaatjes, een voor de ingang van het lampenbord en toetsen en een voor de uitgang naar de eerste rotor. Met een draadje worden twee letters kruislings verbonden zodat bijvoorbeeld de Q een W wordt, maar ook de W een Q. Dit gebeurt zowel op de heenweg, van de toets naar de rotor, als op de terugweg, van de rotor naar het lampenbord. Meestal werden er tien letterparen verwisseld. Deze instellingen worden de Steckerverbindungen genoemd.[5]
2.3
Rotoren
Het hart van de Enigma bestaat uit drie rotoren. Rotoren hebben(zie figuur 2) aan de ene kant 26 ingangen(6) en aan de andere kant 26 uitgangen(4) die kriskras met elkaar verbonden zijn(5). Elke rotor heeft ook nog een nok(1) (en soms twee) die bepaalt wanneer de rotor links ervan gaat draaien. Op de buitenkant van de rotor staan cijfers of de letters van het alfabet die door het schermpje van de Enigma afgelezen kunnen worden(3). De interne bedrading van een rotor kan draaien ten opzichte van de nok en de letters op de buitenkant. Deze instelling van de Enigma wordt de Ringstellung genoemd. Zo functioneert iedere rotor eigenlijk als een substitutieversleuteling. Maar er is een belangrijk verschil. Om te zorgen dat dezelfde letter niet altijd in dezelfde letter wordt versleuteld draaien de rotoren tijdens de encryptie. Dit wordt bereikt door drie pallen die omhoog bewegen bij iedere toetsaanslag. De 2
Figure 2: Schematisch plaatje van een rotor. Gemaakt door Wapcaplet in Blender. Via Wikimedia Commons
rechter pal neemt altijd de meest rechtse rotor een stapje mee, maar de andere rotoren schuiven alleen door als de rotor rechts ervan de nok op de goede positie heeft. Als dat het geval is, kan de tweede of derde pal in de nok glijden van respectievelijk de eerste of tweede rotor. Als dat gebeurt, haakt de pal ook in de getande ring(10) van rotor twee of drie en neemt deze dan een stapje mee. Ook de rotor die zijn nok in de goede positie heeft staan draait een stapje. Dus als de derde rotor draait, draait de tweede rotor ook. Die staat namelijk in de nok positie. Zo werkt dit stappenmechanisme net iets anders dan een gewone kilometerteller. Niet alle rotoren van de Enigma zijn hetzelfde. Elke rotor heeft de nok bij een andere letter zitten en heeft een unieke interne bedrading. Om de Enigma in te stellen kan worden gekozen uit verschillende rotoren. In 1939 waren het er vijf, maar bij latere versies meer. De instelling die zegt welke rotoren op welke positie staan, heet de Walzenlage. [5]
2.4
Reflector
Links van de meest linkse rotor zit de reflector. De reflector geeft de stroom niet van rechts naar links door zoals een rotor, maar stuurt het stroompje er aan de rechterkant weer uit, bij een andere letter. Dit gebeurt door de interne verbindingen in de reflector die steeds twee letters aan elkaar verbindt. Dit heeft twee grote gevolgen. Ten eerste zorgt dit ervoor dat versleutelen precies hetzelfde is als ontsleutelen. Als er een A wordt versleuteld en er komt een D uit, dan zal een D, als alle instellingen hetzelfde zijn, worden omgezet in een A. Dit is natuurlijk makkelijk voor de operators van de Enigma. Het tweede
3
gevolg is dat een letter nooit in zichzelf kan worden versleuteld, een zwakheid die later werd uitgebuit door de Bombe, een machine die de Enigma kan kraken. [5]
3
Het bedienen van de Enigma
Naast de constructie van de Enigma, zijn ook de procedures die gevolgd werden bij het versleutelen van berichten belangrijk. Er werd iedere dag een nieuwe sleutel in gebruik genomen en deze sleutels werden verspreid door middel van sleutelbladen. Dat zijn vellen waar voor een maand op stond, per dag, wat de Walzenlage, Ringstellung en de Steckerverbindungen waren. Tot 1940 stond er ook nog de Grundstellung op, de startpositie van de rotoren[5]. Verder stonden er ook nog Kenngrupen op, maar die dragen niet bij aan de versleuteling en worden daarom buiten beschouwing gelaten.
3.1
Spruchschlussel
Hoe meer berichten worden versleuteld met een sleutel, hoe makkelijker de cryptoanalyse wordt. Daarom werd besloten om niet ieder bericht met dezelfde sleutel te versleutelen. In plaats daarvan koos de operator drie willekeurige letters (bijv. BXL) en versleutelde deze Spruchschlussel tweemaal achter elkaar, om verzendfouten uit te sluiten. De operator versleutelt dus in dit geval ’BXLBXL’ met de Enigma ingesteld op de daginstelling. Dit geeft bijvoorbeeld ’ASBCTI’. Vervolgens stelt de operator de Enigma in op ’BXL’ als startpositie van de rotoren en versleutelde vervolgens de rest van het bericht. De ontvanger moet deze zes tekens decoderen. Als hij twee keer dezelfde drie letters krijgt, is de Spruchschlussel goed overgekomen. Vervolgens stelde hij de rotoren in op ’BXL’ (wat hij net gedecodeerd heeft) en decodeert de rest van het bericht.
3.2
1940
De herhaling van de Spruchschlussel zorgt natuurlijk voor een zwakheid in de vercijfering met de Enigma. Een zwakheid die door de Polen ook is uitgebuit samen met de Grundstellung die voor alle berichten op een dag, dus voor alle dubbele versleutelingen van de Spruchschlussel, hetzelfde was. De manier die de Polen gebruikten om de Enigma te kraken was bekend bij de Engelsen, die doorgingen met het gebruiken van deze methode. Zij zagen echter aankomen dat er een einde zou komen aan de dubbele encryptie van de Spruchschlussel. Dit gebeurde dan ook op 1 mei 1940. Tegelijkertijd werd ook de Grundstellung niet meer op de sleutelbladen gezet. De operator moest zelf eerst drie willekeurige letters bedenken en die als Grundstellung gebruiken. Deze drie letters werden als klare tekst naar de ontvanger gestuurd. Deze nieuwe procedure werd in gebruik genomen vlak nadat de eerste Bombe gemaakt was, maar deze Bombe functioneerde nog niet goed genoeg om alle
4
berichten te kunnen kraken[7]. De geallieerden konden daardoor in die tijd nog maar weinig berichten ontcijferen. Dit veranderde op 8 augustus, toen de nieuwe versie van de Bombe in gebruik werd genomen.
4
Bombe
De Bombe is de machine die is uitgevonden om de Enigma te kraken. Hij is bedacht door Alan Turing en Gordon Welchman. De naam is afgeleid van de Poolse machine die de Enigma kon kraken, genaamd Bomba. Om de aanval uit te voeren moet de aanvaller beschikken over een crib, een stukje klare tekst met het bijbehorende stukje cijfertekst. Hiermee worden ongeveer 1 miljoen keuzes van rotors en posities uitgeprobeerd. Hoewel de resultaten in eerste instantie tegenvielen waren de Bombes uiteindelijk in staat de berichten van de Enigma te kraken.[4][7]
4.1
Crib
De aanval begint met het vinden van een crib. Dat is een stukje klare tekst en het bijbehorende stukje cijfertekst. Bij het vinden van een crib zijn er twee problemen. Het eerste is dat je achter een stukje klare tekst moet zien te komen, en het tweede probleem is dat je precies moet weten wat het overeenkomstige stukje cijfertekst is. Het eerste probleem kon overwonnen worden door rekening te houden met de strakke opbouw van Duitse, militaire berichten. Een voorbeeld van berichten met strakke opbouw waren weerberichten, die ook versleuteld werden met de Enigma. Zo was de eerste crib die gevonden werd op D-Day: ‘WETTERVORHERSAGEBISKAYA‘[1] (weersverwachting voor Biskaje). Het tweede probleem wordt ten eerste verminderd door de vaste structuur van de berichten, maar ook door het feit dat de Enigma een letter niet als zichzelf kan vercijferen. De positie van de crib kan dan worden bepaald door de crib langs de cijfertekst te schuiven, net zo lang totdat er geen letter meer als zichzelf vercijferd wordt. Stel dat een deel van de cijfertekst . . . VPZRKHXTLDHMYALQEXUNAKCKZJ. . . is, dan kunnen we daar onze crib onder zetten: VPZRKHXTLDHMY[A]LQEXUN[A]KCKZJ WETTERVORHERS[A]GEBISK[A]YA We zien dat er nu twee keer een letter als zichzelf wordt vercijferd. Als we de crib een plek naar rechts opschuiven krijgen we: VPZRKHXTLDHMYALQ[E]XUNAKCKZJ WETTERVORHERSAG[E]BISKAYA Nog een plek naar rechts en we krijgen: VPZRKHXTLDHMYALQEXUNA[K]CKZJ WETTERVORHERSAGEBIS[K]AYA 5
En pas als we de crib nog een plek naar rechts opschuiven zijn er geen overlappende letters, dus hebben we een mogelijke positie gevonden voor deze crib. Het vinden cribs was niet eenvoudig. Soms stuurden de geallieerden, om een crib te vinden, vliegtuigen uit die mijnen moesten gooien in een gebied waarvan ze wisten dat er een Duitse onderzee¨er in de buurt was. De berichten die deze onderzee¨er dan zou sturen zouden bijna zeker het woord ’minen’(mijnen) bevatten, samen met een bekende locatie. Dit kon dienen als crib.
4.2
Combinatoriek
De Bombe is een machine die in staat is om snel verschillende mogelijkheden van de rotoren uit te proberen en op die manier de Enigma te kraken. Het aantal mogelijkheden om de Enigma in te stellen is echter te groot om domweg alle mogelijkheden uit te proberen. De te doorzoeken sleutelruimte is namelijk ongeveer 1 · 1023 [2]. Dat dit getal zo groot is komt voornamelijk door het stekkerbord. Voor die instelling zijn namelijk 1.5 · 1014 mogelijkheden. Om de Enigma te kraken is het echter niet nodig om alle mogelijkheden van het stekkerbord uit te proberen. Dit zorgt ervoor dat de te doorzoeken sleutelruimte een stuk kleiner wordt. Verder wordt ervan uitgegaan dat de middelste rotor en de meest linkse rotor niet draaien tijdens de encryptie van de crib. Dit is natuurlijk in zijn algemeenheid niet waar, maar als je een crib vindt van 26 letters, dan kan je die opsplitsen in twee cribs van 13 letters, zodat een van de twee voldoet aan deze voorwaarde[1]. Door deze aanname, dat de middelste rotor niet draait, is de ringstellung ook niet meer van belang. Dit scheelt weer een factor 676. Hierdoor wordt de te doorzoeken sleutelruimte 60 · 17576 = 1054560. Dat is het aantal mogelijke manieren om drie rotoren te kiezen en op volgorde te zetten, maal het aantal startposities van de drie rotoren.
4.3
Automatische logische deductie
Om te kijken hoe het kraken in zijn werk ging, kijken we weer naar ons voorbeeld: 1 R W
2 K E
3 H T
4 X T
5 T E
6 L R
7 D V
8 H O
9 M R
10 11 12 13 14 15 16 17 18 19 20 21 22 23 Y A L Q E X U N A K C K Z J H E R S A G E B I S K A Y A
Als we nu kijken naar kolom 2, 11 en 21 dan zien we een kringetje. Namelijk, de K wordt op positie 2 versleuteld naar een E, de E wordt op positie 11 versleuteld als een A (let op dat versleutelen en ontsleutelen bij de Enigma hetzelfde zijn) en ten slotte wordt op positie 21 de A weer versleuteld naar een K. We noteren de encryptiefunctie van de Enigma op positie i als Si . Dus we kunnen het kringetje als volgt noteren: S21 (S11 (S2 (0 K 0 ))) =0 K 0 . Nu moet er een instelling van de Enigma gevonden worden die aan deze relatie voldoet. Dit is de basis van de Bombe. Turing bedacht een machine met drie Enigma’s achter elkaar, de eerste ingesteld op S2 , de tweede op S11 en de derde op S21 . Vervolgens moest de uitvoer van de eerste Enigma aan de tweede worden 6
verbonden, en die van de tweede aan de derde. Als de Enigma’s correct waren ingesteld en er zou op de ’K’ worden gedrukt op de eerste Enigma, dan zou de K moeten gaan branden op de derde Enigma. Als we echter nu alle mogelijke instellingen van de Enigma gaan proberen zijn we niks opgeschoten, de hoeveelheid werk is niet afgenomen. Maar hier zit een belangrijk punt. Als de uitvoer van een Enigma gekoppeld wordt aan de invoer van een andere Enigma, dan zal het effect van het stekkerbord bijna tenietgedaan worden. Bij het indrukken van de ’K’ zal deze letter door het stekkerbord worden vervangen door een andere letter, zeg L1 . Vervolgens zal L1 door de rotoren en de reflector omgezet worden in een volgende letter L2 en dan door het stekkerbord worden omgezet in een ’E’. Als deze letter de tweede Enigma binnenkomt zal deze eerst door het stekkerbord worden teruggezet in L2 en vervolgens door de rotoren in de tweede Enigma worden omgezet in L3 en door het stekkerbord in ’A’. Deze letter wordt vervolgens in de derde Enigma weer teruggezet in L3 en door de rotoren worden versleuteld in L4 . Nu zou het stekkerbord L4 moeten omzetten in een ’K’, onze ingevoerde letter, anders is de instelling van de Enigma’s verkeerd. Om de Bombe te kunnen bouwen, werden er reflectoren gemaakt die de stroom niet terugsturen, maar doorsturen in dezelfde richting, daarachter stonden dan drie speciale rotoren die als geheel de hele werking van de rotoren en reflector nabootsten, met als belangrijk verschil dat de stroom van de ene naar de andere kant ging en niet er aan dezelfde kant weer uit kwam. Zo konden meerdere van deze groepjes achter elkaar gezet worden, zonder een stekkerbord. Nu werden de uitgangen van het laatste groepje met lampjes verbonden aan de corresponderende ingangen van het eerste groepje. Als de rotoren op de goede positie staan, dan is er een gesloten stroomkring die loopt van L1 tot en met L4 (gelijk aan L1 ) aan de andere kant die met L1 verbonden is met een lampje. Om de een bepaalde positie van de rotoren te testen werd er stroom gezet op een van de ingangen. Als de rotoren op de goede positie staan en de ingang (bij toeval) L1 is, dan gaat er maar ´e´en lampje branden. Als de rotoren wel op de goede positie staan maar er stroom wordt gezet op een andere ingang dan L1 , zeg F1 dan wordt deze letter vercijferd in een willekeurige letter aan de andere kant. De kans is nu klein dat dit weer F1 is. Waarschijnlijk is het een andere letter F2 , die ingang wordt nu ook onder stroom gezet en F2 wordt nu ook vercijferd in een F3 waarschijnlijk ongelijk aan F1 en F2 . Bij een goede crib gaan er nu 25 lampjes branden en we weten nu dat er een kringetje zit bij het lampje dat niet gaat branden. Als de rotorinstelling echter verkeerd is, dan zou het nog steeds kunnen dat er een kringetje in zit, die zal dan gevonden worden als een mogelijke key. Als er echter (veel waarschijnlijker) geen kringetje in zit dan zullen, bij een goede crib, alle 26 lampjes gaan branden. Als dat het geval is kunnen we deze rotorpositie uitsluiten en doorgaan naar de volgende positie. Zo werden alle 17576 posities gecontroleerd op alle 60 mogelijke keuze van rotoren. Al deze 60 keuzes werden parallel gecontroleerd.[6] In het voorbeeld hierboven hebben we gewerkt met een kringetje, maar dat zou in de praktijk niet genoeg posities hebben kunnen uitsluiten. Daarom 7
werden er meerdere kringetjes tegelijk gegecontroleerd zodat er wel voldoende startposities werden uitgesloten.
4.4
Diagonal board
Het diagonal board is een toevoeging van Gordon Welchman die ervoor zorgt dat de Bombe minder vaak stopt voor een foute startpositie. Het is gebaseerd op het feit dat als de ’A’ aan de ’B’ gestekkerd zit, dat dan ’B’ ook aan de ’A’ gestekkerd zit. Dit werd gedaan door te kijken naar L1 , we weten (in ons voorbeeld) dat L1 wordt verwisseld met ’K’. We weten dat het stekkerbord L2 verwisseld met ’E’. Stel nu dat L2 =0 K 0 , dan weten we dat L2 gestekkerd zit met ’K’, maar L2 zat ook al gestekkerd met ’E’ en een letter kan maar met een andere letter gestekkerd zijn. Daarom zal dit leiden tot tegenspraak. Het diagonal board is een toevoeging aan de Bombe die automatisch deze vorm van inconsistenties controleert en hierdoor vermindert het aantal foute stops van de Bombe enorm.
5
Conclusie
Toen de Fransen het ontwerp van de Enigma in handen kregen, dachten ze dat de Enigma onkraakbaar was. De Polen deden wel veel moeite om de Enigma te kraken en hadden uiteindelijk succes met de Bomba. Toen de Duitsers nieuwe rotoren introduceerden hadden ze niet meer de middelen om hun Bomba te vergroten en stuurden ze hun bevindingen op naar de Fransen en de Engelsen die toen inzagen dat de Enigma kraakbaar was. Zij hebben uiteindelijk de Bombe uitgevonden en daarmee hebben zij de berichten van de Duitsers kunnen kraken. Bij het kraken hebben we het nog niet gehad over een aantal bijkomende moeilijkheden. Bijvoorbeeld over hoe de berichten onderschept werden. Een ander belangrijk feit wat we even hebben genegeerd is dat de Bombe soms werd ingesteld op een crib die niet juist was en zo dus niet met een zinnig antwoord kwam. Een laatste probleem is het gebruik van de geheime informatie die door het kraken van de Enigma verkregen werd. De geallieerden wilden voorkomen dat de Duitsers erachter zouden komen dat de Enigma was gekraakt en dat als een gevolg daarvan sommige belangrijke informatie achterhielden, om geen argwaan te wekken bij de Duitsers. Hoewel de Enigma een onkraakbaar systeem leek, is het dus toch gelukt om veel berichten te ontcijferen. Een onmisbaar onderdeel van het kraken was de Bombe. Door het slimme ontwerp van deze machine hebben de geallieerden veel geheime berichten kunnen lezen. Zonder de successen van de Bombe had de oorlog makkelijk twee jaar langer kunnen duren, en waren er ook veel meer slachtoffers geweest in de Tweede Wereldoorlog[3].
8
References [1] Graham Ellsbury. The enigma and the bombe. http://www.ellsbury.com/ enigmabombe.htm. [2] Dr. A. Ray Miller. The cryptographic mathematics of enigma. NSA, 2001. [3] Bletchley Park. Machines behind the codes. http://www.bletchleypark. org.uk/content/machines.rhtm. [4] Stephan Pincock. Codebreaker. Walker Company, 2006. [5] Dirk Rijmenants. Technical details of the enigma machine. http://users. telenet.be/d.rijmenants/en/enigmatech.htm. [6] Tony Sale. Alan turing, the enigma and the bombe. http://www. codesandciphers.org.uk/virtualbp/tbombe/tbombe.htm. [7] Simon Singh. The Code Book. Fourth Estate Limited, 1999.
9