una tipos tabla semilla que pseudoaleatorios numeros metodo medios los lineal informatica historia generadores generador eventos ejemplos cuadrados congruencial aleatorios random hardware

random - tipos - semilla en informatica



Generadores de números verdaderos(no pseudo) aleatorios. ¿Qué hay afuera? (5)

Hay un artículo en c''t 2/2009 sobre números verdaderos y pseudoaleatorios. Aparte de LavaRnd también se discuten RandCam y PadLock de VIA.

Estoy buscando soluciones asequibles que generen verdaderos números aleatorios.

Encontré LavaRnd , que es un generador de números aleatorios criptográficamente sólido. ¿Alguien tiene experiencia en este campo y / o conoce otras soluciones?

PD: en mi humilde opinión, la pregunta de SO El verdadero generador de números aleatorios no cubría realmente esto

EDITAR :

Mi curiosidad es más de naturaleza académica. No quiero saber acerca de los PRNG que son lo suficientemente buenos para aplicaciones prácticas. Sé que existen y que lo harán.

Por supuesto, la generación de verdaderos números aleatorios requerirá dispositivos de hardware. Es por eso que etiqueté esto con hardware .


Siempre quise comprar el generador de números aleatorios Quantum de PCI o USB , pero no tengo idea de cuánto cuestan y, francamente, ¡podría ser mucho! Sin embargo, entregan asombrosos 16 Mibit / sy 4 Mibit / s de números aleatorios, utilizables tanto en cajas * NIX como en Windows. ¡Eso es más de lo que alguna vez necesitaría!

Aparte de eso, ¿qué tal un libro lleno de ellos? ¡Un millón de dígitos aleatorios con 100,000 desviaciones normales es quizás el libro más genial que venden en Amazon! Todavía tengo que comprarlo, pero es solo cuestión de tiempo. ¡Debe ser muy útil tener tal stock de verdaderos números aleatorios en su estante de libros!


Usted no especificó un entorno.

De la documentación para Linux / dev / random

El generador de números aleatorios reúne el ruido ambiental de los controladores de dispositivos y otras fuentes en un conjunto de entropía. El generador también mantiene una estimación del número de bits del ruido en el grupo de entropía. A partir de este grupo de entropía, se crean números aleatorios.

Así que esta es una fuente aleatoria criptográficamente segura, basada en la entrada impredecible de cosas tales como los tiempos arbitrarios de los paquetes de Ethernet, la entrada de teclado y mouse, etc.

También está el servidor Yarrow PRNG de Bruce Schneier. No es realmente aleatorio, pero se considera criptográficamente seguro.

... y también EGD , el Entropy Gathering Daemon. Escrito en Perl y, por lo tanto, portátil en muchas plataformas.


Los verdaderos números aleatorios en la informática no existen y nunca lo harán. Las computadoras son deterministas, en el sentido de que si repites la misma experiencia en el mismo entorno, se obtendrá el mismo resultado.

Lo que obtienes con las computadoras son números pseudoaleatorios, que dependen principalmente de las circunstancias actuales: fecha, hora, otras variables como la memoria que se está utilizando, el tráfico de red en el momento, etc.

Por ejemplo, algunos sitios de póquer en línea, para garantizar en cierta medida la aleatoriedad de sus manos, tuvieron que instalar hardware específico que toma el ruido ambiente y genera números aleatorios basados ​​en eso (no solo eso, sino que es un factor importante).

Por lo tanto, para tener números pseudoaleatorios que se aproximen a la aleatoriedad real, deberá tener en cuenta los factores externos.


Abordar completamente el problema es un tema amplio.

Existen generadores de números aleatorios de hardware. Estos usan ruido térmico o incluso efectos cuánticos (en los modelos más rápidos) para generar números aleatorios de alta calidad.

Hay algunas sospechas de que la generación de números aleatorios de ruido térmico puede tener "sesgos". Es decir, que algunos números se generan con mayor frecuencia que otros, en el extremo a largo plazo. Los números generados son todavía verdaderamente aleatorios.

Para ver cómo podría ser esto, considera una moneda injusta que da cara el 60% del tiempo. Voltear la moneda sigue siendo un proceso aleatorio, es solo que deberíamos esperar que el 60% de ellos sean cabezas, en el largo plazo. Actuar fuera del proceso aleatorio codifica información, o "entropía", ya que cualquier resultado definitivo es solo uno de muchos resultados posibles. ¡Por otro lado, una secuencia de Heads and Tails generada con una moneda injusta contendrá menos información que la misma secuencia generada con una moneda justa!

El resultado es que para la seguridad comprobable de nivel paranoico, no desea utilizar directamente los números de un generador de números aleatorios de hardware. Desea alimentarlos en un grupo de entropía, que los números aleatorios (pero posiblemente sesgados) pueden agitar.

Como cuestión de hecho, la mayoría de los generadores de números aleatorios de hardware están diseñados para alimentar / dev / random, a través del núcleo (o el equivalente de Windows), para hacer frente a este problema de polarización / entropía.

Por otro lado, cualquier generador de números aleatorios decente será lo suficientemente uniforme como para hacer simulaciones de Monte Carlo, rápido.