Imitation Enigma simulates the Enigma I machine used by the German Heer (Army) and Luftwaffe (Air Force) and the early versions of Enigma used by the Kriegsmarine (Navy). For more details see this description on the Crypto Museum web site.
The machine itself was somewhat simple, resembling a typewriter, but normally produced no written output. Instead it used lights to display the encoded/decoded letters.
There are three major components of what we would call in modern terms, the User Interface of the Enigma Machine .
Above the lamps the settings of the machines three rotors are displayed. Here as letters:
Like the original Enigma Machine the lamps only light while a key is pressed. Here's a demonstration of the app running on the iOS simulator:
I just 'typed' the word HELLO. A few things to notice.
- The rotors start in the positions M, C, K.
- When I press and hold the H key the leftmost rotor changes position to L, and D lamp lights up.
- When I release the key the lamps all turn off
- When I press and hold the E key the leftmost rotor changes position to M, and the L lamp lights up
- The L key again advances the leftmost rotor and lights up the T lamp.
- When I press the L key again, the leftmost rotor advances and the B lamp turns on.
- Finally the O key advances the leftmost rotor and lights up the B lamp again.
This demonstrates that the substitutions change for each letter in the message. This is why the two Ls encode to different letters, and the second L and the O encode to the same letter.
Note: The lamps are only lit as long as you press each key, just like the original machine.
Changing the Rotor Positions I
A key operation in using the Enigma Machine is setting the initial positions of the Rotors. In order to allow the receiver to decode a message the receiver's machine must be set to the same initial configuration as the sender's machine. And one of those configuration parameters is the rotor positions.
One way to do that in the Imitation Enigma simulates how it was done on the real enigma machine, which had protruding wheels which allowed each rotor to be rotated independently. You can do this in Imitation enigma by dragging from a position in the third of the rotor display corresponding to the rotor you want to change, as shown in the following video:
Yes, positioning the rotors manually can be finicky. See the rinter and Keyboard section below for a way to position them with precision.
The Enigma Machine is symmetrical, in any given state, any character produces a character which, if entered in the same state, produces the original character. So decoding a message is done by setting the machine back to its original state (i..e. the initial rotor positions) and entering the encoded message (DLTBB), the result will be the original message.
The "Gear" button gives access to the configuration of the machine. Here we can change the selection and order of the rotors, and set up the plugboard, which adds many more possible configurations of the machine, something which complicated the job of the code breakers at Bletchley Park.
Note that the app has changed a bit since I did these videos. There is now a way to save and load configurations from this page, which is an in-app purchase. I'll be updating the documentation soon.
The Printer and Using the iOS Keyboard
Having to observe and write down the illuminated lamps is irksome. When encoding and decoding messages, the Germans used two people, one to operate the keyboard, and another to write down either the encoded message to be given to a Morse code operator, or the decoded message to be delivered locally.
A small number of Naval Enigma machines were fitted with a printer in lieu of the lamps. This printer produced a strip of tape. Imitation Enigma simulates this printer.
Also Imitation Enigma has an entry panel which allows you to use the iPad keyboard to enter text to be sent through the machine.
You can also set the rotors from the keyboard panel. Just type in the letters and press the set rotor positions button.
A few notes:
- Only letters can be entered, and they will be converted to upper case. Any other characters will be ignored. After all, the Enigma Machine didn't understand anything else.
- The rotor positions field only allows up to three characters, since there are three rotors in the machine.
- You might also notice buttons for sending the rotor positions in the clear, as well as to send entered text in the clear. These will add the clear text to the printer.
- The 'Cut tape' button clears the printer, after putting its contents in the iPad pasteboard. This is useful since you can:
- Paste the text into the keyboard panels text field. If you reset the rotor positions to where they were when the text was encoded, as is shown in the above video, the text will be decoded.
- Paste the text anywhere else, like in an email or message to a friend.
Imitation Enigma has an in-app purchase of the codebook. The codebook has settings for each date, just like the Germans distributed codebooks to the field.
Everyone with the codebook has the same settings for each particular date, so you can send encoded messages and anyone with the codebook will be able to decode those messages if they know the date.
In addition, if you are or become a member of the Enigma World Codegroup you can use the Imitation Enigma Codebook to encode/decode messages using that groups U571 codebook, since it provides the same settings for the years 1944 and 1945.