¿Por qué no disminuye la cantidad de bytes requeridos por GnuPG para generar la clave?

1

Corrí un gpg --gen-key en una máquina remota conectada con SSH y lo dejé para hacer su trabajo. Terminó con éxito, sin embargo, durante el tiempo de ejecución, solicitó realizar acciones aleatorias para recopilar más entropía.

El primer mensaje reclamado GnuPG requirió 162 bytes, luego: 212, 243 y 250.
En la segunda ejecución: 178, 202, 249, 245.
En el tercero: 224, 193, 247, 246.

¿Por qué este número no disminuye constantemente (y en cambio aumenta en algunos casos)?

Pregunta lateral: ¿por qué parece que siempre termina después de la 4ta advertencia?

$ gpg --gen-key
gpg (GnuPG) 1.4.18; Copyright (C) 2014 Free Software Foundation, Inc.    

(...)

Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? o
You need a Passphrase to protect your secret key.

We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.

Not enough random bytes available.  Please do some other work to give
the OS a chance to collect more entropy! (Need 162 more bytes)
.....+++++

Not enough random bytes available.  Please do some other work to give
the OS a chance to collect more entropy! (Need 212 more bytes)
............+++++
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.

Not enough random bytes available.  Please do some other work to give
the OS a chance to collect more entropy! (Need 243 more bytes)
......+++++

Not enough random bytes available.  Please do some other work to give
the OS a chance to collect more entropy! (Need 250 more bytes)
..+++++
gpg: ~/.gnupg/trustdb.gpg: trustdb created
gpg: key 8458470F marked as ultimately trusted
public and secret key created and signed.
    
pregunta techraf 23.07.2016 - 16:55
fuente

1 respuesta

3

El motivo de esto no es obvio desde la interfaz de usuario de GnuPG.

la generación de claves RSA requiere números primos aleatorios. GnuPG genera una clave principal y una subclave de cifrado de forma predeterminada. Ambas suelen ser claves RSA, por lo que requieren dos números primos cada una, con un total de cuatro. Esto también se puede ver en el siguiente mensaje que se imprime dos veces, una para cada clave RSA:

We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.

Después de esto, se recuperan los dos números aleatorios (que actúan como puntos de partida para buscar números primos):

Not enough random bytes available.  Please do some other work to give
the OS a chance to collect more entropy! (Need 243 more bytes)
......+++++

Not enough random bytes available.  Please do some other work to give
the OS a chance to collect more entropy! (Need 250 more bytes)
..+++++

El número de bytes puede diferir cada vez que genera claves porque puede haber una entropía adicional generada después de que haya suficientes bytes aleatorios disponibles.

    
respondido por el Jens Erat 23.07.2016 - 17:12
fuente

Lea otras preguntas en las etiquetas