enigma
X

enigmaX
about
load key
new key
encrypt/decrypt
back
reset
load

You've found Enigma Mode! Here you can use Enigma X as a regular Enigma simulator. Check the about section to find other online Enigma simulators to talk to. These sites will also help you understand how to use the Enigma if you don't already know.

To load a particular key just edit the string in the box above and then click load. The format is as follows.

(rotors-start-rings-plugboard)

Enigma X has 26 Rotors for every letter of the aphabet. The following though are useful for communicating with other Enigma simulators that use the German millitary rotors, such as the Enigma M3.

rotor translation: I=J II=K III=L IV=M V=N

To use the plugboard switch the letters in the aphabet. For intsance if you want A to encode to Z then switch A and Z. You must have all 26 letters of the aphabet, and not have any reapeat letters or the key will not load.

coded by
Tobias Toland
version
♞♞

Enigma X is based on the German WWII code machine. Since coding Enigma simulators is popular I wanted to do something unique. This is my attempt to make a more secure Enigma using the basic components of the original machine. It was also my very first JavaScript, and CSS project.

Enigma X will take any basic ASCII message and encrypt it to "Think Ding", a special character set made of 26 Unicode symbols. To do this it translates each ASCII character into two Enigma characters (a letter from A-Z) and then pushes them through a randomly configured plugboard and 26 randomly selected and configured Enigma rotors. Each message also has an added random key encoded within itself that is used to send the message again through a second set of 3 rotors so no two encodings will be the same. Finally the message is encoded to "Think Ding".

My basic security ideas are 1. Remove the reflector so any letter can be encoded to itself 2. Increase the size of the key by a bunch (that's a technical term) 3. Add random variability to every message encoded.

I have attempted to make Enigma X as secure as possible. In the end I am at best an amatuer crypographer and this is based on a machine notorious for being broken before the age of computers. It is safe to say this encryption scheme is dubious. With that said, Enigma X is just for fun and education. If anyone has any good ideas for breaking it I'd love to hear about them.

Enigma X is pure JavaScript, HTML, and CSS, with direct DOM manipulation. It does not use JQuery! The only thing not hand crafted by myself is SJCL which is only used to generate cryptographically secure random numbers. It is published under the MIT licence. This is it's github page. The online Enigma simulators by Louise Dade, Mike Koss and Frank Spiess were all very helpful while coding this. Also thanks to great community at stackoverflow who helped me solve my CSS and JavaScript problems.