lunes, enero 05, 2026

Cómo funciona LavaRand para generar Cryptographically-Secure Pseudorandom Numbers con Lámparas de Lava en las oficinas de Cloudflare

Esta es una historia antigua, que comienza en el siglo pasado, pero como muchos me siguen preguntando por ello, voy a dedicarle un artículo para los que no conocen la historia de los Cloudflare LavaRamp, o los muros de Lámparas de Lava que hay en algunas oficinas de Cloudflare por el mundo.
Para contar cómo funcionan, debemos irnos al año 1996, cuando la empresa Silicon Graphics solicitó la patente US5732138A con el título: "Method for seeding a pseudo-random number generator with a cryptographic hash of a digitization of a chaotic system" donde se describe en detalle el funcionamiento del sistema LavaRand, para crear un Cryptographically-Secure Pseudorandom Number Generator (CSPNG).


La patente, que ya no está activa, describe un mecanismo para generar estos números critográficamente-seguros pseudo-aleatorios, a partir de un estado concreto en el tiempo de un sistema caótico. Ese sistema caótico, debe tener un fuente de datos con mucha entropía para que los números que salgan de la generación no sean predecibles bajo ningún factor de sesgo.


La entropía mide el grado de incertidumbre en el valor de un determinado bit a la hora de sacar un valor aleatorio. Es decir, si tenemos una lista de bits, la probabilidad de que cada bit sea 1 o sea 0 debería ser del 50% sin que dependa de ningún dato o factor externo que pudiera sesgarlo. En la patente, se busca un sistema caótico que no sea predecible - o díficilmente predecible - por lo que su entropía debe ser muy alta, y es ahí donde entran las Lámparas de Lava.
La idea es que si tenemos una serie de Lámparas de Lava, y hacemos una instantánea temporal en forma de fotografía, tendremos siempre formas diferentes con alta incertidumbre de predicción. Lo que sirve como fuente de generación de valores con alta entropía. La forma de llevar esta fuente de entropía al sistema es tan sencillo como tener un "Wall of Lava Lamps" y tomar una fotografía de ellas.
Esto lo implementa Cloudflare en varias oficinas, donde se pueden ver los "Lava Lamp Wall" de diferentes colores, y cada una de ellas generando diferentes composiciones en las fotografías. Es decir, cada fotografía tomada en un instante de tiempo tiene una secuencia de colores única, que traducida a una secuencia de bits, es de alta entropía.

Como podéis ver en la imagen anterior, el "Lava Lamp Wall" no es el único factor de entropía con el que se va mezclando, ya que las imágenes generan una fuente de datos de entrada con una función de entropía basada en los píxeles de colores, pero esta es mezclada también con otras fuentes de entropía para generar claves criptográficas lo más seguras posibles.
En este caso, después de la entropía que se genera con las imágenes de las lámparas, se usan datos con más entropía provenientes del sensor de movimiento de la cámara, de los generados por el servidor que controla la cámara - que tiene sus propios números aleatorios generados con su factor de entropía - y son mezclados con la fuente de números aleatorios del servidor donde corre el servicio de LavaRand, lo que permite que los consumidores de estos números aleatorios tengan la garantía de que llevan un alto nivel de entropía.
Por supuesto, las imágenes con Lamparas de Lava se pueden sustituir por otro tipo de imágenes, y en la oficina de Cloudflare en Lisboa, estas han sido cambiadas por Water Waves, para honrar al sistema con la conexión que Lisboa tiene con el agua, vía río y mar.
El funcionamiento es similar, y puedes verlo en este vídeo que está publicado en Youtube. Yo subí un pequeño vídeo de unos segundos a mi cuenta de Instagram que puedes ver aquí mismo. 

Figura 11: Generando entropía para tener números aleatorios robustos 

Por supuesto, desde que tenemos los Quantum-Based Random Number Generators donde se utilizan fotones y mediciones de valores cuánticos, tenemos fuentes de altísima entropía para generar números aleatorios, pero la historia de LavaRand es un ejemplo de cómo tener tus propias fuentes de entropía utilizadas para enriquecer, aún más, cualquier generador de números aleatorios que utilices, incluso los QRND.

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


Entrada destacada

Cosas que hice en 2025

Hacer balance de este año ha sido un reto por la extensión de la cantidad de cosas que me han pasado y que he hecho. Me ha costado más de se...

Entradas populares