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".
-
¿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?
-
¿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'?
-
¿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