La mayoría de las personas piensa que los esquemas de cifrado, de encripción, son parte de las actividades que tienen que hacer diversas empresas como los bancos, las ventas en tiendas electrónicas e incluso, en la telefonía celular. Muchos esquemas de cifrado usan la generación de números al azar, los cuales se usan muchas veces para asegurarse que la transacción comercial es válida, por ejemplo, y que puede verse con estos dispositivos que los bancos dan a sus clientes para entrar a sus sistemas y que evitan el uso de contraseñas estáticas.

Tutorial: Cómo hacer un fantasma

El problema con los números al azar, aleatorios, es que en la computadora requieren ser simulados y por eso se llaman pseudo-aleatorios. Dada una semilla en particular, un programa puede generar una secuencia de números que parezcan al azar, pero siempre esa semilla generará los mismos números en el mismo orden. Hay muchos algoritmos para esto y dese luego, hay hardware que sí genera números al azar, usando algunas leyes de la física que inciden en la electrónica moderna.

De todas maneras el problema de generar números aleatorios sigue y en general se estima que en muchos casos la solución usando números pseudo-azarosos es suficientemente buena y segura. La dificultad, sin embargo, es que pequeños errores de programación pueden hacer estos sistemas vulnerables y muchas veces es difícil localizarlos.

Por ejemplo, si uno se conecta a tiendas como Amazon, uno da su tarjeta de crédito y uno espera que la conexión sea segura y así no se vaya a robar alguien mis datos para usarlos de mala manera. Todos los sistemas con conexiones seguras usan criptografía con llaves pseudo-aleatorias y por ende, ya hay una debilidad susceptible de volver al software vulnerable pues como ya dijimos, la misma semilla siempre genera los mismos números y en el mismo orden. Esto podría llevar a ataques y a fugas de información.

Pero si alguien cree que los problemas solamente son para instituciones financieras, considérese, las máquinas que permiten votar en los Estados Unidos. Andrew Appel, profesor de ciencias de la computación en Princeton, ha trabajado extensivamente en esta dificultad y su última investigación se enfoca sobre la verificación formal, es decir, un conjunto de herramientas que «especifican qué es lo que deberían hacer los programas o bien, para construir software que se sujeten a estas especificaciones, así para poder probar y verificar que los programas se comportan como se ha especificado previamente».

Por ejemplo, en una verificación matemática para probar qué tan correcta es una función crítica, el grupo de trabajo de Appel desarrolló un método que verifica qué tan bueno es el generador de números al azar, que es lo que, como ya dijimos, es la base de los sistemas de cifrado moderno. En un artículo que creció a partir de la tesis de Katherine Ye, el equipo -que incluye a investigadores de Oracle y la Universidad John Hopkins, examinó los generadores al azar que se usan con frecuencia y produjo como resultado una prueba verificada por la computadora para así saber si el sistema es lo suficientemente seguro. Los métodos convencionales como las pruebas exhaustivas, no pueden decir si un generador de números al azar es seguro.

Eugene Spafford, líder de seguridad en la información de la Universidad de Purdue, dijo que la investigación muestra un avance significativo. «Como muchas otras investigaciones, puede que no se aplique directamente a tu vida o a la mía, pero es de los bloques que permiten construir un conjunto de resultados que podrían llevarnos a mejoras significativas en el futuro.