Diffie–Hellman

Problem

Your browser and a server want shared secret key material. But the Internet between them can be observed. Simply sending the secret would expose it. How can both sides derive a shared secret without transmitting that secret itself?

Solution — Diffie–Hellman

Both sides exchange public values and combine them with their own private values.
Client private ─┐
                → shared secret
Server public ──┘
Server private ─┐
                → same shared secret
Client public ──┘
An observer sees the exchanged public values but cannot feasibly derive the shared secret.
Core idea: Diffie–Hellman lets two parties establish shared secret material over an observable network.