Is Applied Cryptography Really Out of Date?

This popular book may not be suitable for developers building crypto systems but even its replacement – Cryptography Engineering – needs some work.

Back in the day I pretty much cut my teeth on the Bruce Schneier’s  book “Applied Cryptography” that most of us are familiar with. Overall, I found the book focused less on the complex math involved and more towards the practical application of those algorithms in interesting ways to help make systems more secure. But through the years here and there I’d hear from someone or read an article mentioning that the book, although good for its time, wasn’t that “practical” in anymore, especially for those developing crypto systems. Even Schneier expressed this concern. But why?

Recently, I came across a great article from pondering the answer to this very question. The first part of the post discusses several examples of where Applied Cryptography’s guidance and discussions are woefully out of date for anyone developing crypto systems given its last publication in 1996. For example, the book discusses block encryption modes and in its coverage of ECB cautions against its use but does note several exceptions. But as the article’s author notes … ECB is practically never safe to use anymore. Additionally, the author notes that Applied Cryptography wastes too much time in its coverage of numerous irrelevant or out of date crypto algorithms, including GOST, El Gamal, DES, Lucifer, RC2, IDEA, Blowfish, and RC5 among others. And that’s about it… Although I don’t think these gaps are enough to consider totally discounting Applied Cryptography, the signal to noise ratio is way to low for developers building crypto systems.

In place of Applied Cryptography the author of the article recommends Cryptography Engineering, again penned by Schneier but this time along with Niels Ferguson and Tadayoshi Kohno (first edition was called Practical Cryptography). But according to the article’s author this book is not perfect either and he recommends several updates for a new edition that would make this tome the go-to crypto implementation bible. Most of their recommendations are based on new material that needs to be covered since its publication in 2003, including CBC padding oracle attack, chosen-plaintext attack on TLS, newer side channel attacks, e=3 signature bug in RSA, and CRIME attack on TLS compression. I am a bit confused though since there seems to have been an updated edition in 2010. It would be interesting to see their thoughts are on this later version.

Other key deficiencies noted include covering the math of RSA rather than its use and differences from AES, missing discussion of several important basic algorithms (e.g., DSA), offering almost no coverage of ECC, and contributing to the Cryptographic Doom Principle debate rather than recommending Encrypt-then-MAC. It further overlooks stream encryption, the newer memory-hard key derivation functions beyond the standard bcrypt and PBKDF2, side channel attacks, HTTP/HTTPS, the perils of JavaScript crypto, and same-origin policy.


Is Applied Cryptography too outdated to use anymore? What are your thoughts on Cryptography Engineering? Let us know in the comments below. Today’s post pic is from See ya!

Leave a Reply

Your email address will not be published. Required fields are marked *