¿Cuál es la diferencia entre Diffie-Hellman y RSA?
Respuesta breve
RSA es un algoritmo asimétrico usado para cifrar datos o crear firmas digitales con un par de claves. Diffie-Hellman es un protocolo de acuerdo de claves que permite a dos partes derivar un secreto compartido sobre un canal público sin transmitirlo nunca. Resuelven problemas distintos: RSA prueba identidad y puede envolver claves; DH negocia una clave de sesión, y su variante efímera ofrece confidencialidad hacia adelante.
Los entrevistadores preguntan esto para ver si entiendes que la «cripto asimétrica» no es una sola cosa. RSA y Diffie-Hellman se basan ambos en problemas matemáticos difíciles y ambos usan valores públicos, pero se diseñaron para tareas distintas.
RSA: cifrado y firmas
RSA se basa en la dificultad de factorizar el producto de dos números primos grandes. Una parte genera un par de claves: una clave pública que cualquiera puede usar, y una clave privada que solo ella posee. Gracias a esa estructura, RSA puede hacer dos cosas: cifrar datos para que solo el poseedor de la clave privada pueda leerlos, y firmar datos para que cualquiera pueda verificar que provienen del poseedor de la clave privada y no fueron alterados. En TLS antiguos, RSA también se usaba para el transporte de claves: el cliente cifraba un secreto de sesión con la clave pública del servidor.
Diffie-Hellman: acuerdo de claves
Diffie-Hellman no cifra ni firma nada. Es un protocolo en el que dos partes eligen cada una un valor privado, intercambian valores públicos derivados de ellos, y calculan independientemente el mismo secreto compartido, sin que ese secreto cruce nunca la red. Su seguridad descansa en el problema del logaritmo discreto. Un espía ve los valores públicos pero no puede derivar de forma factible el secreto compartido.
Por qué importa la distinción
Ambos son complementarios, que es exactamente como los usa TLS: un intercambio Diffie-Hellman efímero (DHE o, con curvas elípticas, ECDHE) negocia la clave de sesión, mientras que una firma RSA (o ECDSA) autentica al servidor para que sepas con quién acordaste. El DH efímero también ofrece confidencialidad hacia adelante, porque las claves por sesión se descartan: capturar más tarde la clave de largo plazo del servidor no descifra el tráfico pasado. El transporte de claves RSA estático carece de esto, por lo que TLS 1.3 lo descartó.
Qué buscan los entrevistadores
Indica con claridad que RSA puede cifrar y firmar mientras que DH solo acuerda una clave, y luego conéctalo con TLS: DH para la clave de sesión, una firma para la autenticación, y DH efímero para la confidencialidad hacia adelante.
Posibles preguntas de seguimiento
- ¿Por qué Diffie-Hellman efímero (DHE/ECDHE) ofrece confidencialidad hacia adelante cuando el intercambio de claves RSA no?
- ¿Por qué TLS 1.3 eliminó el intercambio de claves RSA estático?
- ¿Qué es el problema del logaritmo discreto y cómo sustenta a DH?