Stroomdiagram van het toestel
|
|||||||||||||||||||||||||||||||||||||||||||||||
![]() |
|
We beschrijven de werking aan de hand van het stroomdiagram hierboven. Om het geheel te vereenvoudigen zijn er telkens slechts vier van elk van de componenten getekend. In werkelijkheid zijn er dus 26 lampjes, toetsen, pluggen en doorverbindingen in de rotors. Van de batterij [1] vloeit de stroom door de wisselschakelaar [2], die bediend wordt door de ingedrukte letter-toets, naar het stekkerbord [3] (Steckerbrett). Dit stekkerbord maakt het mogelijk de bedrading tussen toetsenbord [2] en vaste ingangsrotor [4] (Eintrittwalze) te wijzigen met kabeltjes [8]. De stroom gaat vervolgens van de - ongebruikte en dus gesloten - stekker 'A' [3] door de ingangsrotor [4] en door de drie beweegbare rotors [5] (Walzen), om vervolgens door de reflector [6] (Umkehrwalze) via een andere weg teruggestuurd te worden door de rotors [5], langs het stekkerbord [7], door twee - in ons voorbeeld plug 'S' en 'D' - met een kabeltje doorverbonden stekkers [8], langs een niet ingedrukte toets [9], naar een gloeilamp. Opgelet: Bij vercijfering zal het indrukken van de toets eerst de rotors voortbewegen en daarna de stroom door rotors en lamp sturen. Als de letter-toest wordt losgelaten gaat de lamp uit. Als er geen toets is ingedrukt, is dus de rotorpositie van de vorige vercijferde letter zichtbaar in de venstertjes!
De tekening hieronder toont het inwendige van de Enigma, gezien van rechts, met ongeveer hetzelfde stroomdiagram als hierboven.

De rotors (Walzen in
Duits) zijn de belangrijkste elementen van de codering.
Deze ronde schijven [9] van ongeveer 10 cm zijn
vervaardigd uit bakeliet en metaal, met in het midden een
kern met aan de rechterkant zijn er 26 verende contacten
[6] en aan de linkerzijde 26 vlakke contacten [4] en een
holle as [8]. De contacten aan beide zijden zijn
verbonden door middel van een interne bedrading [5]. Rond
de kern met de bedrading zit een beweegbare ring [3] met
26 letters of cijfers en een nok [1]. Deze ring kan
gedraaid en vergrendeld worden met een verende pin [7]
(Wehrmacht) of twee verende bogen (Kriegsmarine) zodat de
positie ten opzichte van de interne bedrading wijzigt.
Dit is de ringinstelling of Ringsstellung en deze positie
is zichtbaar met een dot markering [2]. Elke rotor heeft
aan één zijde een getande ring [10] en aan de andere
zijde een nok [1]. Beiden worden gebruikt om met het
stappenmechanisme de rotors te bewegen. De rotors kunnen
ook manueel in de gewenste positie gezet worden. De
bedrading is de feitelijke code en verschilt voor elk van
de beschikbare rotors. Elke rotor functioneert als een
eenvoudige substitutie-vercijfering. Het is de combinatie
van verschillende rotors in serie, in verschillende
posities, die de codering zo complex maakt.
Initieel werd de Enigma geleverd met drie rotors. Vanaf 1939 werden de Wehrmacht en Luftwaffe machines uitgerust met een set van vijf verschillende rotors om uit te kiezen, genaamd I, II, III, IV en V. Deze rotors hadden één nok. De Kriegsmarine werd initieel voorzien van vijf, dan zeven, en tenslotte acht rotors, genaamd VI, VII en VIII. Deze drie extra rotors hadden twee nokken, waardoor de snelheid van rotorbewegingen verdubbelde bij de rotors die volgden op zo'n rotor.
Vanaf begin 1942 werd een vierde rotor,
ook Griekse rotor genoemd, geïntroduceerd op het
beruchte M4 Kriegsmarine model. Er waren twee
verschillende, genaamd Beta en Gamma. Deze waren echter
niet verwisselbaar met de andere rotors. Om een vierde
rotor te kunnen plaatsen werd een nieuwe versmalde
reflector gebruikt waartegen de vierde rotor werd
geplaatst. Deze vierde rotor kon niet bewegen door het
ontbreken van een vierde pal, maar kon manueel in 26
verschillende posities worden gezet.
|
|
|
|
|
|
Bijkomende rotors,
enkel gebruikt door Kriegsmarine voor het M3 en
M4 model:
De speciale vierde rotor, ook wel Zusatzwalzen of Griekse rotors genoemd. Enkel gebruikt bij de Kriegsmarine M4:
In de tabel voor reflectoren zien we dat bij de brede B reflector de 'A' is verbonden met de 'Y', en de 'Y' met de 'A'. Zoals u merkt zijn de letters, in tegenstelling tot de rotor, verbonden in lussen. De normale brede reflectors voor Wehrmacht en Luftwaffe:
De smalle Kriegsmarine reflectoren, enkel gebruikt bij het M4 model:
De hierboven beschreven bedradingen zijn voor de rotors van Wehrmacht, Luftwaffe en Kriegsmarine Enigma's. De rotors van andere versies van het Enigma toestel hebben een andere interne bedrading.
|
|||||
|
| Rotor | Nok | Venster | Rotor links van deze rotor stapt als deze stapt van: |
I II III IV V VI VII VIII |
Y M D R H H + U |
Q E V J Z Z + M |
Q -> R E -> F V -> W J -> K Z -> A Z -> A + M -> N |
|
De drie pallen op hun as, rustend op de bodem-pads. De as is bevestigt aan het stappenframe (zilveren L-vorm). Rechts van de pallen zien we de vaste ingangsrotor. |
|
Tandwielmechanisme van de speciale voorganger van de Enigma G. Bemerk de normale plaatsing van de rotor contacten in plaats de latere speciale G rotors met smalle geschraagde contacten |
Belangrijke opmerking i.v.m. het Stappen: Hoewel het stappenmechanisme op het eerste zicht lijkt te werken als een kilometerteller, is er een belangrijk verschil. Eenmaal per volledige omwenteling zal de middelste rotor twee maal na elkaar een stap zetten. Dit word de dubbel-stap genoemd. Een voorbeeld: KDO, KDP, KDQ, KER, LFS, LFT (gebruikte rotors zijn III,II,I). Een dubbel-stap gebeurt als volgt: Wanneer de eerste (rechtse) rotor in zijn nok-positie staat en men een toets drukt neemt hij de middelste rotor één stap mee. Indien de middelste rotor door deze stap in zijn eigen nok-positie komt kan bij de volgende stap de derde pal de linkse rotor - via de tandring - één stap verder duwen, maar zal diezelfde pal eveneens in de nok van de middelste rotor duwen en deze een stap verder bewegen. Hierdoor stapt de middelste rotor dus twee maal na elkaar. Er dient nog vermeld dat het drukken van een toets eerst de rotors zal bewegen en pas daarna de stroom door de contacten zal laten vloeien om de letter te coderen.
Het stappenmechanisme zoals hierboven beschreven werd gebruikt door de Wehrmacht en de Kriegsmarine machines. De Enigma-G van de Abwehr werkt totaal verschillend. De Enigma-G heeft een draaiende reflector en drie rotors met meerdere nokken met onregelmatige tussenafstanden, die worden aangedreven door tandwielen.
Het stekkerbord
|
|
Accessoires
|
|
Om de mathematische veiligheid van de Enigma machine te berekenen moeten we alle mogelijke verschillende instellingen vinden. Daarvoor moeten we naar de volgende eigenschappen van de machine kijken: de selectie en volgorde van de rotors, hun bedrading, de ringsinstelling op elk van de rotors, de startpositie van de rotors bij het begin van de vercijfering, de reflector en het stekkerbord. Nu zijn er verschillende manieren om het totaal aan combinaties te berekenen. In deze NSA publicatie (pdf) werden alle mogelijke variaties van bedrading voor elk van de rotors en de reflector in acht genomen. Dit resulteert in een astronomische 3 x 10114. Hoewel correct, is dit getal misleidend en geeft het enkel het aantal theoretisch mogelijke variaties weer.
Helaas voor de Duitsers kenden de Geallieerden de machine, de rotors én de inwendige bedrading van die rotors. Daarom dienden ze enkel rekening te houden met het effectief aantal van mogelijke instellingen van de machine, de eigenlijke sleutelgrootte. Dit is wat we de praktische veiligheid noemen, die in het geval van de Enigma vele malen kleiner is dan de theoretische veiligheid. Voor de Duitse cryptologen kon de bedrading van één enkele rotor 4 x 1026 verschillende variaties hebben. Het combineren van drie rotors en een reflector geeft dan al gauw astronomische getallen. Voor de Geallieerde codebrekers, die de inwendige bedrading al kenden, waren er slechts 26 variaties, zijnde elk van de 26 posities die de rotor kon aannemen in de machine. Zij hoefden het immense aantal variaties van de bedrading niet te doorzoeken. De Duitse cryptologen maakten een fatale fout door Auguste Kerckhoff's wet te negeren dat de veiligheid van een cryptografisch systeem nooit mag afhankelijk zijn van de geheimhouding van het systeem (o.a. rotor bedrading, ontwerp) dat sowieso zal gecompromitteerd worden, maar enkel mag steunen op de geheimhouding van de sleutelinstellingen (rotor selectie en instelling, stekkerbord). In het interessante R.A. Ratcliff document voor Cryptologia kunt u lezen hoe gevaarlijk het is om te vertrouwen op theoretische veiligheid.
Laat ons kijken naar alle dingen die we effectief kunnen instellen aan de Enigma en die onbekend zijn voor de codebrekers. In ons voorbeeld nemen we de 3-rotor Wehrmacht Enigma met standaard B reflector en een keuze uit vijf rotors. We gebruiken 10 kabelstjes op het stekkerbord, het standaard aantal dat geleverd werd bij de machine (vraag me niet waarom ze geen 11 kabels gebruikten wat de meeste combinaties zou opleveren).
Om 3 rotors uit een mogelijke 5 te selecteren zijn er 60 combinaties (5 x 4 x 3). Elke rotor, met ander woorden zijn inwendige bedrading, kon in 26 standen staan. Daarom zijn er met 3 rotors 17.576 mogelijke combinaties (26 x 26 x 26). De ring van elke rotor bevat de zichtbare letters/cijfers (hier niet van belang) en de nok die het stappen van de links-volgende rotor bepaald. Elke ring kan in één van de 26 posities ingesteld worden. Aangezien er links van de derde (meest linkse) rotor geen volgende rotors is hebben enkel de ringen van de uiterst rechtse en middelste rotor een effect op de berekening. Dit geeft 676 ring combinaties (26 x 26). De 10 kabeltjes met stekkers kan je op 150.738.274.937.250 verschillende manieren verbinden met het stekkerbord.
In totaal geeft dit: 60 x 17.576 x 676 x 150,738,274,937,250 = 107.458.687.327.250.619.360.000 of 1,07 x 1023
In werkelijkheid kon de Wehrmacht machine dus ingesteld worden op 1,07 x 1023 verschillende manieren, vergelijkbaar met een hedendaagse 77 bit sleutel.
Er zijn enkele bemerkingen bij dit getal. In werkelijkheid is de periode - het aantal stappen alvorens de machine zich herhaalt - iets kleiner dan 17.576. Dit komt door de dubbel-stap eigenschap van het mechanisme. De effectieve periode hangt af van de gebruikte rotors. De drie dubbel-nok rotors van de Kriegsmarine hebben zelfs een nog kleinere periode dan de Wehrmacht rotors aangezien zij meer dubbele stappen van de middelste rotor veroorzaken. De maximum periode maakt echter geen deel uit van de variabele sleutelinstellingen en zal daarom de sleutelgrootte niet beïnvloeden. De Wehrmacht machine kon uitgerust worden met de B of C reflector. Meestal gebruikte een radionet steeds dezelfde reflector aangezien het gebruik van verschillende reflectoren logistieke en praktische problemen veroorzaakte. Als we toch de keuze tussen B en C reflector meerekenen zal dit de sleutelgrootte slechts vermeerderen met een factor 2.
Het toevoegen van de vierde rotor aan de Kriegmarine M4 Enigma, om zijn veiligheid te verhogen, was een mooie maar nutteloze aanpassing. De niet bewegende vierde rotor compliceerde de machine enkel met een factor 26 en kon samen met zijn smalle reflector aanzien worden als een instelbare reflector met 26 posities, waarvan de Geallieerden al snel de bedrading vonden (na 10 maanden paniek). De introductie van de 8 Kriegmarine rotors was een veel betere aanpak. Zij verhoogden het aantal rotor combinaties van 60 naar 336 en brachten een bijkomende complexiteit met de drie dubbel-nok rotors VI, VII en VIII.
Laat ons de praktische sleutelgrootte berekenen van de Kriegsmarine Enigma M4. Deze machine gebruikt 3 gewone rotors, gekozen uit een mogelijke 8 (waarvan drie met dubbele nok). Dit geeft 336 verschillende combinaties (8 x 7 x 6). De M4 heeft ook een speciale vierde rotor, genaamde Beta of Gamma (zonder ring), wat ons twee mogelijkheden geeft. Deze zijn niet compatibel met de andere rotors en kunnen enkel gebruikt worden als vierde (uiterst linkse) rotor. De vier rotors kunnen in 456.976 verschillende posities ingesteld worden (26 x 26 x 26 x 26). De M4 heeft een smallere B of C reflector om de plaatsing van de speciale vierde rotor toe te laten. We houden geen rekening met de keuze van reflector omdat die doorgaans nooit werd veranderd. Ook hier zijn slechts twee ringen van belang aangezien de derde rotor de vierde rotor nooit liep stappen. De M4 werd ook voorzien van 10 kabeltjes voor het stekkerbord.
In totaal geeft dit: 336 x 2 x 456.976 x 676 x 150.738.274.937.250 = 31.291.969.749.695.380.357.632.000 of 3,1 x 1025, vergelijkbaar met een 84 bit sleutel.
Dit is ongeveer 291 keer veiliger dan de Wehrmacht machine. Dit komt geheel op rekening van de verhoogde keuze van rotors (reeds beschikbaar op de M3 vóór de oorlog) en de mogelijke startposities voor 4 in plaats van 3 rotors. Hoewel de vierde rotor wél de mogelijke instellingen verhoogd zorgde hij echter niet voor meer complexiteit bij het vercijferen, aangezien de vierde rotor niet bewoog bij het vercijferingsprocces. Een betere oplossing was wellicht het volledig her-bedraden zijn van sommige rotors op regelmatige basis. Eén enkel variabele rotorbedrading zou de sleutelgrootte verhogen met een factor 4 x 1026 wat veel meer is dan de programmeerbare reflector met zijn 7,8 x 1012 variaties. Eén enkele praktische, dagelijks veranderende rotor met zijn 4 x 1026 variaties zou veel effectiever geweest zijn dan het overschatte niet-bewegende stekkerbord met slechts 2 x 1014 variaties (het stekkerbord werkt met paren). Het gebruik van zo'n rotor, bijvoorbeeld samen met een dunne reflector zoals in de M4, en de twee andere rotors uit een keuze van vier, zou een echte ramp geweest zijn voor de codebrekers. De introductie van zo'n programmeerbare rotor tijdens de oorlog zou echter zeer omslachtig geweest zijn en een logistieke en financiële nachtmerrie blijken, net zoals de programmeerbare D reflector dat bleek te zijn. Te weinig, te laat. De D reflector veroorzaakte aanvankelijk paniek bij de codebrekers, tot zij zich realiseerden dat de D reflector gelijktijdig met standaard reflectors gebruikt werd in dezelfde radionetten vanwege praktische overwegingen. Dit dubbel gebruik maakte het zelfs mogelijk hem met de hand te breken. Meer over de D reflector een andere pogingen op de Enigma geschiedenis pagina.
Elke crypto expert zou ook de 17.576 ring combinaties negeren. Zelfs met een volledig foute ringinstelling zal er initiëel een correcte ontcijfering zijn. Zodra er onleesbare tekst opduikt dient de ring van de rechtse rotor aangepast te worden (een 1/26 kans op succes) en indien je geluk hebt zijn er geen problemen meer voor de volgende 676 letters. Bij minder geluk moest ook de ring van de middelste rotor reeds na 26 ontcijferde letters aangepast worden. Dit alles kon on-the-fly gebeuren. Helaas voor de Duitsers maakte het ontwerp van de ingenieuze Turing Bombe het overbodig om het immense aantal stekkerbord combinaties te doorzoeken, wat meteen een binnenweg van factor 2 x 1014 betekende om hun cribs (gekende stukjes klare en cijfertekst) te linken aan een bepaalde rotor instelling.
Niettegenstaande was het breken van de Enigma nog steeds een enorme uitdaging met een sleutelgrootte die onvoorstelbaar was voor het elektromechanische tijdperk van toen. Met een praktische sleutelgrootte van 1,07 x 1023 was het doorzoeken van alle instellingen onmogelijk in de jaren '40 en is zijn vergelijkbare 77 bit sleutel zelfs enorm naar hedendaagse computernormen. Om u een idee te geven van de grootte van dit getal kan je met 1,07 x 1023 vellen papier (0,1 mm per vel) zo'n 70.000.000 stapels papier maken die elk van de Aarde tot de zon reiken. 1,07 x 1023 millimeter is gelijk aan 11.358 lichtjaren. Een enorm getal dus! De Duitse cryptologen waren correct in hun veronderstelling dat de Enigma theoretisch onbreekbaar was. Het breken van codes is echter meer dan getallen, theoretische veiligheid en zoeken naar de juiste combinatie. Meer over hoe de Geallieerden Enigma ontcijferden vind u op deze pagina.
All afbeeldingen copyright D Rijmenants
| Home Menu Geschiedenis Procedures Technische details Enigma Simulator |