Cryptography is ubiquitous and plays a key role in ensuring data secrecy and integrity as well as in securing computer systems more broadly. Introduction to Modern Cryptography provides a rigorous yet accessible treatment of this fascinating subject. The authors introduce the core principles of modern cryptography, with an emphasis on formal definitions, clear assumptions, and rigorous proofs of security. The book begins by focusing on private-key cryptography, including an extensive treatment of private-key encryption, message authentication codes, and hash functions. The authors also present design principles for widely used stream ciphers and block ciphers including RC4, DES, and AES, plus provide provable constructions of stream ciphers and block ciphers from lower-level primitives. The second half of the book covers public-key cryptography, beginning with a self-contained introduction to the number theory needed to understand the RSA, Diffie-Hellman, and El Gamal cryptosystems (and others), followed by a thorough treatment of several standardized public-key encryption and digital signature schemes.
I studied this book as text book, then started to read from chapter 1 to 13 and taking notes along. It took me 2.5 months to finish but it worth the time. Once you study every part by understanding you don't need to go back to remember. Every encryption scheme, algorithm builds up on previous idea with new concerns at each step. Also it gives enough knowledge on number, probability and field theory to make use of in the topics. I just wish there would be tiny bit more explanation on quadratic residues. However only thing frustrated me was; some of the chapters gave you a lot of theory and explanation and you have no idea where they are leading you to until you reach the main point. It's indeed a blissful feeling to realize couple of times, but it is really making you anxious whether you missed the point somewhere and you don't know how far you should go back. But not being able to find a trace, you keep going until everything gathers up into main idea. Bottom line, it was a great book and in my opinion is a bible of cryptography for whom studying in computer science
I was recommended this textbook via the article 'How Not To Learn Cryptography' [1], and it was indeed an excellent introduction to crypto. It introduces one not only to various definitions of security and the fundamentals of private- and public-key cryptography, but also demonstrates how modern work tends to be done in the field.
The central technique used throughout the text is the formalization of a model 'experiment' involving one or more cryptographic protocols (plus a computationally and informationally-bounded adversary) which one then uses to prove various security properties - typically by demonstrating that an experiment produces some output with negligible probability. This proves to be a satisfying apparatus with its own very distinct flavour - I really enjoy the analytic framework, and the book does a great job of developing and presenting it.
Highly recommended. The text could have probably done with a bit of additional material on e.g. elliptic curve cryptography, but its absence was addressed as being out of scope. Alas.
It's quite mathematical and requires you sometimes to stop and think through what you just read.. yet it's pretty good! However, if you just want to learn about cryptography in general then this book might be too much for you