Matemáticas

¿Es posible obtener un número realmente aleatorio?

Los números aleatorios son necesarios para que sus datos permanezcan ocultos en internet. Hoy en día los científicos empiezan a fijarse en la naturaleza para obtenerlos.

Dados para sacar valores al azar
Dados para sacar valores al azardylan nolteDylan Nolte

Que no conozcan sus datos cuando hace una compra por internet depende de la existencia de números aleatorios. Cada vez que se transmite entre dos ordenadores alguna información especialmente confidencial, como puede ser un número de tarjeta de crédito, esta información es encriptada usando como base un número aleatorio que comparte el ordenador de salida y el de destino. Si ese número no es suficientemente aleatorio y puede ser calculado, otro ordenador podría adivinarlo y nuestra información quedaría al descubierto. El problema es que generar un número realmente aleatorio e impredecible es una tarea ardua que trae de cabeza a científicos e ingenieros.

Si queremos obtener una lista de números aleatorios lo peor que podemos hacer es pedírselo a un ser humano. Nosotros tendemos de manera inconsciente a elegir unos números frente a otros, y la lista de números que generaríamos tendría claros favoritos. Es fácil de demostrarlo. Solo piense en un número entre el uno y el diez. Es muy probable que hay elegido el siete o el tres. Si es así, código desbloqueado.

Descartando al ser humano, nuestra mejor alternativa es pedirle los números a un ordenador. La mayoría de lenguajes de programación incluyen un generador de números pseudoaleatorios. Se llaman así porque son el resultado de una serie compleja de operaciones matemáticas a partir de unas condiciones iniciales. No son aleatorios porque si conocemos tanto las operaciones como las condiciones iniciales, es posible reproducir la misma lista de números en cualquier ordenador.

Las condiciones iniciales suelen venir determinadas por una semilla, un pequeño número que marca y condiciona todos los números pseudoaleatorios que vengan después. Si nadie conoce esa semilla inicial, pueden funcionar igual de bien que los números aleatorios. La semilla habitual suele ser simplemente la hora del ordenador en el momento de ejecutar el programa, asegurando que tengamos un valor diferente cada vez que lo ejecutamos, pero también aumentando las posibilidades de que alguien sea capaz de predecirlo. Si alguien tiene acceso a la lista completa de números pseudoaleatorios, es posible que llegue a deducir esta semilla inicial, logrando un acceso ilimitado a todos los números posteriores de la lista y generando un hueco de seguridad importante.

Si queremos evitar este problema, necesitamos auténticos números aleatorios. Una lista de números que ningún humano ni programa sea capaz de predecir ni reproducir que puedan ser usados como semilla. Y para lograrlo, los ingenieros empiezan a fijarse en lo más impredecible del mundo: la naturaleza.

El caos de la naturaleza

Para ser exactos, la mayoría de fenómenos de la naturaleza no son realmente impredecibles, sino muy difíciles de predecir. Un buen ejemplo es el clima. Tenemos ecuaciones capaces de predecir el tiempo atmosférico que tendrá una región a partir de las diferencias de temperatura, humedad, viento y presión del aire. Estas ecuaciones nos permite aproximar el movimiento y tamaño de las nubes capaces de provocar una precipitación. Pero el problema es que estas ecuaciones solo funcionan para los instantes inmediatamente posteriores a los datos tomados. A medida que pasa el tiempo, las ligeras variaciones en la temperatura y presión del aire van generando un margen de error que crece hasta el punto de que el resultado final de las ecuaciones y el clima que tendremos no se parezcan en nada.

Por ese motivo es prácticamente imposible saber con seguridad si dentro de tres semanas va a llover. No en vano, Edward Lorenz, el padre de la teoría del caos, acuñó el término “efecto mariposa” indicando que las pequeñas variaciones en las condiciones iniciales de estas ecuaciones acababan provocando grandes diferencias en el resultado final. O como reza la versión metafórica que no deberíamos interpretar de manera literal: el aleteo de una mariposa puede acabar provocando un huracán al otro lado del mundo.

Estos procesos caóticos de la naturaleza son perfectos para generar números auténticamente aleatorios. Si no somos capaces de predecir el clima que tendremos dentro de tres semanas, tampoco seremos capaces de predecir los números aleatorios que generaremos si usamos valores climáticos como semilla y les aplicamos las mismas simulaciones que los climatólogos. Solo necesitamos conectar el ordenador a una estación meteorológica y empezar a recoger valores y generar números aleatorios con ellos.

Pero puede que no estemos interesados en conectar nuestro ordenador a una estación meteorológica en el tejado del edificio, así que podemos buscar otros fenómenos caóticos más fáciles de estudiar. Por ejemplo, en la compañía Cloudfare se encarga de codificar el diez por ciento del tráfico de internet usando cien lámparas de lava como generador de números aleatorios. Gracias a ellas, aprovechan las complejas ecuaciones de dinámica de fluidos que impiden que podamos predecir con total seguridad las fluctuaciones que ocurran en su interior. Cada vez que necesitan un número aleatorio para una nueva venta, se realiza una foto a las cien lámparas, generando como semilla un número imposible de predecir incluso por los trabajadores del lugar.

Foto de las lámparas de lava que usa Cloudfare para extraer números aleatorios
Foto de las lámparas de lava que usa Cloudfare para extraer números aleatoriosCloudfareCloudfare

El último avance en la generación de números aleatorios ha puesto la mira en el fenómeno de la cristalización química. Cuando un compuesto químico cristaliza, el tamaño, forma y aspecto del cristal dependerá de las condiciones sutiles de temperatura y presión del entorno. Es por este motivo que es muy difícil encontrar dos copos de nieve iguales. Las leves diferencias en la temperatura del aire y en la forma de la partícula de polvo que rodea al copo de nieve bastan para cambiar de manera dramática su forma.

El ordenador que ha creado un equipo de ingenieros de la Universidad de Glasgow tiene la peculiaridad de incluir un incubador de cristales de varios compuestos quimicos en su interior. Cada vez que se necesita un numero aleatorio se realiza una foto a los diferentes cultivos, obteniendo información sobre la forma y posición de todos los cristales y generando un número asociado. Como la estructura cambia de manera compleja a lo largo del crecimiento del cristal, cada vez que se hace una foto obtenemos números aleatorios suficientemente impredecibles como para ser usados.

Hagan juego

Todos estos ejemplos permiten obtener muchos números aleatorios en poco tiempo, algo necesario para la criptografía y el comercio electrónico, pero podemos querer obtener solo un número. En este caso, el mejor proceso caótico que podemos aprovechar es el modelo de interacción múltiple. Cuando varios objetos están juntos e interaccionan entre si pueden darse procesos caóticos e impredecibles. Por ejemplo, no somos capaces de predecir cuantos granos de arena podemos acumular en una montaña antes de que se produzca algún derrumbe, ya que cada nuevo grano que cae provoca una serie de choques e interacciones entre el resto de granos difícil de medir.

Este tipo de modelos ya se aplican en los sistemas de lotería. Cuando se introducen todas las bolas numeradas dentro del bombo y empieza a girar, se genera una enorme variedad de interacciones y choques entre las bolas que vuelve difícil predecir la trayectoria exacta de cada una de ellas, lo que impide saber qué bola es la que saldrá del bombo.

Sorteo de la Lotería de Navidad
Sorteo de la Lotería de NavidadCristina BejaranoLa Razón

Esta misma idea, aunque simplificada, la podemos encontrar en la ruleta de casino. En este caso la ruleta gira en una dirección a la vez que la bola rebota sobre ella hasta caer en un hueco. La gracia de este proceso es que, al ser una única bola la que decide el número ganador, es relativamente posible llegar a predecir el resultado de la ruleta si supiéramos la potencia y ángulo que el empleado del casino aplicará a la bola.

No es fácil saberlo, pero como dijimos al principio, el ser humano es poco aleatorio y tenemos ciertas manías y tendencias que nos hacen repetir la acción de manera similar. Si estudiamos a los empleados y comprobamos las posibles imperfecciones que modifiquen el rebote en la ruleta, podemos saber qué números son los más probables en salir. Por ese motivo, se prohíbe la entrada de cualquier aparato de medición en los casinos, desde cámaras a sensores ocultos. Son normativas que hacen que los supuestos números aleatorios del casino traten de seguir siendo impredecibles.

QUE NO TE LA CUELEN:

  • Precisamente por ser tan malos en lo aleatorio, las principales brechas de seguridad informática no suelen venir por predecir los números aleatorios de encriptación, sino por error humano. Contraseñas fáciles de adivinar o la apertura de correos infectados son acciones que han llevado a varias empresas a sufrir pérdidas de información valiosa. Moraleja: si ve un correo sospechoso, no lo abra.

REFERENCIAS: