Practical Cryptography
A book by Niels Ferguson and Bruce Schneier
The second edition of this book has been renamed Cryptography Engineering.
This book is about cryptography as it is used in real-world systems, about cryptography as an engineering discipline rather than cryptography as a mathematical science.
Building real-world cryptographic systems is vastly different from the abstract world of most books on cryptography, which discuss a pure mathematical ideal that magically solves your security problems. Designers and implementors live in a very different world, where nothing is perfect and where experience shows that most cryptographic systems are broken due to problems that have nothing to do with mathematics. This book is about how to apply the cryptographic functions in a real-world setting in such a way that you actually get a secure system…