Symmetric vs asymmetric encryption: what's the difference, and why does TLS use both?

5 minintermediatesymmetric-encryptionasymmetric-encryptiontlscomparison

Quick Answer

Symmetric encryption uses one shared key and is fast, but two sides need a safe way to agree on that key first. Asymmetric encryption uses a public/private key pair and solves that key-sharing problem, but it is much slower. TLS uses a hybrid approach: asymmetric encryption during the handshake to agree on a shared secret, then symmetric encryption (AES) for all the actual data.

Detailed Answer

SymmetricAsymmetric
Keys usedOne shared keyPublic + private key pair
SpeedFastMuch slower (100x+ more math)
Key sharing problemHard — both sides need the same secret key firstSolved — the public key can be shared openly
Typical use in TLSEncrypting the actual application dataAgreeing on a shared secret, and proving server identity
Example algorithmsAES, ChaCha20RSA, ECDHE, ECDSA

Neither type alone is a great fit for TLS:

  • Pure symmetric encryption is fast, but two strangers (your browser and a random website) have no safe way to agree on a shared key first.
  • Pure asymmetric encryption solves the key-sharing problem, but it is too slow to encrypt a large amount of data, like a video stream or a big file download.

So TLS combines both, in a hybrid scheme:

Step 1 (asymmetric, slow, small amount of data):
   Browser <----- agree on a shared secret -----> Server
   (using ECDHE/RSA key exchange during the handshake)

Step 2 (symmetric, fast, all the real traffic):
   Browser <----- AES-encrypted application data -----> Server
   (using the shared secret from Step 1 as the AES key)

Result: the security of asymmetric key exchange, the speed of symmetric encryption.