
Cryptography engineering
Design Principles and Practical Applications
by Niels Ferguson, Bruce Schneier, Tadayoshi Kohno · first published 2010
116mentions
50recommended by
80HN commenters
2010–2026first – last mentioned
61% recommend32% neutral7% critical
Why HN recommends it
A modern introduction to cryptography focused on using primitives correctly and avoiding common implementation mistakes, with a paranoid design mindset. Suits developers wanting practical grounding.
Summarised by Claude from recommending comments
Affiliate links. As an Amazon Associate I earn from qualifying purchases.







Applied Cryptography is a terrible reference. Please don't recommend it to programmers. Instead, recommend Practical Cryptography / Cryptography Engineering (they're the same book), which Schneier co-authored with Niels Fergusen. Update: I said "terrible book" but I'm going to start being more precise about this. It's not a terrible "book"; I enjoyed the…
on “The Boston Marathon Bombing: Keep Calm and Carry On” ↗…it, you have nothing to unlearn, so you're much better off." Source: http://wiki.securityweekly.com/wiki/index.php/Episode292 time index 22:10, but the whole podcast is good. Instead, he recommends Cryptography Engineering: http://www.amazon.com/Cryptography-Engineering-Principles-Pr... Another way to get a primer on crypto is to do the Matasano crypto challenges: http://cryptopals.com/ The solutions aren't (yet?) published,…
on “N reasons why the spooks love Tribler” ↗…of the key, from 256 bits of entropy to ~190 bits (log2(62^32)). And that would be in the best case, if it were sampling uniformly from the distribution - it is not. I recommend reading Section 9.7 of Cryptography Engineering [1] to understand why choosing random elements from a set is harder than it seems. A good example of a similar bug is the nasty bug in Cryptocat's PRNG from 2013 [2]. I assume this step was done so the…
on “Hardbin: secure encrypted pastebin” ↗I would recommend Schneier's Cryptography Engineering (or its predecessor) Practical Cryptography over Applied Cryptography, given the question. I agree Applied Cryptography is a very interesting book, but that's because I'm a crypto nerd. For someone looking…
on “Ask HN: What language-agnostic programming books should I read?” ↗That book is old, and though still basically correct, there's much better ways to learn about the practice of developing secure systems. I recommend "Cryptography Engineering" by Ferguson, Schneier, Kohno which is a more modern descendant of Schneier's AC.
on “500k Bitcoins traded in 1h, Mt.Gox market hacked + crash” ↗I think tptacek's point is that the answer to your question is spelled out very clearly on the page. ;-) From the page: > You should own Ferguson and Schneier’s follow-up, Cryptography Engineering (C.E.). Written partly in penance, the new book deftly handles material the older book stumbles over. C.E. wants to teach you the right way to work with cryptography without wasting time on GOST and El…
on “Applied Cryptography Engineering” ↗I would highly recommend reading Cryptography Engineering [0] cover to cover. It's amazingly readable, covers the basics, the theory necessary to understand how things works and includes ample practical advice and observations on the industry. The first thing…
on “Everything you need to know about cryptography in 1 hour (2010) [pdf]” ↗Cryptography Engineering is a good book (with some flaws). Schneier is much less of a factor in real-world crypto than generalist developers think he is. I feel bad blaming him for it; it's not his fault that people who don't…
on “Encrypting Windows Hard Drives” ↗…understand it now. He's probably just misguided or simply incorrect. And I admit that most of my crypto knowledge comes from reading his and Ferguson's book, Practical Cryptography (and the 2nd edition, Cryptography Engineering - I'm not sure there is a better "popsci" crypto book.) To make a simple comparison: if someone smarter than me says 2+2=5, my probability of 2+2=4 will move go down from (1 - epsilon) to something a…
on “Encrypting Windows Hard Drives” ↗The book that "clicked" for me is: Cryptography Engineering: Design Principles and Practical Applications, by Ferguson/Schneier/Kohno (2015) [1] In plain language it walks through what I wanted to know, in a modern and paranoid perspective, as a readable narrative,…
on “A Graduate Course in Applied Cryptography” ↗…programs. If you like hands on stuff, https://cryptopals.com/ has a lot of challenges to help learn stuff. Other than that maybe look into books. When i was trying to learn about this stuff, I liked "Cryptography Engineering" by Ferguson, but that was a while ago no idea if its dated now (also i am definitely an amartur in this so take everything i say with a grain of salt)
on “Age – a simple, modern and secure file encryption tool, format, and Go library” ↗…shorter text is Koblitz's A Course in Number Theory and Cryptography, but I think all of the material in that is also in Hoffstein et al.'s Introduction. For a practical implementation-oriented treatment, Cryptography Engineering by Ferguson, Schneier, and Kohno is a good text. It's especially great as a launching point for someone interested in cryptography, especially from a systems-building perspective. For a mostly-rigorous…
on “Mathematical Cryptology [pdf]” ↗…interested in learning cryptography so you can try to roll your own, I recommend starting with books like these: - Cryptography Made Simple by Nigel Smart - Applied Cryptography by Bruce Schneier - Cryptography Engineering: design principles and practical applications by Neil Ferguson, Bruce Schneier, and Tadayoshi Kohno These books require some prerequisite mathematical knowledge (like all crypto does) which you can probably…
on “Police CyberAlarm Uses Alarming Cryptography” ↗'Cryptography Engineering' by Ferguson & Schneier is the best. http://www.amazon.com/gp/aw/d.html?pd=1&a=0470474246 ^ I got that link using my BlacbBerry, apologies if it's the mobile version.
on “Ask HN: Resources to learn more about cryptography” ↗…some sort of digital signature. This won't make your application uncrackable, but will make it impossible to fake legit licenses. A good reference on how to get these things right is Schneier et al's 'Cryptography Engineering'. The standard advice line here, however, is "get professional help".
on “Is my developer's home-brew password security right or wrong, and why?” ↗