Python-Enigma

In Fall 2018, to coincide with the anniversary of the birth of Arthur Scherbius, I created an implementation of the Enigma Polyalphabetic Cipher Machine in Python 3.6. Our implementation is thought to be novel because it involved a direct emulation of the enigma hardware rather than being an abstract implementation of the “math” itself. While Enigma’s not really a useful cipher in this, the age of gigahertz computing, it was a fun project in any respect. It’s available directly through pypi with the command pip3 install python-enigma.

Historical Accuracy

The library includes a dictionary containing all known wheel mappings for the Wehrmacht, Kreigsmarine, and Luftwaffe wheels, and the protocol allows adding other historical examples easily.

Emulated Mechanics

The object exposed by the library behaves like the Enigma machine itself. Add wheels, set their positions, and compute messages directly.

Extensible

Under an MIT license, you can add any functionality you like!

In Fall 2018, to coincide with the anniversary of the birth of Arthur Scherbius, I created an implementation of the Enigma Polyalphabetic Cipher Machine in Python 3.6. Our implementation is thought to be novel because it involved a direct emulation of the enigma hardware rather than being an abstract implementation of the “math” itself. While Enigma’s not really a useful cipher in this, the age of gigahertz computing, it was a fun project in any respect. It’s available directly through pypi with the command pip3 install python-enigma.

This project and its output are provided free of upfront charge as part of the philosophy of FOSS and OSHW development practices. If you like this project and want to support its ongoing development, please check our support page.