Tons of fun cryptography exercises, definitions, and proofs!