¿Por qué se agrega la clave simétrica al mensaje?

9

Ayer, en mi clase, aprendimos cómo enviar un mensaje de Alicia a Bob con Los objetivos alcanzados de confidencialidad, integridad y autenticidad. Para tener un mejor rendimiento utilizamos un método híbrido con una clave simétrica y una asimétrica.

Las claves privadas de Alice y Bob están firmadas por una Autoridad de Certificación (CA) - > Autenticidad

El objetivo de integridad está asegurado gracias al hash:

h = hash(M)

La confidencialidad se utiliza asegurada gracias al uso de una clave simétrica solamente Conocidos por Alice y Bob, que fueron intercambiados gracias a sus claves asimétricas.

Todo esto da como resultado el siguiente mensaje, que Alice envía a Bob:

# public keys    
K_A_E = public_key_Alice
K_B_E = public_key_Bob

K_B_E and K_A_E are signed by a CA.

# private keys
K_A_D = private_key_Alice


M = "our secret message"
h = hash(M)

K_AB = the_symmetric_key

this results in the message:
{K_AB}**K_B_E {{h}**K_A_D, M}**K_AB

No entiendo por qué es necesario comenzar el mensaje con {K_AB}**K_B_E .

* ¿Por qué es necesario anteponer la clave simétrica K_AB al principio del mensaje?

* ¿Esta clave simétrica se agrega a cada mensaje enviado entre Alice y Bob?

* Nuestro profesor mencionó que esta forma de cifrado se utiliza en OpenPGP. Entonces, ¿OpenPGP crea una nueva clave simétrica para cada mensaje?

    
pregunta Jon 14.10.2014 - 15:08
fuente

4 respuestas

8

Para responder a sus preguntas:

{K_AB}**K_B_E se añade al mensaje para que el receptor tenga la clave simétrica para descifrar el mensaje. Debido a que la clave K_B_E se usa solo Bob puede descifrar la clave simétrica y solo él puede leer el mensaje.

El siguiente es el hash {h} que está cifrado / firmado por la clave K_A_D . Supongo que K_A_D es la clave privada de Alice, por lo que esta es la firma del mensaje.

La clave simétrica se crea nuevamente para cada mensaje por parte del remitente. Y el remitente tiene que enviar la clave para el descifrado al receptor. Por lo tanto, la clave se adjunta (cifrada asimétricamente) a cada mensaje.

Sí, GPG y OpenPGP usan este esquema.

Como extensión:

Puedo anteponer varias claves cifradas (asimétricamente) al mensaje para que pueda enviar el mensaje a múltiples receptores.

Si uso una clave precompartida, debo enviar el mensaje varias veces o compartir la clave simétrica con varias personas. Esto haría que este esquema sea inseguro. Esa es la razón por la que creo una nueva clave simétrica para cada mensaje.

También tenga en cuenta que GPG / OpenPGP no usa una CA, sino que crea una Web de confianza para autenticar a todos los demás participantes.

    
respondido por el Uwe Plonus 14.10.2014 - 15:22
fuente
6

Su notación parece estar relacionada con cifrado híbrido . El mensaje está encriptado con una clave simétrica KAB ; esa clave probablemente fue generada al azar por el remitente. Para que el destinatario lo sepa, es necesario enviarlo junto con el mensaje, pero no como texto claro, por supuesto: KAB está cifrado con el del destinatario (Bob's ) clave pública.

Por lo tanto, Alice hace lo siguiente:

  1. Genere KAB con un PRNG fuerte.
  2. Cifre el mensaje de forma simétrica con KAB como clave; esto es lo que significa {{h}**K_A_D, M}**K_AB (creo que " ** " significa "cifrar con").
  3. Cifre KAB con la clave pública de Bob: {K_AB}**K_B_E
  4. Envíe ambos blobs cifrados a Bob.

Entonces Bob hace esto:

  1. Descifra {K_AB}**K_B_E con su clave privada, recuperando así KAB .
  2. Al utilizar KAB , descifre {{h}**K_A_D, M}**K_AB , y aparecerá el mensaje M .

Este proceso con dos encriptaciones se hace necesario por el hecho de que los algoritmos de encriptación asimétrica (como RSA) no pueden manejar datos en masa (la gente suele decir que el problema es uno de desempeño: la encriptación simétrica como AES es mucho más rápida que la encriptación asimétrica como RSA, pero eso es un semi-mito; el problema real es que RSA no puede cifrar mensajes de más de cien bytes o menos).

Su descripción también muestra algo con un valor hash y algún tipo de cifrado con una clave K_A_D . Supongo que este es un intento de hablar sobre un MAC o un firma digital . Muchas personas intentan explicar las firmas como algún tipo de "cifrado a la inversa". Esta es una explicación generalizada, pero terrible, que solo genera confusión.

    
respondido por el Thomas Pornin 14.10.2014 - 15:28
fuente
3

Solo la última línea es el mensaje real enviado.

El cifrado simétrico es generalmente mucho más rápido y potencialmente más a prueba de futuro que la criptografía asimétrica. Requiere claves mucho más cortas para la seguridad. Como la intención es compartir todo el mensaje con Bob, Alice no tiene que cifrar todo el mensaje (largo) con la clave pública de Bob.

En cambio, encripta todo el mensaje con una nueva clave simétrica que ha generado. Esto hace que el cifrado y descifrado del mensaje sea rápido, pero ella necesita una forma de compartir la clave con Bob, quien no la tiene.

Para compartir la clave, toma la clave pública de Bob y encripta la clave simétrica del mensaje (abreviada). Ella agrega esto al mensaje como datos adicionales.

Cuando Bob recibe el mensaje, es fácil y rápido usar su clave privada para desbloquear la clave simétrica (lo que solo él puede hacer, ya que solo él tiene la clave privada para él) y luego puede usar esa clave simétrica para descifrar el mensaje completo.

El hash del mensaje (que luego está firmado por la clave privada de Alice que se puede probar con la clave pública de Alice) se agrega para que Bob pueda saber que Alice es en realidad el remitente del mensaje y no se modificó durante el transporte. , aunque una variante ligeramente más rápida sería utilizar la clave simétrica y firmarla (o simplemente cifrar la clave simétrica con la clave privada de Alice para minimizar el tamaño del mensaje).

Mientras la seguridad de la clave simétrica se mantenga hasta que Bob reciba el mensaje, esto demuestra a Bob que el mensaje de Alice no se modificó, ya que nadie más podría haber cifrado un mensaje nuevo ya que nadie más conocía la clave. Es más rápido ya que tiene una función mucho más corta de hash (o incluso no requiere de hash si solo se encripta con la clave privada), sin embargo, tampoco proporciona tanta autenticación.

A Bob le demuestra que el mensaje provino de Alice y no se modifica, pero después de que Bob tiene la llave, no se puede utilizar para demostrarle a un tercero que Bob no ha modificado el mensaje. Si el mensaje debe poder demostrarse que es de Alice a otras personas además de Bob, entonces Alice debe firmar el mensaje completo (texto sin formato).

    
respondido por el AJ Henderson 14.10.2014 - 15:54
fuente
1

Tomé un tiempo para envolver mi cabeza en torno a la extraña sintaxis que usa el profesor, pero básicamente la clave simétrica es una clave de "sesión" generada por mensaje y no reutilizada. De ahí la necesidad de incluir una copia encriptada en el mensaje final.

Supongo que H ** K_A_D es Alice cifrando el resumen del mensaje con su clave privada.

    
respondido por el LateralFractal 14.10.2014 - 15:20
fuente

Lea otras preguntas en las etiquetas