Quantum Random Bit Generator

El Generador de bits aleatorios cuántico (más información disponible aquí) es un "chisme" para generar números aleatorios.

¿Que tiene esto de interesante? Pues bien. Hasta ahora casi todos los procesos utilizados para generar números mal llamados aleatorios en realidad producian número pseudoaleatorios. Es decir se utilizan valores que son, o se piensa que son, imposibles de predecir en un determinado estado de tiempo "t" para realizar un cálculo mediante una función matemática que nos de dicho número. De está manera tener un número imposible de predecir, a priori. Para que un generador de este tipo se considerará un buen generador de números pseudoaleatorios se tomaban diferentes muestras de números generados y se realizaban una serie de pruebas (ver que siguen una determinada distribución estadística).

Estás secuencias de números son siempre predecibles si se tiene acceso a los dispositivos que las generan en el instante adecuado y se pueden hacer mediciones de los parámetros utilizados, como congestión de red, uso de CPU, uso de memoria, espacio en disco, pulsaciones de teclado etc. Por este motivo se dice que son pseudoaleatorios.

La generación de números aleatorios es de suma importancia en ciertas áreas cómo por ejemplo en criptografía. Ya que se utiliza para la generación de los números primos que determinan la clave en los algoritmos asimétricos y en la generación de la clave en los algoritmos simétricos. Por este motivo es de vital importancia que los generadores de números utilizados en criptografía sean buenos y no presenten taras que puedan ser aprovechadas para atacarlos.

Esta parte es la más desconocida y en la que la mayoría de los aficionados suelen meter la pata al implementar un algoritmo criptográfico.

Este nuevo "chisme" se basa en la aleatoreidad del proceso físico, a nivel cuántico, de la emisión de fotones en semiconductores y la posterior detección mediante el efecto fotoeléctrico (creo que lo he traducido bien). Basicamente se detectan los fotones de forma aleatoria uno por uno y de forma independiente utilizando el timestamp de la detección de cada foton para la generación de unos y ceros.

Se suministran unas utilidades para GNU/Linux, Mathematica, Matlab y Windows para poder acceder al servicio y obtener estos números. Por el momento no se suministra un método de conexión cifrada, bajo SSL, con lo cual aunque la generación sea aleatoria durante la transmisión es posible acceder a dicho número con lo cual, y siempre desde mi punto de vista, no es útil salvo para investigación. Con lo de utilidad me refiero al servicio en sí y no al método.

Además existe otro problema y es que aunque los números generados sean aleatorios de verdad es necesario que se mantengan en secreto, para su utilización en criptografía. El utilizar un servicio externo para este tipo de tareas no es una buena idea ya que no tienes control sobre el proceso y si hay una intrusión o el típico acuerdo con la NSA, por ejemplo, los números que te sean enviados podrían estar en mano inadecuadas.

Este servicio está pensado, por lo que yo entiendo, para demostrar la utilidad del "chisme" más que cómo un servicio de suministro de números aleatorios. Es posible utilizarlos con aplicaciones comerciales pero sería imprudente si necesitamos seguridad depender de alguien ajeno a nosotros para esa tarea.

Si el "chisme" este se diseñó bien y ha sido construido de igual forma ya sería posible tener un generador de números aleatorios de verdad con lo cual los ataques contra las secuencias de números aleatorios ya no serían un problema.

Además es mucho más viable el tener un "chisme" de estos en casa cómo fuente de números aleatorios que un dispositivo nuclear como fuente de aleatoriedad. Al menos con este "chisme" no se nos caerá el pelo.

No me acuerdo quien fue el que lo dijo pero "la generación de números aleatorios es demasiado importante cómo para dejarla al azar".