This software aims to provide a C++ framework for implementing graphical rotor machine simulators for the Linux operating system. It was implemented using gtkmm and has been tested on Debian 7 and 8, Raspbian and Ubuntu 14.04 LTS. Cryptographically accurate sample simulators for several Enigma variants and other rotor machines are included. The following machines are implemented by the program enigma:
Enigma M4 (Screenshot)
Enigma M4 with Schreibmax printer (Screenshot)
Enigma M3
Wehrmacht or Services Enigma (Screenshot)
Enigma Uhr can be used with all machines that were "Uhr capable"
Enigma KD
Abwehr Enigma
Railway Enigma
Tirpitz Enigma
Additionally simulators for these rotor machines are implemented by the application rotorvis:
SIGABA (CSP889 and CSP2900 variants) (Screenshot)
Nema (Screenshot)
Typex (Screenshot)
Schlüsselgerät 39 (Screenshot)
KL7 (Screenshot)
On top of that a test program (called rmsk) is provided that performs unit tests to verify the accuracy of the implemented simulators.
For your own experiments a small tool called randperm has been implemented which prints a set of (pseudo)random permutations of different types (permutations, involutions, fixed point free permutations) of the standard latin alphabet.
For longer messages or for experiments that require a level of automation or scriptability a generic command line simulator (called rotorsim) for all machines implemented by rotorvis and enigma is part of the package.
Finally help files in mallard format (http://projectmallard.org/) are included with the simulators that describe how to operate them.
|