Basic information | Compatibility | Installation | Requirements | Platform differences | FAQ | License
- Gnunigma simulates the enigma encryption machine, which was used by the Germans in 20th century.
- Language of choice - python
- Graphical library - tkinter/Tkinter
- Warning! This screenshot is old and some new GUI features were added in newer versions! (as you can see on the Ubuntu screenshot)
- Gnunigma was tested on Windows 10 and Ubuntu (16.04, 16.10, 17.04) and should be compatible
- Download the source
- If you are on Ubuntu and don't have Tkinter installed on python 3, run this command
sudo apt-get install python3-tk
- Run the
runtime.py
file with python 3
- Python version 3.5 and newer (older python 3 versions might work as well but were not tested by me!)
- tkinter library is included on Windows by default but must be installed on Ubuntu
- Sound - gnunigma on Windows is using the winsound library, which is not available on linux
- Icons - there were some issues with iconbitmaps on
- Styling - The gui does not looks as good as on Windows (scaling, weird colors)
- Gnunigma has come a long way since the start of its developement, I tried to make it as "modular" as possible, this means:
- Objects derived from the BaseEnigma
-
Files that require further explanations are links to sections describing them in more detail.
-
gnunigma/
- enigma/
- components.py
- historical_data.yaml - Historical enigma data
- icons/ - Icons used by the Windows version
- sounds/ - Sounds played by the Windows version
- .gitignore - Ignores .pyc and .idea folder from pycharm
- LICENSE.txt
- README.md - This file
- cfg_handler.py
- config.yaml
- data_handler.py
- enigma_deciphered.txt
- gui.py
- runtime.py
- enigma/
- Enigma simulation classes (enigma machines, machine parts, additional devices)
- Used for loading raw data from YAML files
- Global configuration (GUI settings, enigma settings saved by the user, unit test config)
- Handlers (for sound and configuration/data IO)
- All GUI classes (most of them represent a window, others some tkinter derived classes)
- Launches the GUI version
- Gnunigma proved its historical accuracy by successfully deciphering original enigma messages
- Message examples were taken from this site
Reflector: B Wheel order: II IV V Ring positions: 02 21 12 Plug pairs: AV BS CG DL FU HZ IN KM OW RX
AUFKL X ABTEILUNG X VON X KURTINOWA X KURTINOWA X NORDWESTL X SEBEZ X SEBEZ X U AFFLIEGER STRASZERIQTUNG X DUBROWKI X DUBROWKI X OPOTSCHKA X OPOTSCHKA X UM X EINS AQT DREI NULL X UHR ANGETRETEN X ANGRIFF X INF X RGT X
AUFKL ABTEILUNG VON KRUTINOWA KURTINOWA NORDWESTL SEBEZ SEBEZ U AFFLIEGER STRAßERICHTUNG DUBROWKI DUBROWKI OPOTSCHKA OPOTSCHKA OPOTSCHKA UM 18 30 UHR ANGETRETEN ANGRIFF INF RGT
DREI GEHT LANGSAM ABER SIQER VOR WAERTS X EINS SIEBEN NULL SEQS X UHR X ROEM X EINS X INFRGT X DREI X AUF FLIEGER STRASZE MIT ANFANG X EINS SEQS X KM X KM X OSTW X KAMENEC X K
3 GEHT LANGSAM ABER SICHER VORWÄRST 17 06 UHR RÖM 1 IFRGT 3 AUF FLIEGERSTRAßE MIT ANFANG 16 KM KM OSTW KAMENEC K
Reflector: A Wheel order: II I III Ring positions: 24 13 22 Plug pairs: AM FI NV PS TU WZ
FEINDLIQE INFANTERIEKOLONNE BEOBAQTET X ANFANG SEDD AUSGANG BAER WALDE X ENDE DREI KMOST WAERTS NEUSTADT
FEINDLICHE INFANTERIEKOLONNE BEOBACHTET ANFANG SEDD AUSGANG BÄR WALDE ENDE 3 KMOST WÄRTS NEUSTADT
Reflector: B Wheel order: III VI VIII Ring positions: 01 08 13 Plug pairs: AN EZ HK IJ LR MQ OT PV SW UX
STEUERE J TANA FJORD J AN STAN DORT QU AAA CCC VIER NEUN NEUN ZWO FAHRT ZWO NUL SMXX SCHARNHORST HCO
- If you have any questions, visit the wiki first (mostly incomplete!) or PM me.
- The project is licensed with GNU GPLv3