Op deze pagina vindt u
de technische details van de Wehrmacht en
Luftwaffe Enigma, en de Kriegsmarine Enigma M4. U
kunt alle foto's in hogere resolutie bekijken
door ze aan te klikken.
Enigma Tech Menu
|

|
|
Wehrmacht Enigma I
© D. Rijmenants
|
|
Enigma M4
© D. Rijmenants
|
|
Stroomdiagram van de Enigma 
De Enigma-machine is een
elektromechanisch toestel, bestaande uit een toetsenbord
(Duits type QWERTZ), een lampenpaneel dat het alfabet
voorstelt, en drie of vier rotors waarvan de interne
bedrading telkens een alfabetische substitutie uitvoert.
Bij het indrukken van een letter op het toetsenbord
beweegt een stappenmechanisme de rotors en vertaalt het
elektrisch systeem de toets in een oplichtende lamp die
de gecodeerde letter voorstelt. Er bevindt zich een
batterijvak in het toestel maar op het frontpaneel er is
ook een aansluiting voorzien om de machine te voeden met
een uitwendige stroombron, of men kan de ingebouwde
kleine transformator gebruiken om het toestel op het
elektriciteitsnet aan te sluiten.

|
Een Enigma I met
open deksel. Van links naar rechts: de B
reflector, de drie rotors, de
ingangsrotor (zwart) en het batterijvak
(zwart vierkant). Onder het batterijvak
zien we de contacten van de schakelaar.
Onder de rotors ligt het lampenpaneel. Op
de tweede rij van het lamppaneel links
zit een reservelampje en rechts een
uitsparing om lampjes te testen. © Foto D.
Rijmenants
|
|
In bovenstaande voorbeeld vloeit de
stroom van de batterij [1] via de ingedrukte
wisselschakelaar toets A [2] naar het stekkerbord of
"Steckerbrett" [3]. De stroom gaat door de
ongebruikte en daarom doorverbonden A socket [3] via de
vaste ingangsrotor of "Eintrittwalze" [4] door
de bedrading van de drie rotoren of "Walzen"
[5] om bij de reflector of "Umkehrwalze" [6]
aan te komen. De reflector stuurt het signaal via een
ander pad terug door de rotors [5] en de ingangsrotor [4]
en vervolgens via het stekkerbord naar de geopende S
socket [7]. De kabel met twee stekkers of
"Stecker" [8] stuurt het signaal via de D
socket naar toets D [9] om gloeilamp D te laten branden.
Het stekkerbord stuurt en ontvangt het
signaal van en naar de vast ingangsrotor, rechtstreeks of
omgewisseld met een andere letter via een snoer met twee
stekkers. Als er geen stekker in een socket zit, zijn de
twee zijden van die socket met elkaar verbonden via een
brug (rode balkje). Wanneer een stekker wordt ingestoken,
wordt de brug opgetild, waardoor de twee zijden van de
socket losgekoppeld zijn en wordt het signaal omgeleid
via de stekkers. Het is onmogelijk om de stekkers
verkeerd in de sockets te steken omdat de stekkers een
dikke en dunne pin hebben.
Opgelet: Bij vercijfering zal het
indrukken van de toets eerst de rotors voortbewegen en
daarna de stroom door rotors en lamp sturen. Als de toets
wordt losgelaten gaat de lamp uit. Is er geen toets
ingedrukt, dan is de rotorpositie, zichtbaar in de kleine
venstertjes, dus de rotorpositie van de vorige
vercijferde letter!
Onderstaande afbeelding toont de
mechanische en elektrische opstelling van de Enigma,
gezien van de rechterkant. In dit voorbeeld de bedrading
met drie toetsen, drie lampjes en één stekker-snoer.
Rechts de aansluiting op de vaste ingangsrotor, het
batterijvak (grijze zone) en de spannings-selector. In
werkelijkheid is de bedrading gegroepeerd in bundels van
26 draden naar het stekkerbord, de ingangsrotor en
lampenpaneel. Zie
ook 3D video.

De Rotors 
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.
|
|
De drie rotors op hun as
© D. Rijmenants
|
|
Linkerzijde rotor met de nok
(links)
© D. Rijmenants
|
|
Rechterzijde rotor met tanden
© D. Rijmenants
|
|
Kriegsmarine rotor met twee
nokken
(klik om te vergroten)
© D. Rijmenants
|
|
Wehrmacht
ring met pin
© D. Rijmenants
|
|
Kriegsmarine
ring met bogen
© D. Rijmenants
|
|
De reflector 
De reflector,
Umkehrwalze of UKW in het Duits, is wat de Enigma
machine onderscheidde van andere
elektromechanische codeertoestellen. Bij de
interne bedrading van de beweegbare rotors kan
elke letter met een andere verbonden worden. Zo
kan A met F verbonden
worden, en F met K. Bij
de reflector worden de letters echter in lussen
verbonden. Als A met F is
verbonden, is dit ook omgekeerd het geval.
Hierdoor ontstaat een reciproke codering. Het
grote voordeel is dat wanneer bijvoorbeeld
G in X wordt gecodeerd,
men enkel maar dezelfde codering hoeft toe te
passen op de X om de G
terug te bekomen. Hierdoor hoefde de operator
tijdens het decoderen geen andere handelingen uit
te voeren dan tijdens het coderen. Een nadeel dat
later een zwakke schakel in de codering bleek, is
dat een letter nooit in zichzelf gecodeerd kan
worden.Tijdens de Tweede
Wereldoorlog zijn voor de Wehrmacht machine twee
typen reflectors gebruikt: B en C. Beiden hebben
verende contacten. De vier-rotor Kriegsmarine
Enigma had speciale smalle reflectors, ook B en C
genoemd, maar met een andere interne bedrading.
Deze waren echter compatibel met de brede B en C
reflectoren indien de smalle B met de Beta rotor
in A positie of small C met Gamma rotor gebruikt
werd. Hierdoor was communicatie tussen Wehrmacht,
M3 en M4 modellen mogelijk. De smalle reflectors
hadden geen verende maar vaste vlakke contacten.
Daarom hadden de speciale Beta en Gamma rotors
verende contacten aan beide zijden.
Tegen het einde van de oorlog
werd de D reflector geïntroduceerd in de
Luftwaffe. Deze kon door middel van 12 draden met
24 stekkers worden aangepast. De dertiende
verbinding was vast aangebracht. De
vier-rotormachines van de Kriegsmarine zijn
voorzien van speciale smalle reflectors, ook B en
C genaamd, maar met een andere interne bedrading.
Interne bedrading van rotors en
reflectors 
De interne bedrading en rotatie
van de rotors voert de eigenlijke encryptie uit.
In alle volgende tabellen is de "input"
zijde de rechterzijde van de rotor, zoals gezien
in de machine. We zien dat bij de rotor type I
een 'A' vercijferd wordt als een 'E', een 'B' als
'K', en een 'K' als 'N'.
De letters A tot Z zijn slechts
de benaming van de pin-posities op de rotors.
Deze letters hebben absoluut niets te maken met
de signaal-route of letters door de machine, of
de letters van toetsen of stekkerbord. Het
"A" signaal, komende van het
stekkerbord, kan net zo goed toekomen op de
"X" pin van de rotor, afhankelijk van
de huidige rotatiepositie en ringinstelling van
die rotor.
Hieronder de tabel met de
bedrading van de standaard rotors voor Wehrmacht,
Luftwaffe en Kriegsmarine:
Input = ABCDEFGHIJKLMNOPQRSTUVWXYZ (rechterzijde rotor)
||||||||||||||||||||||||||
I = EKMFLGDQVZNTOWYHXUSPAIBRCJ
II = AJDKSIRUXBLHWTMCQGZNPYFVOE
III = BDFHJLCPRTXVZNYEIWGAKMUSQO
IV = ESOVPZJAYQUIRHXLNFTGKDCMWB
V = VZBRGITYUPSDNHLXAWMJQOFECK
|
|
De B reflector van de Wehrmacht
Enigma
© D. Rijmenants
|
Kriegmarine Beta rotor met
smalle B reflector
© D. Rijmenants
|
|
Bijkomende rotors,
enkel gebruikt door Kriegsmarine voor het M3 en
M4 model:
Input = ABCDEFGHIJKLMNOPQRSTUVWXYZ (rechterzijde rotor)
||||||||||||||||||||||||||
VI = JPGVOUMFYQBENHZRDKASXLICTW
VII = NZJHGRCXMYSWBOUFAIVLPEKQDT
VIII = FKQHTLXOCBJSPDZRAMEWNIUYGV
|
De speciale vierde rotor, ook
wel Zusatzwalzen of Griekse rotors genoemd. Enkel
gebruikt bij de Kriegsmarine M4:
Input = ABCDEFGHIJKLMNOPQRSTUVWXYZ (rechterzijde rotor)
||||||||||||||||||||||||||
Beta = LEYJVCNIXWPBQMDRTAKZGFUHOS
Gamma = FSOKANUERHMBTIYCWLQPZXVGJD
|
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:
Contacten = ABCDEFGHIJKLMNOPQRSTUVWXYZ
||||||||||||||||||||||||||
Reflector B = YRUHQSLDPXNGOKMIEBFZCWVJAT
Reflector C = FVPJIAOYEDRZXWGCTKUQSBNMHL
|
De smalle Kriegsmarine
reflectoren, enkel gebruikt bij het M4 model:
Contacten = ABCDEFGHIJKLMNOPQRSTUVWXYZ
||||||||||||||||||||||||||
Reflector B smal = ENKQAUYWJICOPBLMDXZVFTHRGS
Reflector C smal = RDOBJNTKVEHMLFCWZAXGYIPSUQ
|
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.
De rotor encryptie
Een rotor bestaat uit twee
hoofddelen. Het eerste deel is de beweegbare ring
met het alfabet (zichtbaar in het kleine
venstertje) en nok voor het stappen van de
rotors. Het tweede deel is de kern met de
inwendige bedrading (de eigenlijke codering) en
de 2 x 26 contacten. Deze kern is bevestigd aan
het grote duimwiel. De positie van de ring
veranderen noemt men de ringinstelling of
'Ringstellung' en veranderd de positie van de
alfabet-ring en zijn nok, ten opzichte van de
interne bedrading.
The route van het elektrisch
signaal begint van rechts naar links. Het signaal
komende van het stekkerbord komt toe op de vaste
ingangsrotor, rechts in het rotor-compartiment,
en gaat van rechts naar links verder door de
rechtse, de middelste en uiteindelijk de linkse
rotor. Eens door alle drie rotors (of vier bij
M4) gaat het signaal in de reflector die het
signaal terugstuurt door de linkse, middelste en
rechtse rotor, en dit via een volledig andere
route, wat een heel andere encryptie veroorzaakt
dan de eerste passage. Het is duidelijk dat de
combinatie van rotor-bedradingen, rotor posities
en ring-instellingen met onregelmatig stappen van
de rotors een zeer complexe encryptie
veroorzaakt. Eén enkele stap van een rotor
veroorzaakt een volledig andere route door de
drie rotors.
Denk er aan dat, wanneer men
een toets indruk, de rotors voortbewegen alvorens
het elektrische signaal door de rotors loopt. Om
de weg van de stroom door de rotor in A positie
te volgen moet men de rotor dus in Z positie
zetten alvorens de toets in te drukken (zo ook
bij de andere rotors indien die net gaan
bewegen)! In de voorbeelden hierboven zijn er
geen stekkers gebruikt op het stekkerbord en gaat
het signaal dus van de A toets rechtstreeks via
de ingangsrotor naar rotor I.
In de onderstaande afbeeldingen
gebruiken we de Enigma rotor type I (Romeinse 1).
De verstelbare ring is het verticaal grijze
gedeelte. De bedradingskern, met het duimwiel
eraan vast, is het lichtere gedeelte (in
werkelijkheid staan er geen letters op het lichte
vlak). De positie van de rotor is aangegeven door
de letter in het zwarte kadertje (het venstertje
op het deksel). De kleine zwarte rechthoek,
rechts van de ring, is de vergrendelingspin om de
ring vast te zetten, en geeft de ringinstelling
aan.
De letters rechts buiten de
rotor zijn de pinnen van de ingangsrotor. De
letters links buiten de rotor zijn ook uitgelijnd
met de letters van de vaste ingangsrotor. De A
pin gaat enkel naar de rechts A pin van de
volgende rotor als die volgende rotor in de
dezelfde positie staat met dezelfde
ringinstelling!
De eerste voorbeelden tonen hoe rotor I
met ringinstelling A-01 (pin of dot langs A) en
twee opeenvolgende toetsaanslagen van de letter
A. Weet dat de rotor in de Z positie was voor de
toets werd ingedrukt en de rotor nu naar de A
positie is bewogen.
Links ziet u rotor I in de A
positie (zichtbaar in kleine venstertje). Het
signaal komende van de A toets komt aan bij de
vaste ingangsrotor op de A positie, gaat in de
rotor op A positie en via de inwendige bedrading
naar het E contact dat zich op de E positie
bevindt.
Rechts ziet u dat de rotor
één stap werd voortbewogen naar de B positie.
Het signaal komt weer toe op de ingangsrotor A
positie, gaat de rotor in via het B contact en
door de bedrading naar het K contact. Aangezien
de hele rotor één positie verschoven is, bevind
het K contact zich nu echter op de J positie en
zal het signaal daarom de rotor verlaten op de J
positie naar de volgende rotor!
Op de rotors is de
'Ringstellung' aangeduid door de blokkeerpin
(Wehrmacht) of door een kleine dot markering
(Kriegmarine) op de draaibare kern van de rotor
en toont de positie van het eerste contact (A)
van de bedrading. Ringinstelling F of 06 zal de
letter C of de cijfers 06 op de buitenste ring
dus op één lijn brengen met het eerste contact
van de rotor, aangeduid met de pin of dot.
Als de ringsinstelling één
positie verschuift zal ook en encryptie één
positie verschuiven. De ringinstelling mag niet
verward worden met de rotorpositie, aangeduid
door de letter op de buitenste ring, zichtbaar is
in het kleine venstertje op het deksel van de
machine.
|
De volgende voorbeelden tonen het effect
van verschillende ringinstellingen.Links ziet u rotor I met een
ringinstelling B-02 (pin of dot op B) en de rotor
staat in de A positie (zichtbaar in het kleine
venster). Het signaal van de ingedrukte A toets
kom toe op ingangsrotor A positie, en lijkt van
buitenaf de rotor binnen te gaan op de A positie
In werkelijkheid gaat het signaal de rotor binnen
op het Z contact en verlaat de rotor via het J
contact.
Vanwege de ringinstelling is de
bedradingskern één positie opgeschoven en de
uitgangscontacten zijn dus ook opgeschoven.
Daarom bevindt het J contact zich nu in de K
positie en verlaat het signaal de rotor dus in de
K positie naar de volgende rotor. Het is
verwarrend, maar dat was ook de bedoeling van de
ringinstelling.
Rechts ziet u dezelfde rotor I,
maar met ringinstelling F-06. De rotor staat in
de Y positie. Het signaal komt toe op de
ingangsrotor A positie en gaat via het rotor T
contact door de bedrading naar het P contact.
Echter, de combinatie van de rotorpositie en de
ringinstelling veroorzaakt een verschuiving van
zeven posities van alle uitgangscontacten. Daarom
bevindt het P contact zich nu in de U positie en
verlaat het signaal de rotor dus in de W positie
naar de volgende rotor.
Weet dat het signaal de drie
rotors aan de linkerkant verlaat en de reflector
vervolgens het signaal terug naar rechts door de
rotors stuurt, ditmaal via een andere complexe
route, afhankelijk van de rotorposities en
ringinstellingen.
Er is een uitstekende online Java Enigma
simulator van Daniel Palloks om mee te
experimenteren. De simulatie toont duidelijk de
route van het signaal door de rotors. Klik de
knop "Show Monitor". In die monitor,
PLG is plugboard, ETW is ingangsrotor, -W- zijn
de rotors, en UKW is de reflector. Groene pijlen
zijn heen, rode pijlen terug,
Het stappenmechanisme 
|
Het continu veranderen
van de positie van de verschillende rotors zorgt
ervoor dat elke letter telkens weer anders
gecodeerd wordt. De rechtse (snelste) rotor
beweegt telkens wanneer een toets gedrukt wordt.
De middelste rotor beweegt slechts éénmaal per
26 stappen van de rechtse rotor (wanneer de
rechtse rotor één nok heeft). De linkse rotor
beweegt éénmaal per 26 stappen van de middelste
rotor.Bij het drukken
van een toets beweegt het stappenframe [1] naar
beneden en de as [2] met drie (spiraal-verende)
pallen omhoog. Als deze as omhoog komt bewegen de
pallen in de richting van de rotors. Elke pal [3]
is voor de helft geplaatst over de alfabetring
(met nok) van de ene rotor; de andere helft over
de getande ring van de rotor links daarvan.
Als een rotor in zijn
nok-positie staat kan zijn pal verder richting
rotor bewegen, in de getande ring grijpen en de
rotor één stap voortbewegen. Als de rechtse
rotor niet in de nok-positie is zal de pal over
zijn nok-ring glijden en niet in de tanden van de
rotor links ervan kunnen grijpen. Gezien er
rechts van de meest rechtse rotor geen rotor is
met nok, zal de rechtse pal bij elke toetsaanslag
de rotor voortbewegen.
Wanneer er geen toets gedrukt
is, duwt de as [2] de drie pallen naar beneden.
De onderkant van de pal-constructie duwt hierdoor
tegen de bodem van het toestel waardoor de
bovenkant van de pal - die in de tanden of nok
grijpt - wordt weggedrukt van de rotor. Hierdoor
kan men alle rotors manueel in beide richtingen
draaien indien er geen toets ingedrukt is.

De positie van de nok is
verschillend voor elk van de rotors. In
onderstaande tabel zien we dat rotor I een nok
heeft aan letter Y. Als deze nok tegenover zijn
pal staat is de letter Q zichtbaar in het kleine
venstertje. Daarom zal de rotor links van rotor I
een stap maken als rotor I van Q naar R stapt
(cryptanalisten gebruikten het ezelsbrugje Royal
Flags Wave Kings Above
om de posities van de rotors na het stappen te
onthouden). Bemerk dat de Kriegsmarine rotors VI,
VII en VIII twee in plaats van één nok hebben.
Hierdoor zal de rotor links van zo'n rotor eens
zo snel voortbewegen als normaal.
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
bevestigd aan het stappenframe (zilveren
L-vorm). Rechts van de pallen is de vaste
ingangsrotor.
© D. Rijmenants
|
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. © D. Rijmenants
|
|
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 wordt 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.van één nok hebben. Hierdoor zal de
rotor links van zo'n rotor eens zo snel voortbewegen als
normaal.
Het stekkerbord 
Het stekkerbord of
Steckerbrett werd in 1930 geïntroduceerd op de
eerste versies van de Wehrmacht. Dit stekkerbord
is vooraan de machine geplaatst. Zonder stekkers
vloeit de stroom van elke toets naar de
corresponderende letter van de ingangsrotor.
Indien een kabel met twee stekkers wordt
geplaatst, verbindt men een letterpaar.Hierdoor worden de twee letters
gewisseld voor ze naar de ingangsrotor gaan. Er
werden standaard per machine een set van 10
kabeltjes voorzien. Het stekkerbord was een
uitbreiding die de sterkte van encryptie van de
Enigma-machines flink verbeterde.
Elke letter heeft twee bussen.
Inbrengen van een tweepolige stekker verbreekt de
bovenste bus, komende van het toetsenbord, en de
onderste bus, die naar de ingangsrotor gaat. De
stekker aan het andere einde van de gekruiste
kabel steekt in een andere letter, waardoor de
verbinding tussen de twee letters gewisseld
wordt.
|
Het stekkerbord van de Wehrmacht
Enigma
© D. Rijmenants
|
|
Accessoires

Een
handige toevoeging aan de M4 Enigma was de
Schreibmax, een kleine printer die op een smalle
papierstrook de 26 letters kon afdrukken,
waardoor een tweede operator voor het aflezen van
de lampjes overbodig was. De Schreibmax werd
bovenop de Enigma-machine geplaatst en was
aangesloten op het lampenpaneel. Hiervoor dienden
het lampenpaneel en alle lampjes verwijderd te
worden.De taak van de
tweede operator kon ook vereenvoudigd worden door
een extern lampenpaneel of Fernlesegerät. Als de
machine was voorzien van zo'n extern paneel was
de behuizing van de Enigma breder om het extra
paneel te kunnen bewaren. Er was ook een
uitvoering die nadien kon aangesloten worden,
maar daarvoor moest net als bij de Schreibmax het
lampenpaneel en de lampjes verwijderd worden. Een
ander voordeel van dit paneel was extra
veiligheid. Een gemachtigd persoon kon het
ontcijferde bericht lezen, terwijl dit voor de
operator onzichtbaar was.
In 1944 werd op de Luftwaffe
Enigma een extra mechanisme geïntroduceerd, de
zogenaamde Uhr (klok). Dit was een los kastje met
daarin een schakelaar met 40 standen. Hiermee kon
men de kabels, ingesteld volgens de
Tagesschlüssel op eenvoudige wijze op 40
verschillende manieren verbinden. De meeste van
deze instellingen waren niet paarsgewijs, zoals
gebruikelijk met de normale kabels.
|
De Uhr met zijn kabels die de
normale stekkers vervangen.
© D. Rijmenants
|
|
Mathematische veiligheid 
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
ringinstelling 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
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 kabeltjes 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).
Het stekkerbord levert de grootste brok
combinaties. De eerste stekker van een kabel kan elk van
de 26 posities hebben en de tweede stekker 25 posities.
Omdat elke combinatie en het omgekeerde daarvan identiek
zijn (A-B is hetzelfde als B-A) moeten we alle dubbele
combinaties eruit halen. We hebben dus (26 x 25) / (1! x
21) of 325 unieke manieren om één kabel te
verbinden. Voor twee kabels hebben we (26 x 25) voor de
eerste kabel en, aangezien er al twee stekkers gebruikt
zijn, (24 x 23 ) voor de tweede kabel. We moeten nu
rekening houden met de dubbele combinaties voor twee
kabels, dus (26 x 25 x 24 x 23) / (2! x 22) =
44.850 unieke combinaties. Voor drie kabels hebben we dan
(26 x 25 x 24 x 23 x 22 x 21) / (3! x 23) =
3.453.450 combinaties, enzovoort. Voor het standaard
aantal van 10 kabels hebben we dus 150.738.274.937.250
verschillende manieren om de kabels te verbinden op het
stekkerbord. De formule, met n als het aantal
kabeltjes, is 26! / (26 - 2n)! · n! ·
2n
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 initieel 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!
De Duitsers gingen er
begrijpelijkerwijs van uit dat de Enigma theoretisch
onbreekbaar was, maar een bericht ontcijferen is meer
dan sleutelgrootte, zoeken naar de juiste combinatie en
theoretische veiligheid, en de Poolse en Geallieerde
cryptologen bewezen het ongelijk van de Duitsers.
Meer over Enigma op deze website 
Meer over de technische details van
Enigma (off-site, opent in nieuwe tab) 
Jared Owen Animations creëerde een
uitstekende 3D video van de Enigma I, die in detail alle
bewegende onderdelen toont, inclusief de mechanische en
elektrische processen. Bezoek zeker ook Jared's YouTube channel
met nog veel meer prachtige 3D animaties.