Tiempo necesario para generar una firma RSA de un documento

2

¿Cómo afecta la longitud de la clave RSA y el tamaño del documento al tiempo que lleva firmar un documento utilizando SHA-1 y RSA?

Utilicé CrypTool para comprobarlo, pero el tiempo no parece ser mayor para documentos grandes. No sé si es un problema con CrypTool o la forma en que lo usé (tal vez usé documentos demasiado pequeños).

    
pregunta kspacja 09.05.2012 - 19:46
fuente

2 respuestas

2

Generalmente, con una firma digital para una clave asimétrica (como RSA), la firma se crea sobre el hash (SHA-1). El hash crea un bloque de datos de tamaño fijo ( SHA-1 - 160 bits ), que es la entrada a la función de encriptación asimétrica.

Las funciones de hash, en general, se crean para ejecutarse con bastante rapidez. Por rápido, generalmente es linealmente proporcional al tamaño de la entrada. Las posibilidades son bastante buenas de que en una computadora promedio, con una API decentemente escrita para su función hash, tendrá problemas para ver una gran diferencia sin un cambio dramático en el tamaño del archivo. Las funciones de hash están diseñadas para ser eficientes, y los creadores de bibliotecas de hash hacen un trabajo decente al mantenerlas optimizadas para el sistema operativo y la CPU. Mi sospecha (con los tamaños de conjunto de prueba desconocidos) es que tiene un problema de calibración: es poco probable que CrypTool pueda medir las variaciones en el tiempo para procesar la entrada porque el delta entre "rápido" y "lento" es demasiado pequeño para ser medible.

El tamaño de su par de claves RSA NO cambiará: para cambiar el tamaño de su par de claves, debe generar una nueva clave e identificar ese nuevo par de claves como la entrada de la firma. Aquí hay un bonita documento sobre cómo impactarán más grandes tamaños de clave RSA Generación y verificación de firmas.

No importa cuál sea el tamaño de su clave de firma RSA, la longitud de entrada de los datos será de 160b debido al hecho de que está utilizando SHA-1 para copiar los datos antes de enviarlos para su firma. Entonces, una vez que se determina un par de claves, si está midiendo solo la ejecución del algoritmo RSA, no verá ninguna diferencia en el tiempo de procesamiento (a menos que también se vea afectado por otras operaciones en su sistema) debido a las diferencias en los datos de entrada para ser firmado.

    
respondido por el bethlakshmi 09.05.2012 - 21:16
fuente
1

Firmar un documento implica dos pasos: (1) hash del documento, (2) firmar el hash usando la clave privada. El tiempo de ejecución es la suma de los tiempos de ejecución de cada paso.

El tiempo de ejecución del hash para el documento generalmente será muy rápido y dependerá linealmente del tamaño del documento. Debería esperar que una computadora moderna pueda copiar un documento a una velocidad de aproximadamente 100-500 MB / seg (megabytes por segundo). En otras palabras, para un documento de tamaño normal, esto se hará más rápido de lo que un humano puede notar. Por lo tanto, para la mayoría de los propósitos, puede ignorar el tiempo que lleva el hash del documento y, en consecuencia, en la práctica, la longitud del documento por lo general será irrelevante.

El tiempo de ejecución para firmar el documento dependerá en gran medida del tamaño de su clave RSA (el número de bits en el módulo). A continuación, se incluyen algunos ejemplos de tiempos: calcular una firma puede tomar aproximadamente 1 milisegundo para una clave RSA de 1024 bits; aproximadamente 5 milisegundos para una clave RSA de 2048 bits; o unos 30 milisegundos para un RSA de 4096 bits. (Estos números son solo ejemplos y pueden ser algo más rápidos o más lentos, dependiendo de qué tan rápida sea su computadora en particular). En general, la mayor parte del tiempo en el cálculo de la firma se invertirá en el cálculo de RSA, que depende en gran medida del tamaño de la firma. Clave RSA. No obstante, para los tamaños de clave utilizados normalmente, esto es aún más rápido de lo que un humano puede notar.

Por lo tanto, para documentos de tamaño razonable y claves RSA de tamaño razonable, la operación de firma probablemente será tan rápida que probablemente no notará el tiempo que toma computar la firma.

    
respondido por el D.W. 10.05.2012 - 08:44
fuente

Lea otras preguntas en las etiquetas