This application implements the operation of a WW2 German Enigma encryption machine, specifically a Model 1 or M3 Enigma using 3 rotors. The Enigma used a set of electro mechanical translation rotors, an initial position setting for each rotor, the ring setting for each rotor, and an additional rotor type called a reflector. Additionally, the front panel of the machine allowed for an optional user programable extra translation between pairs of characters via pluggable cables. This created an encryption algorithm that was nearly unbreakable using the technology of the time. For more background on the Enigma machine, click here.
To use this application:
-- Select the rotor (I - V) for each position. The order of the rotors selected impacts the results of the encryption. Do not use the same rotor more than once.
-- Select the starting position (A - Z) for each rotor.
-- Set the ring position for each rotor (1-26)
-- Select which of the 3 reflectors to use. (UKWA, UKWB, UKWC)
-- If desired, enter up to 13 pairs of letters that will be substituted for each other as part of the encryption process. To swap the letters A and B, enter AB in one of the plugboard input fields. Letters cannot be reused, which means there is a maximum of 13 pairs that can be swapped.
-- Type your message into the input text box, and click submit. The encryption process only supports the upper case letters A - Z, with no numbers or special characters. To compose a message, replace spaces with the letter X, and spell out numbers (one instead of 1). For convenience, this application automatically performs the lower to upper case replacement and numerical digit to words replacement. It can either strip embedded spaces, or convert them to X
-- The encrypted message will appear in the text area below. The rotor positions will be incremented, so you will need to reset the starting postions if you want to re-encode or decode the message. For ease of reading, encrypted messages were typically written with a space between each 5 characters. The checkbox enables that diplay option.
To decrypt the message:
-- select the same rotors, in the same order, and reset the starting position for each rotor to the value used to encode the message. Select the same reflector, and if the plugboard translations were used, select the same plugboard pairs.
-- Enter the encrypted message into the input text area, and click submit
-- The decrypted message will appear in the coded/decoded message area.