Si está utilizando una CPU Intel relativamente reciente, lo más probable es que sus números aleatorios en realidad provengan de un pequeño circuito dentro de la CPU cuyo único trabajo es escupir números aleatorios a una velocidad de hasta 6.4 gigabits por segundo.
Algunas de las respuestas aquí mencionan que las computadoras son incapaces de producir números aleatorios verdaderos, y en su lugar deben confiar en una clase de algoritmos matemáticos conocidos como generadores de números pseudoaleatorios. Sin embargo, en los últimos diez años más o menos, los fabricantes de CPU han abordado gradualmente este problema, y la mayoría de los principales fabricantes de CPU de escritorio y servidor ahora han puesto generadores de números aleatorios verdaderos de hardware en sus CPU.
Intel, por ejemplo, el mayor fabricante de CPU de escritorio y servidor del mundo, comenzó a hacer esto en 2012 con Ivy Bridge.
El circuito generador de números aleatorios dentro de las CPU de Ivy Bridge se basa en un circuito de enganche RS-NOR, que utiliza ruido térmico para producir aleatoriedad (ver: ruido Johnson-Nyquist – Wikipedia). Este circuito alimenta un generador de números pseudoaleatorios, que ayuda a normalizar la distribución aleatoria.
- ¿Cuántos números de tres dígitos no son divisibles por 3 y 5?
- ¿Cuál es la respuesta a 5 dividido por 1/0?
- ¿Cuántos 33 (2 3 consecutivos) ocurren en un número de seis dígitos?
- Tratando de recordar el cálculo de la escuela secundaria, bajo límites, descubrí que infinito menos infinito es indeterminado. ¿Qué pasa con infinito más infinito? Si hay una diferencia, ¿por qué? Pensé que la resta es solo suma, invertida.
- ¿Cómo no se define x / 0 si x * 0 = 0?
(fuente: Comprender el generador de números aleatorios Ivy Bridge de Intel también es un excelente artículo para leer para comprender más sobre las fuentes de entropía).
En pocas palabras, sus números aleatorios pueden provenir de la aleatoriedad causada por la agitación térmica impredecible de los electrones: un circuito inestable se equilibra con mucho cuidado entre dos estados, y una pequeña cantidad de agitación térmica podría causar suficientes electrones adicionales o muy pocos electrones para balancee el circuito hacia un 1 o un 0. Estos 1 y 0 aleatorios se recopilan y se introducen en procesos adicionales (como la generación de un generador de números pseudoaleatorio adicional para producir la distribución numérica correcta y las velocidades de datos que se necesitan). La salida de esto se convierte en la fuente de números aleatorios.
AMD comenzó a agregar una fuente de entropía a su línea de CPU Excavator a partir de 2015. VIA parece haber tenido generadores de números de hardware en su familia C7 ya en 2005 como parte de sus características de criptografía acelerada por hardware VIA Padlock. ARM no produce CPU, pero licencia su diseño a otros fabricantes; no parece haber un generador de aleatoriedad de hardware en los diseños centrales de la CPU, pero varios fabricantes agregan sus propios generadores de números aleatorios de hardware como periféricos a la CPU, ya sea de forma independiente o como parte de funciones criptográficas.
Estos verdaderos generadores de números aleatorios son mejores (léase: más aleatorios) que los generadores de números pseudoaleatorios, pero generalmente no se consideran buenos números aleatorios criptográficamente seguros. Sin embargo, son un paso en la dirección correcta y son perfectamente utilizables para usos no criptográficos de números aleatorios, o en combinación con otras fuentes de entropía, para volverse más aleatorios.
Entonces, en los últimos tiempos, ya no es correcto decir que las computadoras no pueden generar números aleatorios verdaderos, ya que la mayoría de los fabricantes de CPU de escritorio ahora incluyen fuentes de entropía para generar números aleatorios verdaderos.