¿Qué parte es la más larga cuando se gerean pares de claves RSA?

2

Ya sea que use openssll o gnutls's certtool, termino en una parte de un solo hilo que toma varios minutos.
Cuando intento compilar las bibliotecas con herramientas eficientes avanzadas de paralelizador automático. Sillín permanecer solo hilo.

Me gustaría entender más antes de bucear en gran parte del código para la reescritura manual ...

    
pregunta user2284570 30.12.2013 - 12:32
fuente

2 respuestas

1

La verificación de la primalidad de los dos primos requeridos usualmente toma más tiempo. Tenga en cuenta que el tiempo requerido para encontrar una prima depende mucho de la suerte. Si el cebado está cerca del punto de partida, puede ser casi instantáneo. Si está mucho más lejos, puede llevar bastante tiempo.

Sin embargo, hay otro componente que puede ser completamente perjudicial para el rendimiento: si el generador de números aleatorios requiere entropía, puede bloquear hasta que encuentre lo suficiente. Esto es particularmente un problema con las arquitecturas sin cabeza sin un disco giratorio. Algunos generadores RSA también usan directamente /dev/random , que es la fuente principal de dicha entropía. Esta es una de las razones por las que Intel incorpora un DRBG directamente en el procesador (utilizando el ruido térmico como fuente de entropía).

Por lo tanto, la falta de entropía puede destruir completamente el rendimiento. Tenga en cuenta que debería poder distinguir entre un subproceso de bloqueo y un subproceso en ejecución al observar el tiempo de CPU utilizado.

Tenga en cuenta que la mayoría de los procesadores integrados son vergonzosamente lentos con respecto a la generación del par de claves RSA. Un procesador de escritorio lo superará muy fácilmente en gran medida. Incluso las tarjetas inteligentes, que tienen un coprocesador dedicado para este tipo de tareas, son mucho más lentas que los procesadores de escritorio.

    
respondido por el Maarten Bodewes 14.04.2016 - 20:07
fuente
3

Esto se ve raro. Una computadora portátil anémica a partir de 2005 genera claves RSA de 4096 bits (es decir, enormes claves de exceso) en menos de 10 segundos. "Varios minutos" indicaría que hay algo mal en su sistema. O que apuntas a claves RSA ridículamente grandes (2048 bits son muy buenos; 3072 bits son comprensibles si tienes administradores paranoicos o debes cumplir con algunas regulaciones igualmente paranoicas; 4096 bits son exagerados exageradamente; más allá es simplemente estúpido , y también incurrirá en problemas de interoperabilidad).

En cualquier caso, la generación del par de claves RSA consiste principalmente en producir dos números primos aleatorios de aproximadamente la mitad del tamaño del módulo objetivo. La generación de un número primo se reduce a, en su mayoría, intentar enteros impares aleatorios hasta encontrar uno primo. Esto es susceptible de un alto paralelismo, aunque rara vez importa.

Hay que decir que generar claves RSA de forma segura requiere un buen conocimiento de las matemáticas y la criptografía. Existen muchas claves RSA, que se produjeron a partir de PRNG deficiente y, por lo tanto, son altamente rompibles, y no se pueden probar . Por lo tanto, le recomiendo encarecidamente que reconsidere la manipulación de ese código.

Es más importante averiguar por qué demoran varios minutos en su máquina.

    
respondido por el Thomas Pornin 30.12.2013 - 13:20
fuente

Lea otras preguntas en las etiquetas