Resources¶
Level: reference
Where to go next, and what each one is actually good for. Every link was checked the day it was added.
Books¶
| Book | What it is for |
|---|---|
| Serious Cryptography — Jean-Philippe Aumasson | The best single modern book for this library's reader: rigorous about what each primitive promises, unsentimental about implementation, and it names the failure modes. Start here |
| Cryptography Engineering — Ferguson, Schneier, Kohno | The systems view — key management, protocol design, and why the interesting decisions are never which cipher |
| Real-World Cryptography — David Wong | The most practical of the three, organised around what you actually meet (TLS, tokens, hardware) rather than around primitives |
| An Introduction to Mathematical Cryptography — Hoffstein, Pipher, Silverman | When you want the number theory properly rather than by analogy |
Standards and specifications¶
- NIST FIPS and SP publications ↗ — AES (FIPS 197), SHA-2 (FIPS 180-4), SHA-3 (FIPS 202), HMAC (FIPS 198-1), and since 2024 ML-KEM and ML-DSA (FIPS 203/204). The test vectors this library checks against live here.
- RFC 4231 ↗ — HMAC test vectors, the ones every implementation is checked against.
- RFC 8446 ↗ — TLS 1.3, and unusually readable for a protocol spec.
- RFC 9106 ↗ — Argon2, and the parameter guidance that actually matters.
Things to do rather than read¶
- CryptoHack ↗ — exercises that make you break things. The closest thing to this library's method, done as a game.
- Cryptopals ↗ — the original set. Harder, older, and the first two sets are still the best introduction to why the joins fail.
Reference and lookup¶
- Latacora's Cryptographic Right Answers ↗ — an opinionated "use this, not that" list. Read it as a starting point rather than as gospel, and note its date.
- Wikipedia ↗ — genuinely good on this subject, because the articles are heavily watched by people who care about precision.
Sibling libraries¶
- encodings-learning-library ↗ — bytes, hex, encodings. This library assumes you can read a hex dump and knows what a code point is; that is where those live.
- python-learning-library ↗ and rust-learning-library ↗ — the two languages the examples are written in.