Senigma 0.1.1 - Software Enigma

Copyright © 2000, 2001 by Konrad Rieck

Introduction

The Software Enigma is a little application that imitates the original behaviour of the Enigma, a cryptographic device that was used in World War II by the Germans. The cipher mechanism was cracked by several different parties (polish, english, ...) in the 40s.
The enigma uses a symmetrical encryption algorithm based on 3 wheels that carry letters in a random order and a reflector wheel also carring letters in random order. A letter passes the 3 wheels, the reflector wheel and then passes the wheels reverse. after each letter the position of the wheels is changed according to the Enigma specifications, see the links below.

You can find several links regarding the history of the Enigma and solving its cipher mechanism at:

The Software Enigma was designed in order to demonstrate the techniques used to crack this mechanism in a coding competition in summer 2000. The Software Enigma is able to work with more than 3 wheels and can handle more than 26 different charakters.


Changes

Version Date Changes
0.1.1 2001-09-11 Corrected historical information inside the docs.
0.1 2000-11-09 Initial release.


Downloads

Source packages
Release Source Package Size
Senigma 0.1.1 senigma-0.1.1.tar.gz 5kb
Senigma 0.1 senigma-0.1.tar.gz 5kb


Usage

In general you can examine the code and learn to understand the algorithm used to imitate the original Enigma. You can also try to crack encrypted enigma messages by following the procedures that the crackers used in the 40s. You can also use the Software Enigma for encrypting private messages, if you want to rely on an old already cracked cipher mechanism.
In any case it is fun playing with it...

For more information on the usage see the included README file.


Examples

Let's go for a simple example, I modified the file wheel.h and set OFFSET to 'A' and END to 'Z'. With this configuration we really achieve the original Enigma behaviour, the machine does only convert upper letters, no digits, no punctation charakters, no spaces.

Here is our input file. Try to read it ;)

THISISATEXTWITHNOSPACESTHEORIGINAL
ENIGMADIDNOTUSESPACES

And here is the result encrypted with the key 345.

AWEKADBEWDLRNFXGHPUXZUTGRXMYXZXADD
WYDUCFZRBIZSJPPDANVQJ



back