Projekt für HS-RT Info 1 (benotet)
Historische Chiffren und wie man sie brechen kann
Entwickeln Sie ein Programm, das es Ihnen erlaubt einen Text mit einem historischen Chiffrier- algorithmus zu verschlüsseln bzw. einen verschlüsselten Text zu entschlüsseln. Beginnen Sie z.B. mit dem Caesar-Chiffre. Entwickeln Sie nun ein zweites Programm, das versucht einen verschlüsselten Text zu entschlüsseln ohne das Geheimnis von Sender und Empfänger der Nachricht zu haben. Erweitern Sie nun ihr Programm um Funktionen für den Vigenère-Chiffre (das Brechen dieses Algorithmus ist schon gar nicht mehr trivial und kann weggelassen werden). Mögliche Erweiterungen sind:
- Umsetzung weiterer Verschlüsselungsalgorithmen, z.B. die Enigma-Chiffre.
- Verbesserung des Codebrechen-Algorithmus, z.B. durch bessere statistische Verfahren.
- Visualisierung des Brechens eines Codes.
Ein mit der Vigenère-Chiffre verschlüsselter Text: Psm Jzpw-Fdcbjqc spqxvfz nit Sopfuwvje vcfrdmo, iovo poz Uqhb ogb tbzq ofzeo jed! Qtf oz ag ucsl nioz sau pka tqrz wuot torejqbqhqb.
Historic ciphers and how to break them
Develop a program that allows you to encrypt a text with a historical cipher algorithm to encrypt or decrypt an encrypted text. Start e.g. with the Caesar cipher. Now develop a second program that tries a cipher text to decrypt without the secret of sender and recipient of the message to have. Now expand your program with functions for the Vigenère cipher (breaking this Algorithm is no longer trivial and can be omitted). Possible extensions are:
- Implementation of further encryption algorithms, e.g. the Enigma cipher.
- Improvement of the code breaking algorithm, e.g. by better statistical methods.
- Visualization of breaking a code.
A text encrypted with the Vigenère cipher: Psm Jzpw-Fdcbjqc spqxvfz nit Sopfuwvje vcfrdmo, iovo poz Uqhb ogb tbzq ofzeo jed! Qtf oz ag ucsl nioz sau pka tqrz wuot torejqbqhqb.
This program is written for Linus mainly, but should work on Windows and Mac as well with some minor changes. (you will have to have Gtk installed)
- Python >=3.8
- PyGObject
- typing
- functools
- pyinstaller (for building)
git clone https://github.com/frederikbeimgraben/Brutus
cd Brutus
python src/main.py
Or download the latest release from here and run it. This will require you to have PyGObject installed.
git clone https://github.com/frederikbeimgraben/Brutus
cd Brutus
./configure
make
sudo make install
src/encrypt_file.py
- Encrypts a file with the given cipher.
- Algorthmen / Algorithms
- Caesar Chiffre / Caesar Cipher
- Vigenère Chiffre / Vigenère Cipher
- Enigma Chiffre / Enigma Cipher
- AES Chiffre / AES Cipher
- UI
- Basis UI / Basic UI
- Better Key Input
- Live-Visualisierung / Live Visualization
- Übersetzungen / Translations
- Allgemein
- Besseres Knacken / Better Code Breaking
- Es wird noch mehr / There´s more to come