A comprehensive journey through the art and science of codebreaking — from Al-Kindi's frequency analysis to post-quantum cryptography.
Adam Mickiewicz University • 2025/2026 (summer) • AMUPIE • 5 ECTS45 chapters with theory, historical context, Python implementations, visualizations, and exercises.
Open book →Lecture slides covering all 15 parts with definitions, theorems, diagrams, and discussion prompts.
View slides →Hands-on explorations: Caesar cipher, Enigma simulator, S-box analysis, RSA, and lattice visualization.
Explore applets →Substitution ciphers, permutations, and frequency analysis. Ch 1–3.
Monoalphabetic attacks, Vigenere, Kasiski test, Index of Coincidence. Ch 4–6.
Hill cipher, Playfair, and automated cryptanalysis. Ch 7–9.
Enigma design, Polish codebreakers, Turing's Bombe. Ch 10–12.
Shannon's secrecy theory, block cipher design, DES. Ch 13–15.
Linear approximations, LAT, Matsui's attack on SPN ciphers. Ch 16–18.
Differentials, DDT, differential attacks on SPN ciphers. Ch 19–21.
Finite fields GF(2^8), AES design and security analysis. Ch 22–24.
RSA cryptosystem, attacks on RSA, factoring algorithms. Ch 25–27.
Discrete logarithm, ElGamal, index calculus method. Ch 28–30.
EC group law, point groups, ECC in practice. Ch 31–33.
Gröbner bases, algebraic S-box analysis, algebraic attacks. Ch 34–36.
Quantum foundations, Shor's algorithm, Grover's algorithm. Ch 37–39.
Lattice problems, LWE, ML-KEM (Kyber), lattice attacks. Ch 40–42.
McEliece, NIST PQC standards, synthesis and future directions. Ch 43–45.
13:45–15:15 & 15:30–17:00
Tuesdays, 12:00–13:00
60 hours • AMUPIE
Self-study + live discussions
Each week you will have reading material and exercises to work through before class. Live sessions are devoted to discussions, case analysis, and collaborative problem-solving.
Participation, discussions, and in-class exercises.
Weekly homework assignments submitted via Moodle.
Implementation projects with written reports.
| Threshold | Grade |
|---|---|
| 90% | bardzo dobry (5) |
| 85% | dobry plus (4.5) |
| 80% | dobry (4) |
| 75% | dostateczny plus (3.5) |
| 60% | dostateczny (3) |
| < 60% | niedostateczny (2) |