This book is essentially an undergraduate course in Cryptography, like you’d see during a single semester of a CS degree. As a disclaimer, I don’t think this book should really be read cover-to-cover, as there’s a lot of material which is very superfluous, in my view. For example, you can skip the first 7 chapters, which covers historical ciphers, unless you find that kind of thing interesting. Nonetheless, this book does provide a useful introduction to many topics in public key Cryptography. It’s nice to see an overview of Zero-Knowledge proofs, for example. The presentation is more formal than the previous book, and is suitable for people who have a bit more background in math, or at least in some kind of formal reasoning. This book also provides a good amount of exercises, which can be very useful for learning.