Cryptanalysis identifies weaknesses of ciphers and investigates methods to exploit them in order to compute the plaintext and/or the secret cipher key. Exploitation is nontrivial and, in many cases, weaknesses have been shown to be effective only on reduced versions of the cipher. The goal is to perform Cryptanalysis on Classical Ciphers using Neural Networks.
The dataset was created using the Common Passwords List from Kaggle. While this can be done with any NLP Dataset, using this particular dataset gives a twofold advantage:
- Passwords can often be random.
- Passwords are limited by length, so the computation required is lower.
- Passwords are one single word, so sequence dependency will not be a problem.
- The dataset is large (14 million passwords) and thus can be cut short to speed up the training process.
- Open Anaconda Prompt
- Run
setup.bat
- Check if
data/CaesarCipher.csv
exists. - If the above condition is done, you're good to go
- Go to
utils/encryption.py
and make a function for your algorithm - Open
utils/dataset_creation.py
and import your function - Go to the
__main__
block of code. - Call
createDataset(df,encryption.your_algorithm,'YourFileName')
- Run
python utils/dataset_creation.py