¿Por qué fue muy rápido ejecutar OpenSSL dhparam?

3

Acabo de generar los parámetros de Diffie-Hellman y me pareció demasiado rápido. Todo terminó en menos de un segundo:

$ openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
This is going to take a long time
..............................................+.++*++*
$

Estoy ejecutando en una instancia relativamente nueva de ECS t2.medium (2 VCPU, 4GB de RAM).

Así que lo ejecuté de nuevo y esta vez imprimió 5918 caracteres y tomó alrededor de 30 segundos.

¿Qué pasó la primera vez?

    
pregunta Simon Woodside 10.05.2016 - 07:35
fuente

1 respuesta

4

Al crear los parámetros de Diffie Hellman, lleva más tiempo crear el módulo p , que es un número primo grande. Para crear esto, se toma un número semi-aleatorio y se verifica su primalidad. Si tiene suerte y elige un número primo pronto, el algoritmo termina rápidamente.

Específicamente:

  • BN_generate_prime_ex llama a probable_prime_dh_safe que toma un número aleatorio y comprueba si es divisible por los primeros 2048 números primos. Si lo es, toma otro número aleatorio, etc. Si encuentra un primo probable, imprime un punto.
  • Llama a BN_is_prime_fasttest_ex , que hace Prueba de primalidad de Miller-Rabin . Imprime un '+' si el valor probado es primo.
  • Prueba ambos p y (p-1)/2 de esta manera, e imprime un * si ambos son primos. Se prueba un par de veces para estar realmente seguro. Para 2048 bits, lo comprueba dos veces . Es por eso que ve ++*++* al final de la salida.

Repite estos pasos hasta que encuentra un número que es muy probable que sea primo. Cuántos bucles son necesarios depende del azar.

Documentos de Openssl

    
respondido por el Sjoerd 10.05.2016 - 13:58
fuente

Lea otras preguntas en las etiquetas