5. Intercambio de Claves y Firmas: Autenticidad y Confianza 🤝✍️
El Intercambio de Claves (Diffie-Hellman)
Imagina que quieres establecer una conexión cifrada con un servidor web. Para usar cifrado simétrico (AES), ambos necesitan la misma clave secreta. Pero, ¿cómo la comparten si toda la red está siendo interceptada?
El protocolo Diffie-Hellman (DH) resuelve esto de forma brillante: permite a dos partes acordar una clave compartida a través de un canal de comunicación inseguro sin necesidad de transmitir la clave directamente.
🎨 Analogía de los colores de Diffie-Hellman
1. Alicia y Roberto acuerdan públicamente un color base (ej. Amarillo).
2. Cada uno elige en secreto un color privado (Alicia elige Rojo, Roberto elige Azul).
3. Mezclan su color secreto con el común y se envían la mezcla resultante (Alicia envía Naranja, Roberto envía Verde-azul).
4. Al recibir la mezcla del otro, le añaden su propio color secreto. ¡Ambos obtienen la misma mezcla final marrón oscuro! Un espía que interceptó la red solo vio el amarillo inicial y las mezclas intermedias, pero no puede averiguar el resultado final sin los colores privados.
Firmas Digitales: Autenticidad, Integridad y No Repudio
Una Firma Digital es el equivalente criptográfico de una firma manuscrita, pero infinitamente más segura. Sirve para garantizar tres principios:
- Autenticidad: Certifica quién es el emisor del mensaje.
- Integridad: Garantiza que el mensaje no ha sido modificado desde que fue firmado.
- No Repudio: El firmante no puede negar haber enviado el mensaje, ya que solo él posee la clave privada que generó la firma.
El Proceso Matemático:
Para firmar, el emisor genera el hash del documento y cifra ese hash con su clave privada. Para verificar, el receptor descifra la firma con la clave pública del emisor (obteniendo el hash original), calcula de forma independiente el hash del documento recibido y los compara. Si coinciden, la firma es auténtica y el documento está intacto.
Implementación en Código (Firmas Digitales)
A continuación, se muestra cómo generar y verificar firmas digitales utilizando llaves RSA y hashes SHA-256 en los diferentes entornos.
Ponte a prueba
Comprueba tus conocimientos sobre Diffie-Hellman y firmas digitales.