The purpose of this problem is to learn Python3 programming by creating an Enigma machine simulation.
There are several Enigma machine simulations available on the web. After you have created your own simulation, examine the other programmers approach to the problem. This can be a great learning experience.
The Enigma machine is a cipher device developed in the early-to-mid-20th century to protect commercial, diplomatic, and military communication If plaintext is entered, encoded ciphertext is generated. If ciphertext is entered, plaintext is generated. It was extensively used by the Germany military in WWII.
The system depended on a set of machine settings that were usually changed daily during the war. The settings were for rotor starting position and plugboard configuration.
Note: the Enigma machine only encoded capitol letters (A - Z)
- lowercase letters were not allowed
- numbers were spelled out (one, two, ...)
- unprintable characters were never transmitted
- punctuation, spaces, etc. where replaces by an 'X'
- This was good enough for text messages
Simulate an Enigma machine as used by the German army in WWII. This includes ...
Initially the Enigma machine configuration (rotors and plugboard) should be hard coded in the program.
Add the capability to modify the configuration after the first part is working.
Perhaps, at some point, the Enigma machine's configuration could be read from a file. If so, what format to use? (JSON, CSV, ...)
In the real world, extensive documentation on how to configure the Enigma machine would be created. (For this project, not so much.)
Expand project #1 to ...
Create a GUI for your Enigma machine simulation. See PySimpleGUI or PyQt. (Note: There are other Python GUI toolkits.)
How the Enigma machine works | Animation
(YouTube)
The Enigma Code
(youTube)
The Inner Workings of an Enigma Machine
(YouTube)
How did the Enigma machine work?
Enigma Simulator v7.0
Enigma machine
(Wikipedia)
Enigma machine & Rotors
(Wikipedia)
Enigma rotor details
(Wikipedia)
Technical Details of the Enigma Machine
Enigma wiring (Crypto Museum)
The Enigma Machine (stanford.edu)
The components of the Enigma machine
The Enigma Enigma: How The Enigma Machine Worked