Así que leí en wikipedia que las firmas digitales necesitan relleno (como PSS) y sé que esto es cierto para RSA. Pero ahora me pregunto si DSA también necesita relleno.
Así que leí en wikipedia que las firmas digitales necesitan relleno (como PSS) y sé que esto es cierto para RSA. Pero ahora me pregunto si DSA también necesita relleno.
La respuesta corta es no o sí, dependiendo de cómo se mire.
Con RSA, como se especifica en PKCS # 1 , el mensaje que se debe firmar primero está en hash , y el valor de hash se "convierte" en un módulo entero n (donde n es el módulo, una parte del par de claves RSA). En las versiones anteriores del estándar, esa conversión es de hecho un tipo de relleno (los bytes adicionales se concatenan al valor de hash, y el resultado se interpreta como un módulo de número entero n con la convención big-endian). El nuevo relleno, llamado "PSS", es un poco más complejo e implica más trabajo que la mera concatenación, pero todavía lo llamamos "relleno", en su mayoría fuera de la tradición.
Los detalles del relleno resultaron ser muy importantes para la seguridad de RSA como un esquema de firma (la exponencia modular de RSA es maleable , que es un problema para las firmas, y el relleno lo corrige).
En DSA, como se especifica en FIPS 186-3 , la entrada el mensaje es también con hash, y el valor de hash también se convierte en un entero modular (módulo q , el tamaño del subgrupo utilizado por la clave ). Esto requiere una conversión de "algunos bytes" a "un entero", que también podría denominarse "relleno" (no es más absurdo que llamar a PSS un tipo de "relleno"). Sucede que DSA tiene muchos menos requisitos para esta conversión, por lo que se define con un proceso de conversión bastante simple: el valor de hash se trunca o se expande a la longitud de q (en bits), agregando ceros (en la "izquierda"); luego, la secuencia de bytes resultante se convierte en un entero (otra vez la convención big-endian) y se reduce el módulo q (ya que la secuencia se realizó para coincidir con la longitud de q , esta reducción es computacionalmente fácil).
Entonces podemos decir que hay algo de relleno en DSA, pero un simple relleno con solo ceros.
Lea otras preguntas en las etiquetas digital-signature dsa