Alice has an asymmetric key pair and it also has Bob. They want to encrypt traffic between each other. It would be simple to encrypt the traffic with their public keys, but instead they use key pairs to generate symmetric keys, which are then used to encrypt traffic.

Why would you not directly use the asymmetric keys?


2 Answers 2


The main reason is efficiency; asymmetric cryptography requires a large overhead with regards to CPU time and bandwidth, while symmetric encryption does not. The time to perform RSA decryption for instance is slower than AES:

Doing 4096 bit private rsa's for 10s: 48 4096 bit private RSA's in 10.10s

That's clearly somewhere about 2,4K/s for a reasonable key size for RSA, and that's excluding overhead, so say about 2 KB/s.

Doing aes-128 cbc for 3s on 64 size blocks: 6221203 aes-128 cbc's in 3.00s

So that's over 128 MB/s, just slightly faster.

You'd need both confidentiality and integrity / authenticity though. So to add a signature and MAC you should about half the speed for both.

Asymmetric encryption is not usable for bulk encryption.

There are more reason to use short term session keys. One is that you can achieve forward secrecy when you derive the session keys using ephemeral-ephemeral key agreement. If that is used the session remains secure even if the private keys become compromised. In such a scheme the asymmetric key pairs are only used for authentication. This will be the default for TLS 1.3.


The short answer is: cost of computation vs information sharing.

Information sharing: Asymmetric keys make key exchange simple by having a public component you can share without fear of compromising the key. Symmetric keys must absolutely be known only be the two parties communicating.

Cost of computation: Something like RSA relies on large number manipulation to perform encryption, which is quite expense. Something like AES uses bit manipulation (already pretty fast) and is further aided by specific processor instructions sets.

This is why hybrid encryption schemes are so popular: they allow you to establish communication safely using asymmetric keys, generate symmetric keys and share them over the safe channel, then switch to the symmetric keys for faster operations on large amounts of data.

There are a lot more details, specifically about what types of operations and what size of data various crypto systems can operate on, but the important factor tends to be efficiency.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.