Key exchange protocols allow two parties to produce a secret session key over a public channel.
Key exchange protocols allow two entities to produce a secret session key over a public channel.
There is generally two types: key agreement means both entities contribute to the session key (e.g., Diffie-Hellman) while key transport means one entity generates the key and sends it to the other.
For key exchange to be (mutually) authenticated, each entity must possess a genuine copy of the other entity's public key, or they must share a secret fixed before.