diodo aleatorio

2

He estado viendo Minder DVD y uno de los extras de la Serie 6 es un anuncio de Premium Bonds de 1986 que explica que su super-duper ERNIE 2 utiliza diodos (creo) que emiten pulsos a intervalos aleatorios para generar números aleatorios para el sorteo de premios. Desafortunadamente, no pude encontrar la película en Youtube para vincularla. Estaban diciendo que el uso de un dispositivo físico aleatorio hace imposible predecir los resultados de la máquina, ¡pero obviamente era un anuncio, así que estaban vendiendo un producto! ¿Qué tan buenos son estos diodos de hecho? ¿Qué tan barato sería (o un hardware similar) agregar a una computadora para generar números aleatorios en lugar de un algoritmo? ¿Producirían números "aleatorios" que un algoritmo de tiempo sembrado? Es decir. ¿valdría la pena el costo de un componente adicional o son los algoritmos lo suficientemente aleatorios para la mayoría de los usos?

    
pregunta CJ Dennis

3 respuestas

2

Hay un artículo bastante bueno en Generador de números aleatorios de hardware en wikipedia.

Sí, es posible que desee agregar un 'Generador de números aleatorios reales' (TRNG) a una computadora, y los fabricantes lo hacen. En algunas aplicaciones, un TRNG vale un precio superior.

Por ejemplo, Sun Microsystems tenía una placa generadora de números aleatorios de hardware disponible como una opción de costo adicional para algunos de sus productos, que se utiliza, por ejemplo, en banca o comercio electrónico. Valió la pena pagar el extra para generar una gran cantidad de números verdaderamente aleatorios a una tasa alta.

Se describe en Sun Microsystems Sun Crypto Accelerator 6000

Los números aleatorios basados en software utilizan fuentes de entropía en el sistema para "sembrar" su comportamiento (por ejemplo, el tiempo de búsqueda de la cabeza del disco duro). Sin embargo, esas técnicas requieren cantidades razonables de entropía para darles una buena fuente de aleatoriedad. A tasas muy altas de generación de números aleatorios, no hay tiempo suficiente para que los sistemas subyacentes a las fuentes de aleatoriedad proporcionen eso. Por lo tanto, la aleatoriedad puede ser inadecuada.

La generación de números aleatorios de alta calidad no es un problema restringido a los sitios web y la red. Por ejemplo, ST Micro implementa un 'Generador de números aleatorios verdaderos' en sus microcontroladores STM32F2 y STM32F4 Cortex-M3 y Cortex-M4. Esos dispositivos son dispositivos integrados y, por lo tanto, están diseñados para implementar aplicaciones criptográficamente seguras.

Se describe en una nota de aplicación denominada "Aplicación AN4230 nota: STM32F2xx, STM32F4xx validación de generación de números aleatorios utilizando el conjunto de pruebas estadísticas NIST "

Dice

  

El periférico del generador de números aleatorios verdadero implementado en STM32 ... y se basa en un circuito analógico. Este circuito genera un ruido analógico continuo que alimenta un registro de cambio de retroalimentación lineal (LFSR) para producir un número aleatorio de 32 bits.

     

El circuito analógico está formado por varios osciladores en anillo cuyas salidas están XORed. "

    
respondido por el gbulmer
-1

En la historia ha habido algunos intentos muy alucinantes para lograr un resultado verdaderamente aleatorio. Me parece recordar uno para un sitio web de RPG que decía estar rodando en dados según las fluctuaciones de intensidad de un láser (o algo así).

En general, no, no desearía agregar un circuito de aleatorización a una computadora de propósito general. La razón principal es que si vienes unos pocos centavos por encima de la competencia por una parte, tiendes a perder las partes más grandes del mercado. Por supuesto, esto podría convertirse en una característica de los dispositivos especializados, donde se puede usar para aumentar el precio, pero en realidad, los ingenieros de software pueden evocar la casi aleatoriedad real en casi cualquier plataforma, por lo que es probable que no encuentre una necesidad para esta característica.

Por ejemplo, cuando necesito un número bastante aleatorio, simplemente recurro a la función de inicialización: obtengo una inicialización aleatoria de la hora del sistema y luego la uso para dibujar una nueva semilla antes de usar el resultado.

    
respondido por el Sean Boddy
-1

Has hecho varias preguntas secundarias, por lo que solo abordaré un par. Todo el tema de la generación de números aleatorios de hardware es un gran tema multidisciplinario, así que también lo restringiré aún más a los diodos (*) y al concepto de entropía.

Entropía es impredictivo o por sorpresa. Viene de sistemas caóticos y de mecánica cuántica. Puedes pensar que es como tirar un dado donde el único punto es en realidad una pieza de plomo en lugar de pintura. Caerá un solo punto hacia abajo la mayor parte del tiempo. Pero de vez en cuando aterrizará lo contrario. Esta es una fuente de entropía con un sesgo considerable, ya que principalmente lee un "6". La mayoría de las fuentes de entropía en la naturaleza están sesgadas o tienen distribuciones de probabilidad no uniformes. La entropía luego se convierte en un conjunto de números distribuidos uniformemente a través del procesamiento posterior y usted tiene su verdadero generador de números aleatorios (TRNG). Como ERNIE.

El diodo aleatorio es perfecto para la generación de números aleatorios de baja tasa de aficionados y profesionales. La unión se rompe cuando se invierte y crea un ruido eléctrico totalmente impredecible. A continuación, puede procesar esta entropía para extraer números aleatorios. Maxim tiene una buena aplicación circuito basado en un diodo Zener 1N759. Aquí hay un extracto: -

Han medido el ruido a 100 MHz. Si se tomara una muestra de esto a, digamos, 4 bits a través de un ADC flash, podría esperar números aleatorios del orden de 100 Mbits / s. Esto es en gran medida un límite superior, ya que nunca he visto un TRNG comercial basado en diodos en ningún lugar a esta velocidad. Estoy bastante contento de lograr 100 kbits / s.

ERNIE 1 usó un dispositivo similar a un diodo llamado válvula termoiónica que se usa típicamente para estabilizar el voltaje.

Podría indicar que un TRNG produce números aleatorios al azar que un generador de números pseudoaleatorios (PRNG), pero esto es un argumento semántico / filosófico. Algunos dicen que un TRNG es en realidad lo mismo que un PRNG ya que sus salidas respectivas serán computacionalmente indistinguibles de las aleatorias. Sin embargo, un PRNG se siembra con un punto de inicio y luego manipula algebraicamente este valor inicial para producir la salida. Si conoces la semilla, puedes predecir totalmente la salida. Un TRNG no tiene semilla. La semilla es el diodo físico en sí mismo y nuestro nivel actual de comprensión significa que no podemos predecir su salida entrópica. John von Neumann dijo que "cualquiera que considere métodos aritméticos para producir dígitos al azar está, por supuesto, en un estado de pecado".

TRNGs suena sexy. La ERNIE actual (5) es extremadamente lenta, pero se comercializa como un maravilloso sistema verdaderamente impredecible que se basa en décadas de nostalgia y antropomorfismo.

* Nota: Algunos dicen que la unión de la base del emisor en un transistor es un diodo que se puede usar para propósitos de aleatoriedad similares. Me gustaría llamar su atención sobre esta pregunta por qué no debería.

    
respondido por el Paul Uszak

Lea otras preguntas en las etiquetas