it-swarm-es.com

Tiempo de descifrado de cifrado

¿El tiempo de cifrado/descifrado del algoritmo rsa varía significativamente con un cambio en la longitud de la clave? Por ejemplo, ¿hay una diferencia notable en el tiempo de cifrado/descifrado entre 512 bits y 2048 bits?

10
user1157

Con las implementaciones habituales, duplicar la longitud de la clave RSA significa que el cifrado será cuatro veces más lento y el descifrado será ocho veces más lento. El cifrado RSA es mucho más rápido que el descifrado RSA (en el contexto de las firmas RSA, la verificación es similar al cifrado y la generación es similar al descifrado). La teoría dice que para una clave n - bit, el esfuerzo computacional para el cifrado es proporcional a n2, mientras que el esfuerzo de descifrado es proporcional a n3. En la práctica, hay un poco más de RSA que solo la exponenciación modular, y la sobrecarga no se escala de la misma manera cuadrática/cúbica, por lo tanto, para una implementación específica, no obtendrá exactamente un factor 8x.

Además, tenga en cuenta que el cifrado rápido (y su comportamiento cuadrático) se basa en el uso de un exponente público corto. Esta es la forma en que RSA se usa comúnmente; Es posible tener una clave pública RSA con un exponente público largo, lo que hará que el cifrado sea tan lento como el descifrado. Un exponente público largo no parece mejorar la seguridad, por lo que los exponentes públicos cortos son la regla. Algunas implementaciones de RSA generalizadas no admiten exponentes públicos largos de todos modos.

OpenSSL viene con una herramienta de línea de comandos que puede realizar algunos puntos de referencia. Intenta ejecutar esto:

openssl speed rsa1024 rsa2048

En mi PC, esto da como resultado lo siguiente:

                  sign    verify    sign/s verify/s
rsa 1024 bits 0.000646s 0.000035s   1549.1  28408.6
rsa 2048 bits 0.004097s 0.000120s    244.1   8331.1

entonces obtenemos factores 6.3x y 3.4x para descifrado y cifrado, respectivamente, al duplicar el tamaño de la clave de 1024 a 2048 bits.

11
Thomas Pornin

Hay un buen artículo sobre Javamex discutiendo longitudes de clave RSA . La regla que han sacado de su análisis es que "con cada duplicación de la longitud de la clave RSA, el descifrado es 6-7 veces más lento".

RSA decryption time by key length

Leer alrededor parece que con RSA el descifrado suele ser más lento que el cifrado, hay una explicación del razonamiento aquí . Hice algunas pruebas rápidas en mi máquina duplicando la longitud de la clave que parece duplicar el tiempo de cifrado.

7
Mark Davidson