Los generadores de números aleatorios no criptográficos más utilizados

0

Quiero investigar generadores de números pseudoaleatorios, y veo que muchos de los generadores de números aleatorios no son tan seguros como la gente asume.

Lo que me gustaría saber es ¿cuáles son los generadores aleatorios más utilizados actualmente? Ya sea PRNG o CSPRNG. Esto es bajo mi suposición de que TRNG aún no se ha vuelto tan común como los generadores anteriores. Me gustaría entender con qué frecuencia se usan los PRNG en las aplicaciones de seguridad, cuando deberían haberse usado los CSPRNG en su lugar.

    
pregunta C0d3ine 06.10.2017 - 00:10
fuente

1 respuesta

1

Mersenne Twister es un RNG no criptográfico que se usa comúnmente en muchas aplicaciones. Según Wikipedia:

  

Mersenne Twister es el PRNG predeterminado para los siguientes sistemas de software:

     

Microsoft Visual C ++, [3] Microsoft Excel, [4] GAUSS, [5] GLib, [6] Biblioteca de aritmética de precisión múltiple de GNU, [7] Octava de GNU, [8] Biblioteca científica de GNU, [9] gretl, [10] IDL, [11] Julia, [12] CMU Common Lisp, [13] Incrustable Common Lisp, [14] Steel Bank Common Lisp, [15] Maple, [16] MATLAB, [17] Free Pascal, [18] ] PHP, [19] Python, [20] [21] R, [22] Ruby, [23] SageMath, [24] Scilab, [25] Stata. [26] También está disponible en Apache Commons, [27] en C ++ estándar (desde C ++ 11), [28] [29] y en Mathematica. [30] Las implementaciones adicionales se proporcionan en muchas bibliotecas de programas, incluidas las bibliotecas Boost C ++, [31] la biblioteca CUDA, [32] y la biblioteca numérica NAG. [33]

Mersenne Twister es un PRNG muy bueno, con buenas propiedades estadísticas, un período muy largo y es rápido. A pesar de ser un PRNG muy bueno, y se usa ampliamente para muchos juegos, simulaciones estadísticas y otros propósitos, no es adecuado para la criptografía.

Otro RNG común es generador lineal congruente (LCG) , que durante mucho tiempo es el RNG predeterminado en bibliotecas de C populares (y muchos otros idiomas que utilizan la biblioteca de C, como PHP). LCG es un RNG simple pero muy pobre, incluso para estándares RNG no criptográficos. El tamaño de su período es vergonzosamente pequeño, los números ya producidos no pueden repetirse durante todo el período, y tiene propiedades estadísticas que lo hacen inadecuado para muchos propósitos.

    
respondido por el Lie Ryan 06.10.2017 - 08:11
fuente

Lea otras preguntas en las etiquetas