Introduction to Modern Cryptography — book by Jonathan Katz and Yehuda Lindell