¿Por qué el cifrado RSA se hizo popular para el intercambio de claves?

16

Esta es una pregunta suave. No sé mucho acerca de la criptografía o su historia, pero parece que un uso común para RSA es hacer un intercambio de claves encriptando una clave simétrica para enviar un mensaje más largo (por ejemplo, la descripción de iMessage aquí ). ¿No es esto exactamente para lo que sirve el intercambio de claves Diffie-Hellman, que es más antiguo (y para mí parece más simple)? Mirando Wikipedia, ambos también fueron patentados, por lo que esto no habría sido responsable de la elección.

Para ser claros, no pregunto si es teóricamente importante que la criptografía de clave pública sea posible. Me pregunto por qué se convirtió en un método estándar en la práctica para hacer el intercambio de claves. (Para un no criptógrafo, DH parece más fácil de implementar y tampoco está vinculado a los detalles del grupo utilizado).

Louis
fuente
3
RSA también se puede utilizar para la transmisión segura de claves en los casos en que un protocolo de intercambio de claves interactivo como DH es imposible, como cuando solo hay un enlace unidireccional disponible, o donde los tiempos de comunicación de ida y vuelta son excesivos. Los casos de uso como un correo electrónico encriptado favorecen dichos enfoques, ya que la computadora del receptor puede no estar conectada a Internet en el momento en que desea enviar el mensaje, por lo que no puede participar en un intercambio interactivo de claves.
Kevin Cathcart
¿Se pregunta por qué se hizo popular para el intercambio de claves, o en general?
OrangeDog
@KevinCathcart DH no es necesariamente interactivo. El remitente puede crear un par de claves de un solo uso y enviar la clave pública junto con el mensaje. Ese enfoque es la base del cifrado ECIES / DLIES y ElGamal. Eso tiene una ligera sobrecarga de tamaño (128 bytes para una clave de 1024 bits).
CodesInChaos
@CodesInChaos: Pero ninguno de esos son algoritmos de intercambio de claves. Una vez que haya pasado del intercambio de claves a la criptografía de clave pública completa, la elección del problema subyacente difícil de revertir no afecta las preocupaciones operativas, como garantizar que el remitente tenga una copia de la clave pública del receptor. Comprendí que la pregunta era: "¿Por qué a menudo usamos criptografía de clave pública para intercambiar claves en lugar de solo un algoritmo de intercambio de claves, que a menudo es más simple?". Obviamente, básicamente cualquier algoritmo de clave pública puede usarse para establecer un secreto compartido a través de un canal no interactivo.
Kevin Cathcart

Respuestas:

14

No hay una fuerte razón técnica. Podríamos haber usado Diffie-Hellman (con las firmas apropiadas) tan bien como RSA.

Entonces, ¿por qué RSA? Por lo que puedo decir, dominaron razones históricas no técnicas. RSA fue patentado y había una compañía detrás de él, que comercializaba y abogaba por RSA. Además, había buenas bibliotecas, y RSA era fácil de entender y familiar para los desarrolladores. Por estas razones, se eligió RSA, y una vez que fue la opción popular, se mantuvo así debido a la inercia.

En estos días, el principal impulsor que ha provocado un aumento en el uso de Diffie-Hellman es el deseo de un secreto perfecto hacia adelante, algo que es fácil de lograr usando Diffie-Hellman pero que es más lento con RSA.

Por cierto: es el intercambio de claves Diffie-Hellman, no el intercambio secreto de Diffie-Hellman. Compartir secretos es algo completamente diferente.

DW
fuente
2
¿Pensé que las patentes eran más una razón para evitar RSA?
user1686
@grawity que depende de cómo se comporta el titular de la patente; y hace una generación, los titulares de patentes tecnológicas no se habían deshonrado colectivamente a través de la ley a gran escala y de larga duración en la medida en que sucedió durante las guerras de teléfonos inteligentes o la pesca masiva de patentes de pequeñas empresas.
Dan Neely
10

Diffie – Hellman carece de una característica crucial: autenticación. Sabes que estás compartiendo un secreto con alguien, pero no puedes saber si es el destinatario o un hombre en el medio. Con RSA, puede tener algunas partes de confianza que almacenan claves públicas. Si desea conectarse a su banco, puede pedirle a la parte de confianza (digamos Verisign) la clave pública del banco, ya que ya tiene la clave pública de la parte de confianza en su computadora. Por lo tanto, sabe que está compartiendo un secreto con su banco.

Con Diffie – Hellman, cuando crea un secreto con su banco, de hecho puede crear un secreto con un hombre en el medio (MITM), que también crea uno con su banco, y él solo tiene que traducir de una clave de cifrado a el otro permanecer invisible (mientras se puede leer toda la comunicación).

Jacen
fuente
Por supuesto, puede usar RSA para la autenticación y luego el intercambio de claves DH.
OrangeDog
44
pk=gskmodpag
@kasperd: Me sorprende que esto tenga tantos votos.
Louis
1
Puede usar claves Diffie-Hellman a largo plazo para la autenticación (mire CurveCP para un protocolo de ejemplo) o puede combinar DH con firmas DSA / Schnorr / ElGamal (que comparten muchas de las matemáticas subyacentes con DH), tal como puede hacerlo combine el cifrado RSA con las firmas RSA.
CodesInChaos
-2

El algoritmo RSA como se mencionó anteriormente no es mucho mejor que Diffie – Hellman, este último simplemente carece de autenticación y los dos algoritmos dependen de la dificultad para encontrar logaritmos discretos, por lo que la seguridad es bastante similar.

Ronak Khandelwal
fuente
2
Gracias por la contribucion. Sin embargo, todo lo que dices ya ha sido cubierto en otras respuestas. Preferimos que responda preguntas que aún no tienen buenas respuestas, en lugar de duplicar las respuestas existentes. Además, RSA depende de la dificultad del problema de factorización (y estrictamente hablando sobre el problema de RSA) en lugar del logaritmo discreto per se, mientras que Diffie-Hellman es un sistema de registro discreto más clásico (estrictamente hablando, se basa en la suposición DDH )
DW
-3

Hay un lado oscuro en esto que no puede pasarse por alto.
El hecho de que la RSA fue cooptada por la NSA.
La NSA plantó una puerta trasera en el cyhper de Eliptic Curve que suministró a la RSA.
http://www.intelligence-world.org/nsa-infiltrated-rsa-security-more-deeply-than-thought-study/

John Hoffmann
fuente
1
Esta respuesta es incoherente. La criptografía de curva elíptica es diferente de la RSA. Entonces, una puerta trasera en cripto de curva elíptica no pondría en peligro a RSA. Esta respuesta es simplemente incorrecta: no existe ese lado oscuro.
DW