Gracias a los 2000 servidores de DigitalOcean y a los programas que usan Inteligencia Artificial, ingenieros de la compañía Enigma Pattern, descifraron en 13 minutos lo que le llevó años a Turing y a su equipo en Bletchley Park, en la Segunda Gran Guerra. Y además, el costo de esto fue de solamente 7 dólares.
El 23 de junio fue el aniversario del nacimiento de Turing, exactamente habría cumplido 106 años. Y debido a la importancia del trabajo del científico británico, mucho de lo que se realiza se hace en su honor. Por ejemplo, el hecho de que una réplica de la Bombe, una de las primeras máquinas que se usaron para ayudarse a descifrar los mensajes alemanes de la máquina Enigma, se trasladó al Museo Nacional Británico de la Computación., que se encuentra en Bletchley Park y que además, se encuentra al lado de la primera computadora reconstruida, la Colossus.
Para quien ignore el asunto de la criptografía y su relación con Turing, hay que decir que él y un equipo de colaboradores polacos, trabajaron intensamente para intentar descubrir lo que decían los mensajes cifrados de la Alemania de Hitler. Para este trabajo, que involucró matemáticos del más alto orden, se construyeron 10 Colossus y 210 Bombes. Pero ahora Enigma Pattern usó IA y la capacidad de cómputo actual para hallar la solución que anhelaba Turing en tiempo récord.
Enigma Pattern empezó usando IA y Aprendizaje de Máquina para ayudar a las compañías que recolectan muchos datos, lo que se llama Big Data. Considerando la «juventud» de la IA como ciencia, la compañía decidió usar sus recursos, por ejemplo, 20 por ciento del tiempo disponible, en proyectos que de alguna manera usaran la IA de formas menos convencionales.
Lukasz Kuncewicz, uno de los co-fundadores de Enigma Pattern, decidió volver a caminar por donde Turing caminó, y decidido a aplicar la IA moderna, se abocó a romper lo imposible de romper, el cifrado de la máquina Enigma alemana, usada por los nazis para codificar sus mensajes en uno de los momentos más terribles de la humanidad, la Segunda Guerra Mundial.
De acuerdo al co-fundador de Enigma Pattern, Rafal Janczyk, el proyecto empezó con la pregunta: «¿Qué hubiese sido capaz de hacer Alan Turing si hubiese tenido el poder de cómputo actual y el desarrollo que tenemos ahora de la IA?»
Se decidió entonces recrear la versión naval de la Máquina Enigma, la cual era la más sofisticada y daba algo así como 15 mil millones de contraseñas posibles. Enigma Pattern empezó por recrear la máquina, los rotores y los conectores, todo a través de Python. Inicialmente se intentó enseñar a la IA a decodificar el código nazi por sí misma, pero no funcionó este enfoque. Tampoco las funciones Lambda de Amazon funcionaron debido a la cantidad de computación requerida y a las limitaciones de los servidores de Amazon (AWS) en tiempos de ejecución. Pero todo cambió cando DigitalOcean estuvo de acuerdo con dar soporte al proyecto.
El código de todo este trabajo está en GitHub, incluyendo el simulador de la máquina Enigma, la cual se usó para entrenar a la máquina de aprendizaje profundo a clasificar el lenguaje alemán. Esto se hizo usando Keras sobre TensorFlow con Grimmy’s Fairy Tales como la fuente de un vocabulario simple. Los investigadores usaron una red neuronal de dos capas y entrenaron entonces la red usando 10 letras alemanas contra 10 letras al azar.
En septiembre del 2017 los investigadores comentaron: «Recordamos cuando corrimos todo el proyecto por primera vez… Después de un par de minutos las cosas se hicieron aparentes. Las buenas noticias es que el proyecto trabajaba bien. El simulador de la Enigma estaba probando las combinaciones y la IA estaba clasificando los mensajes descifrados. Las malas noticias es que nos tomaba unas 2 semanas hallar las contraseñas».
La solución entonces fue distribuir el trabajo en una multitud de servidores virtuales, y usando los recursos que les dio DigitalOcean, el tiempo se redujo a 19 minutos, con 13 millones de combinaciones probadas por segundo. Más tarde, en ese mismo 2017, el número de recursos de servidores virtuales se duplicó hasta llegar a 2000, lo que podía probar 41 millones de contraseñas por segundo. El resultado fue poder descifrar un mensaje a los 13 minutos. Lo mejor es que de acuerdo a DigitalOcean, el costo real de todo esto fue de tan solo 7 dólares de tiempo de máquina.
De acuerdo con Janczyk: «Con IA y Aprendizaje de Máquinas, hay un ilimitado número de posibilidades, lo cual hace que todo sea ahora tan emocionante…».