Use of symmetric keys rather than asymmetric keys for transport security 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?
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.