Calculadoras Matemáticas
Generador de números


Generador de números

El generador de números aleatorios proporciona un conjunto de números aleatorios según las opciones especificadas por el usuario, como rango, repetición y orden.

Opciones

Números aleatorios

48, 9, 49, 11, 17, 22, 16, 37, 45, 41, 4, 36, 43, 10, 28, 27, 47, 25, 21, 33

Hubo un error con tu cálculo.

Tabla de Contenidos

  1. El uso de generadores de números aleatorios
  2. La diferencia de secuencias aleatorias y no aleatorias
  3. Los tipos de generadores de números aleatorios
  4. Generador de Google
  5. El método congruencial lineal
  6. Generadores de números aleatorios de hardware moderno
    1. QRBG121
    2. Lámparas de lava
    3. HotBits
    4. Fluctuaciones cuánticas en el vacío
    5. Generador de nanotubos de carbono
    6. Cubes y la Electronic Frontier Foundation (EFF)
    7. Un generador cuántico de números aleatorios de un teléfono inteligente Nokia

Generador de números

Un generador de números aleatorios es un proceso de obtención de un número aleatorio cada vez que se necesita, sin la necesidad de definir un patrón a partir de ciertos números generados previamente. Este número puede ser generado por un algoritmo o un dispositivo de hardware.

El uso de generadores de números aleatorios

La generación de números aleatorios es necesaria para varias tareas, desde juegos de computadora hasta aplicaciones comunes. Por ejemplo, el sistema utiliza un generador de números aleatorios para mostrar un banner aleatorio o un bloque de anuncios aleatorio en un sitio web. En criptografía, los números aleatorios también se utilizan para crear un cifrado o clave única.

La generación de números aleatorios se utiliza para generar números o texto para captcha, encriptación, generación tipo sal para almacenamiento de contraseñas, generador de contraseñas, orden de cartas en un casino en línea, toma de decisiones, muestreo y simulación.

El algoritmo generador de números aleatorios se usa a menudo en los videojuegos. Aunque juegue al mismo nivel en una jugada, no será exactamente el mismo cada vez que intente completar una misión. Tal vez las diferencias no se vean en la ubicación o misión; pero si en la cantidad de enemigos que se acercan y los sitios en donde aparecen, los cambios climáticos y los diversos obstáculos encontrados. Todo esto hace que el juego sea más emocionante.

La diferencia de secuencias aleatorias y no aleatorias

Dada una secuencia de números: 1, 2, 3, 4, 5. ¿Es aleatoria?

Una variable aleatoria es una variable que toma uno de algunos valores como resultado de un ensayo. Y no puede predecir con precisión la ocurrencia de un valor particular antes de que aparezca.

Digamos que los números dados se obtuvieron escribiendo en una de las filas superiores del teclado. En este caso, resulta que esta combinación no es aleatoria porque, después del 5, se puede predecir con alta probabilidad el siguiente número, el 6.

La secuencia será aleatoria solo si no hay dependencia entre los símbolos.

La condición básica, que es extremadamente importante para el principio correcto y justo del generador de números aleatorios, es una probabilidad absolutamente igual de cualquier número posible que pueda caer en este sistema. Esto indica independencia completa del factor de aleatoriedad e independencia de qué otros números salieron antes o después del número aleatorio.

Por ejemplo, suponga que lanza un dado de seis caras por primera vez. En ese caso, puede tener absolutamente cualquier número del 1 al 6 con la misma probabilidad. Independientemente de su número, puede lanzar el dado nuevamente con la misma probabilidad de obtener el mismo número en el segundo, centésimo o milésimo lanzamiento.

La secuencia de dígitos del número Pi parece no ser repetitiva y, para muchos, podría parecer aleatoria. Supongamos que nuestro hipotético generador se basa en la representación en bits de Pi, partiendo de un punto no revelado. Un generador así podría ser impredecible en muchos contextos, superando potencialmente ciertas pruebas de aleatoriedad. Sin embargo, confiar en Pi para fines criptográficos plantea riesgos. Si un adversario determina el segmento específico de Pi que se está utilizando, puede predecir tanto los segmentos precedentes como los siguientes, comprometiendo la seguridad del sistema.

El Instituto Nacional de Estándares y Tecnología de EE. UU. propuso el "Paquete de prueba estadística para generadores de números aleatorios y pseudoaleatorios para aplicaciones criptográficas". Incluye 15 pruebas estadísticas cuyo propósito es determinar la medida de aleatoriedad de bits generados por generadores de hardware o software.

Los tipos de generadores de números aleatorios

Hay dos tipos de generadores de números aleatorios (RNG): generadores de números aleatorios verdaderos (TRNG) y generadores de números pseudoaleatorios (PRNG). Los TRNGs utilizan fenómenos físicos para generar números, mientras que los PRNGs utilizan algoritmos matemáticos.

Un verdadero algoritmo generador de números aleatorios se crea con un dispositivo de hardware que utiliza pequeños procesos físicos para generar números aleatorios, como por ejemplo, la entropía. La entropía es pura, un caos sin filtrar.

Los generadores de números aleatorios verdaderos utilizan fenómenos físicos como:

  • radioactividad,
  • ruido térmico,
  • ruido electromagnético,
  • mecánica cuántica, entre otros.

Un Generador RNG verdadero se usa comúnmente en sistemas orientados a la seguridad en todo el mundo y algunas formas de encriptación.

Los generadores de números aleatorios usan fuentes de entropía para acumular entropía y obtener el valor inicial (semilla) que necesitan los generadores de números aleatorios.

El algoritmo generador de números pseudoaleatorios se utiliza en áreas sin problemas de seguridad. La aleatoriedad ayuda a evitar la repetición y hace que el proceso sea más atractivo para el usuario final. La implementación de la tecnología de generadores de números pseudoaleatorios es más económica y rápida porque no requiere hardware y puede integrarse fácilmente en el código del programa. Aunque el proceso no es del todo aleatorio y se determina en base a un algoritmo, es más adecuado para juegos y programas.

Un Generador PRNG utiliza un único valor inicial, del que se sigue su pseudo aleatoriedad. Al mismo tiempo, un generador de números aleatorios verdaderos siempre genera un número aleatorio al tener un valor aleatorio de alta calidad proporcionado al principio por varias fuentes de entropía.

La generación de números pseudoaleatorios tiene sus inconvenientes. Funcionan porque son aleatorios para el ojo inexperto. Sin embargo, suponga que conoce el valor inicial de una secuencia particular de PRNG. En ese caso, podría predecir qué números serían los siguientes.

Los amantes de los videojuegos de velocidad a menudo explotan esta vulnerabilidad; lo llaman manipulación del PRNG. Hacen que el juego se desarrolle de manera predecible para poder pasarlo lo más rápido posible. Afortunadamente, no conlleva problemas críticos.

Pero hay momentos en que predecir números aleatorios es mucho más crítico. Por ejemplo, al crear claves de seguridad.

Si el atacante descubre el valor inicial utilizado para crear claves RSA en certificados TLS, podría potencialmente descifrar el tráfico de red. Esto significa que puede obtener contraseñas y otra información personal enviada a través de Internet.

En estas situaciones, se necesita una forma más segura de obtener números aleatorios, es decir, un generador de números aleatorios verdaderos.

Generador de Google

Google tiene su propia herramienta para generar números aleatorios basada en JavaScript. Esta herramienta puede ser útil cuando juega con amigos y familiares. Puede encontrar este generador si escribe en la consulta de búsqueda de Google "generador de números aleatorios."

El método congruencial lineal

Uno de los algoritmos más populares para generar números pseudoaleatorios es el método congruencial lineal. Se utiliza en casos simples y no tiene fuerza criptográfica. Derrick Henry Lehmer propuso el método congruencial lineal en 1949.

Para implementar la generación de números por este método, necesitamos escoger cuatro números:

m > 0, el módulo

0 ≤ a ≤ m, el multiplicador

0 ≤ c ≤ m, el incremento

0 ≤ X₀ ≤ m, el número inicial

La secuencia de números aleatorios en sí se genera usando la fórmula:

Xₙ₊₁ = (aXₙ + c) mod m

Cabe señalar que este método depende de la elección de los parámetros.

Por ejemplo, para el siguiente conjunto:

X₀ = 3, a = 4, c = 5, m = 6

obtenemos una breve secuencia repetitiva de

3, 5, 1, 3, 5, 1

que no parece aleatoria.

Pero vale la pena cambiar los parámetros para obtener algo diferente:

X₀ = 2, a = 85, c = 507, m = 1356

Y la dispersión de los resultados se vuelve más impredecible. Debe elegir los números para este algoritmo con especial cuidado.

2, 677, 1100, 443, 194, 725, 1112, 107, 110, 365, 344, 1271, 62, 353, 680, 1355, 422, 1121, 872, 47, 434, 785, 788, 1043, 1022, 593, 740, 1031, 2, 677, 1100, 443, 194, 725, 1112, 107, 110, 365, 344, 1271, 62, 353, 680, 1355, 422, 1121, 872, 47, 434, 785, 788, 1043, 1022, 593, 740, 1031, 2, 677, 1100, 443, 194, 725, 1112, 107, 110, 365...

Aunque el método congruencial lineal genera una secuencia de números pseudoaleatorios estadísticamente buena, no es criptográficamente robusta. Los generadores basados en el método congruencial lineal son predecibles, por lo que no puede usarlos en criptografía.

Los generadores de métodos congruencial lineales fueron descifrados por primera vez por Jim Reeds en 1977 y luego por Joan Boyar en 1982. También logró descifrar generadores cuadráticos y cúbicos. Así, demostraron la inutilidad de los generadores basados en métodos congruenciales para la criptografía. Sin embargo, los generadores basados en el método congruencial lineal conservan su utilidad para aplicaciones no criptográficas, por ejemplo, para simulaciones. Son eficientes y muestran un buen desempeño estadístico en la mayoría de las pruebas empíricas.

Generadores de números aleatorios de hardware moderno

QRBG121

El efecto de aleatoriedad en el dispositivo depende del proceso físico cuántico de emisión de fotones en semiconductores y la posterior detección de fotones individuales. En este proceso, los fotones se detectan aleatoriamente, independientemente unos de otros, y la información de tiempo de los fotones detectados se utiliza para generar bits.

Lámparas de lava

La oficina de San Francisco de CloudFlare alberga generadores de números aleatorios llamados "lámparas de lava". Tal lámpara es un recipiente de vidrio lleno de aceite transparente y parafina translúcida. La parafina es un poco más pesada que el aceite, pero cuando se calienta un poco, se vuelve más liviana y flota.

El movimiento de los líquidos es monitoreado por varias cámaras que toman fotos instantáneas. Las fotos instantáneas se convierten en números, a partir de los cuales se generan claves de cifrado.

Las otras dos oficinas de CloudFlare usan diferentes formas de obtener valores aleatorios. En Londres, una cámara capta los movimientos de tres péndulos caóticos. En Singapur se utiliza un contador Geiger que mide la desintegración radiactiva de una pequeña pieza de uranio. En este último caso, el uranio se utiliza como "fuente de datos" porque la radiación radiactiva se caracteriza por la aleatoriedad de cada acto de desintegración.

HotBits

HotBits es un sitio que proporciona números aleatorios reales generados por un contador Geiger que registra la radiación ionizante para todos. Usted completa un formulario de solicitud en el sitio especificando el número de bytes aleatorios y elige su método preferido para obtener los datos. Una vez que se proporcionan los números aleatorios al cliente, se eliminan inmediatamente del sistema.

Fluctuaciones cuánticas en el vacío

Al contrario de su nombre ("vacuus"-vacío), el vacío no puede considerarse vacío. Bajo el principio de incertidumbre de Heisenberg, las partículas virtuales nacen y mueren sin cesar.

Físicos canadienses han diseñado un generador de números aleatorios rápido y estructuralmente simple basado en las fluctuaciones del vacío. El generador consta de un láser pulsado con una alta frecuencia de radiación, un medio con un alto índice de refracción (diamante) y un detector. Al pasar a través del diamante, cada pulso en el sensor muestra diferentes características dependiendo de las fluctuaciones del campo de vacío encontradas en el camino de los fotones.

En el espectro de la radiación dispersa aparecen líneas espectrales. Debido a la imprevisibilidad de las fluctuaciones del vacío, estas líneas difieren de manera impredecible cada vez.

Generador de nanotubos de carbono

Este método combina la compacidad con el ruido térmico generado.

Los investigadores construyeron un generador de números aleatorios a partir de una celda de memoria estática de acceso aleatorio impresa con tintas especiales que contienen nanotubos de carbono semiconductores. La celda de memoria utiliza fluctuaciones de ruido térmico para generar bits aleatorios.

El generador de nanotubos de carbono se puede imprimir en sustratos de plástico flexibles, lo que permite integrarlo en dispositivos electrónicos pequeños y flexibles, sensores portátiles, etiquetas desechables y prendas de vestir inteligentes.

Cubes y la Electronic Frontier Foundation (EFF)

La empresa ha propuesto una forma sencilla de crear contraseñas seguras utilizando un generador físico de números aleatorios. Se basa en dados.

Por ejemplo, tira cinco dados a la vez y escribe los números resultantes. Los dados están dispuestos de izquierda a derecha de la siguiente manera: 63131. A continuación, abre una larga lista de palabras en el sitio web de EFF para encontrar la palabra correspondiente junto a 63131. Esa palabra es "turbofan".

Puede repetir este procedimiento varias veces. Por ejemplo, cinco veces. Puede terminar con una frase de cinco palabras. Digamos, "purga de turboventilador inapropiado, intente podar". Si sabe cómo usar las reglas de la mnemotécnica, puede memorizar frases como estas.

Un generador cuántico de números aleatorios de un teléfono inteligente Nokia

En 2014, la Universidad de Ginebra creó un dispositivo QRNG que usaba la cámara del teléfono inteligente Nokia N9.

La cámara del teléfono inteligente contaba la cantidad de fotones que golpeaban cada píxel. La fuente de luz era un LED estándar. Cada píxel de la cámara de 8 MP detectaba unos 400 fotones en poco tiempo. Luego, el número total de fotones en todos los píxeles se convirtía en una secuencia de números aleatorios.