This is old cryptography. This book should not be quite as bad for its readers as Schneier's Applied Cryptography (which includes many ciphers which were known to be broken at the time, with little hint of that fact in the text), but it's still old-fashioned.
E.g.
- Chapter 7 "block ciphers" doesn't even mention CTR mode, but does mention CFB and OFB. Modern cryptosystems all use CTR mode, and no new system I'm aware of uses CFB or OFB.
- Chapter 8 "Public-Key Encryption" doesn't even mention elliptic-curve cryptography, despite almost all new cryptosystems being based on that in some form or another. This chapter also doesn't appear to mention RSA padding, which is crucial to a secure RSA implementation.
- Chapter 9 "Hash Functions and Data Integrity" doesn't mention anything newer than SHA-1. But SHA-1 is thoroughly deprecated, and will be broken in the next few years.
Just buy a new book instead; I hear good things about Cryptography Engineering, and I liked "An Introduction to Modern Cryptography" (more mathematical, less engineering-focused).
Also, section 9.6.5 advocates MAC-then-encrypt over encrypt-then-MAC - presumably the flaws in this approach have only become apparent since the book was published.
I think you mean: Cryptography Engineering : Design Principles and Practical Applications by Niels Ferguson, Bruce Schneier, and Tadayoshi Kohno
The book is introduction to the engineering problems and details when implementing cryptography. It introduces primitives, like symmetric ciphers, hash functions etc. and then shows how to write actual protocols using them. It covers many practical details and implementation concerns. I think it's good read. Just bear in mind that it's not comprehensive or authoritative. Some advice can be controversial. For example, they lean on authentication before encryption that others consider bad practice.
No experience, but I wrote "I hear good things about Cryptography Engineering".
That said, at least one colleague was much happier with Security Engineering (also available for free online, and the non-crypto parts age well). Security Engineering doesn't teach you hard crypto (much), but does teach threat modelling and presents various solutions.
That's not true. SHA-1 is a 160-bit hash, which means that you'd expect it to take on average 2^80 hash computations to find a collision. The best attacks against full SHA-1 require more like 2^57 to 2^61 computations, and there are attacks against parts of SHA-1 that require quite a bit less than that (which indicates that the design is risky).
The difference between 2^60 and 2^80 is huge. If 2^80 operations take, say, a thousand years, it would take only about 8 hours to do 2^60 operations.
(Also, there's the additional twist that SHA-1 isn't even the fastest known algorithm. If you switch to BLAKE2, you can get faster hashing, and the output is 256-bit, so the brute-force strength is 2^128, which more than makes up for each individual operation being a little faster. https://blake2.net/)
Some chapters in this book (e.g. Chapter 4) contain very useful knowledge about practical algorithms for working with the underlying mathematical objects used as cryptographic primitives. Some that I found particularly useful in studying elliptic curve cryptography was the section on irreducible polynomials over finite fields.
E.g.
- Chapter 7 "block ciphers" doesn't even mention CTR mode, but does mention CFB and OFB. Modern cryptosystems all use CTR mode, and no new system I'm aware of uses CFB or OFB.
- Chapter 8 "Public-Key Encryption" doesn't even mention elliptic-curve cryptography, despite almost all new cryptosystems being based on that in some form or another. This chapter also doesn't appear to mention RSA padding, which is crucial to a secure RSA implementation.
- Chapter 9 "Hash Functions and Data Integrity" doesn't mention anything newer than SHA-1. But SHA-1 is thoroughly deprecated, and will be broken in the next few years.
Just buy a new book instead; I hear good things about Cryptography Engineering, and I liked "An Introduction to Modern Cryptography" (more mathematical, less engineering-focused).