This article needs additional citations for verification. (March 2024) |
In cryptography, a key-agreement protocol is a protocol whereby two (or more) parties generate a cryptographic key as a function of information provided by each honest party so that no party can predetermine the resulting value.[1] In particular, all honest participants influence the outcome. A key-agreement protocol is a specialisation of a key-exchange protocol.[2]
At the end of the agreement, all parties share the same key. A key-agreement protocol precludes undesired third parties from forcing a key choice on the agreeing parties. A secure key agreement can ensure confidentiality and data integrity[3] in communications systems, ranging from simple messaging applications to complex banking transactions.
Secure agreement is defined relative to a security model, for example the Universal Model.[2] More generally, when evaluating protocols, it is important to state security goals and the security model.[4] For example, it may be required for the session key to be authenticated. A protocol can be evaluated for success only in the context of its goals and attack model.[5] An example of an adversarial model is the Dolev-Yao model.
In many key exchange systems, one party generates the key, and sends that key to the other party;[6] the other party has no influence on the key.
:0
was invoked but never defined (see the help page).