This is a simple Python app that simulates Enigma M3 encryption. The rotors can be chosen from type I, II, and III. The reflector used is type B (UKW-B). The wiring and notch used in each rotor type are referenced from here
- Python 3.9 or Above
% sudo apt install python3
- PyQt5
% pip install PyQt5
- Start the program
% python src/App.py
- Configure each rotor's
type
,Position
, andRing
. - Configure the
plugboard
(the bottom one) by clicking the letter in pairs. The same color represents the switched pair. To unplug, re-click the letter. - The text can be inputted through
keyboard button
(the middle one),keyboard press
, or by clicking theEdit
button in eitherPlain Text
orCipher Text
text fields (clickEncrypt
orDecrypt
afterward). - After each keyboard click/press the letter in
lampboard
will light up. The encrypted text will also be displayed on theCipher Text
text field (or inPlain Text
if you clickedDecrypt
) - Each encryption step will be displayed on the right side.
- Click
Clear
to clearPlain Text
,Cipher Text
, and the encryption step.
Note: if you clicked
delete
orbackspace
key on your keyboard, for each click, the text inPlain Text
andCipher Text
will be deleted by one letter. Some of the steps will also be deleted. Rotor 1 will also be returned one step. Note that the returned rotor is limited to rotor 1, hence this method will not work for all condition.
Puti Nabilla Aidira (13521088)