Benchmarking study of AES, RSA and SHA‑256 across multiple file sizes and scenarios.
We measure encryption, decryption and hashing performance, analysing both speed and stability (standard deviation).
- Algorithms: AES (symmetric), RSA (asymmetric), SHA‑256 (hash).
- Scenarios: single file repeated N times vs N different files.
- Sizes: from a few bytes up to MB scale (log‑log comparisons).
- Metrics: mean execution time (µs) and standard deviation (stability).
- Deliverables: clean notebook, figures (in
images/
) and report.
.
├── data/ # Test inputs (optional)
├── images/ # All generated figures (1.png … 15.png)
│ ├── 10.png # RSA encryption vs decryption (log‑log)
│ ├── 11.png # RSA standard deviation (enc/dec)
│ ├── 12.png # SHA‑256 standard deviation (hashing)
│ ├── 13.png # AES standard deviation (enc/dec)
│ ├── 14.png # AES vs RSA encryption (log‑log)
│ ├── 15.png # AES vs SHA‑256 encryption (log‑log)
│ └── … # other figures (1–9)
├── notebooks/
│ └── cryptography_benchmark.ipynb # Main notebook (code & analysis)
├── reports/
│ └── cryptography_report.pdf # Final project report (optional)
├── requirements.txt # Python dependencies
├── LICENSE # MIT License
└── README.md # This file
ℹ️ Important: Image links below use the exact filenames in your repo (
images/10.png
,images/11.png
, …).
If an image doesn’t render on GitHub, check that the filename and extension match exactly (case‑sensitive).
- Install Python 3.11+.
- (Optional) Create a virtual environment:
python -m venv .venv source .venv/bin/activate # macOS/Linux .venv\Scripts\activate # Windows
- Install dependencies:
pip install -r requirements.txt
- Launch the notebook:
jupyter notebook notebooks/cryptography_benchmark.ipynb
- numpy
- matplotlib
- timeit
- jupyter
- ipykernel
- Ana Sofia Quintero
- Liliana Silva
- Catarina Abrantes
Licensed under the MIT License — see LICENSE for details.