Module 3 of 5

Public-key cryptography

Key exchange, signatures, certificates, and the TLS handshake that combines them: how two parties who share nothing end up with keys they can trust.

4 lessons83 min reading

Symmetric cryptography assumes the two ends already share a key. Public-key cryptography is how they get one, and how anyone can check who signed something without holding a secret. It is also where the most expensive mistakes live: an exchange nobody authenticated, a nonce used twice, a certificate checked against the wrong name, a client that skipped verification to make an error go away.

The four lessons build up one connection. Key exchange gives two strangers a shared secret; signatures prove who holds a private key; certificates and PKI bind keys to names; and the TLS 1.3 handshake puts all three together with a transcript hash and a key schedule. By the end you should be able to read a handshake or a certificate chain and say which check stops which attacker, and what happens when someone turns that check off.

Lessons

  1. 3.aKey exchangeHow do two strangers agree on a key in public, and what does that key not prove?21 min
  2. 3.bDigital signaturesWhat does a signature prove, and how do ECDSA, RSA-PSS, and Ed25519 fail differently?22 min
  3. 3.cCertificates and PKIHow does a client decide that a public key really belongs to a server name?20 min
  4. 3.dThe TLS handshakeHow does TLS 1.3 turn key exchange, signatures, and certificates into an authenticated channel?20 min