Some notes inspired by the Coursera class Number Theory and Cryptography.
-
One-Time-Pad.ipynb
Jupyter notebook with an emphasis on concepts such as perfect secrecy, information leakage with key re-use and an attack based on malleability. -
RSA.ipynb
Jupyter notebook implementing RSA encryption/decryption from scratch with a real SSH key generated ssh-keygen. -
"Public key encryption for pedestrians: RSA + OAEP padding with a real SSH key"
Deep dive into the mathematics of RSA algorithm, its homomorphic properties and the OAEP randomized padding.
(PDF document)