¿Por qué firmas RSA basadas en el hash del mensaje en lugar del mensaje en sí?
El hash actúa como una medida para determinar si el mensaje ha sido cambiado desde que se firmó. De esa manera, el destinatario sabe que el mensaje es el mismo que cuando se firmó (integridad).
El mensaje está compuesto
El mensaje está roto
El hash está cifrado con la clave privada del remitente
La firma resultante acompaña al mensaje
El destinatario puede usar la clave pública del remitente para verificar el hash, lo que confirma la integridad del mensaje y que el remitente fue quien lo firmó (no rechazo). Una firma digital significa que el mensaje es según lo previsto y enviado por una fuente confirmada.
Aplicar la clave privada al hash es más eficiente computacionalmente (cosa más pequeña para cifrar), y puede que no sea necesario cifrar el mensaje si no se requiere / desea la confidencialidad.
Técnicamente, la firma funciona sobre el mensaje; Sucede que el primer paso del algoritmo de generación de firmas es copiar el mensaje con una función de hash, y el valor de hash se usa posteriormente.
El uso de una función hash es necesario porque el algoritmo RSA se basa en números enteros en un número entero dado (que es parte de la clave pública), por lo que no puede funcionar con valores que no encajan en ese límite distancia. La función hash también es necesaria para garantizar la no maleabilidad (una característica interna más bien técnica). Usar una función hash es suficiente debido a las propiedades de funciones hash criptográficas ; a saber, la resistencia de las funciones hash a colisiones y preimágenes realmente significa que firmar un hash es "tan bueno" como firmar el mensaje original.