Before starting, a few concepts ...

There are some things you should know before you start using Mininigma, basically, the different components of the machine and their use in the simulator. If you have ever used before another Enigma simulator, then you probably can work your way around Mininigma without much trouble. If you haven't, then this section is right for you.

The Enigma machine is a combination of electrical and mechanical components working together to encrypt the messages. For each key pressed on the keyboard, it performs a series of substitutions one after the other to get to the final encrypted letter, which then it shows on the lamp board.

Startup

The first time the application is started it will show a few onscreen tips, telling you how to begin using it.

You can begin typing right away, and the machine will start encrypting, but things are more interesting if you play first with the different settings of the machine.

On the top right corner you can access the plugboard, general configuration, and info buttons.

Url Schemas

Mininigma recently added support for URL schemas. This means that now, when you send a coded message or a machine config string, the mail will contain an url which will allow the receiver to directly open Mininigma to decrypt the text (Mininigma will have to be properly setup first) or to setup a machine with the given config string.

You can give them a try! just use the share options within the app :)

These are the supported URL schemas:

mininigma://config/config_string_or_keyword
mininigma://text/the_coded_message
mininigma://append/the_coded_message

Config will accept a config string or keyword.

Text will set the text fields with the given text, erasing any older text. On the other hand, append will add the given text to what is shown currently in the machine text field.

Contextual Menus

If you tap any of the two text boxes on the main screen, a contextual menu with several options will be shown.

Resetting the Machine and clearing texts

There are two options on the contextual menus that merit a bit of clarification: Reset and Clear Text.

Clear Text just erases the both texts, leaving rotor positions alone.

On the other hand, Reset erases both texts, AND resets the rotors to the last manually enter position.

Plugboard

The plugboard, as you might know already, was used to switch two letters along the whole encryption or decryption process.

In Mininigma, you can access it from the top right button with a picture of a plug.

You can touch one letter and drag your finger to another one. That will make the connection for the letters and show a cable between them. If you want to remove the connection, just touch one of the letters.

On the bottom of the screen you will see the active connections, alphabetically sorted.

Click Done or Cancel to keep or discard your changes.

Settings Screen

You can access the config screen from the button on the top right corner of the main screen of Mininigma.

The config screen is divided in four sections.

On the top one there is a button row where you can choose the kind of machine you want to work with: I, M3 Army, M3 Navy and M4 Navy, etc. Below the buttons, there is a short description of the chosen machine.

The second section allows you to change rotors or move or switch them. To change a rotor number, just click on it. A popup window will allow you to select one of the available ones. To move or switch rotors, just drag and drop them around.

The third section is where you can set the ring settings for each rotor. Just touch and drag up or down on the wheel you wish to change.

The fourth section lets you change the reflector used on the machine. Just click on the button corresponding to the desired one.

Sharing settings

On the top of the config screen there is also a button that shows a menu which will allow you to export your current settings as a string, to copy them somewhere to keep or send to someone else. There is also an option to import a setting string with that format.

That menu also allows you to create a config setting from a keyword or keyphrase, which you can share to get the very same startup config on different devices.

Once you have finish with your configuration, just click Done or Cancel, to keep or discard the changes.

Decrypting Text

One of the most oustanding features of the Enigma machine was its way of decrypting a coded message.

The operator would setup the machine just as it was when the message was encoded, and then all was left to do was to begin typing in the keyboard the encrypted text, and the lampboard would show the clear message.

Mininigma, of course, works the same way. Just set it up with a known configuration and start typing the encrypted text. The clean text will appear in the upper text box.

Let’s say you select an Enigma I and then set the rotor positions to something like LYV, and begin encrypting your message,

HELLO WORLD

You could get something similar to this:

WBMEQ XJJJZ

And that’s what you would send.

Upon receiving the message, the person doing the decryption would, somehow, need to know your initial key configuration (that is, that you’re using an “Enigma I” with rotors set to LYV).

This knowledge was shared with the so called “code books”.

So, for decryption you should set your machine exactly like it was when you started typing your message, Enigma I selected, rotors set to LYV.

And then, you just have to type the encrypted text WBMEQ XJJJZ to get the original HELLO WORLD message!.