Generador de números aleatorios

Nuestro generador de números aleatorios crea uno o varios números enteros aleatorio. Puedes trabajar con números enteros muy grandes de hasta unos pocos miles de dígitos. Y puedes generar varios números aleatorios a la vez.


¿Cómo generar números aleatorios?

Un número aleatorio es un número elegido de un conjunto de números limitados o ilimitados que no tiene un patrón discernible para la predicción. El conjunto de números es casi siempre independiente entre sí. Sin embargo, el conjunto de números puede seguir una distribución específica.

Por ejemplo, la altura de los estudiantes en una escuela tiende a seguir una distribución normal alrededor de la altura media. Si se elige al azar la altura de un estudiante, el número elegido tiene una mayor probabilidad de estar más cerca de la altura media que de ser clasificado como muy alto o muy bajo.

Un generador de números aleatorios, como los anteriores, es un dispositivo que puede generar uno o muchos números aleatorios dentro de un alcance definido. Los generadores de números aleatorios pueden ser basados en hardware o generadores de números pseudoaleatorios. Los generadores de números aleatorios basados en hardware pueden involucrar el uso de un dado, una moneda para lanzar, o muchos otros dispositivos.

Un generador de números pseudoaleatorios es un algoritmo para generar una secuencia de números cuyas propiedades se aproximan a las propiedades de secuencias de números aleatorios. Los generadores de números aleatorios basados en computadora son casi siempre generadores de números pseudoaleatorios.

Sin embargo, los números generados por generadores de números pseudoaleatorios no son verdaderamente aleatorios. De igual forma, nuestros generadores anteriores también son generadores de números pseudoaleatorios. Los números aleatorios generados son suficientes para la mayoría de las aplicaciones, pero no deben ser utilizados para fines criptográficos.

Los números aleatorios verdaderos se basan en fenómenos físicos como el ruido atmosférico, el ruido térmico y otros fenómenos cuánticos. Los métodos que generan números aleatorios verdaderos también implican compensar los posibles sesgos causados por el proceso de medición.

Generar números aleatorios a partir de números irracionales

A veces, los dígitos en las expansiones decimales de números irracionales se utilizan para obtener números aleatorios. La mayoría de los números enteros tienen raíces cuadradas irracionales, por lo que ingresar una cadena de seis u ocho dígitos en una calculadora y luego presionar el botón de raíz cuadrada puede proporcionar una secuencia de dígitos que parece aleatoria. También se han diseñado otros algoritmos que supuestamente generan números aleatorios.

El problema con esos métodos es que violan la segunda condición en la definición de aleatoriedad como se señaló anteriormente. La existencia de cualquier algoritmo de generación de números produce valores futuros basados en valores pasados y/o actuales. Los dígitos o números generados de esta manera se llaman pseudoaleatorios.

Métodos de producción de números aleatorios Los estadísticos, matemáticos y científicos han buscado durante mucho tiempo la fuente ideal de números aleatorios. Un método frecuentemente utilizado fue el muestreo de ruido electromagnético. Se cree que este ruido, generado por los movimientos caóticos de electrones, huecos u otros portadores de carga en materiales y en el espacio, es tan cercano a «totalmente aleatorio» como cualquier fenómeno observable. Otro método que también genera números aleatorios es la desintegración radiactiva. Los números generados como salida de procesos físicos impredecibles se consideran aleatorios o «aleatorios con una distribución uniforme».

Hoy en día, los números aleatorios se pueden generar con la ayuda de hardware y software. Los números aleatorios generados por computadora a veces se denominan números pseudoaleatorios para diferenciarlos de los números «verdaderamente» aleatorios generados a partir de procesos físicos y hardware.

Los números también se consideran pseudoaleatorios porque se utiliza algún procedimiento aritmético para generarlos, y aunque la secuencia de números aleatorios generada puede formar un patrón, los números en ellos pueden no ser verdaderamente aleatorios.

El método de congruencia lineal es un método aritmético popular para generar números pseudoaleatorios

Generador de números aleatorios En aplicaciones modernas, los números aleatorios se producen comúnmente con un generador de números aleatorios (RNG), que puede ser un dispositivo de hardware o un algoritmo de software. El dispositivo o algoritmo genera aleatoriamente un número que se toma de una distribución limitada o ilimitada.

Hay dos tipos generales de generadores de números aleatorios: generadores de números pseudoaleatorios y generadores de números aleatorios verdaderos.

Generador de números pseudoaleatorios

Los PRNG basados en software utilizan algoritmos para imitar la selección de un valor y aproximar la aleatoriedad verdadera. Sin embargo, sus salidas no son verdaderos números aleatorios porque la computadora utiliza un algoritmo basado en una distribución, de ahí el término pseudoaleatorio. Además, la calidad de la aleatoriedad producida con PRNG varía.

Los PRNG se basan en algoritmos deterministas y predecibles. También, se puede establecer un número semilla para replicar los números aleatorios generados. Por lo tanto, si se conoce la semilla, también se pueden predecir los números. Esto es también por lo que los PRNG no producen números aleatorios verdaderos y no son tan seguros como los generadores de números aleatorios verdaderos.

Los PRNG se utilizan en lenguajes de computadora como Python, aplicaciones como Excel y en cifrados de flujo como ChaCha. Sin embargo, no son adecuados para implementaciones criptográficas seguras. Para tales usos, se requiere un PRNG criptográficamente seguro. Una combinación de algoritmos también puede ayudar a lograr una aproximación más segura de un número aleatorio verdadero.

Generador de números aleatorios verdaderos. Un generador de números aleatorios verdaderos (TRNG), también conocido como generador de números aleatorios de hardware (HRNG), no utiliza un algoritmo de computadora. En su lugar, utiliza una variable física impredecible externa, como la desintegración radiactiva de isótopos o la estática de las ondas aéreas, para generar números aleatorios. De manera similar, las partículas subatómicas también son variables ideales de un sistema impredecible, ya que exhiben un comportamiento verdaderamente y completamente aleatorio, también conocido como aleatoriedad pura.

Debido a que un TRNG se basa en procesos físicos, considera atributos físicos del sistema, como condiciones atmosféricas o térmicas. También puede tener en cuenta sesgos de medición. Los TRNG y HRNG son criptográficamente seguros y son útiles para crear tokens semilla.

La mayoría de los RNG comienzan con un número inicial conocido como semilla. Una semilla aleatoria o estado semilla es simplemente un número o vector utilizado para inicializar un RNG (generalmente un PRNG). Un examen de la esfera de ruido del algoritmo puede revelar la «bondad» de los números aleatorios generados por él.

Desafíos y riesgos de generar números aleatorios

A pesar de la disponibilidad de procesos físicos y algoritmos de computadora, producir números aleatorios verdaderos sigue siendo un desafío. Además, siempre existe un riesgo de que los números aleatorios producidos puedan ser comprometidos o explotados. Tal compromiso puede resultar en la pérdida de confidencialidad en sistemas de archivos, código fuente, memoria o comunicaciones de red.

Si se produce una fuga en una computadora conectada a otros dispositivos, la fuga puede aumentar el riesgo de compromiso de todos los dispositivos conectados. Es por eso que las computadoras que producen números aleatorios para casos de uso específicos son más seguras que las computadoras de propósito general. Ejemplos de tales casos de uso son la generación de frases mnemotécnicas y el almacenamiento de frases y claves de criptomonedas.

Otro desafío es que los RNG verdaderos rara vez son rentables. También están sujetos a un declive gradual y a menudo dependen de algoritmos de postprocesamiento deterministas para mejorar aún más la aleatoriedad. Dicho esto, utilizar múltiples procesos aleatorios puede hacer que el proceso de generación de números aleatorios sea más efectivo. Esto se puede hacer combinando TRNG y PRNG o utilizando un conjunto de algoritmos en un conjunto de cifrado.


Resumen
software image
Puntuación del autor
1star1star1star1star1star
Puntuación añadida
no rating based on 0 votes
Nombre del software
Generador de números aleatorios
Sistema operativo
Todos
Software Category
Calculadora
Precio
EUR 0
Página de destino