This project aims to build historically accurate simulations of the Enigma machine and the Turing-Welchman BOMBE to educate its users of the details of how both machines worked. The simulations will include a user interface which will allow users to set up the machines and will show the state of the machine for users to follow along with how the machines internals are working.
The Enigma and BOMBE machines are both incredibly important inventions. Not only because of their novel methodologies for encrypting and breaking ciphers, but also because of how it inspired one of the BOMBEs designers, Alan Turing, to continue on to build what are considered some of the worlds first computers.
Simulating the machines will not only allow users to learn about their design but also explorations into how with the use of modern computing technology, improvements to the speed and functionality of the BOMBE especially, could be made.
pip install PySimpleGUI
pip install termcolor
Run the command line version of the Enigma simulator with:
python enigma.py
This allows you to set up an Enigma from the command line, run an Enigma from a file or run a random Enigma.
There is also the option to run the Enigma simulator through a GUI with:
python enigma_UI.py
Run the command line version of the Bombe simulator with:
python bombe.py
This allows you to set up an Bombe machine from the scratch, run a Bombe machine with automatic settings generated and run a Bombe machine in continuous mode.
There is also the option to run the Bombe simulator through a GUI with:
python bombe_UI.py
- Hat tip to anyone whose code was used
- Inspiration
- etc