Public Key Cryptography Demystified