Cómo usamos la computadora como generador de números aleatorios

Generador de números aleatorios Las computadoras generan un número aleatorio para todo, desde criptografía hasta videojuegos y apuestas. Hay dos categorías de números aleatorios: cierto números aleatorios y números pseudoaleatorios. Y la diferencia es importante para la seguridad de los sistemas de cifrado. En este artículo, hablaremos sobre cómo usamos la computadora como generador de números aleatorios. ¡Vamos a empezar!





Este tema se ha vuelto más controvertido recientemente, junto con muchas personas que se preguntan si el chip generador de números aleatorios de hardware integrado de Intel es confiable o no. Para comprender por qué podría no ser confiable, tendrá que comprenderlo. Así es como se generan los números aleatorios en primer lugar y para qué se utilizan.



Para qué se utilizan los números aleatorios | generador de números aleatorios

Los números aleatorios se han utilizado durante muchos miles de años. Ya sea lanzando una moneda o un dado, el objetivo es dejar el resultado final al azar. El generador de números aleatorios en una computadora es similar. Son un intento de lograr un resultado aleatorio e impredecible.

Los generadores de números aleatorios son muy útiles para muchos propósitos diferentes. Aparte de aplicaciones obvias como generar números aleatorios con el propósito de apostar o crear resultados impredecibles en un juego de computadora, la aleatoriedad es realmente importante para la criptografía.



La criptografía requiere números que los atacantes no pueden adivinar. No podemos simplemente usar los mismos números una y otra vez. Queremos generar estos números de una manera muy impredecible para que los atacantes no puedan adivinarlos. Estos números aleatorios son importantes para un cifrado seguro. ya sea que esté encriptando sus propios archivos o simplemente usando un sitio HTTPS en Internet.



Números aleatorios verdaderos | generador de números aleatorios

Quizás se esté preguntando cómo una computadora puede generar un número aleatorio. Donde hace esto aleatoriedad ¿viene de? Si es solo un fragmento de código de computadora, ¿no es posible que los números que genera la computadora sean predecibles?

Generalmente agrupamos las computadoras del número aleatorio generado en dos tipos. Eso depende de cómo se generen: Cierto números aleatorios y números pseudoaleatorios.



advertencia de batería de servicio macbook pro

Para generar un cierto número aleatorio, la computadora mide algún tipo de fenómeno físico que tiene lugar fuera de la computadora. Por ejemplo, la computadora podría medir la desintegración radiactiva de un átomo. Según la teoría cuántica, no hay forma de saber con certeza cuándo ocurrirá la desintegración radiactiva. Entonces esto es esencialmente pura aleatoriedad del universo. Un atacante no podría predecir cuándo ocurriría la desintegración radiactiva. Entonces no sabrían el valor aleatorio.



Para un ejemplo más cotidiano, la computadora podría depender del ruido atmosférico o simplemente usar la hora exacta en que presiona las teclas en su teclado como una fuente de datos impredecibles o entropía. Por ejemplo, su computadora puede notar que presionó una tecla exactamente 0.23423523 segundos después de las 2 p.m. Aproveche lo suficiente de los tiempos específicos asociados con estas pulsaciones de teclas y tendrá una fuente de entropía que puede utilizar para generar una cierto número aleatorio. No eres una máquina predecible. Por lo tanto, un atacante no puede adivinar el momento preciso en que presionas estas teclas. El dispositivo / dev / random en Linux, que genera números aleatorios, bloques y no devuelve un resultado hasta que reúne suficiente entropía para devolver un número verdaderamente aleatorio.

Números pseudoaleatorios | generador de números aleatorios

Los números pseudoaleatorios son una alternativa a cierto números al azar. Una computadora podría usar un valor semilla y un algoritmo para generar números que parecen ser aleatorios, pero que de hecho son predecibles. La computadora no recopila datos aleatorios del entorno.

Esto no es necesariamente algo malo en todas las situaciones. Por ejemplo, si estás jugando a un videojuego. Realmente no importa si los eventos que ocurren en ese juego son causados ​​por cierto números aleatorios o números pseudoaleatorios. Por otro lado. Si está utilizando cifrado, no desea utilizar números pseudoaleatorios que un atacante podría adivinar.

Por ejemplo, digamos que un atacante conoce el algoritmo y el valor semilla que utiliza un generador de números pseudoaleatorios. Y digamos que un algoritmo de cifrado obtiene un número pseudoaleatorio de este algoritmo. Y lo usa para generar una clave de cifrado sin agregar aleatoriedad adicional. Si un atacante sabe lo suficiente, podría trabajar hacia atrás y determinar el número pseudoaleatorio. El algoritmo de cifrado debe haber elegido en ese caso, rompiendo el cifrado.

El generador de números aleatorios de hardware de la NSA y de Intel

Facilitar las cosas a los desarrolladores y ayudar a generar números aleatorios seguros. Los chips Intel incluyen un generador de números aleatorios basado en hardware conocido como RdRand. Este chip utiliza una fuente de entropía en el procesador y le da números aleatorios al software cuando el software los solicita.

El problema aquí es que el generador de números aleatorios es esencialmente una caja negra y no sabemos qué sucede dentro de ella. Si RdRand contuviera una puerta trasera de la NSA, el gobierno podría romper las claves de cifrado. Eso se generó solo con datos proporcionados por ese generador de números aleatorios.

Ésta es una preocupación seria. En diciembre de 2013, los desarrolladores de FreeBSD eliminaron el soporte para usar RdRand directamente como fuente de aleatoriedad, diciendo que no podían confiar en él. [Fuente] La salida del dispositivo RdRand se alimentaría a otro algoritmo que agrega entropía adicional. Eso asegura que las puertas traseras en el generador de números aleatorios no importen. Linux ya funcionaba de esta manera, aleatorizando aún más los datos aleatorios provenientes de RdRand para que no fueran predecibles incluso si hubiera una puerta trasera. [Fuente] En un AMA reciente ( Pregúntame lo que sea ) en Reddit, el CEO de Intel, Brian Krzanich, no respondió preguntas sobre estas preocupaciones. [Fuente]

Por supuesto, esto probablemente no sea solo un problema con los chips Intel. Los desarrolladores de FreeBSD también llamaron a los chips de Via por su nombre. Esta controversia muestra por qué es tan importante generar números aleatorios que sean verdaderamente aleatorios y no predecibles.

Para generar cierto números aleatorios, los generadores de números aleatorios se reúnen entropía o datos aparentemente aleatorios del mundo físico que los rodea. Para números aleatorios que no De Verdad deben ser aleatorios, pueden usar un algoritmo y un valor inicial.

Conclusión

¡Muy bien, eso fue todo! Espero que te guste este artículo sobre el generador de números aleatorios y te resulte útil. Danos tu opinión al respecto. También si desea realizar más consultas relacionadas con el mismo. Entonces háganoslo saber en la sección de comentarios a continuación. Nos pondremos en contacto con usted en breve.

¡Qué tengas un lindo día!

Ver también: NSFW: significado y cómo funciona realmente

retroarch android eliminar núcleo