ISLAM ABDELFATTAH ELSAYED
For the best results and the fastest use of the program, read this first.
In order to deploy the program for command line arguments, you will need to download latest_encryption.py, caesar_cipher.py, vernam_cipher.py, vigenere_cipher.py, atbash_cipher.py present in this repository.
In order to deploy the program for GUI, you will need to download gui_main.py, caesar_cipher_gui.py, vernam_cipher_gui.py, vigenere_cipher_gui.py, atbash_cipher_gui.py present in this repository.
Each cipher requires a key and a plaintext to be encrypted. For decryption, it is the same too, just in the opposite way.
- Caesar cipher: Plaintext, Key(a number from 1-25).
- Vigenere cipher: Plaintext, Key(letters).
- Vernam cipher: Plaintext, Key(letters) and length of key = length of text.
If condition is not satisfied, the key will be repeated till it equals the text length as what happens in Vigenere cipher. - Atbash cipher: Plaintext.
Using cmd, terminal, etc. simply open the program with the needed cipher and type (encode, decode, frequency) as the command line arguments.
- Example of encoding:
Example:FILE PATH> python3 latest_encryption.py caesar encode
Example:FILE PATH> python3 latest_encryption.py vigenere encode
- Example of decoding:
Example:FILE PATH> python3 latest_encryption.py caesar decode
Example:FILE PATH> python3 latest_encryption.py vigenere decode
- Example of frequency analysis decoding:
Example:FILE PATH> python3 latest_encryption.py caesar frequency
Frequency analysis works by getting the distance from the most frequent letter(s) in a sentence and then calculates how far is it from letter "E".
Under the GUI folder the main GUI is the gui_main
file (obviously haha). There will be a menu to all ciphers that can be used at the moment. By clicking on any of the options in the menu, the corresponding cipher file will directly pop up in a new window allowing the user to use any of the ciphers.
For more fun and a pretty formal experience, start from gui_main
.
Each cipher has its own window and eavh one works in a different way than the other.