¿Cuáles son los requisitos para que un generador de números aleatorios sea seguro para usar en criptografía?

2

Cuando veo la mayoría de los RNG (generadores de números aleatorios), veo un descargo de responsabilidad que se parece a esto:

  

Precaución: Mersenne Twister es básicamente para simulaciones de Monte-Carlo, no es criptográficamente segura "como es".

  1. ¿Cuáles son los requisitos para que un (pseudo-) RNG sea 'criptográficamente seguro'? ¿Qué pruebas / lógica se usa para decidir que un RNG es seguro para este propósito o no?

  2. ¿Cuáles son las diferencias generales entre RNG seguros y no seguros? ¿Son los RNG seguros generalmente mucho más complejos / incluyen semillas más grandes y más manipulación de datos? ¿Es posible hacer seguro un RNG no seguro agregando una serie de resultados obtenidos de él o usando un resultado como semilla para producir nuevos resultados que sean 'más aleatorios'?

  3. ¿Cuál es el problema con el uso de RNG no seguros para la criptografía? No tengo dudas de que la criptografía sería mucho más fácil de romper, pero ¿cómo se hace esto realmente? ¿El cracker de alguna manera reconoce un patrón en los datos que son caracteres de un cierto RNG y lo usa para ayudar a "eliminar" la aleatoriedad del texto simple?

NOTA : Por favor, deje un comentario si cree que esta pregunta debería dividirse; Sé que las diferentes partes están relacionadas, pero si son lo suficientemente complejas como para merecer un tratamiento más específico, con mucho gusto las separaré en varias publicaciones. : D

    
pregunta Gordon Gustafson 21.04.2012 - 04:28
fuente

1 respuesta

2

He escrito en otra parte sobre cómo comprobamos la seguridad de una primitiva criptográfica : todo lo que escribí allí se aplica igualmente a la verificación de la seguridad de un PRNG criptográficamente seguro.

La diferencia entre PRNG seguros y no seguros es que los seguros son, bueno, seguros. Puede comenzar por leer en la definición de seguridad para un PRNG de fuerza criptográfica . Comenzar con un PRNG no seguro y luego tratar de agregar complejidad adicional probablemente no sea una forma efectiva de terminar con un PRNG seguro.

El problema con el uso de un PRNG no criptográfico para la criptografía es que terminas con un sistema inseguro. Vea, por ejemplo, el ejemplo de implementaciones tempranas de SSL en Netscape Navigator, que resultó ser frágil porque usaron un PRNG no criptográfico en un lugar donde necesitaban un PRNG de fuerza criptográfica .

En el futuro, sugiero hacer estas preguntas en Crypto.SE y dividirlas en varias partes. O, mejor aún, eche un vistazo a un buen libro de texto de criptografía: todo esto debería estar cubierto allí.

    
respondido por el D.W. 21.04.2012 - 06:48
fuente

Lea otras preguntas en las etiquetas