A key exchange algorithm is an algorithm used to establish a shared secret key between two parties, without transmitting the key over an insecure channel. This can be used to facilitate secure communication using symmetric encryption algorithms.