Es un protocolo , ejecutado por dos partes. No tiene entrada, salvo el parámetro de seguridad, y su salida es:
- Un conjunto de mensajes intercambiados
- Una clave conocida solo por una de las partes
- Una clave conocida solo por la otra parte
Donde la condición fundamental es que
Intercambio Diffie-Hellman
- define , , , donde es un grupo, el tamaño y un generador.
- elige y calcula , donde
- envía a : (MENSAJE PUBLICO)
- elije y calcula
- envía a : (MENSAJE PUBLICO)
- calcula
- calcula
Esto termina con que , y si y se conocen de antemano, pueden tener predefinidos . Esto es seguro pues solo con y no es posible obtener o , pues por el problema del logaritmo discreto, no hay una solución eficiente. Y dados , y , un adversario no puede distinguir de un valor aleatorio. En la practica no se utiliza la versión original, pues requiere de un canal de transmisión autentificado, es decir que un atacante que pueda modificar mensajes rompe la seguridad de DH. Es por esto que se complementa con Firma Digital.
En un Ataque Activo (Man in the Middle), donde el atacante puede omitir mensajes, reescribir el contenido de mensajes, reordenar mensajes o repetirlos, estos esquemas de intercambio no sirven. Para resolver esto, se hace uso de Public Key Infraestructure.