Introduction to Modern Cryptography