# Can public key cryptography be equivalent to asymmetric cryptography? If not, what's the difference?

I'm currently studying modern public key cryptography course, and I'm confused whether public key and asymmetric cryptography are the same.

• Hi there lightcruiser, welcome to crypto! – Maarten Bodewes Mar 2 '17 at 0:12

Yes, they are the same in most contexts. The asymmetry is in the keys used, public and private keys. It's definitely not in the encryption and decryption method; in (textbook) RSA the method for encryption and decryption (modular exponentiation) is completely the same. RSA is certainly used for public key cryptography and it is certainly also an asymmetric algorithm.

Key agreement and signature generation are also asymmetric cryptography. You could say that "public key cryptography" puts some more emphasis on the public key, probably hinting that the public key is generated by one party and trusted by another. This is usually the case for PKI(X), the underlying certificate based public key infrastructure used for e.g. TLS / HTTPS.

The public & private key may however not be static or trusted for Diffie-Hellman key agreement where the public / private key pairs are ephemeral (generated per key agreement operation).

Diffie-Hellman however also works with static/trusted keys, so that difference is feeble at best.

Note:

• Asymmetric private keys are sometimes called secret keys. I think private keys is the better term. I use the term "secret keys" for symmetric keys (those may not be private to one party but must be kept secret by the parties holding them).
• I'd be very interested in hearing about counter-examples (/contexts) to my observations though; this is just based on what I have observed over time. – Maarten Bodewes Mar 2 '17 at 0:14
• I know one example: You can build a public key cryptosystem using a homomorphic secret key cipher: The public key can be secret-key encryptions of 0, and the public key encryption process involves adding random elements of the public key to the message. The decryption process applies the secret-key decryption circuit to the resultant ciphertext. (This scheme was presented in Fully Homomorphic Encryption Over The Integers) – Ella Rose Mar 2 '17 at 1:43
• @EllaRose I think this sounds similar to hash based signatures. But it seems to me that the private and public key are still rather asymmetric. Sure, the symmetric cipher is used as primitive within the scheme, but does this make a difference between asymmetric / public key cryptography? I'm not familiar with the scheme though, so could you explain why the difference exists? – Maarten Bodewes Mar 2 '17 at 9:50
• It is basically a knapsack cryptosystem; Encryption is $c = 0_r + 0_r + 0_r ... + m$ (all math done on ciphertexts from the public key, which are created via $E_k(0)$). Decryption is $D_k(c)$. So both the public key and private key are asymmetric, and the encryption and decryption methods are different: The encryption method is homomorphically summing elements of a set, and decryption is the decryption circuit from an arbitrarily designed (homomorphic) secret key cipher. – Ella Rose Mar 2 '17 at 17:36
• I have a python implementation if you would like to see it (it demonstrates the idea; I do not claim security of the implemented secret key construction). I did leave +1, in case you were concerned I was nit picking. – Ella Rose Mar 2 '17 at 17:39