"Cualquiera que considere métodos aritméticos para producir dígitos al azar está, por supuesto, en estado de pecado" \ $ - \ $ John Von Neumann
Una buena fuente de ruido es el ruido de ruptura de un diodo Zener. El simple esquema a continuación muestra cómo obtener ruido blanco de un zener mediante la conexión en cascada de dos LNA (amplificadores de bajo nivel de ruido) para aumentar el nivel de ruido.
Sinoleimportaqueelruidoseablanco,simplementepuedeusarunamplificadoropampconunagranamplificación,conuncomparadorsiguiéndolo.Laamplificacióndelopampponeunlímitealanchodebanday,porlotanto,alatasadecambioensuseñaldigital.Siesnecesario,conecteencascadadosoperacionescomolosLNAenelesquemaparaobtenerunflujodebitsaleatoriomásrápido.
PuedeusarelmóduloSPIpararegistrarenbytesdebitsaleatoriosdeestecircuito.
(ElSPIessolounaformasencilladerecopilarautomáticamente8bitsaleatorios,noagreganingúnniveldedeterminismo:laentradacambiadeformacontinuayaleatoriaynuncasesabecuálserálapróximavezquellegueelreloj.TambiénpuedeleerunpindeE/Sycambiarelniveldeesebitasubytederesultados.)
Este circuito es una posible solución alternativa, que también depende de un diodo Zener como ruido. fuente:
Elesquemamencionael OPA2340 para el amplificador, pero no está claro en el comparador . Si bien el OPA2340 es razonablemente rápido, sugeriría usar un comparador real aquí, ya que generalmente son mucho más rápidos que los opamps. Por ejemplo, el TL3016 tiene un retardo de propagación inferior a 10 ns, y un tiempo de subida típico de 0,5 ns. . Esto significa que puede muestrear valores aleatorios más rápido sin el riesgo de coherencia entre muestras sucesivas.
Para probar el generador de números aleatorios, puede probar la normalidad . Esto significa crear una larga cadena de números aleatorios, cuanto más larga, mejor. Lo mejor es transportarlo a la PC para el análisis. Cuente las secuencias de un bit, es decir, 0
s y 1
s. Debe haber aproximadamente el mismo número de cada uno. A continuación repetir para secuencias de dos bits. Debe haber tantos 00
s como 01
s, 10
s y 11
s. Repita para secuencias de tres bits, etc.
No soy un estadístico, por lo que puede haber pruebas mejores / más fáciles. Siéntete libre de agregarlos.