Introduction to Modern Cryptography by Katz Jonathan, Jonathan Katz & Yehuda Lindell