This project presents a Python implementation of a genetic algorithm designed to optimize the encryption key for a message encrypted with the Vigenère cipher.
The cipher developed by Blaise de Vigenère during the 16th century was considered unbreakable for many years, earning it the nickname the unbreakable cipher. Despite its current vulnerability, this cipher had a significant impact on cryptography.
- numpy
- random
- string
- copy
- matplotlib.pyplot
Inside the "Evolutive-encryption" folder, you'll find two main files:
ga_vigenere.py: Main script to run and modify parameters.GA_vigenere.ipynb: Jupyter notebook with detailed explanations and step-by-step walkthrough.
To run the program, execute the main script with:
python3 ga_vigenere.py
You can also modify parameters directly inside ga_vigenere.py before running.
Pull requests are welcome! Feel free to submit bug fixes, improvements, or new features.
If you prefer a detailed explanation in Spanish, check this PDF document about the project.