Key-agreement protocol

related topics
{system, computer, user}
{law, state, case}
{math, number, function}
{war, force, army}
{government, party, election}

In cryptography, a key-agreement protocol is a protocol whereby two or more parties can agree on a key in such a way that both influence the outcome. If properly done, this precludes undesired third-parties from forcing a key choice on the agreeing parties. Protocols that are useful in practice also do not reveal to any eavesdropping party what key has been agreed upon.

Contents

Exponential key exchange

The first publicly-known[1] public-key agreement protocol that meets the above criteria was the Diffie-Hellman exponential key exchange, in which two parties jointly exponentiate a generator with random numbers, in such a way that an eavesdropper has no way of guessing what the key is.

However, exponential key exchange in and of itself does not specify any prior agreement or subsequent authentication between the participants. It has thus been described as an anonymous key agreement protocol.

Authentication

Anonymous key exchange, like Diffie-Hellman, does not provide authentication of the parties, and is thus vulnerable to Man-in-the-middle attacks.

A wide variety of cryptographic authentication schemes and protocols have been developed to provide authenticated key agreement to prevent man-in-the-middle and related attacks. These methods generally mathematically bind the agreed key to other agreed-upon data, such as the following:

  • Public/private key pairs
  • Shared secret keys
  • Passwords

Public keys

A widely-used mechanism for defeating such attacks is the use of digitally signed keys that must be integrity-assured: if Bob's key is signed by a trusted third party vouching for his identity, Alice can have considerable confidence that a signed key she receives is not an attempt to intercept by Eve. When Alice and Bob have a public-key infrastructure, they may digitally sign an agreed Diffie-Hellman agreed key, or exchanged Diffie-Hellman public keys. Such signed keys, sometimes signed by a certificate authority, are one of the primary mechanisms used for secure web traffic (including HTTPS, SSL or Transport Layer Security protocols). Other specific examples are MQV, YAK and the ISAKMP component of the IPsec protocol suite for securing Internet Protocol communications. However, these systems require care in endorsing the match between identity information and public keys by certificate authorities in order to work properly.

Full article ▸

related documents
Role-based access control
Access control list
Pseudonymous remailer
ECHELON
Authorization
Electronic tagging
Debugger
XPCOM
ScriptBasic
Microsoft BASIC
Creator code
Remote procedure call
Apache License
IBM 1620 Model I
Hyper-threading
VRML
Z3 (computer)
Pentium FDIV bug
CHS conversion
Adapter pattern
386BSD
Portable Distributed Objects
TRIPOS
IBM 704
IWarp
Nautilus (file manager)
G.711
Darlington transistor
Linux framebuffer
ActiveX