Cómo funciona el intercambio de claves
Para que dos personas usen el mismo candado, necesitan la misma llave. Pero ¿cómo se entrega esa llave? Si la envías por correo, alguien a mitad de camino podría copiarla; si quedáis en persona, la distancia lo impide. Sorprendentemente, hay una forma de que dos personas acaben con la misma llave sin enviarla nunca: la construyen juntas.
Hay que compartir con seguridad una llave rápida
El cifrado de clave pública de la lección anterior es seguro, pero sus cálculos son pesados y lentos. Intercambiar contenidos largos enteros de esa forma tarda demasiado, así que el contenido real se cierra rápido con cifrado simétrico.
El problema es que el cifrado simétrico exige que las dos personas tengan exactamente la misma llave. Aquí vuelve el problema de la distribución de claves que nos bloqueó en la lección de cifrado simétrico. Una opción es cerrar la llave simétrica con una clave pública y enviarla, pero esta vez veremos otro camino que nunca envía la llave.
Toca clave pública y clave simétrica para compararlas. La clave pública es segura pero lenta; la simétrica es rápida pero hay que compartirla.
Las ganas de usar una llave simétrica rápida están claras. Pero enviarla sin más es arriesgado: si alguien a mitad de camino la copia, no hay candado lo bastante fuerte.
Así que hace falta una forma de que dos personas tengan la misma llave sin poner nunca la llave en el camino. Imaginemos esa forma como mezclar pintura.
Mezclar un color secreto con un color público
Llamemos a las dos personas Garam y Narae. Primero acuerdan un color público que compartir. Da igual quién lo vea. Luego, cada una elige un color secreto que nunca enseñará a nadie.
Garam mezcla el color público con su color secreto para obtener un color nuevo, y Narae mezcla el color público con el suyo para obtener otro. Después se envían solo esos colores mezclados. Lo importante es que, una vez mezclada la pintura, es muy difícil separar qué colores entraron.
Pulsa para que Garam y Narae mezclen cada una su color secreto con el color público. Solo se envían los dos colores mezclados; los colores secretos se quedan en sus manos.
Ahora Garam tiene el color mezclado que envió Narae, y Narae tiene el que envió Garam. Las dos conocen además el color público. Por ahora tienen colores distintos, pero un paso más los hará iguales.
Si cada una mezcla su propio color secreto con el color que recibió, las dos llegan exactamente al mismo color. Comprobemos por qué.
Las dos llegan al mismo color final
Lo que tiene Garam ya contiene el color secreto de Narae, y Garam le añade su propio color secreto. El resultado es el color público con los dos colores secretos mezclados. Narae hace lo mismo: añade su color secreto al color que contiene el de Garam.
El orden de la mezcla cambia, pero entraron los mismos colores, así que el resultado es el mismo. Las dos llegan exactamente al mismo color final. Ese color final es un secreto compartido que solo ellas conocen, y se usa como llave simétrica.
Los colores finales de las dos casillas quedaron idénticos. La llave nunca salió al camino: lo único que circuló fue el color público y los colores mezclados. Aun así, las dos tienen ahora la misma llave.
No enviar el mismo secreto, sino construirlo juntas: ese es el corazón del intercambio de claves. Se llama intercambio de claves de Diffie-Hellman, por las dos personas que lo propusieron por primera vez, y en la práctica usa cálculos con números enormes en lugar de pintura. Entonces, ¿qué pasa si alguien observa todos los colores que circulan?
Observar no basta para hacer el color final
Imagina a alguien que observa todos los colores que pasan por el camino. Esa persona conoce el color público y ha visto tanto el color mezclado que envió Garam como el que envió Narae. Aun así, no puede hacer el color final.
Para hacerlo necesita el color secreto de alguien, y ningún color secreto salió nunca al camino. Sacar de nuevo un color secreto de una mezcla también es muy difícil. Así que quien observa no llega al mismo color final.
Toca cada cosa que el observador vio en el camino. El color público y los colores mezclados se ven todos, pero sin un color secreto no se puede hacer el color final.
Al observador le quedó un hueco vacío, porque le falta la última pieza: un color secreto. Por eso Garam y Narae pueden usar con tranquilidad el color final como su propia llave simétrica.
Hay una trampa, eso sí. El intercambio de claves detiene a quien solo observa, pero no a alguien en medio que mezcla colores por separado con Narae haciéndose pasar por Garam, y con Garam haciéndose pasar por Narae. Por eso el intercambio de claves debe usarse junto con firmas y certificados que confirmen que la otra parte es auténtica. Además, el intercambio de claves no es lo mismo que cerrar un contenido con una clave pública.
Resumen
En resumen, el cifrado de clave pública es seguro pero lento, así que el contenido real viaja con una llave simétrica rápida. Esa llave simétrica no se envía, sino que se construye juntos. Cada persona mezcla un color secreto con el color público e intercambia el resultado; al volver a mezclar su propio color secreto con lo recibido, las dos llegan al mismo color final, el secreto compartido.
Quien observa, sin ningún color secreto, no puede hacer ese color. El intercambio de claves es el procedimiento para construir juntos el mismo secreto, y es distinto del cifrado de clave pública, que cierra el contenido con una clave pública.
Toca las dos ideas para distinguirlas. El intercambio de claves construye juntos un secreto compartido; el cifrado de clave pública cierra el contenido con una clave pública.
Ahora sabes que dos personas lejanas pueden compartir el mismo secreto sin dejar caer nunca la llave en el camino. El principio de esta sencilla mezcla de colores se usa hoy cada vez que te conectas de forma segura a un sitio web. En cada conexión, el navegador y el servidor lo usan para crear una llave simétrica nueva solo para esa conexión y la tiran al terminar. Así, aunque más adelante se filtre la clave privada del servidor, las conversaciones pasadas no se pueden abrir; esta propiedad se llama secreto hacia adelante.
Queda pendiente apartar a los impostores que se cuelan en medio. La próxima lección trata de las firmas digitales, que usan una marca hecha con una clave privada para confirmar que un mensaje vino de verdad de esa persona.