En la firma de mensajes, ¿el resumen está cifrado con una clave simétrica generada o con la clave privada del remitente?

1

Entiendo que el proceso de cifrado utiliza una clave simétrica generada para cifrar un mensaje y luego cifra la clave simétrica con la clave pública del receptor antes de que se envíe por el cable. Esto crea una situación en la que solo el propietario de la clave privada correlativa puede descifrar la clave simétrica y, por lo tanto, descifrar el mensaje cifrado.

Me gustaría entender el orden exacto de las cosas para la firma de mensajes. Principalmente, algo que se parece a this , pero para las firmas.

Entiendo que puede variar según el protocolo y, de ser así, describir la forma exacta en que un protocolo en particular sería una buena respuesta si también puedes enumerar al menos algunos pros / contras de hacerlo de esa manera, versos de cualquier otro protocolo. estrategia.

Dentro de eso, mi principal punto de confusión es:

  • Si las operaciones de cifrado asimétrico son más exigentes para la CPU, y estoy planeando enviar muchos mensajes, ¿no habría una forma mejor (más eficiente) de usar algún tipo de clave simétrica para cifrar los resúmenes de mensajes que pueden ser reutilizado para muchos mensajes? ¿Entonces, usando el cifrado asimétrico para intercambiar la clave simétrica? ¿Podría eso aún probar que un remitente envió un mensaje, mientras se aprovechan las ventajas de la encriptación simétrica?
pregunta Eddie 22.10.2015 - 19:51
fuente

3 respuestas

7

En el mensaje firmando , no hay cifrado. De lo contrario, lo llamaríamos cifrado .

Un algoritmo de firma es, nominalmente, la combinación de tres sub-algoritmos:

  • Generación de pares de claves: ese algoritmo produce un nuevo par de claves públicas / privadas, utilizando una fuente aleatoria fuerte, y utilizando como parámetro un "nivel de seguridad" para alcanzar (es decir, el tamaño de la clave que se va a generar).

  • Generación de firmas: las entradas son el mensaje que se firmará m y la clave privada. La salida es el valor de la firma s.

  • Verificación de firma: las entradas son el mensaje m , la firma s y la clave pública. La salida es un valor booleano: "verdadero" si la firma coincide con el mensaje y la clave pública, "falso" de lo contrario.

Se supone que los algoritmos de generación y verificación de firmas pueden procesar mensajes de longitud arbitraria, posiblemente gigabytes. Y lo hacen. Los algoritmos de firma existentes ya son muy eficientes en el manejo de grandes entradas. Por lo tanto, no hay ningún problema que requiera una construcción adicional, al contrario del cifrado asimétrico donde se necesita algo más para hacer frente a las graves limitaciones de estos algoritmos.

La mayoría de los textos que hablan sobre cifrado híbrido dicen que debemos hacerlo porque el cifrado asimétrico es lento, pero eso es incorrecto . La razón real por la cual se usa el cifrado híbrido es porque los algoritmos de cifrado asimétricos conocidos no pueden simplemente procesar mensajes de longitud arbitraria, y no tenemos una idea real de cómo podríamos modificarlos para hacerlo de manera segura. . Básicamente, los "modos de encadenamiento" para cifrados de bloque no tienen equivalentes para el cifrado asimétrico que serían obviamente seguros. Sin embargo, los algoritmos de firma nunca tuvieron una limitación en la longitud de entrada, por lo que no es un problema.

Ocurre, internamente, que la mayoría de los algoritmos de firma son eficientes en el manejo de entradas grandes porque su primer paso es procesar el mensaje completo a través de una Función criptográfica de hash , y luego trabajar solo sobre el valor de hash. Este es un elemento de diseño de la mayoría de los algoritmos de firma y no debería preocupar a los usuarios externos que simplemente usan el algoritmo. Sin embargo, sí explica por qué algunas personas que discuten sobre "firmas RSA" de repente comienzan a hablar sobre funciones hash como SHA-1: esto se debe a que el algoritmo incluye , como uno de sus elementos de construcción, Una función hash. Tenga en cuenta que algunos algoritmos no funcionan exactamente de esa manera; sería erróneo afirmar que los algoritmos de firma de todos comienzan por un simple hashing.

En última instancia, esto es una cuestión de terminología. En el caso de cifrado asimétrico, p. Ej. RSA, es tradicional hablar de "algoritmo de encriptación" usando solo una entrada corta; y cualquier capa de cifrado simétrico adicional se considera, de hecho, una capa externa adicional. Sin embargo, en el caso de las firmas digitales, la misma tradición sostiene que el paso de hash inicial es parte de lo que llamamos el "algoritmo de firma".

Hay algunas buenas razones para esta elección de terminología; en particular, queremos que la función hash sea parte de lo que llamamos el "algoritmo de firma" porque usamos un algoritmo de firma como RSA o ECDSA sin un paso de hashing (usando una "entrada corta" directamente sin hashing) puede inducir debilidades severas. Sin embargo, en su esencia, todavía es un problema de terminología.

    
respondido por el Tom Leek 22.10.2015 - 20:34
fuente
2

Fuente de imagen

Los datos se procesan primero en hash para que se genere una representación única de esos datos, y la firma digital de ese hash es computacionalmente barata. En general, la firma del hash solo se aplica al intercambio de claves para garantizar que todas las partes hayan recibido y enviado correctamente.

Generalmente, cada mensaje individual se verifica utilizando un algoritmo HMAC. Esto es en el orden de las velocidades de cifrado / descifrado simétricas para que la CPU no trabaje demasiado.

    
respondido por el RoraΖ 22.10.2015 - 20:37
fuente
1

Si desea que las propiedades de seguridad no rechazo y identificación también sean válidas en la causa legal, el remitente debe firmar el resumen con la clave privada que debe ser válida en el signo Tiempo por la Autoridad de Certificación.

Si estas propiedades no son necesarias, se puede usar una clave simétrica, con una longitud adecuada para su robustez, para cifrar el resumen y, si la fase de intercambio de claves se realizó en privado, es suficiente para proporcionar solo integridad del mensaje porque existe la posibilidad de probar que el mensaje proviene de un par específico.

    
respondido por el Alessandro Borile 23.10.2015 - 00:04
fuente

Lea otras preguntas en las etiquetas