thumb|250px|Een 3-rotor Wehrmacht Enigma in het Imperial War Museum, Londen De Schlüsselmaschine E, ook wel bekend als de Cypher Machine E, is vooral bekend als de Enigma.
De Enigma is een soortnaam van elektromechanische codeermachines van het type rotormachine. Hiermee kunnen berichten gecodeerd worden in andere lettercombinaties dan het origineel, die vervolgens weer terugvertaald kunnen worden door een identieke machine. Enigma is Grieks voor raadsel.
Het Enigma-toestel werd in de jaren twintig op de markt gebracht door Chiffriermaschinen AG en gebruikt door verscheidene Europese bedrijven, diplomatieke diensten en legers, maar werd vooral bekend als codeermachine van de Wehrmacht vóór en tijdens de Tweede Wereldoorlog in nazi-Duitsland.
Mede dankzij de Poolse inlichtingendienst, slaagde de Pool Marian Adam Rejewski er tijdens de Tweede Wereldoorlog in de Enigmacodes te breken, in tegenstelling tot de bewering dat de Britse inlichtingendienst hiervoor verantwoordelijk zou zijn. Het breken van de Enigmacodes bleek een goudmijn aan informatie te zijn. Deze informatie, verkregen door ontcijfering van de geheime Duitse berichten, kreeg de codenaam Ultra en speelde een uiterst belangrijke rol in het verloop van de Tweede Wereldoorlog, vooral in de U-bootoorlog in de Atlantische Oceaan, de veldslagen in Afrika en de Landing in Normandië.
De Enigma-machine had een zeer degelijk ontwerp waarvan de code onbreekbaar leek vanwege een ongeëvenaard cryptografisch veiligheidsniveau. Het waren buitgemaakte codeboeken, fouten door operators en onveilige procedures bij de versleuteling van berichten die het breken van de Enigmacode mogelijk maakten.
Tekenset De tekenset van zowel de klare tekst als de gecodeerde tekst bestond uit de 26 letters van het alfabet. Bijzondere tekens ontbraken, zoals letters met diakritische tekens, cijfers en leestekens. Die werden in de klare tekst door zeldzame combinaties van letters vervangen of weggelaten. De versleutelde versie van een bericht, de cijfertekst, had evenveel letters als de klare tekst.
Beschrijving De Enigma-machine is een elektromechanisch systeem. Het toestel bestaat uit een QWERTZ-toetsenbord (met alleen letters, P links van de Y en L rechts van de M), drie draaiende (de vierde op de M4 draaide niet) contactschijven, rotors genaamd, die worden voortbewogen door een stappenmechanisme, en een paneel met lampjes. De combinatie van het elektrische circuit en de mechanische beweging wordt de vercijfering genoemd. Het indrukken van een toets wordt via het elektromechanisch systeem vertaald in een oplichtend lampje, dat de vercijferde letter voorstelt.
thumb|left|300px|Het volledige stroomdiagram waarbij men kan volgen hoe het indrukken van de A-toets versleuteld wordt in het oplichten van het D-lampje. Het stroomdiagram van de Enigma kan gevolgd worden aan de hand van de afbeelding aan de linkerkant. Deze afbeelding toont een machine met slechts vier letters. In werkelijkheid zijn er 26 letters, 26 lampjes en 26 stekkers, en heeft elke rotor 26 doorverbindingen.
Van de batterij (1) vloeit de stroom door de wisselschakelaar (2), die bediend wordt door de ingedrukte A-toets, naar het stekkerbord (3) (Steckerbrett). Dit stekkerbord maakt het mogelijk de bedrading tussen toetsenbord (2) en de niet draaiende, vaste ingangsstator (4) (Eintrittwalze) te wijzigen met kabeltjes (8). Bij de letter A is momenteel niets aangesloten op het stekkerbord, dus hier verandert niets. De stroom gaat vervolgens van de contactbussen (3) op het stekkerbord, door de ingangsstator (4) en door de drie stapsgewijs draaiende rotors (5) (Walzen) die de letters vercijferen via hun interne bedrading, om vervolgens door de reflector (6) (Umkehrwalze) via een andere weg teruggestuurd te worden door de rotors (5), langs het stekkerbord (7). De stroom arriveert op het stekkerbord bij de letter S. Er is hier in de tekening een kabeltje (8) gelegd tussen S en D, zodat de stroom verdergaat naar de niet ingedrukte toets D (9) en de gloeilamp D laat branden. De A wordt dus vercijferd als D. Bij het indrukken van de D-toets legt de stroom dezelfde weg af in omgekeerde richting en laat het A-lampje branden. Dit is de voor Enigma zo typische reciproque (omkeerbare) versleuteling.
Voeding Er is een batterijvak in het toestel, maar op het frontpaneel is ook een aansluiting voor een uitwendige stroombron, en enkele modellen hadden tevens een aansluiting met geïntegreerde transformator om te werken op netspanning. Er kon ook van een externe transformator gebruikgemaakt worden, omschakelbaar voor diverse spanningen van 110 tot 250 volt; deze kon maximaal vier Enigma's voeden. Sommige toestellen hadden een draaischakelaar voor het selecteren van de stroombron, met een extra stand om de lampjes via een weerstand minder fel te laten branden.
Rotors thumb|De drie rotors los. thumb|Tekening van rotors
De rotors (Walzen in het Duits) waren oorspronkelijk de belangrijkste elementen van de vercijfering. Deze ronde schijven van ongeveer 10 cm zijn vervaardigd uit bakeliet en metaal, met in het midden een verstelbare ring met 26 letters of cijfers, en een hiermee verbonden gladde ring met een uitsparing. Aan de ene kant zijn er 26 verende contacten en de andere zijde bevat 26 vaste, vlakke contacten. De contacten aan beide zijden van de rotor zijn volgens een bepaald schema verbonden door middel van een interne bedrading. De verende contacten van een rotor rusten tegen de vaste contacten van de rotor (of de ingangsstator) rechts ervan. Door de alfabetring, en dus ook de ring met de uitsparing, te verdraaien, kon de positie ten opzichte van de contacten gewijzigd worden (ringinstelling, Ringsstellung).
Deze bedrading vormt het feitelijke versleutelmechanisme van de rotors, en verschilt voor elk van de beschikbare rotors in een set. Elke rotor functioneert als een eenvoudige substitutievercijfering. Het is de combinatie van verschillende rotors in serie, in verschillende posities, die de codering zo complex maakt. Elke rotor heeft aan één zijde een getande ring en aan de andere zijde een gladde ring van dezelfde diameter voorzien van een uitsparing. Beide worden gebruikt om met het stappenmechanisme de rotors te bewegen. De rotors kunnen ook handmatig in de gewenste positie gezet worden, dit vormde een deel van de dagelijks te veranderen begininstelling; deze instelling werd na elk bericht weer gewijzigd.
thumb|left|250px| 1. ring met uitsparing 2. markering "A"-ringinstelling 3. alfabetring 4. vlakke contacten 5. interne bedrading 6. verende contacten 7. omhulling en vergrendeling van ringinstelling 8. aslager (naaf) 9. wiel 10. tandring
Vanaf 1939 gebruikten de Wehrmacht en Luftwaffe vijf verschillende rotors, genaamd I, II, III, IV en V. Deze rotors hadden één uitsparing. Volgens de daginstelling werden er drie rotoren gekozen en in de juiste instellingspositie gebracht. De Kriegsmarine werd aanvankelijk voorzien van vijf, later zeven, en ten slotte acht rotors, genummerd I t/m VIII. Deze drie extra rotors hadden twee uitsparingen, 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 versmalde rotors waren echter niet verwisselbaar met de andere rotors. Om een vierde rotor te kunnen plaatsen werd ook een nieuwe versmalde reflector gebruikt waartegen de vierde rotor werd geplaatst. Deze vierde rotor draaide niet tijdens de vercijfering van een bericht (dat zou in de praktijk toch nooit gebeuren) en daarom hoefde er ook geen vierde pal gemonteerd te worden. Deze rotor kon echter wel handmatig in 26 verschillende posities worden gezet. In een van de 26 posities simuleerde een van de Griekse rotors, tezamen met de reflector van de M4, de bedrading van de reflector van de M3, waardoor de M4 als een M3 werkte. De weerberichten die elke duikboot 's morgens vroeg uitzond, werden via deze M3-simulatie gedaan en hiervan maakten de Britse cryptoanalisten dankbaar gebruik.
Dat de vierde rotor niet kon draaien, maakte nauwelijks iets uit. Immers, de vierde rotor zou pas, afhankelijk van de begininstellingen, na enkele duizenden letters een stap kunnen maken; volgens voorschrift mochten de berichten niet langer zijn dan 250 letters, waarna zo nodig met een nieuwe instelling moest worden verdergegaan. Immers, hoe langer een bericht is, hoe makkelijker het is om de code te kraken. Dit werd namelijk onder andere gedaan door frequentieanalyse (in de 9e eeuw bedacht door de Arabieren) via tabellen met de frequenties van het voorkomen van de verschillende letters en bepaalde korte groepjes van letters. Dit geldt echter alleen voor een redelijk lange tekst. Hoe langer het bericht, hoe beter de tekst met de verschillende frequentietabellen zal overeenkomen.
Stappenmechanisme left|thumb|395x395px|De geopende Enigma-machine. Het stappenmechanisme met links de smalle reflector van het Kriegsmarine-model met vier rotors.Het continu veranderen van de positie van de verschillende rotors zorgt ervoor dat elke letter telkens weer anders vercijferd wordt. De rechter (snelste) rotor beweegt telkens wanneer een toets ingedrukt wordt. De middelste rotor beweegt, afhankelijk van de instellingen, minimaal 1 en maximaal 26 stappen van de rechter rotor (wanneer deze rotor één uitsparing heeft). Voor de linker rotor geldt hetzelfde.
Bij het indrukken van een toets beweegt een grote as met drie verende pallen omhoog. Elke pal is voor de helft geplaatst over de alfabetring (met uitsparing) van de ene rotor; de andere helft over de getande ring van de rotor links daarvan. Indien de uitsparing in de ring van een rotor onder de pal komt, kan deze pal bij de volgende toetsaanslag bewegen tot in de getande ring van de rotor links daarvan. De pal zal dan in de getande ring duwen en de rotor één stap voortbewegen. Voor de middelste rotor geldt dat als de linker rotor draait, ook de middelste rotor nogmaals draait. Dat komt doordat de pal zich niet alleen in de tandring van de linker rotor bevindt, maar ook nog in de uitsparing (die even groot en gelijkvormig is aan de ruimte tussen twee tanden) van de middelste rotor, waardoor deze tegelijk met de linker rotor een extra stap maakt. Daar er rechts van de rechter rotor geen rotor aanwezig is, zal de pal bij elke toetsaanslag deze rotor doen draaien.
Wanneer er geen toets ingedrukt wordt, zijn de pallen vrij van de rotors; hierdoor kan men alle rotors handmatig in beide richtingen draaien om de vereiste begininstelling te verkrijgen. Verende rollers (rood op de afbeelding) brengen en houden de rotors in de juiste stand ten opzichte van elkaar.
Er dient nog vermeld te worden dat het indrukken van een toets eerst de rotor(s) zal doen draaien, en pas daarna de omschakelaar zal bedienen waardoor de stroom door het circuit zal vloeien om de letter te vercijferen. De toets dient ingedrukt te blijven tot de letter van het oplichtende lampje genoteerd is; laat men de toets los, dan dooft het lampje en drukt men de toets daarna weer in, dan is de instelling van de machine veranderd.