Deutsch | • English
-upd- Universal Enigma (v2.6.2 EN)|
17 models | custom mode | Uhr; UKW-D
Swedish Enigma B (v2.6.1 EN)|
SGS, 1925 | s/n A-133 | 28-position wheels
Enigma Z30 (v2.6.1/b EN)|
"Numbers Enigma" (1930) | 2 models
|————— Legacy versions —————|
Universal Enigma (v2.5 EN)|
14 models | custom mode | Uhr; UKW-D
|——————— Tools ———————|
|[ Coming soon…]|
by Daniel Palloks
The Enigma is probably the most famous electromechanical encryption device (or rather, series of devices). It was used to a great extent by Germany during World War II. The successful reverse engineering of the machine in Poland and the codebreaking efforts at Bletchley Park (UK) involving thousands of people, among them several ingenious mathematicians, have become legend.
Enigma operates as a rotor machine to achieve polyalphabetic substitution. This means the letter substitution scheme is not fixed but changes with the propagation of Enigma's rotating ciphering wheels and thus, with the letter's position in a text. The wheels advance stepwise with every keystroke, thereby triggering, in some positions, the adjacent wheel to the left to perform a step as well, pretty much as in a mechanical counter. Inside a wheel each letter position is biuniquely rendered to another position through a fixed set of wires. By combining and rotating the wheels, however, a very complex substitution code is obtained. Furthermore, the inner wiring as a whole can be rotated against the outer position indicator ring and, more importantly, against the trigger notches (this is known as "ring setting"). In some models, pairs of letters can be additionally swapped by interconnecting plugs ("stecker") on a plugboard via cables.
Towards the end of WWII, a special rewirable reflector wheel (UKW-D) was introduced, as was an external device called Enigma-Uhr, or Stecker-Uhr. The latter allowed for the stecker connections' in- and outputs to be scrambled in complex, non-reciprocal patterns. The Uhr thus acted on the stecker I/Os very much like a settable but non-rotating cipher wheel.
Enigmas are equipped with a typewriter-like keyboard for input, while output is shown on a lampboard that in its layout resembles the keyboard. With every keystroke, the signal is routed first through the plugboard (if present), then through the fixed entry wheel and the rotor set, arriving at the reflector wheel. From there it is sent back on a different path – but with all rotor positions still the same – through the rotors, the entry wheel and again the plugboard until it reaches the lampboard where it lights the bulb corresponding to the substitute letter. A letter was therefore never encoded to itself, which would prove to be Enigma's most serious weakness. The symmetrized signal path and the resulting symmetric encryption however make it possible to decipher a message using the same machine setting it was encrypted with.
There was a variety of Enigma models available for civilian and military use, as well as for export. Even within a model line there were sometimes variants with altered specifiations. An "Enigma family tree" can be found in the Links section.
The best-known models today are Enigmas I ("Service Enigma"), M3 ("Naval Enigma"), M4 ("Shark") and G ("Abwehr Enigma").
Enigmas I and M3 had three rotor wheels, and fixed entry wheel (ETW) and reflector (RFL / German: UKW). They were used by the German Army including, in the case of the M3, the Navy with the exception of the submarine fleet. The latter used the more advanced M4, with an additional settable (non-rotating) wheel, called Greek wheel, in combination with a thinner reflector – a setup that in default configuration was "backward compatible" to the I/M3. – All models of this "M-line" (comprising among others the Norwegian Enigma N and the "Sonder-Enigma" used by the Military Office) were also equipped with a plugboard.
Aside from the military line, a commercial line of Enigmas was established and successfully marketed to businesses and for export. These models basically had the same design as the M-line, but no plugboard, and were instead equipped with a settable (but non-rotating) reflector. The commercial line originated in the Enigma D (later named Enigma K) and some well-documented models are the "Swiss-K", the Railway Enigma ("Rocket"), the Japanese "Tirpitz" and the special Enigma KD with rewirable UKW-D reflector, which was used by the German Military Office.
In contrast to the other models, the Abwehr Enigma G, a technical gem used mainly by German counter-intelligence, was powered by a cogwheel-gear drive rather than a lever mechanism. Furthermore, it had a rotating reflector/UKW and wheels with multiple notches, but no plugboard. A predecessor of Enigma G was the "Zählwerk-Enigma" (A28), which was a commercial machine.
Last not least, there were also custom-built models, such as a Swedish machine with 28-position rotors, and more exotic ones, like Enigma Z (Z30, "Numbers Enigma"), which had rotors with only ten positions (numbers 0..9) and was used to encrypt numerical messages.
All Enigma models fall into either of two categories with respect to the wheel driving and stepping mechanism: lever-induced stepping, i.e. pawls and ratchets (which leads to a typical stepping anomaly of the middle rotor, known as double-stepping, see Features) – and gear-driven, with regular stepping, like a mechanical counter. The M-line models and most of the commercial Enigmas belong to the first, the Abwehr and Zählwerk machines to the second category. Within each category only minor differences remain, such as rotor wiring, settable/non-settable UKW, or whether a plugboard is included.
While any serious codebreaker wants to be geared up for what's out there, creating and maintaining separate simulations for all the different models would be pretty dull. This is where the "Universal Enigma" comes in. It contains virtually every model with 26-position rotors that has sufficiently documented specifications available at this time. Moreover, it is also equipped with a Stecker-Uhr and, as of version 2.5, with the rewirable reflector UKW-D.
There was of course no such Enigma for real, historically! However, bundling everything into a single, uniform entity has the benefit of making all models available at any time and in a compact way, with the possibility to easily switch between them and compare their features and functionality. (Since the release of Universal Enigma, this approach has been widely embraced for Enigma simulation.) Each selected model preset will behave like a separate simulation, including limitations for wheel selection, reflector type and so on. But in addition to this, a "Custom" mode allows for individual setting of functionality features (including wheel drive mechanism) and free combination of all included components, thereby for the creation of entirely new Enigma models!
For details and specs, see the Features section.
Based on v2.6 of the "Universal Enigma", two additional simulations are now available, covering somewhat exotic Enigma models: Enigma Z30 ("Zahlen-Enigma" / "Numbers Enigma") is a machine with 10-position rotors that was used to exclusively process numbers. The Swedish Enigma B (A-133) on the other hand has 28-position rotors and corresponding keys/lamps – three additional umlauts 'Å', 'Ä' and 'Ü', while omitting 'W', which is rarely used in the Swedish language and was coded as 'VV' if needed.
The rotor wheels of both machines have what I call "trivial ringsetting" (same as those in Enigma D), where the labeled index ring can be shifted against the rest of the rotor, leaving the relative positioning of the inner wiring against the turnover notches unchanged. This type of ringsetting can be neutralized by simply turning the rotor to a corresponding position and is therefore cryptographically useless.
Both Enigma Z30 and the Swedish Enigma are separate simulations and not integrated into 'Universal Enigma', as due to their deviating rotor sizes and resulting differing alphabets, they would not be compatible and combinable with any 26-position machine anyway.
… and the following additional components:
:I "Services" (Army; Air Force)
M3 (Army; Navy)
M4 "Shark" (U-Boats)
N "Norenigma" (Norway)
S "Sonder-Enigma" (Mil Amt) *
D (comm., 1926; trivial ring setting) **
K (commercial, 1927) ***
Swiss-K (Swiss Air Force)
R "Rocket" (Railway)
R° (Railway, authentic wiring) **
T "Tirpitz" (Japan)
KD (rewirable UKW-D) *
:A28 / G31 "Zählwerk" (comm.)
G-111 (Hungary / Munich)
G-260 (Abwehr in Argentina)
G-312 (Abwehr / Bletchley Park)
G-401 "Group II machine" (Abwehr) **
[ Changelog ]
Enigma's cryptographic key consists of the following parts:
The first four make up the daily key, laid out in a code book and known to both sender and recipient. The wheels' initial positions were assigned individually to each message, and are called the message key.
Being unknown to the recipient, the message key had to be included in the transmission and therefore, had to be encrypted itself. This was done using the common daily key as follows:
Having received the transmission, the recipient now follows the same procedure (symmetric encryption!): set the machine to the daily key, adjust wheel positions according to the first group (WPOS), type in the second group (IPXH), thus obtaining the message key (CODE). This would then be set as starting position for the wheels, so the message could be deciphered.
* * *
Since the wheels only contain letters A to Z, only these can be encrypted. Numbers and other characters have to be either spelled out, omitted, or represented (preferably by rarely used letters or letter combinations). For example, X would often be used for a discriminator (comma, point). The German military also generally substituted the digraph "ch" with "Q" (so "Schiff" [boat] would become "SQIFF").
To make decryption harder (cycle detection), the length of a message had been restricted to 250 characters. After that the message key was to be changed. Longer messages were split up in parts to be coded with different message keys.
Sometimes the message key was altered within a running message part; this would be indicated in the plain text by a pre-arranged code (e.g. "CYDE" for "set leftmost rotor on position 'D' now").
NB: In the simulation, 'QWERTZU' input mode would be mandatory in this case, as it allows for re-adjusting the wheel positions with text already input. The new wheel settings affect only subsequent input.
It was important to vary the structure of messages, especially when parts of the content, such as proper names or the message header ("From... To...") were likely to be deduced. Abbreviations had to be varied for the same reason. Or, for example, while X was commonly used to denote a full stop in clear text, it had to be omitted at the very end of a message. Such precautions were not always observed, though, a fact that played greatly into the hands of the codebreakers.
The Enigma I (aka Wehrmacht Enigma or Services Enigma) can be seen as a predecessor of the M3. Already in use with the Reichswehr in 1930, it remained the most widely-used model until the end of World War II.
Enigmas I and M3 are compatible if the following is being considered:
Model M3 (and thus, also Enigma I) can be emulated within the M4. For this the reflectors have to be made "compatible" by either of the following settings:
Copyright © 2007-2023 by Daniel Palloks. -- This software and source code may be used, distributed and modified freely as long as (1) my authorship remains acknowledged, (2) any modification is properly indicated, (3) the freeware/ open source status and the conditions for distribution and modification remain unchanged. A copy of this statement must be distributed together with the software. -- This software is provided "as is". The author will not be liable for any damage - direct, indirect or consequential - resulting from the use of this software.
I am not responsible for the contents of external web pages reached via links from this site.
The Enigma logo graphic is in the public domain (source: Wikimedia Commons).
© Daniel Palloks 2009-2023
Last change: Mar 17, 2019
HTML 4.01 Strict