El criptoanálisis es la rama de la criptología que estudia cómo romper los sistemas de cifrado para entender mensajes cuando no se tiene acceso a la clave. Sus orígenes se remontan a los de la criptografía y su evolución tiene dos fases: la clásica, desde el siglo IX, y la moderna, desde la creación de los primeros dispositivos mecánicos durante la Segunda Guerra Mundial. La utilidad del criptoanálisis no se limita a la encriptación de mensajes: también ha probado ser una herramienta para el estudio de lenguas muertas y hoy en día se utiliza para fortalecer la ciberseguridad y la protección de datos.
Técnicas para romper cifrados
El criptoanálisis forma parte de la criptología, la ciencia que estudia mensajes alterados mediante una serie de métodos para que solo el emisor y el receptor sean capaces de leerlos. Dentro de esta se encuentra la criptografía, rama que desarrolla estos métodos, llamados sistemas criptográficos, para evitar que una tercera persona pueda leer el mensaje sin permiso. El criptoanálisis también se dedica a estudiar estos sistemas, pero a diferencia de la criptografía lo hace con el objetivo de romperlos y descifrar el mensaje.
Para ello, los criptoanalistas emplean técnicas relacionadas con la lingüística y la estadística, como el análisis de frecuencia de caracteres. Este usa normas y patrones del idioma para adivinar los mensajes. Por ejemplo, en inglés la letra “e” suele ser común en un mensaje sin descifrar. En un cifrado donde se sustituye una letra por otra, puede asumirse que la más frecuente sustituye la “e”. Esta técnica fue clave para descifrar la piedra de Rosetta, que contiene un decreto egipcio del año 196 a. C. Su descubrimiento y posterior desciframiento en el siglo XIX lograron grandes avances en el estudio de lenguas muertas.
Del lápiz y papel al primer ordenador
Aunque surgió a la par de la criptología, en la Antigüedad, la evolución del criptoanálisis puede dividirse en dos fases: la clásica, desde IX hasta la Segunda Guerra Mundial, y la moderna, desde el desciframiento de los códigos nazis Enigma y Lorenz. Los primeros intentos sistemáticos de descifrar mensajes fueron del filósofo árabe Abu Yusuf al Kindi, quien empleó el análisis de frecuencia. Desde entonces, la criptografía y el criptoanálisis avanzaron juntos, con sistemas como el de Leon Battista Alberti, secretario de tres papas, o el del diplomático francés Blaise de Vigenère, que sirvió para codificar comunicados oficiales.
Con la criptografía ya incorporada en el ámbito militar, la fase moderna del criptoanálisis empezó en el siglo XX con la invención de las máquinas de cifrar de rotor como Enigma y Lorenz. El Ejército nazi las usaba para cifrar sus comunicaciones, con Lorenz las de alto nivel. Enigma, más simple, llegó a tener 10.000.000.000.000.000 (diez mil billones) de claves posibles cada día. Esto hacía imposible descifrar las comunicaciones alemanas. Los esfuerzos empezaron en Polonia, pero culminaron en el Reino Unido en 1941 con el matemático Alan Turing. Turing diseñó la primera máquina capaz de procesar esta cantidad de probabilidades y logró descifrar los mensajes codificados con Enigma. El ingeniero Tommy Flowers hizo lo propio en 1942 con la máquina Lorenz desarrollando el primer ordenador de la historia, el Colossus.
Criptoanálisis, ciberseguridad y protección de datos
A partir de la Guerra Fría, el criptoanálisis ganó importancia en los sistemas de inteligencia y el espionaje, y desde entonces ha avanzado con la computación y la tecnología. Los sistemas de cifrado se basan en algoritmos y se han utilizado sobre todo para la protección de datos de los usuarios. Por ejemplo, el Message-Digest 5 (MD5) pasó de usarse para cifrar datos a autenticar información digital. Estos sistemas están incluso en el wifi, como el Wired Equivalent Privacy (WEP), para proteger las redes inalámbricas. Romper estos cifrados se ha vuelto cuestión de matemática pura y de diseñar algoritmos que los atacan.
Uno de los ataques más conocidos y simples es el ataque de fuerza bruta, que consiste en intentar adivinar la contraseña o el nombre del usuario probando combinaciones. Otro es el ataque de diccionario, que consiste en probar palabras de distintos idiomas. No obstante, los ataques han evolucionado a la par con algoritmos de cifrado, cada vez más sofisticados. Por ejemplo, el algoritmo estadounidense Secure Hashing Algorithm (SHA-0 y SHA-1) se rompió en 2005 por una debilidad matemática y una serie de ataques coordinados. Lo mismo ocurrió con el SIKE, descifrado en 2022 con un teorema matemático de 1997.
Interesante artículo. Una puntualización: un ataque por dicionario es un tipo específico de ataque de fuerza bruta donde la cantidad de palabras que se prueban (fuerza bruta) está acotada a las que hay en un archivo (diccionario). Se hace de este modo para reducir muchísimo el espacio de posibilidades, restringiendo este a las contraseñas frecuentemente utilizadas y palabras conocidas (nombres propios o comunes, secuencias de números típicos, variaciones sobre todo esto, etc.)