¿Por qué las firmas digitales utilizan algoritmos como DSA, ECDSA o RSA-PSS, y no solo el algoritmo RSA para cifrar el hash del mensaje con la clave privada? ¿La elección está más relacionada con la seguridad o el rendimiento y cómo?
¿Por qué las firmas digitales utilizan algoritmos como DSA, ECDSA o RSA-PSS, y no solo el algoritmo RSA para cifrar el hash del mensaje con la clave privada? ¿La elección está más relacionada con la seguridad o el rendimiento y cómo?
Cuando usas una primitiva matemática directamente, a menudo es vulnerable a las relaciones matemáticas. La operación de aumentar el poder de $ d $ -o- $ e $ -modulo- $ n $ (a veces llamada "libro de texto RSA" o "simple RSA") tiene una estructura matemática simple, por lo que es fácil de encontrar Algunas de las transformaciones que permite. Por ejemplo, suponga que sabe que la firma del mensaje $ M_1 $ es $ S_1 $ y la firma de $ M_2 $ es $ S_2 $. Luego, la firma de $ M_1 \ cdot M_2 $ es $ S_1 \ cdot S_2 $, porque $ S_1 S_2 = M_1 ^ d M_2 ^ d = (M_1 M_2) ^ d $ (todas las igualdad son $ \ mod n $). Puede falsificar una firma sin conocer la clave privada. Eso es malo. Y esto es solo un ejemplo .
Las construcciones como PSS y PKCS # 1 v1.5 rellenándolas, evitan este tipo de relaciones matemáticas. Codificaron cada mensaje de tal manera que no hay una transformación aritmética simple entre los mensajes codificados válidos. PKCS # 1 v1.5 lo hace rellenando el mensaje. Por ejemplo, evita el ataque anterior porque $ \ mathrm {pad} (M_1) \ cdot \ mathrm {pad} (M_2) $ no es un mensaje rellenado válido, por lo que $ S_1 \ cdot S_2 $ no es la firma de nada. PSS lo hace de una manera más compleja al enmascarar el mensaje y luego rellenar el resultado.
Por lo tanto, entre RSA plano y los esquemas de firma RSASSA-PKCS1-v1_5 y RSASSA-PSS, la diferencia es la seguridad. El RSA simple como un esquema de firma tiene muchos agujeros de seguridad, mientras que RSASSA-PKCS1-v1_5 y RSASSA-PSS se consideran seguros hoy en día. Hay razones para preferir PSS: el relleno v1.5 tiene problemas conocidos para el cifrado y existe el riesgo de que alguien encuentre la forma de adaptar el ataque a las firmas. También la firma v1.5 es difícil de implementar correctamente y incluso después de dos décadas, algunas implementaciones no lo hacen bien ; PSS tiene menos sutilezas.
Entre RSA-PSS, DSA y ECDSA, no hay una razón de seguridad particular para elegir una sobre la otra. Principalmente se trata de rendimiento y facilidad de implementación. DSA es más lento; surgió cuando existían inquietudes acerca de las patentes que podrían aplicarse a RSA, pero esas patentes han caducado y la DSA se está extinguiendo. La mayoría de los nuevos protocolos favorecen ECDSA (o la variante más nueva de EdDSA). Las claves y firmas ECDSA son más pequeñas que las RSA, lo que importa en dispositivos integrados y protocolos de comunicación de ancho de banda ultra bajo. La firma ECDSA también es significativamente más rápida que la firma RSA, pero la verificación es ligeramente más rápida con RSA.
Como dijo Kyoto, la mayoría se reduce a preferencias, ya que algunos algoritmos son más rápidos que otros.
Además de eso, debe saber que el más usado (RSA) es vulnerable a la computación cuántica. Esto significa que se están revisando otros algoritmos para reemplazar, pero hasta ahora, no parece haber uno que haya encontrado / creado que pueda reemplazar a RSA mientras se mantiene la velocidad de descifrado / cifrado / generación de claves y al mismo tiempo se mantiene el tamaño de La salida baja. Este no es un problema tan grave para las firmas digitales como lo es para la implementación de TLS, donde cada byte enviado cuenta y aumenta la cantidad de trabajo que tiene que hacer el servidor.
Lea otras preguntas en las etiquetas authentication public-key-infrastructure digital-signature certificates rsa