Inteligencia Artificial y Red Neural Recursiva (RNN)


Hace muy pocos días se ha dado un paso más en el mundo de la inteligencia artificial (AI) con la creación de una red neural recursiva.


Dicho así no parece que sea gran cosa, pero si lo referenciamos al hecho que ha sido capaz de resolver con una eficacia del 96% una de las máquinas más complejas jamás desarrollada para cifrar mensajes y que necesitó de las mejores mentes del pasado S. XX para ser descifrada, es probable que adivinemos su real importancia y el papel que puede tener en el denominado aprendizaje profundo (deep learning).


Me estoy refiriendo a la máquina “enigma” que desarrolló el Servicio de Inteligencia de la Alemania nazi para proteger sus mensajes cifrados de las fuerzas aliadas en la Segunda Guerra Mundial. (https://youtu.be/G2_Q9FoD-oQ)


Lo cierto es que el trabajo que, entonces, llevaron a cabo un puñado de hombres y mujeres de ciencia (matemáticos, criptólogos, estadísticos y especialistas en lingüística) fue tan intenso y complejo como desconocido e ingrato para sus partícipes. De hecho, la única excepción fue la de Turing, que con sólo con el tiempo y la ayuda de Hollywood su nombre nos es más familiar, a pesar de ser considerado el padre de la informática. (The imitation game. Morten Tyldum, 2014, Benedict Cumberbatch, Keira Knightley), (https://youtu.be/zXKHGaRxQaE)


Sin embargo, para la enorme mayoría de nosotros nombres como Marian Rejewski, Harold Keen o el matemático Gordon Welchman siguen en el olvido.


¿Cómo ser capaces de descifrar un código cuando se desconoce absolutamente todo?


Tuvieron que construir una máquina enorme de rotores móviles, según apreciamos en la fotografía del inicio, e invertir una enorme cantidad de horas para comprender el funcionamiento.


Pero, ¿por qué les cuento todo esto?


Porque según demuestra Sam Greydanus, un físico investigador del aprendizaje profundo y neurociencia, no es necesario conocer cómo funciona la máquina enigma para poder descifrar sus códigos de salida.


En su lugar crea una red neuronal recursiva (RNN) que descifra los mensajes cifrados por la famosa máquina Enigma.


En “Decoding the Enigma with Recurrent Neural Networks” explica que solamente es necesario aplicar la regla criptográfica y con ella una simulación puede obtener los mismos datos de salida para los mismos datos de entrada.


Lo llamativo, es que en una primera fase ni siquiera es necesario que esto funcione siempre (el 100%) porque para “afinar” el modelo solamente tiene que empezar a funcionar.


Primero, se generan los textos de prueba (con un simulador de Enigma) con los que se alimentan la red neuronal recursiva (RNN) con las equivalencias del tipo texto cifrado de salida.


La RNN empieza sus iteraciones (con una GPU k40) y mostró resultados, con una eficacia del 96%, llegando hasta un millón de pasos con 3.000 unidades de LSTM («gran memoria de corto plazo»).


El modelo es capaz de aprender por sí solo a partir de datos de entrada y de salida sin necesitar saber cómo funcionaba la máquina original internamente, en clara contradicción al trabajo llevado a cabo por los criptógrafos de entonces porque no precisa que los textos sean reales o tengan sentido. La razón es que no se buscan patrones ni frecuencias en los textos.


Todo lo que necesitamos es una forma de aproximar la función fEnigma para que pueda “mapear” de texto claro a texto cifrado:

Ciphertext = fEnigma (clave, texto sin formato)

Las RNN nos ayudan a buscar y para ello lo parametrizado, por pesos θ, para empezar a entrenar con pendiente de gradiente. En otras palabras, intentaremos:

Ciphertext = fEnigma (clave, texto claro) ≈fRNN (θ, clave, texto claro)


Pero para aplicar el aprendizaje profundo (para el criptoanálisis) necesitamos “enmarcar” el problema. Elegimos un modelo de mapeo 1: 1 (entre el texto plano y el texto cifrado) y pensando en un texto sin formato (que en este caso era el inglés) y el texto cifrado como un lenguaje extraño, el objetivo de “entrenamiento” de RNN (utilizando una larga memoria a corto plazo o LSTM) se asemejaría mucho a un proceso de traducción automática.


Estos modelos son capaces de capturar complejos patrones secuenciales donde eventos que sucedieron muchos pasos de tiempo atrás pueden determinar el siguiente símbolo.


Como estamos hablando de aprendizaje, es importante dar primero un paso más corto pero que nos ayude después. Por eso, debemos centrarnos primero en algo más sencillo, reajustar el modelo y, sólo después, abordar un problema realmente difícil como era el Enigma.


Como no es el objetivo de este blog el detalle del mapeo y aprendizaje recursivo, para aquellos que quieran conocer el detalle, el código está en Github: crypto-rnn.

  

Como ejercicio práctico, el descifrado de la máquina Enigma es todo un logro porque nos enseña cómo usar una red neural recursiva y cómo utilizar el aprendizaje profundo para descifrar varias cifras, polialfabéticas, mediante una función que asigna el texto cifrado al texto plano.


El mundo de la inteligencia artificial (AI) con el Deep Reinforcement Learning ha hecho posible una impresionante serie de avances en los últimos años que nos acerca a un futuro impensable no hace tanto.


Tareas de enorme complejidad como la comprensión automatizada de textos o la conducción autónoma ya son “casi” una realidad y sitúan, por ejemplo, a la industria de la automoción como uno de los sectores industriales más disruptivos.


Y, para colmo, se romperá el paradigma de hombre y máquina porque la conducción será autónoma…


Y quién sabe, igual dentro de pocos años nos anuncian que se descifra “la máquina Enigma de nuestros días”, el algoritmo RSA. El que permitiría el acceso a contenidos cifrados que hacen posible que nos comunicamos por Internet, de forma segura, y para las transacciones y el comercio electrónico.


Y digo que sería un auténtico reto porque el RSA se sirve de complejas operaciones matemáticas diseñadas para ser muy difíciles de resolver. Estamos hablando de que las RNN u otros sistemas de inteligencia artificial llegaran a identificar, por ejemplo, la necesidad de factorizar números pseudoprimos muy grandes para acceder a esa información cifrada…


Somos conscientes que es algo muy difícil y que ha escapado del análisis de los matemáticos durante décadas pero que, con un poder de computación creciente y la potencial aparición en escena de los tan discutidos ordenadores cuánticos, igual es posible…

 

Artículo realizado por Javier Espina Hellín CEO QLC SLP y doctor en Ingeniería de Sistemas de Información

Contacta con nosotros