es.phhsnews.com


es.phhsnews.com / Cómo las computadoras generan números aleatorios

Cómo las computadoras generan números aleatorios


Las computadoras generan un número aleatorio para todo, desde criptografía hasta videojuegos y juegos de azar. Hay dos categorías de números aleatorios - números aleatorios "verdaderos" y números pseudoaleatorios - y la diferencia es importante para la seguridad de los sistemas de encriptación.

Las computadoras pueden generar números verdaderamente aleatorios al observar algunos datos externos, como movimientos del mouse o ruido del ventilador , que no es predecible, y la creación de datos a partir de él. Esto se conoce como entropía. Otras veces, generan números "pseudoaleatorios" utilizando un algoritmo, por lo que los resultados parecen aleatorios, aunque no lo son.

Este tema se ha vuelto más controvertido recientemente, y muchas personas cuestionan si el generador de números aleatorios de hardware incorporado de Intel chip es confiable. Para entender por qué puede no ser confiable, deberá comprender cómo se generan los números al azar en primer lugar y para qué se utilizan.

¿Qué números aleatorios se usan para

Se usaron números aleatorios? por muchos miles de años. Ya sea que se trate de lanzar una moneda o tirar un dado, el objetivo es dejar el resultado final en una posibilidad aleatoria. Los generadores de números aleatorios en una computadora son similares: son un intento de lograr un resultado impredecible y aleatorio.

RELACIONADO: ¿Qué es la encriptación y cómo funciona?

Los generadores de números aleatorios son útiles para muchos diferentes propósitos. Además 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 importante para la criptografía.

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 esenciales para el cifrado seguro, ya sea que esté encriptando sus propios archivos o simplemente usando un sitio web HTTPS en Internet.

Números aleatorios verdaderos

Usted se estará preguntando cómo puede una computadora en realidad generar un número aleatorio. ¿De dónde viene esta "aleatoriedad"? Si es solo una pieza de código de computadora, ¿no es posible que los números que genera la computadora sean predecibles?

Generalmente agrupamos los números aleatorios que las computadoras generan en dos tipos, según cómo se generen: "Verdadero" al azar números y números pseudoaleatorios.

Para generar un número aleatorio "verdadero", 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. De acuerdo con la teoría cuántica, no hay manera de saber con certeza cuándo ocurrirá la desintegración radiactiva, por lo que esto es esencialmente "aleatoriedad pura" del universo. Un atacante no podría predecir cuándo ocurriría la desintegración radiactiva, por lo que no sabría el valor aleatorio.

Para un ejemplo más cotidiano, la computadora podría confiar en el ruido atmosférico o simplemente usar el valor exacto. vez que presiona las teclas de su teclado como fuente de datos impredecibles o de entropía. Por ejemplo, su computadora podría notar que presionó una tecla exactamente 0.23423523 segundos después de las 2 pm ... Agarre suficientes momentos específicos asociados con estas pulsaciones de teclas y tendrá una fuente de entropía que puede usar para generar un "verdadero" azar número. No eres una máquina predecible, por lo que un atacante no puede adivinar el momento preciso en que presionas estas teclas. El dispositivo / dev / random en Linux, que genera números aleatorios, "bloquea" y no devuelve un resultado hasta que reúne suficiente entropía para devolver un número verdaderamente aleatorio.

Números pseudoaleatorios

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

Esto no es necesariamente algo malo en cada situación. Por ejemplo, si está jugando un videojuego, realmente no importa si los eventos que ocurren en ese juego están cubiertos por números aleatorios "verdaderos" o números pseudoaleatorios. Por otro lado, si usa encriptación, no desea usar números pseudoaleatorios que un atacante podría adivinar.

Por ejemplo, supongamos que un atacante conoce el algoritmo y el valor inicial 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 que el algoritmo de cifrado debe haber elegido en ese caso, rompiendo el cifrado.

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

Para facilitar las cosas a los desarrolladores y ayuda a generar números aleatorios seguros, los chips Intel incluyen un generador de números aleatorios basado en hardware conocido como RdRand. Este chip usa una fuente de entropía en el procesador y proporciona 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é está pasando dentro de ella. Si RdRand contuviera una puerta trasera de la NSA, el gobierno podría romper las claves de cifrado que se generaron con solo los datos suministrados por ese generador de números aleatorios.

Esto 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, asegurando que cualquier puerta trasera en el generador de números aleatorios no importaría. Linux ya trabajó 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 una reciente AMA ("Pregúntame cualquier cosa") en Reddit, el CEO de Intel, Brian Krzanich, no respondió preguntas sobre estas preocupaciones. [Fuente]

Por supuesto, esto probablemente no es solo un problema con los chips Intel. Los desarrolladores de FreeBSD también llamaron a las fichas 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 números aleatorios "verdaderos", los generadores de números aleatorios recopilan "entropía" o datos aparentemente aleatorios del mundo físico que los rodea. Para números aleatorios que no realmente deben ser aleatorios, pueden usar un algoritmo y un valor inicial.

Crédito de la imagen: rekre89 en Flickr, Lisa Brewster en Flickr, Ryan Somma en Flickr, huangjiahui en Flickr


Cómo ver TV en vivo en su Apple TV

Cómo ver TV en vivo en su Apple TV

Si desea ver TV en vivo en su Apple TV -cable o antena- es relativamente fácil de configurar y poner en marcha. Lo mejor de los decodificadores de transmisión es que casi todo lo que necesita para ver contenido está disponible en un solo lugar ... excepto para televisión en vivo. Puede descargar la aplicación respectiva de una red para ver una transmisión en vivo de su canal, pero generalmente necesita una suscripción de cable para hacerlo, lo que niega todo el punto de corte de cable en primer lugar.

(how-top)

¿Es un buen momento para comprar un Oculus Rift o HTC Vive?

¿Es un buen momento para comprar un Oculus Rift o HTC Vive?

Oculus Rift y HTC Vive, los únicos audífonos VR disponibles al por menor que usan PC para juegos convencionales como plataforma, tienen estado en el mercado por más de un año. Eso es lo suficientemente largo como para que los fanáticos se pregunten cuándo saldrán nuevos modelos ... y el tiempo suficiente para que los vendedores quieran mover parte de las existencias existentes.

(how-top)