Introduction to Modern Cryptography, Second Edition