Este artículo explora una sorprendente similitud entre redes neuronales y cifrados criptográficos, dos campos que a primera vista parecen no tener nada en común. Mientras que las redes neuronales aprenden patrones para generar texto y los cifrados protegen la información, sus algoritmos subyacentes comparten estructuras sorprendentes.
La similitud se manifiesta en la forma en que procesan secuencias de datos. Tanto las redes neuronales recurrentes (RNNs) como la construcción 'Sponge' utilizada en SHA-3 absorben datos secuencialmente en un estado interno. En arquitecturas más modernas, como el Transformer en redes neuronales y en códigos de autenticación de mensajes (MACs) de alto rendimiento, se utiliza un enfoque paralelo: se procesan bloques de datos en paralelo y luego se combinan mediante sumas. Para mantener el orden correcto, se añaden 'codificaciones de posición' a cada bloque.
Profundizando en la estructura interna, se observa un patrón repetitivo: transformaciones lineales seguidas de transformaciones no lineales, que se repiten en capas. Las transformaciones lineales mezclan información entre diferentes elementos de un vector, mientras que las no lineales introducen complejidad. Este enfoque modular permite la optimización y el análisis de capas individuales.
Un aspecto clave de esta similitud es la organización del estado como una cuadrícula, alternando entre la mezcla de filas y columnas. En redes neuronales, esto se ve en la atención (mezcla de posiciones) y las capas feed-forward (mezcla dentro de cada posición). En criptografía, se observa en pasos como ShiftRows y MixColumns en AES, y en la estructura de ChaCha20.
¿Por qué estas similitudes? No se trata de una simple copia de ideas, sino de que ambos campos enfrentan problemas similares. La principal es la relativa debilidad de los requisitos de corrección: en criptografía, se busca la invertibilidad; en redes neuronales, la diferenciabilidad. Esto permite la creación de funciones simples, repetidas en bucle, y fomenta la experimentación. Además, ambos campos priorizan la complejidad y la mezcla de información, buscando que cada parte del estado interactúe con todas las demás. Finalmente, existe una gran importancia en el rendimiento a nivel de hardware, lo que impulsa la búsqueda de algoritmos simples y altamente paralelizados.
En resumen, la convergencia de estos campos sugiere que, bajo ciertas condiciones (alta complejidad, requisitos de corrección flexibles y énfasis en el rendimiento), las soluciones algorítmicas tienden a converger hacia estructuras similares, un fenómeno análogo a la evolución biológica convergente. La transferencia de ideas entre campos, como la incorporación de redes Feistel de la criptografía a las redes neuronales, sugiere que esta convergencia continuará, abriendo nuevas posibilidades en ambos campos.
