El criptoanálisis (del griego kryptós, ‘escondido’, y analýein, ‘desatar’) es una rama de la criptología dedicada al estudio de los sistemas criptográficos con el objetivo de identificar sus debilidades y quebrantar su seguridad sin disponer de la información secreta asociada. En un uso no técnico, la práctica suele denominarse «romper» o «forzar» un código, aunque estos términos poseen significados específicos dentro del argot de la disciplina. Las personas que se dedican al criptoanálisis se denominan criptoanalistas.
Los métodos y técnicas del criptoanálisis han cambiado drásticamente a través de la historia de la criptografía, adaptándose a una creciente complejidad criptográfica. Los sistemas criptográficos han evolucionado desde los métodos de lápiz y papel del pasado, pasando por máquinas como Enigma, utilizada por los nazis durante la Segunda Guerra Mundial, hasta llegar a los sistemas basados en computadoras del presente. Al aumentar la potencia de cálculo de los sistemas criptográficos, también los esquemas criptográficos han ido haciéndose más complejos. A mediados de los años 1970 se inventó una nueva clase de criptografía: la criptografía asimétrica. Los métodos utilizados para romper estos sistemas son por lo general radicalmente diferentes de los anteriores, y usualmente implican resolver un problema cuidadosamente construido en el dominio de la matemática pura. El ejemplo más conocido es la factorización de enteros.
Los resultados del criptoanálisis han cambiado también: ya no es posible tener un éxito ilimitado al romper un código, y existe una clasificación jerárquica de lo que constituye un ataque en la práctica.
Objetivo miniaturadeimagen|La Lorenz-SZ42-2 fue la máquina de cifrado utilizada por el ejército alemán durante la Segunda Guerra Mundial. El objetivo del criptoanálisis es encontrar debilidades en los sistemas criptográficos que permitan elaborar ataques criptoanalíticos que rompan su seguridad sin el conocimiento de información secreta. Para ello estudia en profundidad el diseño y propiedades de los sistemas criptográficos.
En un sistema criptográfico de cifrado, por ejemplo, un estudio criptoanalítico puede consistir en conseguir la clave secreta o simplemente en acceder al texto en claro sin siquiera tener dicha clave. Sin embargo, el criptoanálisis no solo se ocupa de los cifrados, sino que su ámbito es más general: estudia los sistemas criptográficos con el objetivo de sortear la seguridad de otros tipos de algoritmos y protocolos criptográficos.
Sin embargo, el criptoanálisis suele excluir los ataques que no tienen como objetivo primario los puntos débiles de la criptografía utilizada, como los basados en el soborno, la coerción física, el robo o el keylogging. Estos ataques representan un riesgo creciente para la seguridad informática, y en la práctica suelen resultar más efectivos que el criptoanálisis tradicional para vulnerar un sistema.
Ámbitos de estudio Para la consecución de su objetivo, de elaboración de ataques criptoanalíticos que 'rompan' la seguridad de los sistemas criptográficos, los criptoanalistas estudian los sistemas criptográficos con el objetivo de descubrir debilidades que se puedan aprovechar. Para ello estudian los sistemas desde distintos enfoques.
Teoría de la información La teoría de la información proporciona herramientas para evaluar la seguridad de los sistemas criptográficos. Por ejemplo, en los sistemas de cifrado se estudia la entropía de la clave, de los criptogramas y de los mensajes en claro. Como el mensaje en claro suele estar expresado en idiomas humanos, también es interesante el estudio de su entropía y en especial su ratio de entropía.
Los criptoanalistas también estudian el secreto de los sistemas criptográficos. Por ejemplo, en los sistemas de cifrado estudian el grado de secreto caracterizando aquellos sistemas que tienen secreto perfecto a nivel teórico. De su estudio se concluye que el secreto perfecto requiere que el número de claves sea al menos tan grande como el número de mensajes. Esto es impracticable excepto para los llamados cifradores de libreta de un solo uso. En la práctica la mayor parte de los sistemas tienen claves finitas. Para caracterizar la seguridad de estos sistemas los criptoanalistas han desarrollado el concepto de distancia de unicidad, que es el valor mínimo de caracteres cifrados que hacen que solo haya una clave posible que haya sido utilizada para obtener este criptograma. Para ello se aprovecha el concepto de la entropía condicional del conocimiento de la clave una vez conocido el texto cifrado.
Para un sistema de cifrado hay una serie de entropías condicionales interesantes:"Applied cryptology, cryptographic protocols and computer security models", Richard A. DeMillo et al. American Mathematical Society, 1983"Basic methods of cryptography", J. C. A. Lubbe, Cambridge University Press, 1998
Supongamos: Un mensaje es sometido a un proceso de cifrado usando la clave , obteniendo . representa la probabilidad condicional de la clave K dado el criptograma recibido . A veces también se denota por . representa la probabilidad condicional del mensaje dado el criptograma recibido . A veces también se denota por .
Entonces: Podemos medir la incertidumbre (la entropía) del conocimiento de la clave una vez conocido el texto cifrado, y por tanto medir la equivocación de la clave, , también denotada por , mediante la fórmula:
La primera igualdad es por la definición de la entropía condicional y la segunda por aplicación del teorema de Bayes. Observar que si significa que se podrá romper el cifrado, pues ya no hay incertidumbre. Esta anulación nos introduce en el concepto de distancia de unicidad.
Podemos medir la incertidumbre (la entropía) del conocimiento del mensaje una vez conocido el texto cifrado, y por tanto medir la equivocación del mensaje, , también denotada por , mediante la fórmula:
La primera igualdad es por la definición de la entropía condicional y la segunda por aplicación del teorema de Bayes.
Podemos medir la incertidumbre (la entropía) del conocimiento de la clave una vez conocido el texto cifrado y el mensaje en claro, y por tanto medir la equivocación del aspecto de la clave, , también denotada por , mediante la fórmula:
Podemos medir la incertidumbre (la entropía) del conocimiento del mensaje una vez conocido el texto cifrado y la clave, denotado por o por . Dada una clave, la relación entre texto cifrado y texto en claro es uno a uno y, por tanto, .
Se ha demostrado que se cumple la siguiente relación entre las distintas entropías:
De esta relación podemos sacar una conclusión: El objetivo de cualquiera que use un cifrador es tener un valor de alto para que el sistema tenga la máxima fortaleza posible en caso de que el atacante disponga tanto del texto cifrado como del texto claro (ataque con texto claro conocido). Sin embargo, por la expresión de la ecuación, para ello es necesario que sea pequeño. Tener un valor pequeño de implica que haya poca incertidumbre respecto al texto claro una vez conocido el texto cifrado (ataque con solo texto cifrado disponible), lo cual es contrario a los intereses de cualquiera que cifre un mensaje. Por tanto, es necesaria una solución de compromiso para que el sistema tenga una fortaleza aceptable frente a ambos tipos de ataque.
Base matemática y potencia de cálculo Por ejemplo, la criptografía asimétrica emplea problemas matemáticos "duros" como base para su seguridad, así que un punto obvio de ataque es desarrollar métodos para resolver el problema. Los algoritmos asimétricos se diseñan en torno a la conjeturada dificultad de resolver ciertos problemas matemáticos. Si se encuentra un algoritmo mejorado que puede resolver el problema, el criptosistema se ve debilitado. Ejemplos:
La seguridad del protocolo Diffie-Hellman depende de la dificultad de calcular un logaritmo discreto. En 1983, Don Coppersmith encontró una manera más rápida de calcular logaritmos discretos (dentro de ciertos grupos), y por tanto obligó a los criptógrafos a utilizar grupos más grandes, o diferentes tipos de grupos. La seguridad del protocolo RSA depende parcialmente de la dificultad en la factorización de enteros. Por tanto, un avance en la factorización tendría un impacto claro en la seguridad de RSA. En 1980, se podía factorizar un número de 50 dígitos con un coste de operaciones elementales de computación. Para 1984, la tecnología en algoritmos de factorización había avanzado hasta el punto de que se podía factorizar un número de 75 dígitos con las mismas operaciones. Los avances en la tecnología de computación también han provocado que estas operaciones se puedan realizar en un tiempo mucho menor. La Ley de Moore predice empíricamente que las velocidades de computación continuarán aumentando. Las técnicas de factorización podrían mostrar un desarrollo parecido, pero con gran probabilidad dependerán de la capacidad y la creatividad de los matemáticos, ninguna de las cuales ha sido nunca satisfactoriamente predecible. Números de 150 cifras, como los utilizados en RSA, han sido factorizados. El esfuerzo fue mayor que el mencionado anteriormente, pero no estaba fuera de los límites razonables para un ordenador moderno. Al comienzo del , los números de 150 cifras ya no se consideran suficientemente grandes como clave para RSA. Números de varios cientos de dígitos se seguían considerando demasiado difíciles de factorizar en 2005, aunque los métodos probablemente continuarán mejorando con el tiempo, obligando a los tamaños de clave a mantener el ritmo de crecimiento o a desarrollar nuevos algoritmos.
Otra característica distintiva de los algoritmos asimétricos es que, a diferencia de los ataques sobre criptosistemas simétricos, cualquier criptoanálisis tiene la oportunidad de usar el conocimiento obtenido de la clave pública.
Ataques criptoanalíticos Los ataques criptoanalíticos consisten en la aplicación de estudios criptoanalíticos para explotar las debilidades de sistemas criptográficos y así 'romper' su seguridad.
Los ataques criptoanalíticos varían en potencia y en su capacidad de amenaza para los sistemas criptográficos. Se dice que un ataque explota una "debilidad certificacional" si es un ataque teórico que resulta improbable de aplicar en ninguna situación realista; muchos de los resultados demostrados en la investigación criptoanalítica moderna son de este tipo.
Cada ataque tiene sus propiedades, las cuales lo caracterizan y que hacen que ese ataque sea más o menos realizable.
No todos los ataques criptoanalíticos tienen como objetivo la ruptura total del sistema. El objetivo de un ataque criptoanalítico es obtener información desconocida sobre el sistema criptográfico de forma que se vaya debilitando su seguridad.
Clasificación Los ataques criptoanalíticos se pueden clasificar en función de sus características.
Clasificación según la actitud del atacante Los ataques se pueden clasificar según la forma de actuar del atacante.
Ataques pasivos En los ataques pasivos, el atacante no altera la comunicación, solo la escucha o monitoriza, para obtener información. Por tanto, este tipo de ataques suelen usar técnicas de escucha de paquetes (sniffing) y de análisis de tráfico. Son difíciles de detectar, ya que no implican alteración de los datos. En algunos casos, este tipo de ataques se pueden dificultar cifrando la información posible objetivo de escuchas.
Un estudio reciente sobre la ciberseguridad de los dispositivos portátiles utilizó ataques pasivos a diferentes relojes inteligentes para comprobar si tienen vulnerabilidades importantes y si son los mejores objetivos durante el proceso de emparejamiento.
Ataques activos Suponen alguna modificación del flujo de datos o la creación de flujos falsos. Hay muchas técnicas que se usan en este tipo de ataques. Ejemplos: Suplantación