Cómo las computadoras generan números aleatorios

Las computadoras generan números aleatorios 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 cifrado.

Las computadoras pueden generar números verdaderamente aleatorios observando algunos datos externos, como los movimientos del mouse o el ruido del ventilador, que no es predecible, y creando datos a partir de ellos. Esto se conoce como entropía. Otras veces, generan números “pseudoaleatorios” mediante el uso de un algoritmo para que los resultados parezcan aleatorios, aunque no lo sean.

Este tema se ha vuelto más controvertido recientemente, con muchas personas cuestionando si el chip generador de números aleatorios de hardware incorporado de Intel es confiable. Para entender por qué podría no ser confiable, tendrá que entender cómo se generan los números aleatorios en primer lugar y para qué se usan.

Para qué se utilizan los números aleatorios

Los números aleatorios se han utilizado durante muchos miles de años. Ya sea lanzando una moneda o tirando un dado, el objetivo es dejar el resultado final al azar. Los generadores de números aleatorios en una computadora son similares: son un intento de lograr un resultado impredecible y aleatorio.

Los generadores de números aleatorios son útiles para muchos propósitos diferentes. Aparte de aplicaciones obvias como generar números aleatorios con fines de juego 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é cifrando sus propios archivos o simplemente usando un HTTPS (en in in sitio web en Internet.

Números aleatorios verdaderos

Es posible que se pregunte cómo una computadora puede 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 puedan ser predecibles?

Generalmente agrupamos los números aleatorios que generan las computadoras en dos tipos, dependiendo de cómo se generan: números aleatorios “verdaderos” 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. Según la teoría cuántica, no hay forma 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 la hora exacta en que presiona las teclas de su teclado como una fuente de datos impredecibles o entropía. Por ejemplo, su computadora podría notar que presionó una tecla exactamente a 0.23423523 segundos después de 2 p.m.. Tome suficientes de los tiempos específicos asociados con estas pulsaciones de teclas y tendrá una fuente de entropía que puede usar para generar un número aleatorio “verdadero”. 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 los números aleatorios “verdaderos”. 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. El equipo no recopila ningún dato aleatorio del entorno.

Te puede ser útil:  Cómo instalar Nova Launcher para una pantalla de inicio de Android más potente y personalizable

Esto no es necesariamente algo malo en todas las situaciones. Por ejemplo, si estás jugando un videojuego, realmente no importa si los eventos que ocurren en ese juego son causados por números aleatorios “verdaderos” o números pseudoaleatorios. Por otro lado, si está utilizando el cifrado, no desea usar números pseudoaleatorios que un atacante pueda adivinar.

Por ejemplo, supongamos que un atacante conoce el algoritmo y el valor de 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 utiliza para generar una clave de cifrado sin agregar ninguna 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.

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

Para facilitar las cosas a los desarrolladores y Ayudan 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 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 datos suministrados por ese generador de números aleatorios.

Esta es una preocupación seria. En diciembre de 2013, los desarrolladores de FreeBSD eliminaron el soporte para usar RdRand directamente como una fuente de aleatoriedad, diciendo que no podían confiar en él. [Source] 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 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. [Source] En un reciente AMA (“Ask Me Anything”) en Reddit, el CEO de Intel, Brian Krzanich, no respondió preguntas sobre estas preocupaciones. [Source]

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 sean 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 lo hacen realmente necesitan ser aleatorios, solo pueden usar un algoritmo y un valor semilla.

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

¿Qué tan útil te resultó el artículo?

¡Haz click en una estrella para valorar!

Valoración media / 5. Votos totales:

¡No hay votos hasta ahora! Sé el primero en valorar este artículo.

Utilizamos cookies para personalizar el contenido y los anuncios, para ofrecer funciones de redes sociales y para analizar nuestro tráfico. También compartimos información sobre su uso de nuestro sitio con nuestros socios de redes sociales, publicidad y análisis. View more
Cookies settings
Aceptar
Política de privacidad y cookies
Privacy & Cookies policy
Cookie name Active
El presente Política de Privacidad establece los términos en que Alternativa.click usa y protege la información que es proporcionada por sus usuarios al momento de utilizar su sitio web. Esta compañía está comprometida con la seguridad de los datos de sus usuarios. Cuando le pedimos llenar los campos de información personal con la cual usted pueda ser identificado, lo hacemos asegurando que sólo se empleará de acuerdo con los términos de este documento. Sin embargo esta Política de Privacidad puede cambiar con el tiempo o ser actualizada por lo que le recomendamos y enfatizamos revisar continuamente esta página para asegurarse que está de acuerdo con dichos cambios.

Información que es recogida

Nuestro sitio web podrá recoger información personal por ejemplo: Nombre,  información de contacto como  su dirección de correo electrónica e información demográfica. Así mismo cuando sea necesario podrá ser requerida información específica para procesar algún pedido o realizar una entrega o facturación.

Uso de la información recogida

Nuestro sitio web emplea la información con el fin de proporcionar el mejor servicio posible, particularmente para mantener un registro de usuarios, de pedidos en caso que aplique, y mejorar nuestros productos y servicios.  Es posible que sean enviados correos electrónicos periódicamente a través de nuestro sitio con ofertas especiales, nuevos productos y otra información publicitaria que consideremos relevante para usted o que pueda brindarle algún beneficio, estos correos electrónicos serán enviados a la dirección que usted proporcione y podrán ser cancelados en cualquier momento. Alternativa.click está altamente comprometido para cumplir con el compromiso de mantener su información segura. Usamos los sistemas más avanzados y los actualizamos constantemente para asegurarnos que no exista ningún acceso no autorizado.

Cookies

Una cookie se refiere a un fichero que es enviado con la finalidad de solicitar permiso para almacenarse en su ordenador, al aceptar dicho fichero se crea y la cookie sirve entonces para tener información respecto al tráfico web, y también facilita las futuras visitas a una web recurrente. Otra función que tienen las cookies es que con ellas las web pueden reconocerte individualmente y por tanto brindarte el mejor servicio personalizado de su web. Nuestro sitio web emplea las cookies para poder identificar las páginas que son visitadas y su frecuencia. Esta información es empleada únicamente para análisis estadístico y después la información se elimina de forma permanente. Usted puede eliminar las cookies en cualquier momento desde su ordenador. Sin embargo las cookies ayudan a proporcionar un mejor servicio de los sitios web, estás no dan acceso a información de su ordenador ni de usted, a menos de que usted así lo quiera y la proporcione directamente. Usted puede aceptar o negar el uso de cookies, sin embargo la mayoría de navegadores aceptan cookies automáticamente pues sirve para tener un mejor servicio web. También usted puede cambiar la configuración de su ordenador para declinar las cookies. Si se declinan es posible que no pueda utilizar algunos de nuestros servicios.

Enlaces a Terceros

Este sitio web pudiera contener en laces a otros sitios que pudieran ser de su interés. Una vez que usted de clic en estos enlaces y abandone nuestra página, ya no tenemos control sobre al sitio al que es redirigido y por lo tanto no somos responsables de los términos o privacidad ni de la protección de sus datos en esos otros sitios terceros. Dichos sitios están sujetos a sus propias políticas de privacidad por lo cual es recomendable que los consulte para confirmar que usted está de acuerdo con estas. Control de su información personal En cualquier momento usted puede restringir la recopilación o el uso de la información personal que es proporcionada a nuestro sitio web.  Cada vez que se le solicite rellenar un formulario, como el de alta de usuario, puede marcar o desmarcar la opción de recibir información por correo electrónico.  En caso de que haya marcado la opción de recibir nuestro boletín o publicidad usted puede cancelarla en cualquier momento. Esta compañía no venderá, cederá ni distribuirá la información personal que es recopilada sin su consentimiento, salvo que sea requerido por un juez con un orden judicial. Alternativa.click Se reserva el derecho de cambiar los términos de la presente Política de Privacidad en cualquier momento.
Save settings
Cookies settings