Cómo las computadoras generan números aleatorios

Nov 4, 2024
Privacidad y seguridad

Las computadoras generan números aleatorios para todo, desde criptografía hasta videojuegos y apuestas. 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 al observar algunos datos externos, como los movimientos del mouse o el ruido del ventilador, que no es predecible, y crear 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, y muchas personas se preguntan si el chip generador de números aleatorios de hardware integrado de Intel es confiable. Para comprender por qué podría no ser confiable, deberá comprender cómo se generan los números aleatorios en primer lugar y para qué se utilizan.

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 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 aleatorio impredecible.

RELACIONADO: ¿Qué es el cifrado y cómo funciona?

Los generadores de números aleatorios son ú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 importante para la criptografía.

Criptografía requiere números que los atacantes no pueden adivinar. No podemos 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 una encriptación segura, ya sea que esté encriptando sus propios archivos o simplemente usando un HTTPS sitio web en Internet.

Números aleatorios verdaderos

Quizás se esté preguntando cómo una computadora puede generar un número aleatorio. ¿De dónde viene esta "aleatoriedad"? 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 los números aleatorios que las computadoras generan en dos tipos, según cómo se generen: 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 "pura aleatoriedad" del universo. Un atacante no podría predecir cuándo ocurriría la desintegración radiactiva, por lo que no conocería 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 de su teclado como 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 pm. Aproveche lo suficiente de los tiempos específicos asociados con estas pulsaciones de teclas y tendrá una fuente de entropía que puede usar para generar un "verdadero" aleatorio número. No eres una máquina predecible, por lo que un atacante no puede adivinar el momento preciso en que presionas estas teclas. los / dev / dispositivo aleatorio 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

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. La computadora no recopila datos aleatorios del entorno.

Esto no es necesariamente algo malo en todas las situaciones. Por ejemplo, si está 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 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 ninguna aleatoriedad adicional. Si un atacante sabe lo suficiente, podría trabajar al revés y determinar el número pseudoaleatorio que 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

Para 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 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 él. Si RdRand contuviera una puerta trasera de la NSA, el gobierno podría romper las claves de cifrado que se generaron solo con los datos proporcionados 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 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 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 una reciente AMA ("Pregúnteme cualquier cosa") 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 mencionaron 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 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 De Verdad deben ser aleatorios, pueden usar un algoritmo y un valor inicial.

Credito de imagen: rekre89 en Flickr , Lisa Brewster en Flickr , Ryan Somma en Flickr , Huangjiahuion Flickr

.entrada-contenido .entry-footer

How Do Computers Generate Random Numbers?

Why Computers Can't Generate Random Numbers

Can Computers Generate True Random Numbers | CodeinVeins

How Do Computers Generate Random Numbers? #shorts

How Machines Generate Random Numbers With Time

Can Computers Generate Random Numbers?! | Tech Shorts

How Computers Generate Random Numbers | Quantum, ITER, COVID Mutations

How Random Numbers Are Generated

Random Numbers - Numberphile

Almost All Random Numbers Are Actually Fake

Random Numbers (How Software Works)

How To Generate Pseudorandom Numbers | Infinite Series

Lecture 16 - Generation Of Random Numbers

What Is Random?

Pseudo Random Numbers And Stream Ciphers (CSS322, L9, Y14)

Is Anything Truly Random?

How Random Is A Computer Generator Actually?


Privacidad y seguridad - Artículos más populares

Cómo usar los controles parentales de TikTok

Privacidad y seguridad Apr 23, 2025

CONTENIDO NO CUBIERTO TikTok es una plataforma de redes sociales en el que puede crear, mezclar, ampliar o compartir videos cortos. Debido a que es tan popular entre l..


El verdadero problema de seguridad de Android son los fabricantes

Privacidad y seguridad Feb 11, 2025

CONTENIDO NO CUBIERTO Cameron Summerson Si tiene un teléfono Google Pixel, su teléfono está a salvo de un agujero de seguridad que podría permit..


Cómo detectar una página de Facebook falsa

Privacidad y seguridad May 11, 2025

CONTENIDO NO CUBIERTO Hay muchas páginas de Facebook falsas por ahí. En el mejor de los casos, hacen perder su tiempo y tal vez intenten vender algunos anuncios. En el peor de l..


Cómo limpiar de forma segura un disco duro en tu Mac

Privacidad y seguridad Mar 21, 2025

¿Estás pensando en regalar un disco duro viejo a un amigo o llevárselo a reciclar? Ten cuidado. Cuando elimina un archivo en una unidad mecánica, no se ha ido realmente ..


Comprensión del control de cuentas de usuario en Windows 7

Privacidad y seguridad Mar 1, 2025

CONTENIDO NO CUBIERTO El Control de cuentas de usuario, también conocido como UAC, fue citado regularmente como uno de los problemas de Vista e incluso fue objeto de un anuncio de Apple. S..


Utilice el escritorio remoto para acceder a otras computadoras en una oficina pequeña o una red doméstica

Privacidad y seguridad Jul 23, 2025

Si tiene una red doméstica o de oficina pequeña con computadoras en varias ubicaciones, es posible que desee trabajar en todas ellas desde una sola máquina. Hoy echamos un vistazo a la fun..


Elimine el malware rápidamente con Anti-Malware de Malwarebytes

Privacidad y seguridad Sep 6, 2025

CONTENIDO NO CUBIERTO Te mostramos cómo una descarga descuidada puede infectarlo con software espía , como limpiarlo con Spybot o Ad-Aware , y..


Ayude a solucionar problemas de su PC con ESET SysInspector

Privacidad y seguridad Jul 30, 2025

CONTENIDO NO CUBIERTO Al solucionar problemas de una computadora, siempre es bueno tener una herramienta de diagnóstico de sistemas lista. Hoy echamos un vistazo a SysInspector de ESET, qu..


Categorías