Cryptography Engineering
by Niels Ferguson, Bruce Schneier, Tadayoshi Kohno · Bruce Schneier
Practical guide to building real cryptographic systems: block ciphers, hash functions, message authentication codes, secure channels, key negotiation, random number generation and PKI. It explains why sound primitives still fail in implementation and how to design protocols that avoid those engineering mistakes.
This link may earn us a small commission at no extra cost to you. Affiliate disclosure
More resources on Encryption Basics
EFF Surveillance Self-Defense
The Electronic Frontier Foundation's guide to digital security, combining explainers on threat modeling, encryption and metadata with step-by-step tool tutorials for Tor, Signal and secure devices. Readers learn to assess their own risks and pick suitable protections, including scenario-based playlists for journalists and activists.
Cryptography I
Cryptography is an indispensable tool for protecting information in computer systems. In this course you will learn the inner workings of cryptographic systems and how to correctly use them in real-world applications. The course begins with a detailed discussion of how two parties who have a shared secret key can communicate securely when a powerful adversary eavesdrops and tampers with traffic. We will examine many deployed protocols and analyze mistakes in existing systems. The second half of the course discusses public-key techniques that let two parties generate a shared secret key. Throughout the course participants will be exposed to many exciting open problems in the field and work on fun (optional) programming projects. In a second course (Crypto II) we will cover more advanced cryptographic tasks such as zero-knowledge, privacy mechanisms, and other forms of encryption.
crypto101.io
Crypto101 is a free online cryptography textbook that explains core concepts, algorithms, and cryptographic protocols with clear explanations and practical code examples.
Practical Cryptography for Developers
Free online book by Svetlin Nakov explaining cryptography for programmers, covering hashes, MACs, key derivation, symmetric ciphers, elliptic curves, digital signatures, and quantum-safe algorithms. Readers work through Python code examples to use these primitives correctly in real applications.
Public Key Cryptography - Computerphile
Computerphile explainer of asymmetric encryption: why a public key can lock a message that only the matching private key can open, and why this solves the key-distribution problem that symmetric ciphers face. Afterwards you can explain how strangers communicate securely without sharing a secret.
Symmetric Key Cryptography: The Basics
Episode of Crash Course Computer Science tracing cryptography from Caesar and substitution ciphers through Enigma to modern AES, Diffie-Hellman key exchange and RSA. You come away understanding the difference between symmetric and asymmetric encryption and why modern systems rely on both.