Criptoanálisis integral
# Criptoanálisis integral

El criptoanálisis integral es una técnica formalizada por David Wagner y Lars Knudsen para atacar cifrados insensibles al criptoanálisis diferencial. Requiere tener una gran cantidad de pares de textos claros y encriptados. El objetivo es predecir el valor de las integrales después de un cierto número de vueltas en un cifrado de bloques.

## Dualidad con criptoanálisis diferencial

El criptoanálisis integral es el dual del criptoanálisis diferencial en el sentido de que no nos interesa la propagación de diferencias en la estructura de cifrado sino la suma de varios valores. La operación de integración utilizada en este tipo de ataque debe compararse con su equivalente analítico. Sin embargo, aparece una diferencia importante: se considera un número finito de vectores en el caso del criptoanálisis integral.

Formalmente, si consideramos un conjunto finito de vectores, cada componente de un vector proviene de un grupo abeliano aditivo, por lo que es posible sumar los vectores componente por componente. Por tanto, podemos formular una definición de la integral que es equivalente a la clásica adición de vectores en geometría: $S$

$\int S=\sum _{v\in S}v={\biggl\sum _{v\in S}v^{1},\sum _{v\in S}v^{2},...,\sum _{v\in S}v^{n}{\biggr )}$

## Separación de casos

se consideran varios casos:

* El n-ésimo componente es idéntico para todos los vectores.
* El n-ésimo componente es diferente para todos los vectores.
* La integración de los vectores da como resultado un valor conocido de antemano.

Aplicando varios teoremas, se puede obtener información del resultado de la integral. Si el número de vectores considerados es igual al orden del grupo y el n-ésimo componente es constante para todos los vectores, entonces el n-ésimo componente de la integral será el elemento neutro del grupo (por ejemplo: $1+1+1+1\equiv 0{\pmod {4}}$, $2+2+2+2\equiv 0{\pmod {4}}$, etc.)

## Aplicaciones

Knudsen y Wagner dan un ejemplo sobre Rijndael al considerar 256 textos claros de 16 Bytes cada uno (128 Bits, es decir, el tamaño del bloque de Rijndael). Textos comparten 15 Bytes que son idénticas para todo el texto, el $16^º$ diferente para cada (haciendo 256 textos finalmente separadas).

Cada uno de los mensajes está encriptado con tres turnos de Rijndael. Obtenemos 256 salidas de 16 Bytes (valores parcialmente cifrados) que corresponden a los vectores antes mencionados. Al integrar estos 256 vectores, obtenemos un vector cuyos componentes son todos idénticos. Esto permite realizar un ataque de cuatro turnos realizando una integración durante el descifrado (se modifica un solo Byte de la clave y vemos si el Byte en la integración coincide con el Byte de la integración durante el cifrado).

El criptoanálisis completo también se ha probado en otros cifrados como MISTY1 , SAFER o Square.

