As part of my intro to security module, I had to do a mini project of my choice. Cryptography is a big interest of mine and I love the Enigma cipher, the bombe machine and the history surrounding these. Alan Turing, the legend, is also a big inspiration of mine. So I decided to have a smash at making a program to decipher Enigma ciphertext. The program makes use of a great Enigma library called Py-Enigma. I highly suggest checking it out as it is very well detailed and built, with many features I didn't get using in this project.
The user enters text to encrypt, seperated by "X" to get the crib text feature working. Engima rotor positions are then chosen by the user starting from I II III all the way to V IV III. Finally the start position is set with 3 letters. Although to note in my program the...
Below is a demonstration of the program. With me entering the settings, encrypting the plaintext and brute force deciphering.
Once a match for the cribtext has been found, the current Enigma settings that cracked it is used to then decipher the full ciphertext. I absolutely loved doing this project, and it helped me understand this great piece of history and cipher even more.
Below is the PDF document detailing the project further.
Please DO NOT plagiarise this document. You will be caught, it's not worth it.
If you would like to check out the code have a look at the repository below. Keep in mind if you want to run the program you just have to simply install Py-Enigma with pip.
Please DO NOT plagiarise my code. You will be caught, it's not worth it.
Projects Github Repository
Bruteforce algorithm which attempts to decrypt Enigma ciphertext, with the help of Py-Enigma, from user inputted Enigma settings.