Public Key Cryptography Principles