¿Tienen los CSPRNG una relación de longitud de semilla de entrada máxima a longitud de salida?

0

Usando lo que podría considerarse el mejor "o mejor" seguro CSPRNG de hoy, ¿cuántos datos máximos N puede leer de un CSPRNG dado una entrada semilla de longitud n antes de que la salida comience a ser predecible (sin reinicializar)? ¿Se puede leer de forma indefinida y seguir obteniendo resultados impredecibles?
Más concretamente: ¿puedo generar 20 kb de datos desde un dispositivo de número aleatorio de hardware, enviarlos a un CSPRNG con estado, deshacerme del generador de números aleatorios de hardware y utilizar indefinidamente los datos del CSPRNG para fines criptográficos?

Nota: Me doy cuenta de que la "longitud" puede ser problemática, por lo que esta pregunta puede responderse en términos de calidad de entropía.

    
pregunta automaton 03.09.2016 - 14:46
fuente

1 respuesta

1

Esto es exactamente lo que hace / dev / urandom, en realidad.

Un PRNG con una semilla de longitud N bits tendrá un período (longitud de repetición) de 2 ^ N bits, debido al principio de casillero. Entonces, siempre que su CSPRNG sea perfectamente seguro y tenga una longitud de semilla de, por ejemplo, 256 bits, no tiene que preocuparse por repetir nunca antes de la muerte por calor del universo. (Tenga en cuenta que las semillas son de longitudes fijas.)

La razón por la que esto se considera peligroso es porque si, por alguna razón, su PRNG pierde el estado, por ejemplo, porque un atacante usa un error de divulgación de información del kernel, todos los datos "aleatorios" se verán comprometidos hasta la próxima reinicialización. OTOH, obtener una aleatoriedad "real" cuando la necesita proporciona una perfecta seguridad de avance.

    
respondido por el Reid Rankin 03.09.2016 - 15:05
fuente

Lea otras preguntas en las etiquetas