16
Nov 2022
Introduction to Modern Cryptography by Katz, Jonathan

It was very nice to see how security would be possibly defined in a sense different from (and more relaxed than) information-theoretic secrecy. It was nice to see how different definitions would lead to different levels of security, or in other words, each definition gives a guarantee of security against a certain class of real-life security threats (or attacks) and also takes into account very practical issues like dealing with computationally bounded adversaries. Moreover, introducing the notion of security using those definitions made the whole setting, not only mathematically rigorous, but also coherent, structured, and well-founded, without losing contact with practical concerns and real-life scenarios. Even more, this setting gave a neat and mathematically sound way to attain a proven notion of security rather than just introducing or suggesting schemes that show “good” performance in practice without being able to say anything, or quantify the security they provide on a more fundamental level. Another thing I also liked very much and is related to the point above, is how the book moves on to the point where it was shown that the provable security of almost (if not all) the encryption schemes (either private-key or public-key based) as well as authentication codes and signature schemes is based on the corner stone assumption of existence of one-way functions (one-way permutations). It was very elegant the way a one-way function (permutation) was defined and the way it is used to prove security in one sense or the other. It fits in very well in the development of the theory and made the whole structure very homogeneous. That is why Chapter 6, in my opinion, was one of the most important chapters that set the foundations of attaining provable security and build the bridge between assumptions and theory (one-way functions and hardcore predicates) on one side and practice on the other (pseudo-random generators and pseudo-random functions).Finally, public-key encryption schemes and digital signatures are also, definitely, on my long favorites list of this book. It was very exciting and intellectually stimulating to read how these schemes work and how they are (or most of them at least) shown to be secure in one sense or the other (i.e., attaining provable security ). Actually, it was useful to me to know all these practical issues related to these schemes like implementation and design issues of El Gamal and the (padded) RSA schemes, as well as the practical considerations that set many differences between private and public key encryption schemes. The same is also true with digital signatures. Also, discussing various real-life attacks (especially those against schemes that are widely used in cryptographic standards like the padded RSA and El Gamal schemes) was a very important ingredient that made the whole material in this book interesting and very engaging.