A key agreement protocol, also called a key exchange protocol, is a series of steps used when two or more parties need to agree upon a key to use for a secret-key cryptosystem. These protocols allow people to share keys freely and securely over any insecure medium, without the need for a previously-established shared secret.
Suppose Alice and Bob want to use a secret-key cryptosystem (see Question 2.1.2) to communicate securely. They first must decide on a shared key. Instead of Bob calling Alice on the phone and discussing what the key will be, which would leave them vulnerable to an eavesdropper, they decide to use a key agreement protocol. By using a key agreement protocol, Alice and Bob may securely exchange a key in an insecure environment. One example of such a protocol is called the Diffie-Hellman key agreement (see Question 3.6.1). In many cases, public-key cryptography is used in a key agreement protocol. Another example is the use of digital envelopes (see Question 2.2.4) for key agreement.