Understanding How Public Key Cryptography Works