En PGP, ¿por qué no simplemente cifrar el mensaje con la clave pública del destinatario? ¿Por qué el meta-cifrado?

23

Está muy bien descrito por este diagrama. Parece que el proceso utilizado es complicado y más completo de lo que debe ser. ¿Por qué se genera una clave aleatoria intermedia para el cifrado de la carga útil y luego se transmite con el mensaje después de su propio cifrado utilizando la clave pública del destinatario, en lugar de usar la clave pública del destinatario directamente en el mensaje? ¿No es lo mismo en lo que respecta a las propiedades de seguridad?

    
pregunta wwaawaw 13.09.2012 - 18:13
fuente

3 respuestas

30

RSA no se usa directamente debido a varias razones:

  • RSA cifra solo los mensajes con un tamaño limitado. Con una clave RSA de 1024 bits, RSA (según PKCS # 1 ) puede procesar solo 117 bytes de datos. Para cifrar más que eso, uno tendría que hacer un poco de encadenamiento, es decir, dividir los datos para cifrar en varios bloques de 117 bytes y cifrarlos por separado. Esto se hace rutinariamente para el cifrado simétrico (esto se llama "modos de operación" ) pero no es tan fácil de hacer de manera segura , y nadie sabe cómo hacer un modo de operación seguro para RSA.

  • El cifrado híbrido permite obtener datos de varios destinatarios eficientes. Cifras simétricamente los datos con una clave K , luego cifras K con la clave RSA de cada destinatario. Cuando envía un archivo de 3 MB a 10 personas, prefiere calcular y enviar un correo electrónico cifrado de tamaño 3.01 MB, en lugar de diez 3 MB de correo electrónico ...

  • RSA amplía sus datos. Con una clave RSA de 1024 bits, usted encripta a lo sumo un trozo de 117 bytes, pero obtiene 128 bytes en la salida, por lo que es una ampliación del 10%. Por otro lado, el cifrado simétrico solo incurre en un aumento de tamaño constante.

  • El cifrado y descifrado RSA son rápidos, pero no muy rápidos. Hacer mucho RSA podría resultar problemático en contextos de alto ancho de banda (estaría bien para los correos electrónicos, con las máquinas de hoy, no para una VPN).

La cuarta razón es la más citada, pero en realidad la menos convincente de las cuatro.

    
respondido por el Thomas Pornin 13.09.2012 - 19:39
fuente
4

Es difícil encontrar una buena referencia, pero RSA no es muy rápido :

  

En comparación, el DES (ver Sección 3.2) y otros cifrados en bloque son mucho más rápidos que el algoritmo RSA. El DES es generalmente al menos 100 veces más rápido en software y entre 1,000 y 10,000 veces más rápido en hardware, dependiendo de la implementación. Las implementaciones del algoritmo RSA probablemente reducirán un poco la brecha en los próximos años, debido a la alta demanda, pero los cifrados en bloque también se acelerarán.

Entonces, cifrar una pequeña clave simétrica y luego cifrar los datos con eso es mucho más rápido.

En caso de que le preocupe que el DES no sea un buen ejemplo (ya que ninguna persona sensata lo usaría en estos días), AES la velocidad está en el mismo orden de magnitud .

    
respondido por el Brendan Long 13.09.2012 - 18:37
fuente
3

Simplemente porque RSA es A) Muy lento B) Solo puede cifrar X cantidad de bits según el tamaño de la clave. El método aquí es generar una clave AES que es mucho más rápida y puede cifrar (AFAIK) una cantidad ilimitada de bits. Debido a que AES es simétrico, no hay forma de que una parte pueda dársela a otra persona sin cifrado. Esta es la razón por la cual se usa el cifrado asimétrico (RSA) y la razón por la cual PGP requiere que las personas tengan su clave pública para enviarle mensajes.

    
respondido por el user5575 13.09.2012 - 18:36
fuente

Lea otras preguntas en las etiquetas