Fundamentos del criptoanálisis diferencial

32
Introducci´onalcriptoan´alisisdiferencial David Arroyo Guarde˜ no ´ Indice ´ Indice 1 1.Introducci´on 2 2. Algoritmo de cifrado DES 2 2.1. Caracter´ ısticas de las cajas S .............................. 5 3. Fundamentos del criptoan´ alisis diferencial 5 3.1. An´alisis de las cajas S .................................. 6 3.1.1. Determinaci´ on de la clave asociada a una caja S ............... 7 3.2. An´alisisdelafunci´onF ................................. 9 3.2.1. etodo para la determinaci´on de la subclave empleada en un bloque F. . . 10 3.3. An´alisis del encadenado de funciones F ......................... 10 3.3.1. Caracter´ ısticas de 1 vuelta ............................ 10 3.3.2. Caracter´ ısticas de 2 vueltas ........................... 12 3.3.3. Definici´ on formal de caracter´ ıstica ....................... 12 3.3.4. Caracter´ ısticas de 3 vueltas ........................... 13 3.3.5. Esquema de conteo ................................ 14 4. Criptoan´ alisis de DES 15 4.1. Criptoan´alisis de DES reducido a cuatro vueltas ................... 15 4.2. DES reducido a 6 vueltas ................................ 16 4.3. DES con un n´ umero arbitrario de vueltas ....................... 19 4.3.1. Ataques 3R .................................... 20 4.3.2. Ataques 2R .................................... 20 4.3.3. Ataques 1R .................................... 21 A. Cajas S 22 B. Tablas asociadas a DES 24 Lista de tablas 32 Lista de figuras 32 Referencias 32 1

Transcript of Fundamentos del criptoanálisis diferencial

Page 1: Fundamentos del criptoanálisis diferencial

Introduccion al criptoanalisis diferencial

David Arroyo Guardeno

Indice

Indice 1

1. Introduccion 2

2. Algoritmo de cifrado DES 22.1. Caracterısticas de las cajas S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

3. Fundamentos del criptoanalisis diferencial 53.1. Analisis de las cajas S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

3.1.1. Determinacion de la clave asociada a una caja S . . . . . . . . . . . . . . . 73.2. Analisis de la funcion F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

3.2.1. Metodo para la determinacion de la subclave empleada en un bloque F . . . 103.3. Analisis del encadenado de funciones F . . . . . . . . . . . . . . . . . . . . . . . . . 10

3.3.1. Caracterısticas de 1 vuelta . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103.3.2. Caracterısticas de 2 vueltas . . . . . . . . . . . . . . . . . . . . . . . . . . . 123.3.3. Definicion formal de caracterıstica . . . . . . . . . . . . . . . . . . . . . . . 123.3.4. Caracterısticas de 3 vueltas . . . . . . . . . . . . . . . . . . . . . . . . . . . 133.3.5. Esquema de conteo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

4. Criptoanalisis de DES 154.1. Criptoanalisis de DES reducido a cuatro vueltas . . . . . . . . . . . . . . . . . . . 154.2. DES reducido a 6 vueltas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164.3. DES con un numero arbitrario de vueltas . . . . . . . . . . . . . . . . . . . . . . . 19

4.3.1. Ataques 3R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204.3.2. Ataques 2R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204.3.3. Ataques 1R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

A. Cajas S 22

B. Tablas asociadas a DES 24

Lista de tablas 32

Lista de figuras 32

Referencias 32

1

Page 2: Fundamentos del criptoanálisis diferencial

1. Introduccion

En el presente documento se lleva a cabo un estudio introductorio de la tecnica de criptonalisisdiferencial. Dado que dicha tecnica fue propuesta para criptoanalizar el algoritmo DES, toda laexposicion se centrara en este tipo de cifra simetrica. En un primer punto se muestran los aspectosfundamentales de DES, para posteriormente esbozar las lıneas fundamentales del criptoanalisisdiferencial. Cabe destacar que la meta esencial de la presente exposicion no es sino mostrar lasideas fundamentales de esta tecnica de criptoanalisis, mas que llevar a cabo un criptoanalisis deDES.

2. Algoritmo de cifrado DES

El la criptografıa moderna los distintos sistemas de cifrado se clasifican en dos grandes grupos:

1. Sistemas de clave secreta o simetricos

2. Sistemas de clave publica o asimetricos

La diferencia entre estas dos variantes de cifrado radica en el hecho de que la clave de cifrado seaigual o distinta de la clave descifrado. En el caso de los sistemas simetricos de cifrado, se hace usode la misma clave a la hora de cifrar y de descifrar (figura 1).

CifrarCifrar

ClaveClave

DescifrarDescifrarTexto claro Texto claroTexto cifrado

Figura 1: Criptografıa de clave secreta

Ademas, dentro de los sistemas de clave secreta se habla de cifrado en flujo y de cifrado enbloque. En el cifrado en flujo se efectua un cifrado bit a bit, mientras que en el cifrado en bloquese divide el texto claro, esto es, la informacion a cifrar, en bloques de un numero constante de bits.A cada uno de estos bloque se le aplica el cifrado. El bloque de texto cifrado correspondiente a undeterminado bloque de texto claro es siempre el mismo, siempre que la clave no sea modificada.Como se dijo en la introduccion, el algoritmo con el que se trabajara es el DES. El DES pertenece alsistema de cifrado simetrico y es un algoritmo de cifra en bloque. Como todos los cifrado en bloque,el DES se apoya en los conceptos de confusion y difusion inicialmente propuestos por Shannon:

La confusion consiste en tratar de ocultar la relacion que existe entre el texto claro, el textocifrado y la clave.

La difusion trata de repartir la influencia de cada bit del mensaje original lo mas posibleentre el mensaje cifrado.

La confusion por sı sola serıa suficiente. Basta generar una tabla de sustitucion completamentediferente para cada clave con todos los textos claros posibles. Dichas tablas ocuparıan cantidadesastronomicas de memoria, por lo que en la practica serıan inviable su manejo. Por ejemplo, unalgoritmo que codificara bloques de 128 bits empleando una clave de 80 bits necesitarıa una tablade aproximadamente 1063 entradas. Lo que en realidad se hace para conseguir algoritmos fuertes,sin necesidad de almacenar tablas enormes, es intercalar la confusion (sustituciones simples, contablas pequenas) y la difusion (permutaciones). De forma mas precisa, la confusion y difusion seconsigue a traves de los siguientes bloques funcionales:

2

Page 3: Fundamentos del criptoanálisis diferencial

Bloque texto claro=x1(0),…,x64(0)

Permutación inicial fija

I(0)=i1(0),…,i32(0) D(0)=d1(0),…,d32(0)

F(K1) K1

I(1)=i1(1),…,i32(1) D(1)=d1(1),…,d32(1)

F(K2) K2

I(15)=i1(15),…,i32(15) D(15)=d1(15),…,d32(15)

(Permutación inicial)-1

Bloque texto cifrado

Figura 2: Esquema del algoritmo de cifrado DES

1. Transformacion inicial.Tiene por objetivo aleatorizar los datos de entrada. Suele constar de una o dos funciones quehan de ser dependientes de la clave de cifrado, si se desea conseguir cierta inmunidad frentea ataques por analisis diferencial o lineal. En el caso de DES esta transformacion inicial nodepende de la clave, por lo que no tiene significacion criptografica alguna (puede ignorarseen un criptoanalisis).

2. Funcion criptograficamente debil/r vueltas.Es una funcion no lineal formada por una operacion compleja o varias simples.

3. Transformacion final.Tiene por mision garantizar la simetrıa entre cifrado y descifrado.

4. Algoritmo de expansion de clave.Mediante este algoritmo se obtienen a partir de una clave pequena (56−256 bits) las distintassubclaves a emplear en las sucesivas vueltas de cifrado. El algoritmo ha de ser tal que nosea factible (o muy difıcil) inferir la clave a partir de las subclaves. Ademas, las subclaves nodeben ser un subconjunto monotono.

En el caso de DES, los cuatro bloques recien citados quedan recogidos en el esquema de la figura2. DES lleva a cabo el cifrado de bloques de 64 bits de informacion en 16 iteraciones. En cada unade esas vueltas se hace uso de un bloque funcional F, el cual lleva cabo el proceso de difusion yde confusion en dependencia de una subclave asociada a la vuelta correspondiente y obtenida apartir de la clave simetrica. Ahora bien, ese bloque funcional solo actua sobre la mitad de los bitsconstituyentes del bloque a cifrar. De este modo, de forma alternativa, en cada vuelta solo se cifran32 de los 64 bits del bloque. A los sistemas de cifra que, como DES, en cada vuelta solo cifranla mitad del bloque, se les llama de tipo Feistel. Ademas del bloque F, existe una transformacioninicial que no tiene interes criptografico (no depende de la clave) y que sera invertida tras las 16vueltas de cifrado.

Volviendo al bloque F, el proceso de confusion y difusion que lleva a cabo se sustenta en laestructura de la figura 3. En primer lugar, el bloque F lleva a cabo una expansion de bloque,de modo que los 32 bits de entrada se convierte en 48. La expansion no es mas que un vectorde 48 elementos obtenidos mediante el vector que aparece en la parte superior de la figura 3. Elvector aparece representado como una matriz de 4 filas y 12 columnas. La concatenacion de filas,empezando por la superior, nos da el vector de expansion. Cada elemento del vector de expansionrefiere el ındice del bit del bloque de 32 bits que debe ocupar esa posicion en el vector expandidode 48 bits. Una vez que se tiene el bloque expandido, se calcula la suma OR exclusiva del mismocon la subclave asociada a la vuelta de cifrado en la que nos encontramos. Tras esto, se dividenlos 48 bits en 8 bloques de 6 bits. Cada uno de esos bloques es sometido a una transformacion nolineal mediante las llamadas cajas S. Las cajas S implementan el fenomeno de confusion necesariopara elaborar un buen sistema de cifrado, mientras que el proceso de difusion se materializa en

3

Page 4: Fundamentos del criptoanálisis diferencial

1

132313 02928292827262524Derecha 2524232 22120212019181716Centro drcha. 1716151 413121312111098Centro izq. 9876545432132IzquierdaX, bloque de entrada 32 bits

E, expansión a 48 bits

Suma módulo-2 bit a bit

K, Clave de 48 bits

S1 S2 S8….

P, permutación

Y, bloque de salida 32 bits 25411226301319932732142482 10311852623151172812292120716Componente no lineal, fuerza del DES

Figura 3: Esquema de la funcion F vinculada a cada etapa de cifrado del algoritmo DES

la permutacion que se efectua tras la accion de las cajas S. Esta ultima operacion, al igual que laexpansion, viene dada por un vector, en este caso de 32 bits, cuyos elementos son los ındices delos bits de la entrada de 48 bits. Es decir, el vector de permutacion indica que bits de la entradaestaran presentes en la salida, ası como el orden de los mismos.

Como se menciono mas arriba, DES divide el texto a cifrar en bloques de 64 bits y cada unode ellos los cifra mediante una clave tambien de 64 bits. Ahora bien, segun refleja la figura 2,en cada vuelta de cifrado se hace uso de una “clave” distinta. De este modo, en principio serıapreciso contar con una clave de 16 × 48 bits. En lugar de esto DES lleva a cabo la generacion de16 subclaves de 48 bits a partir de los 64 bits de la clave. La generacion de subclaves responde alesquema referido por la figura 4. El proceso de generacion de subclaves incluye dos vectores, PC-1y PC-2, que en el esquema aparecen en forma de matriz por facilitar su visualizacion. En realidad,PC-1 y PC-2 son vectores que resultan de concatenar las filas de esas tablas de arriba a abajo. Aligual que en el caso de la expansion y de la permutacion, los vectores recogen los bits de entradaque van a aparecer en la salida, ası como el orden en que lo haran. PC-1, ademas de efectuar unareordenamiento de los bits de entrada, elimina ocho de los 64 bits de entrada (los bits 8, 16, 2432, 40, 48, 56, 64). Esos bits no tienen, pues, valor criptografico alguno, de modo que la longitudefectiva de la clave de DES es de 56 bits. Esto es, un ataque por fuerza bruta sobre DES exige 256

pruebas.Del esquema, ademas, se deduce que cada una de las 16 subclaves contiene 48 bits de la claveoriginal, por lo que la determinacion de cualquiera de esas subclaves harıa posible rebajar la cargacomputacional de un ataque por fuerza bruta de las 256 operaciones originales a 28. Este factor,junto al hecho de que solo se cifren la mitad de los bits en cada vuelta, es una debilidad del sistemaDES.

4

Page 5: Fundamentos del criptoanálisis diferencial

1222222122222211 LF16LF14LF14LF13LF12LF11LF10LF9LF8LF7LF6LF5LF4LF3LF2LF1Reducción

a 56 bits

K

PermutaciónPC-1

DesplazamientoIzquierda LF1

Desplazamiento Izquierda LF1

PC-2

28 bits derecha28 bits izquierda

DesplazamientoIzquierda LF2

Desplazamiento Izquierda LF2

PC-2

K1

K2

DesplazamientoIzquierda LF16

Desplazamiento Izquierda LF16

PC-2

K16

57 49 41 33 25 17 9

1 58 50 42 34 26 18

10 2 59 51 43 35 27

19 11 3 60 52 44 36

63 55 47 39 31 23 15

7 62 54 46 38 30 22

14 6 61 53 45 37 29

21 13 5 28 20 12 4

Tabla PC-1 (56 bits)14 17 11 24 1 5

3 28 15 6 21 10

23 19 12 4 26 8

16 7 27 20 13 2

41 52 31 37 47 55

30 40 51 45 33 48

44 49 39 56 34 53

46 42 50 36 29 32

Tabla PC-2 (48 bits)

Figura 4: Generacion de subclaves en DES

2.1. Caracterısticas de las cajas S

Las cajas S son la componente no lineal de DES. Permiten eliminar caminos de inferencia devalores de la clave a traves del estudio de texto claro y texto cifrado. Estas cajas presentan lassiguientes caracaterısticas:

1. La salida de una caja S no puede ser expresada como funcion lineal o afın de la entrada.

2. La modificacion de un bit de la entrada de una caja S provoca el cambio de al menos dosbits de la salida.

3. S(X) y S(X ⊕ 001100) difieren como mınimo en dos bits.

4. S(X) y S(X ⊕ 11ef00) difieren para cualquier eleccion de e y f .

5. Si se mantiene constante un bit de la entrada, la diferencia entre numeros de unos y de cerosa la salida es mınima.

Los valores de las cajas S se encuentran en el apendice A. Las cajas contienen los distintosvalores de salida para las distintas entradas. El primer y ultimo bit, de los 6 que constituyen elbloque de entrada de una caja S, nos da la fila en la que se encuentra el valor de salida, mientrasque la columna queda consignada por los 4 bits restantes. Todos los valores de salida se encuentrancomprendidos en el intervalo [0, 15], esto es, la salida de cada caja S tiene 4 bits.

3. Fundamentos del criptoanalisis diferencial

Para presentar las bases del criptoanalisis diferencial nos centraremos en el cifrado que se llevaa cabo en una vuelta del algoritmo DES (mirar figura 5). En cada una de las vueltas de cifrado sepresenta una secuencia de 32 bits que, en primer termino, sufre una transformacion que da lugara una segunda segunda secuencia de 48 bits. Es decir, la primera fase del cifrado involucra unaexpansion de la secuencia a cifrar para, de este modo, poder llevar a cabo la suma OR-exclusivacon la subclave (de 48 bits) asociada a dicha vuelta de cifrado. Consideremos dos secuencias de 32bits X y X∗, ası como la diferencia entre ambas

∆X = X ⊕X∗. (1)

Pues bien, se cumple

E(X ⊕X∗) = E(∆X) = E(X) + E(X∗) = A⊕A∗ = ∆A. (2)

5

Page 6: Fundamentos del criptoanálisis diferencial

Por otro lado,(A⊕Ki)⊕ (A∗ ⊕Ki) = A⊕A∗ = ∆A = ∆B. (3)

Ahora bien, debido a la naturaleza no lineal de las cajas S, se tiene que

∆C = Si(∆B) = Si(B ⊕B∗) 6= Si(B)⊕ Si(B∗). (4)

Por ultimo, la operacion de permutacion tambien es de caracter lineal, pues se cumple

∆Y = P (∆C) = P (C ⊕ C∗) = P (C)⊕ P (C∗). (5)

En definitiva, el unico elemento que incorpora no linealidad al bloque funcional F es el referido porlas cajas S. El criptoanalisis diferencial se basa en el estudio de la distribucion de las sumas ORexclusiva de las salidas de cada caja S, cuando se trabaja con distintos pares de entradas cuya sumaOR exclusiva es constante. Este examen demuestra que, en efecto, no existe una correspondenciadirecta entre valor XOR a la entrada de la caja y valor XOR a la salida de la misma. Esto esdebido a las caracterısticas de las cajas S (mirar apartado 2.1).

X

E

Caja Si

Ki

P

Y

∆Y

∆C

∆B∆A

∆X

Figura 5: Esquema de funcionamiento del criptoanalisis diferencial aplicado a una vuelta de cifrado

3.1. Analisis de las cajas S

El analisis de las distintas cajas lleva a cabo la evaluacion de las distintas XOR de las salidasobtenidas para las parejas de entradas cuya XOR toma un cierto valor. A continuacion se definela tabla que contiene los resultados obtenidos mediante este examen.

Definicion 1. Una tabla que muestra la distribucion de las XORs de entrada y de las XORs desalida de todas las posibles parejas de una caja S, se denomina tabla de distribucion de parejasXOR de la caja S.

En dicha tabla cada fila representa un valor XOR de las entradas, mientras que cada columnaes un posible valor de XOR de las salidas. Para un valor de XOR de entradas dado existen, enel caso de una caja S de DES, 64 posibles parejas (ya que la entrada de una caja tiene 6 bits).Los posibles valores de la XOR de salidas son 16. Pues bien, para obtener la tabla de distribucionde una cierta caja, por cada fila, por cada valor de XOR de entrada se evaluan las 64 parejas deentradas. Para cada entrada de la pareja se obtiene el valor de salida. A continuacion se determinala XOR de salida. De este modo, tras el calculo de las 64 parejas se tendra la tabla de distribucionde parejas XOR. En el apendice B aparecen las 8 tablas de distribucion obtenidas mediante esteanalisis. A partir de ellas se concluye:

Cuando la XOR de entrada es 0, es decir, cuando las entradas de una caja S son iguales, laXOR de las salidas es siempre 0.

El ındice de ocurrencia mayor detectado en el conjunto de tablas, exceptuando el caso en elque las entradas son iguales, es 16.

No todos los valores de XOR de salida son posibles.

Definicion 2. Sea X un numero de 6 bits e Y un numero de 4 bits. Se dice que X puede darlugar a Y mediante una caja S si existe un par de entradas cuya XOR sea igual a X y que la XORde las salidas obtenidas al aplicar dichas entradas a la caja S sea igual a Y . Si existe esa pareja,se escribe X → Y , mientras que si no existe pareja alguna, se dice que X no puede dar lugar a Ymediante la caja S, lo que se expresa como X 6→ Y .

6

Page 7: Fundamentos del criptoanálisis diferencial

Definicion 3. Se dice que X da lugar a Y mediante S con una probabilidad p, si para una fraccionp de las posibles parejas cuya XOR es igual a X, la XOR de las salidas es igual a Y .

3.1.1. Determinacion de la clave asociada a una caja S

El criptoanalisis diferencial va a estar fundamentado en el analisis estadıstico de las cajas S, demodo que todas las inferencias y deducciones se van a desplegar como resultado de un conocimientosuficiente y detallado de las tablas de distribucion asociadas a cada una de las ocho cajas S(apendice B). De las tablas se deduce que no todas las combinaciones de entrada y salida (XOR deentradas, XOR de salidas) son posibles. Dicho de otro modo, hay casillas con valor nulo para cadauna de las ocho tablas probabilısticas. Se designa como entrada valida de una tabla de distribucionaquella combinacion de XOR de entradas y XOR de salidas tal que la casilla correspondiente en latabla de distribucion almacena un valor no nulo. En la tabla 1 aparecen los porcentajes de entradasvalidas para las tablas de distribucion de cada tabla S. Este porcentaje fluctua entre el 70 % y el80%, considerandose de forma generica que para cada tabla el 80 % de las entradas, esto es, de lascombinaciones XOR de entrada y XOR de salida son posibles. Esta circunstancia sera de utilidada la hora de buscar combinaciones XOR de entradas y salidas validas. De este modo, el primerestadio en la busqueda de la clave relacionada con una cierta caja S, sera buscar una entrada a latabla de probabilidad posible. Ademas, no vale que simplemente sea una entrada valida. Interesaque el ındice de ocurrencia de la XOR de salida para la XOR de entrada sea maximo. Ası, selograra que el valor de clave sea sugerido por un numero considerable de las parejas de entradasevaluadas.

Caja S Porcentaje ( %) entradas validasS1 79.4921875S2 78.61328125S3 79.6875S4 68.5546875S5 76.5625S6 80.46875S7 77.24609375S8 77.1484375

Tabla 1: Porcentaje de entradas validas para las tablas de distribucion de las cajas S

La busqueda de los 6 bits de clave asociados a una cierta caja S es un procedimiento de corteiterativo. Se llevan a cabo pruebas con los 64 valores posibles de clave trabajando con distintospares de texto claro y pares de texto cifrado. Se buscaran aquel valor de clave que haga que, paratodas las parejas de entrada a la caja considerada, la XOR de las salidas sea coherente con latabla de distribucion implicada. De forma mas detallada, en primer lugar se busca en la tablade distribucion una entrada que sea posible, prefiriendo aquellas que presenten un mayor ındicede ocurrencia. Se buscan todas las entradas de la caja S que, prescindiendo de la clave, puedendan lugar a la XOR de salida. Esto es, se determinan las 64 parejas con XOR igual a la prefijay, a continuacion, se verifica cuales de ellas dan lugar a un par de salidas con XOR igual a lapreestablecida. Tras esto, se llevan a cabo las pruebas con los 64 posibles valores de clave. Setratara de hallar el valor de clave cuya XOR con pares de entradas de lugar a cualquiera de lospares de entradas coherentes con la XOR de entrada y de salida que han sido fijadas.

Ejemplo 1. Supongamos que se conocen un par de entradas a S1, previas a la XOR con los 6 bitsde clave. Supongamos que estas entradas son S1E = 1x y S1∗E = 35x. Supongamos que el valor declave que queremos deducir es S1K = 23x, con lo que las salidas seran S1O = 1x y S1∗O = Cx,resultando S1′O = Dx. En primer lugar se determinan todas las entradas a la caja S1 tal que lapareja constituida por cada una de esas entradas y la XOR de la misma con S1′E = 34x, de lugara un par de salidas cuya XOR sea igual a Dx. Estas entradas para el caso que nos ocupa son: 1Cx,28x,06x, 32x , 22x, 16x, 10x, 24x. Los posibles valores de clave seran:

7

Page 8: Fundamentos del criptoanálisis diferencial

Pareja de entrada(S1I ,S1∗I)

Valor de clave

(1Cx, 28x) 29x

(28x, 1Cx) 1Dx

(06x, 32x) 07x

(32x, 06x) 33x

(22x, 16x) 23x

(16x, 22x) 17x

(10x, 24x) 11x

(24x, 10x) 25x

Tabla 2: Valores posible de clave para S1E = 1x, S1∗E = 35x, S1′O = Dx

Si ahora se tiene dos nuevas entradas S1E = 27x y S1∗E = 13x y la misma clave S1K = 23x,las salidas seran S1O = Dx y S1∗O = Fx, respectivamente, de modo que S1′O = 2x. En este casolos posibles valores a la entrada de la caja S1 son: 4x, 5x, Ex, 11x, 12x, 14x, 1Ax, 1Bx, 20x 25x,26x, 2Ex, 2Fx, 30x, 31x, 3Ax. Las posibles claves en este caso son:

Pareja de entrada(S1I ,S1∗I)

Valor de clave

(20x, 14x) 7x

(14x, 20x) 33x

(1Bx, 2Fx) 3Cx

(2Fx, 1Bx) 8x

(31x, 5x) 16x

(5x, 31x) 22x

(Ex, 3Ax) 29x

(3Ax, Ex) 1Dx

(25x, 11x) 2x

(11x, 25x) 36x

(12x, 26x) 35x

(36x, 12x) 1x

(4x, 30x) 23x

(30x, 4x) 17x

(1Ax, 2Ex) 3DX

(2Ex, 1Ax) 9x

Tabla 3: Valores posibles de clave para 34x → 2x con entradas 27x y 13x

De nuevo el valor de clave S1K = 23x aparece en la tabla. Ahora bien, aparecen repetidostambien los valores 29x, 1Dx, 7x, 33x, 23x, 17x. Por tanto, habrıa que utilizar mas parejas paradescartar mas valores posibles de clave. El valor que aparezca en todas las tablas sera el valorverdadero de clave. En las tablas 4 y 5 aparecen los valores de clave obtenidos para otros dospares de entradas. Los valores de clave comunes para todas las tablas son 17x y 23x. Dado que34x = 17x ⊕ 23x = S1′I , no va a ser posible distinguir estos valores de clave para la XOR deentrada dada. En efecto, en la tabla 1 se trabaja con XOR de entrada igual a 35x. Esta tabla solotiene en comun con las demas el valor de clave 23x, es decir, el valor correcto de clave.

Pareja de entrada(S1I ,S1∗I)

Valor de clave

(2Dx, 19x) 17x

(19x, 2Dx) 23x

(38x, Cx) Cx

(Cx, 38x) 36x

(31x, 5x) 7x

(5x, 31x) 33x

Tabla 4: Valores posibles de clave para 34x → 8x con entradas 3Ax y Ex

8

Page 9: Fundamentos del criptoanálisis diferencial

Pareja de entrada(S1I ,S1∗I)

Valor de clave

(27x, 13x) 17x

(13x, 27x) 23x

Tabla 5: Valores posibles de clave para 34x → 4x con entradas 30x y 4x

Pareja de entrada(S1I ,S1∗I)

Valor de clave

(1Dx, 28x) 2Dx

(28x, 1Dx) 18x

(38x, Dx) 8x

(Dx, 38x) 3Dx

(1Bx, 2Ex) 2Bx

(2Ex, 1Bx) 1Ex

(13x, 26x) 23x

(26x, 13x) 16x

(1Fx, 2Ax) 1Ax

(1Fx, 2Ax) 2Fx

(1Ex, 2Bx) 2Ex

(2Bx, 1Ex) 1Bx

(2Fx, 1Ax) 1Fx

(1Ax, 2Fx) 2Ax

Tabla 6: Valores posibles de clave para 35x → Ex con entradas 30x y 5x

Con el ejemplo anterior se ha sintetizado la manera de operar del criptoanalisis diferencial. Enlos siguientes apartados se mostraran conceptos y estrategias que, en ultima instancia, tratan deencontrar pares de entrada y XOR de salida asociadas a una o varias cajas S. Con esos pares deentradas y esas salidas se podra llevar a cabo un analisis como el recien expuesto. De este modo,con un numero suficiente de parejas de texto claro y texto cifrado, escogidas para evitar entradasno validas de las tablas de distribucion de cada una de las cajas S involucradas, se podra conseguirde forma inequıvoca el valor de la subclave asociada a cada una de las cajas.

3.2. Analisis de la funcion F

Entrada (32 bits)

E

S8ES7ES6ES5ES4ES3ES2ES1E S8KS7KS6KS5KS4KS3KS2KS1K

48 bits 48 bits

S1 S2 S3 S4 S5 S6 S7 S8

P

S1I S2I S3I S4I S5I S6I S7I S8I

S1O S2O S3O S4O S5O S6O S7O S8O

Salida (32 bits)

Figura 6: Notacion para la funcion F

9

Page 10: Fundamentos del criptoanálisis diferencial

Definicion 4. Sean X e Y dos numeros de 32 bits. Decimos que X da lugar a Y mediante F conuna probabilidad p si para una fraccion p de todas las posibles parejas de entradas a F cuya XORes igual X, la XOR de los pares de salidas es igual a Y . Si p > 0 se expresa X → Y .

Lema 1. En DES, si X → Y con una probabilidad mediante la funcion F , entonces para cadapareja Z, Z∗ con ∆Z = Z ⊕Z∗ = X hace que el XOR de las salidas de la funcion F sea igual a Ypara la misma fraccion p de los posibles valores de la subclave.

Demostracion. Consideremos una caja S determinada. Sean SE y S∗E dos salidas del bloque deexpansion para las que se tiene ∆E = E⊕E∗ (mirar figura 6). Se tiene que ∆SI = ∆SE para todovalor de la subclave SK . Supongamos que existen k parejas de entradas a la caja S distintas, cuyaXOR es igual a ∆SI y cuya XOR de las salidas de la caja S en cuestion es la misma. Es posibleencontrar k valores de subclave SK = SI ⊕ SE , donde SI y S∗I son las parejas que dan lugar a lassalidas de la caja cuya XOR es la deseada. Por tanto, la fraccion p de salidas que dan lugar a laXOR deseada, es tambien la fraccion de valores de subclave que permiten generar dicha XOR delas salidas.

Corolario 1. La probabilidad p de X → Y mediante la funcion F es el producto de las proba-bilidades pi de que Xi → Yi mediante las cajas Si (i ∈ 1, . . . , 8), donde X1X2X3X4X5X6X7X8 =E(X) y Y1Y2Y3Y4Y5Y6Y7Y8 = P−1(Y ).

3.2.1. Metodo para la determinacion de la subclave empleada en un bloque F

El metodo que se aplicara hace uso de los conceptos e ideas esbozadas en el anterior apartado:

1. Elegir un valor apropiado de XOR de entrada.

2. Generar un numero suficiente de parejas de texto claro que den lugar a la XOR de entradapreviamente seleccionada. Cifrar cada una de esas entradas y almacenar las salidas obtenidas.

3. Para cada pareja calcular la XOR de salida esperada para tantas cajas S como sea posible,partiendo de la XOR de entrada y las parejas de texto cifrado.

4. Para cada valor posible de clave, contar el numero de parejas de salidas cuya XOR coincidecon la esperada.

5. El valor correcto de clave es (si es unica) la clave sugerida por todas las parejas.

3.3. Analisis del encadenado de funciones F

Definicion 5. Asociados con cualquier par de cifrados estan la XOR del par de textos claros,la XOR del par de textos cifrados, las XORs de las entradas de cada vuelta y las XORs de lassalidas de cada vuelta. Estos valores XOR constituyen un caracterıstica de n vueltas. Unacaracterıstica tiene asociada una probabilidad, que es la probabilidad de que una pareja de textoclaro con una XOR concreta de lugar a las XOR de entrada y salida de cada vuelta que aparecenrecogidas en la caracterıstica. Se designa la XOR del texto claro de una caracterıstica como ΩP ,mientras que la XOR de salida de la caracterıstica es ΩT .

3.3.1. Caracterısticas de 1 vuelta

Las tablas de distribucion del apendice B muestran que la probabilidad maxima para una XORde salida referida a cada una de las cajas S se da cuando la pareja de entradas son iguales. En estecaso las 64 salidas que nos da el analisis son 0. De este modo, si la XOR entrada de un DES de unavuelta tiene los 32 bits de la izquierda a 0 (mirar figura 7) habremos conseguido una caracterısticade 1 vuelta con probabilidad 1. Es decir, para cualquier par de entradas de un DES de una vueltatal que solo se diferencien en los 32 bits de la entrada, el XOR las salidas obtenidas es igual alXOR de las entradas.

10

Page 11: Fundamentos del criptoanálisis diferencial

ΩP=(L’,0x)

F

ΩT=(L’,0x)

A’=0x a’=0x

Figura 7: Caracterıstica de 1 vuelta con probabilidad 1

La caracterıstica recien presentada es la de mayor probabilidad. Para conseguir otras buenascaracterısticas de una vuelta habrıa que conseguir que solo una de las cajas S tenga XOR deentradas no nula. Para lograr esto los pares de entradas al DES de una vuelta han de tener solodos bits de los 32 de la izquierda no nulos, de lo contrario tras la expansion habrıa mas de unacaja S con XOR de entradas no nulas. Dicho de otro modo, los candidatos a caracterıstica debentener entradas con bits no nulos en los llamados bits privados de las distintas cajas S. En la tabla7 aparecen los bits privados de caja una de las ocho cajas S.

Caja Numeros Bit XOR entrada de 64 bits (hexadecimal)S1 34,35 L′ 60 00 00 00S2 38,39 L′ 06 00 00 00S3 42,43 L′ 00 60 00 00S4 46,47 L′ 00 06 00 00S5 50,51 L′ 00 00 60 00S6 54,55 L′ 00 00 06 00S7 58,59 L′ 00 00 00 60S8 62,63 L′ 00 00 00 06

Tabla 7: Bits privados y XOR de entrada correspondiente para cada par de bits

Si se cifran mediante DES de una vuelta parejas con XOR de entrada segun aparece en cadafila de la tabla 7, tras la expansion solo la XOR de entrada de una caja S sera no nula e igual aOCx (el subındice x indica que el numero esta expresado en hexadecimal). Si vamos a las tablasde distribucion de salidas de las cajas S, comprobamos que el maximo ındice de ocurrencia es 14 ,el cual se da para las cajas S1, S2 y S7:

1. Con S1:

S1 : 0Cx → Ex con probabilidad1464

S2, . . . , S8 : 00x → 0x siempre

2. Con S2:

S2 : 0Cx → 5x con probabilidad1464

S1, S3 . . . , S8 : 00x → 0x siempre

3. Con S7:

S7 : 0Cx → Cx con probabilidad1464

S1, . . . , S6, S8 : 00x → 0x siempre

11

Page 12: Fundamentos del criptoanálisis diferencial

En resumen, la probabilidades maximas asociadas a una caracterıstica de una vuelta para DESson 1 y 1/4. Las caracterısticas en cuestion aparecen en la tabla 12.

ΩP ΩT ProbabilidadL′, 00 00 00 00 L′, 00 00 00 00 1L′, 60 00 00 00 L′ ⊕ 00 80 82 00, 60 00 00 00 1

4

L′, 06 00 00 00 L′ ⊕ 00 00 40 10, 06 00 00 00 14

L′, 00 00 00 60 L′ ⊕ 00 10 00 01, 00 00 60 00 14

Tabla 8: Caracterısticas de 1 vuelta para DES(valores en hexadecimal)

3.3.2. Caracterısticas de 2 vueltas

Se podrıa pensar en utilizar como caracterıstica de dos vueltas aquella conformada por paresde entradas iguales. De este modo, a la entrada del DES de dos vueltas se tendrıa siempre unaXOR igual a 0, de modo que con probabilidad 1 la XOR de salida siempre serıa cero. Ahorabien, esto ocurrirıa independientemente del valor de la clave, por lo que no es interesante paranuestro criptoanalisis. Lo deseable serıa que se contara con una caracterıstica con un valor alto deprobabilidad, con el objeto de inferir el valor de la misma mediante el analisis estadıstico de lasXOR de salidas obtenidas. Para ello, en el caso de caracterısticas de dos vueltas vamos a construirlas mismas utilizando los resultados obtenidos para las caracterısticas de una vuelta. En efecto, sise hace que los 32 bits de la derecha de la XOR de entrada sean igual a la XOR de salida de laprimera vuelta, se conseguira tener en la segunda vuelta una XOR de entrada todo a 0, es decir,en la segunda vuelta se tendra la caracterıstica de maxima probabilidad (probabilidad 1).ΩP=(00 80 82 00 60 00 00 00x)

F

ΩT=(60 00 00 00 00 00 00 00x)

A’=00 80 82 00x a’=60 00 00 00x

Fb’=0xB’=0x

ΩP=(00 00 40 10 06 00 00 00x)

F

ΩT=(06 00 00 00 00 00 00 00x)

A’=00 00 40 10x a’=06 00 00 00x

Fb’=0xB’=0x

Probabilidad1/4

Probabilidad1ΩP=(00 10 00 01 00 00 00 60x)

F

ΩT=(00 00 00 60 00 00 00 00x)

A’=00 10 00 01x a’=00 00 00 60x

Fb’=0xB’=0x

Probabilidad 1/4

Probabilidad 1

Figura 8: Caracterısticas de dos vueltas para DES

En base al modo en el que se han generado las caracterıstica de dos vueltas, es posible definiruna serie de conceptos que permitiran aplicar de forma mas general el procedimiento que se haaplicado.

3.3.3. Definicion formal de caracterıstica

Definicion 6. Un caracterıstica de n vueltas es una tupla Ω = (ΩP ,ΩΛ, ΩT ) donde ΩP y ΩT sonnumeros de m bits, y ΩΛ es una lista de n elementos ΩΛ = (Λ1, Λ2, . . . , Λn), cada uno de los cualeses un una pareja de la forma Λi = (λi

I , λiO), donde λi

I y λiO son numeros de m/2 bits y m es el

tamano de bloque del criptosistema. Un caracterıstica satisface los siguientes requerimientos:

λ1I = la mitad derecha de ΩP

12

Page 13: Fundamentos del criptoanálisis diferencial

λ2I = la mitad izquierda de ΩP ⊕ λ1

O

λnI = la mitad izquierda de ΩT ⊕ λn

O

de modo que para 2 ≤ i ≤ n− 1:

λiO = λi−1

I ⊕ λi+1I

Definicion 7. Una pareja correcta, con respecto a una caracterıstica de n vueltas Ω = (ΩP ,ΩΛ, ΩT )y una clave independiente K, es una pareja para la cual P ′ = ΩP y para las n vueltas del cifradode la pareja haciendo uso de la clave K, la XOR de entrada de la i−esima vuelta es igual λi

I , y laXOR de salida del bloque F es igual a λi

O.

Definicion 8. La concatenacion de una caracterıstica de n vueltas Ω1 = (Ω1P , Ω1

Λ, Ω1T ) con una

caracterıstica de m vueltas Ω2 = (Ω2P , Ω2

Λ, Ω2T ), donde los primeros 32 bits de Ω1

T son iguales a los32 bits finales de Ω2

P , y los 32 bits finales de Ω1T son iguales a los 32 bits iniciales de Ω2

P , es lacaracterıstica Ω = (Ω1

P , ΩΛ, Ω2T ), siendo ΩΛ la concatenacion de las listas Ω1

Λ y Ω2Λ.

Definicion 9. La vuelta i de una caracterıstica Ω tiene probabilidad pΩi si λi

I → λiO con proba-

bilidad pΩi mediante el bloque funcional F .

Definicion 10. Una caracterıstica de n vueltas tiene probabilidad pΩ si pΩ es el producto de lasprobabilidades de sus n vueltas:

pΩ =n∏

i=1

pΩi .

En resumen, mediante la ideas que se acaban de presentar es posible derivar un analisis de lasprobabilidades asociadas a las distintas caracterıstica de n vueltas a partir de un caracterıstica deuna sola vuelta.

Teorema 1. La probabilidad de una caracterıstica Ω = (ΩP , ΩΛ, ΩT ) es la probabilidad de que unapareja determinada de entradas P y P ∗, cuya XOR P ′ = P ⊕ P ∗ = ΩP , sea una pareja correctacuando se utilizan claves aleatorias e independientes.

Demostracion. La probabilidad de que un par de entradas tales que P ′ = ΩP sean una parejacorrecta, es la probabilidad de que para todas las vueltas i: λi

I → λiO. La probabilidad de cada

vuelta es independiente del valor exacto de su entrada (lema 1), e independiente respecto a lasoperaciones efectuadas en las anteriores vueltas (ya que la independencia de las claves hace que losbits a la entrada de las cajas S sean aleatorios, de modo que solo queda fijados el valor de la XOR).Por tanto, la probabilidad de que una pareja sea correcta es el producto de las probabilidades deλi

I → λiO, esto es, la probabilidad de la caracterıstica.

En lo que respecta a nuestro intereses, esto es, en lo referente al criptoanalisis, el objetivosera determinar aquel valor de la clave para el cual las parejas correctas con respecto a unacaracterıstica dan lugar a una distribucion de valores XOR de salida coherente con la esperada.Este valor de clave sera el valor correcto de clave, es decir, la clave que buscamos. Ahora bien, lasparejas correctas y el numero de ellas depende directamente del valor de clave empleado, de modoque la distribucion de XOR de salidas no es constante para todas las posibles claves. No obstante,segun senala [1], la probabilidad de una caracterıstica siempre puede ser considerada como unabuena aproximacion de la distribucion de salidas XOR.

3.3.4. Caracterısticas de 3 vueltas

Utilizando los resultados expuestos mas arriba, se construyen las caracterısticas de 3 vueltasa partir de las de 1 vuelta. Con el objeto de conseguir la maxima probabilidad, en la primeravuelta se emplea cualquiera de las tres caracterısticas de 1 vuelta con probabilidad 1/4 que hansido comentadas. A continuacion se emplea la caracterıstica de probabilidad 1 y, finalmente, sehace uso de la misma caracterıstica de 1 vuelta utilizada en el primer paso. En la figura 9 aparecenlas tres caracterısticas de 3 vueltas con probabilidad maxima p = ( 1

4 )2. El esquema de estascaracterısticas es claramente simetrico. Si se quieren conseguir caracterısticas de un mayor numerode vueltas, bastara seguir un modelo simetrico como el recogido en la figura 9 para caracterısticasde 3 vueltas.

13

Page 14: Fundamentos del criptoanálisis diferencial

ΩP=(00 80 82 00 60 00 00 00x)

F

ΩT=(00 80 82 00 00 00 00 00x)

A’=00 80 82 00x a’=60 00 00 00x

Fb’=0xB’=0x

FC’= 00 80 82 00x c’=60 00 00 00x

ΩP=(00 00 40 10 06 00 00 00x)

F

ΩT=(00 00 40 10 06 00 00 00x)

A’=00 00 40 10x a’=60 00 00 00x

Fb’=0xB’=0x

F c’=06 00 00 00xΩP=(00 10 00 01 00 00 00 60x)

F

ΩT=(00 10 00 01 00 00 00 60x)

A’=00 10 00 01x a’=00 00 00 60x

Fb’=0xB’=0x

F c’=00 00 00 60x

C’=00 00 40 10x

C’=00 10 00 01x

Probabilidad 1/4

Probabilidad 1

Probabilidad 1/4

Probabilidad 1/4

Probabilidad 1

Probabilidad 1/4

Figura 9: Caracterısticas de 3 vueltas para DES

3.3.5. Esquema de conteo

Para determinar la clave vamos a utilizar un procedimiento sustentando en el conocimiento sobreel comportamiento de una cierta caracterıstica. Se llevaran a cabo pruebas con todos los valoresde clave posibles. El valor correcto de clave sera aquel para el cual se consigue una distribucion deXOR de salidas en coherencia con la probabilidad de la caracterıstica empleada. Para ello hay queasegurar que se utilizan parejas correctas, pues de lo contrario puede que el valor correcto de laclave sea descartado.

Cada caracterıstica nos permite deducir un determinado numero de bits de la subclave en laultima vuelta del cifrado, simplemente examinando los bits de entrada de determinadas cajas S.Las caracterısticas de mayor utilidad son aquellas que presentan una mayor probabilidad y, ademas,permiten poner en practica el sistema de conteo con un mayor numero de bits de la subclave. No espreciso aplicar el sistema de conteo a todos los bits de la subclave. Es mas, ello implicarıa un muyelevado consumo de memoria. Por ello, se puede explotar el sistema de conteo para un subconjuntode los bits de la subclave, mientras que los restantes bits, correspondientes a otras cajas S, seranutilizados para descartar parejas no correctas (aquellas cuya XOR de entrada no da lugar a laXOR de salida esperada). Mirando las tablas de distribucion de la XOR de salida de las cajas S(apendice B), se observa que aproximadamente el 20 % de las XOR de entradas no son posibles,con lo que aproximadamente el 20% de las parejas no correctas podran ser descartadas para cadacaja S antes de efectuar el conteo de XOR de salidas.

Definicion 11. La ratio entre el numero de parejas correctas y el numero medio de parejascontabilizadas, en un esquema de conteo, se denomina ratio senal a ruido y se denota S/N .

Supongamos que pretendemos determinar k bits de una cierta clave. Para ello, sera precisoefectuar 2k pruebas y llevar a cabo un registro de las salidas XOR. Este conteo arroja un numeromedio de pruebas de m·α·β

2k , donde m es el numero de parejas, α es el numero medio de conteospor pareja analizada , y β es la ratio de parejas analizadas entre el total de parejas (aceptadas +rechazadas). La clave correcta es contabilizada una media de m · p por cada valor de clave, siendop la probabilidad de la caracterıstica. Por tanto, la relacion senal a ruido del sistema de conteovendra dada por el cociente entre el numero medio de pruebas en el caso de solo trabajar conparejas correctas, y el numero medio de pruebas cuando se trabaja tanto como parejas correctascomo no correctas:

S/N =m · p

m · α · β/2k=

2k · pα · β . (6)

De este modo, se comprueba que la relacion senal a ruido es independiente del numero de parejasempleado. Ademas, para un analisis basado en la misma caracterıstica se obtendran distintas

14

Page 15: Fundamentos del criptoanálisis diferencial

relaciones senal a ruido en funcion del numero de bits de la clave que sen considerados. Por ultimo,cabe resenar que pese a la independencia de la senal a ruido del esquema respecto del numerode parejas considerado, existe una relacion directa entre el numero de parejas precisadas y dicharatio. Experimentalmente se comprueba [1] que cuando S/N ≈ 1 − 2 se precisan entre 20 y 40parejas correctas. Para relaciones senal a ruido mucho menores, el numero de parejas requeridases demasiado elevado, de ahı la importancia de que la probabilidad asociada a una caracterısticasea maxima.

Texto claro (P)

F

F

F

F

Texto cifrado (T)

A a

b

c

d

B

C

D

Figura 10: DES reducido a 4 rondas

4. Criptoanalisis de DES

4.1. Criptoanalisis de DES reducido a cuatro vueltas

En este apartado se van aplicar los resultados hasta ahora presentados a un DES reducido a 4rondas (figura 10). En el criptonalisis que se esbozara no se contempla el efecto de la permutacion deentrada y salida, pues, tal y como se comento, no tienen interes criptografico alguno al no dependerde la clave de cifrado y constituir una operacion invertible de forma trivial. Dicho esto, pasamosa presentar la primera caracterıstica de la que nos valdremos para ejecutar el criptoanalisis. Lacaracterıstica en cuestion esta representada en la figura 11. Si se hace uso de tal caracterıstica,en la primera ronda se consigue a′ = 0 → A′ = 0 con probabilidad uno. En la segunda ronda setendran parejas que solo difieren en un bit, el tercer bit de entrada a la caja S1. De esta forma, lasparejas registradas a la salida de la caja S1 en la segunda ronda se diferenciaran en al menos dosbits (mirar tabla de distribucion de S1 en el apendice B). Estos dos bits entraran en tres cajas Sdistintas de la tercera ronda (c′ = a′⊕B′ = B′), de modo que en cada una de las parejas de entradade cada caja solo habra diferencia en un bit. Por tanto, en la tercera ronda habran alrededor de6 bits de diferencia entre cada componente de cada una de las parejas consideradas. Estos bitsson sumados mediante XOR con la diferencia (conocida) de entrada de S1 en la segunda ronda(d′ = b′ ⊕ C ′), dando lugar a una diferencia de unos siete bits a la entrada de la cuarta ronda.Debido al efecto de la expansion, esos 7 bits dan lugar a 11 bits de diferencia a la entrada de lascajas S. Este efecto avalancha hace que casi todas las entradas de las cajas S sean diferentes en lasdiversas parejas. Es mas, puede que la entrada de una cierta caja S en la cuarta ronda no presentediferencias para una determinada pareja, mientras que otras pareja sı puede dar diferencias enla entrada de dicha caja. En definitiva, el valor exacto de d′ normalmente es diferente para cadapareja.

Los 28 bits de la XOR de la salidas de S2, . . . , S8 en B′ deben ser igual a 0, ya que la XORde entrada es 0. Dado que a′ ⊕B′ = c′ = D′ ⊕ l′, se tiene

D′ = a′ ⊕ l′ ⊕B′. (7)

15

Page 16: Fundamentos del criptoanálisis diferencial

Cuando la pareja de texto cifrado T = (l, r) y T ∗ = (l∗, r∗) son conocidos, los valores d y d∗

tambien lo son (d = r, bloque de 32 bits de la derecha). Dado que a′ = a⊕ a∗, l′ y los 28 bits deB′ son conocidos, los 28 bits correspondientes de D′ tambien los son debido a (7). Estos 28 bitsson las XOR de las salidas de las cajas S2, . . . , S8. Por tanto, conocemos los valores SEd, S∗Ed yS′Od de siete cajas S en la cuarta ronda.

Dadas las parejas cifradas, se lleva a cabo un procedimiento de conteo para cada una de aquellassiete cajas S en la cuarta ronda. Se prueban los 64 posibles valores de Skd para cada caja y severifica si SEd ⊕ SKd y S∗Id = S∗Ed ⊕ Skd implican que

SOd ⊕ S∗Od = S′Od. (8)

Para cada valor candidato de clave se contabilizan las parejas para las cuales el test es positivo.La clave correcta es el valor sugerido por todas las parejas, ya que usamos una caracterıstica conprobabilidad 1, esto es, todas las parejas son parejas correctas.

Hasta ahora hemos conseguido 7 · 6 = 42 bits de la subclave de la cuarta vuelta (K4). Dadoque estamos trabajando con DES, estos 42 bits forman parte de los 56 bits de la clave del cifrado.De este modo, solo restan 14 bits para tener la clave en su totalidad. Por tanto, bastara llevar acabo sucesivos ensayos mediante fuerza bruta para obtener los bits de los que aun no disponemos(como maximo seran precisas 214 pruebas). En [1] se extiende el criptoanalisis al caso en el cualtodas las subclaves son independientes.

F

1 x20 00 00 00 00 00 00 00PΩ =

1 x20 00 00 00 00 00 00 00TΩ =

' 0xA = ' 0xa = Probabilidad 1

Figura 11: Caracterıstica de una 1 vuelta con probabilidad 1 para criptoanalisis DES de 4 rondas

4.2. DES reducido a 6 vueltas

Este criptoanalsisis es mas complejo que el anterior. Ahora sera necesario hacer uso de doscaracterısticas con probabilidad 1

16 . Cada una de esas caracterısticas nos permitira deducir 30 bitsde la clave K6 empleada en la quinta ronda. Esos 30 bits corresponden a las entradas de 5 cajasS. Dado que tres de esas cajas no son comunes a las dos caracterısticas, en realidad se conseguiran42 bits de la clave K6. Los 14 bits restantes de la clave total del DES reducido a 6 vueltas podranhallarse mediante busqueda exhaustiva o mediante un analisis y conteo mas preciso de los bits dela clave que se aplica a la entrada de las ocho cajas S.

16

Page 17: Fundamentos del criptoanálisis diferencial

F

1 x40 08 00 00 04 00 00 00PΩ =

' 40 08 00 00xA = ' 04 00 00 00xa = Probabilidad 1/4

1 x20 00 00 00 00 00 00 00TΩ =

F

F' 0xB = ' 0xb =

' 40 08 00 00xC = ' 04 00 00 00xc =

Probabilidad 1

Probabilidad 1/4

Figura 12: Caracterıstica de 3 vueltas y probabilidad 1/16 para DES: criptoanalisis de DES reducidoa 6 vueltas

La primera caracterıstica, Ω1, es la que aparece representada en la figura 12. En la cuarta vueltala XOR de las parejas de entradas de las cajas S2, S5, . . . , S8 (d′ = b′ ⊕ C ′ = 40 08 00 00x) esigual a cero (S′Ed = 0) y, por tanto, la XOR de las parejas de salidas son tambien cero (i.e. S′Od = 0,para esas cinco cajas S). La XOR de las parejas de salidas en la sexta ronda vendra dada comoF ′ = c′⊕D′⊕ l′, donde se tendra en cuenta que la XOR de las parejas de salidas correspondientesa las cajas S2, S5, . . . , S8 son cero. Dado el caracter probabilıstico del sistema de conteo, y conobjeto de incrementar la relacion senal a ruido S/N , es preferible llevar a cabo las pruebas con los30 bits de la subclave K6 (5 bits por cada caja S). Si no se hiciera de este habrıa que llevar a cabomas pruebas, es decir, se precisarıan mas parejas de texto claro y texto cifrado, pues puede quese tenga una pareja correcta para una o varias cajas mientras que para el resto no lo es. Ahorabien, con este planteamiento habrıa que llevar a cabo 230 pruebas, lo cual exige un gran consumode memoria y de tiempo. Para evitar este problema se utilizara un grafo en el que cada vertice esuna pareja de entradas, y las parejas que compartan un valor candidato de clave estaran unidosmediante un arco. En consecuencia, cada valor de clave da lugar a un ciclo constituido por todaslas parejas que lo han sugerido como valor valido. El ciclo de mayor longitud sere el vinculadoa la clave verdadera. Para cada caja de las cinco implicadas (S2, S5, . . . , S8) se tendra unamascara de 64 bits, donde cada bit es un posible bit de clave. Dados los valores SE , S∗E y S′Ose fijan los valores de las mascaras que corresponden a valores posibles de la clave. Cada parejatiene asociada 5 mascaras de clave, una por cada caja S. Un ciclo es definido como el conjunto deparejas para las cuales para cada una de las cinco mascaras de clave hay un bit a uno para todaslas parejas del conjunto (i.e., el “and” logico de las cinco mascaras de todas las parejas no es cero).De este modo, mediante la localizacion de los ciclos de maxima longitud, se fijan los 30 bits de K6correspondientes a las cajas S2, S5, . . . , S8.

17

Page 18: Fundamentos del criptoanálisis diferencial

F

2 x00 20 00 08 00 00 04 00PΩ =

' 00 20 00 08xA = ' 00 00 04 00xa = Probabilidad 1/4

2 x00 20 00 08 00 00 04 00TΩ =

F

F' 0xB = ' 0xb =

' 00 20 00 08xC = ' 00 00 04 00xc =

Probabilidad 1

Probabilidad 1/4

Figura 13: Segunda caracterıstica de 3 vueltas: criptoanalisis de DES reducido a 6 vueltas

Con objeto de determinar una mayor numero de bits de K6, se explota la caracterıstica con-statada por la figura 13. De nuevo, en la cuarta vuelta 5 cajas tienen XOR de entrada cero(S1, S2, S4, S5 . . . , S6). Siguiendo el metodo recien introducido mas arriba se acaban obtenien-do los 30 bits de clave ligados a esas cajas. Ahora bien, los bits vinculados a S1 y S4 no soncomunes a los 30 bits resultantes del anterior analisis. Por tanto, en realidad se tienen 42 bits dela subclave K6 y, dado que se trabaja sobre DES, solo nos faltaran 14 bits para dar con la clavecompleta del DES reducido a 6 vueltas. Para determinar estos 14 bits se podrıa optar por poner enpractica una busqueda exhaustiva. Sin embargo, si se quiere acelerar la busqueda se puede llevara cabo un analisis de los 6 bits de clave correspondientes a la caja S3. En primer lugar se filtranparejas no validas aprovechando el conocimiento parcial que se tiene de la clave. Para ello se utilizacualquiera de las dos caracterısticas que han sido presentadas en este apartado, verificando quepara las 5 cajas implicadas por la caracterıstica se cumple que S′Ed = 0 y que el valor S′Of , obtenidoa partir del par f , f∗ calculado, a su vez, a partir de los bits de la clave ya conocidos, es coherentecon el valor esperado F ′ = c′ ⊕ D′ ⊕ l′. Si no se cumple esto, la pareja de entradas en cuestionsera desechada. A continuacion se llevan a cabo las 64 pruebas con la meta de obtener los 6 que nosquedan de la subclave de la 6 vuelta. El procedimiento que se aplicara se apoya en la tabla 9. Enesa tabla aparecen los bits de entrada de las distintas cajas en la quinta ronda, ası como los bits deK5 para una de esas cajas. Los bits marcados con “+” son bits ya conocidos, obtenidos mediantela utilizacion del par de caracterısticas de las figuras 12 y 13. Los bits representados con “.” sonlos bits de la clave K5 que no estan presentes en la clave K6 (recordar el mecanismo de generacionde claves: figura 4). Por ultimo, los bits con el sımbolo “3” son bits que se corresponden con elvalor de los bits de la subclave K6 asociados a la caja S3. Lo que se hara sera comprobar que paralos distintos valores de los 6 bits restantes de K6, las XOR de los pares de salidas obtenidas traslas cajas S de la quinta vuelta, son coherentes con los valores esperados E′ = d′ ⊕ f ′. Para ellose tendran en cuenta solo aquellas cajas S de la quinta ronda cuyas entradas y bits de subclavedependan solo de bits de K6. Estas cajas son S2, S3 y S8. Para los 64 posibles valores de subclavevinculada a S3 en la sexta ronda, se comprueba que los valores S2′oe, S3′oe y S8′oe coinciden conlos esperados segun E′ = d′⊕f ′. Los valores e y e∗ precisados para estas pruebas se obtendran pordescifrado de una vuelta utilizando K6. Tras efectuar las 64 pruebas se hallara los bits restantes deK6, de modo que solo nos faltaran por conocer 8 bits de la clave total. Estos 8 bits pueden ser de-terminados mediante busqueda exhaustiva (256 pruebas), o bien puede efectuarse un criptoanalisiscon la quinta ronda similar al llevado a cabo con la sexta.

18

Page 19: Fundamentos del criptoanálisis diferencial

Caja S SEe SKe

S1 ++++++ 3+ . .++S2 ++3+++ + 3 + 333S3 ++++++ ++++++S4 ++++3+ ++ . .++S5 3+++++ +++ .++S6 ++++3+ + .+ .++S7 3+++++ +++ .++S8 ++3+++ ++++++

Tabla 9: Bits conocidos en la quinta vuelta de cifrado

4.3. DES con un numero arbitrario de vueltas

Para definir el criptoanalisis de forma generica se parte de la siguiente caracterıstica:

F Probabilidad 1

F Probabilidad 1/4

x00 00 00 00 00 00 60 19)0,( ==Ω ψp

x00 00 60 19 00 00 00 00),0( ==Ω ψT

0'=A 0'=a0'=B x00 00 60 19' ==ψb

Figura 14: Caracterıstica iterativa para criptoanalisis de n vueltas

En la segunda vuelta la XOR de entrada del bloque F es 19 60 00 00, de modo que las unicascajas S con XOR de entrada no nula seran S1, S2, S3. Para cada una de ellas, la XOR de entraday la probabilidad de que la XOR de salida sea 0 son:

S1′Eb = S1′Ib = 03x → S1′Ob = 0 con probabilidad1464

S2′Eb = S2′Ib = 32x → S2′Ob = 0 con probabilidad864

S3′Eb = S3′Ib = 2Cx → S3′Ob = 0 con probabilidad1064

.

Por tanto, la probabilidad asociada a la caracterıstica dada por la figura 14 es 14·8·1064·64·64 ≈ 1

234 .Vamos a ver como hacer uso de la caracterıstica resenada con el objeto de desarrollar un

criptoanalisis de un DES de n vueltas. Si conectamos la salida de la caracterıstica que nos ocupaa sı misma n veces, las XOR intermedias que se obtienen son:

ΩP = (ψ, 0)a′ = 0 → A′ = 0 siempre

b′ = ψ → B′ = 0 con probabilidad aproximada de1

234c′ = a′ ⊕B′ = 0 → C ′ = 0 siempre

d′ = ψ → D′ = 0 con probabilidad aproximada de1

234e′ = c′ ⊕D′ = 0 → E′ = 0 siempre

...

19

Page 20: Fundamentos del criptoanálisis diferencial

De este modo, si p es la probabilidad de la caracterıstica, para 3 vueltas p ≈ 1234 , para 5 vueltas

p ≈ 1234·234 , para 7 vueltas p ≈ 1

234·234·234 . . .Hay distintos tipos de ataques en funcion del numero de vueltas que la caracterıstica no cubre.

Ası se habla de ataques 3R, 2R y 1R con 3, 2 y 1 vuelta adicionales. Por ejemplo, si se tieneun DES reducido a ocho vueltas, se puede emplear una caracterıstica de 5 vueltas basada en lacaracterıstica iterativa aquı referida, y deducir los valores entrada de la ultima ronda a partir de losvalores de la quinta. Para un determinado criptosistema es recomendable utilizar la caracterısticamas “corta”, pues presenta una probabilidad mayor. Es decir, es preferible un ataque 3R a 2R, yambos son preferibles a un ataque 1R.

4.3.1. Ataques 3R

En los ataques 3R, el procedimiento de conteo de parejas se llevara a cabo para determinar losbits de la subclave asociados a las cajas S que tienen XOR de entrada nulas y que estan situadasen la vuelta siguiente a la ultima de la caracterıstica. Este tipo de ataque es el adecuado paraDES reducido a cuatro, cinco, ocho y nueve vueltas. Este tipo de ataque ya ha sido desarrolladoen los apartados de criptoanalisis de DES reducido a 4 y 6 rondas, si bien allı no se hacıa uso dela caracterıstica iterativa. El procedimiento, no obstante, es el mismo, simplemente se cambia lacaracterıstica sobre la que se trabaja.

En un DES reducido a ocho rondas los primeros 30 bits de la subclave de la ultima rondapueden ser determinados mediante la caracterıstica iterativa (cuya probabilidad esta en torno a

155000 ). Para calcular la relacion senal a ruido se tiene en cuenta que para las 230 posibles cables seprueban 25·4 = 220 parejas, con lo que α = 230

220 = 210. De esta forma, segun (6) la relacion senal aruido es

S/N =224

210 · 55000≈ 19 .

En el caso de que en lugar de tratar de hallar los 30 bits de subclave correspondiente a las cincocajas S cuya XOR de entrada es 0, se trata de determinar solo 24 bits, esto es, solo se trabaja con4 de esas cinco cajas. La caja que no se emplea en el conteo sera explotada con el objeto de filtrarparejas no validas. Esto quiere decir que ahora no se contabilizan todas las parejas (β 6= 1), sinoque solo se tomaran en cuenta las que sean entradas validas de la tabla de distribucion de la cajaS no incluida en el conteo (β ≈ 0,8). En definitiva, para un conteo sobre 24 bits de subclave setiene

S/N =224

28 · 0,8 · 55000≈ 1,5 .

4.3.2. Ataques 2R

Ahora el conteo se llevara cabo sobre los bits de la clave de la ultima vuelta. Para DES reducido a9 vueltas los 48 bits de K9 pueden determinarse explotando la caracterıstica de 7 vueltas. Tenemos:

ΩP = (ψ, 0)a′ = 0 → A′ = 0 siempre

b′ = ψ → B′ = 0 con probabilidad aproximada1

234c′ = 0 → C ′ = 0 siempre

...g′ = 0 → G′ = 0 siempreh′ = ψ → H ′ = i′ ⊕ g′ = r′

i′ = r′ → I ′ = h′ ⊕ l′ = ψ ⊕ l′

ΩT = (l′, r′)

Para h′ → H ′ se tiene que cinco cajas S satisfacen S′Eh = S′Ih = 0 y, en consecuencia, S′Oh debeser cero (lo que tambien ocurre para parejas incorrectas con una probabilidad aproximada de 1

16 ).Las otras 3 cajas satisfacen S′Ih → S′Oh segun la XOR de las parejas de texto cifrado (esto tambienes satisfecho por parejas no correctas con una probabilidad aproximada de 0,8) . Por tanto, paraconteo sobre 48 bits de la clave K9 tenemos

S/N =248 · 2−24

216 · 0,83 · ( 116 )5

≈ 229.

20

Page 21: Fundamentos del criptoanálisis diferencial

Si solo se trabaja sobre 18 bits de K9, entonces

S/N =218 · 2−24

26 · 0,850,83( 116 )5 ≈ 211 · ( 1

16 )5≈ 229.

Segun [1] el numero de parejas a considerar es 226, lo que rebaja considerablemente el coste com-putacional respecto a la busqueda exhaustiva de la clave.

Un procedimiento y analisis similar se seguirıa en el caso de DES reducido a 11, 13 y 15 rondas.Para este ultimo caso se emplearıa una caracterıstica de 13 vueltas y el conteo se harıa sobre 42bits de la subclave de la ultima ronda. Segun muestra [1], para este tipo de DES se precisan delorden de 251 parejas. Un ataque por fuerza bruta requiere 256, con lo que para este numero devueltas DES ya no es tan ventajoso este tipo de criptoanalisis.

4.3.3. Ataques 1R

En este caso se lleva a cabo un conteo sobre todos los bits de la clave de la ultima ronda talque la XOR de los pares de entradas a las cajas S sean cero. El tipo de caracterıstica que ahorase emplea hace que la XOR de entrada a las distintas cajas sea fija, con lo que no sera posibledistinguir entre varios posibles valores de clave. No obstante, el numero de valores posibles finalesde clave suele ser pequeno, por lo que el metodo ulterior de determinacion de los restantes bits declave (puede emplearse fuerza bruta o criptoanalisis diferencial) ayudara a decantarse por un valorconcreto.

Este tipo de ataque se emplea en el caso de DES de 10, 12 y 16 rondas. En este ultimo caso,esto es, en el DES original el numero de parejas precisas para obtener la contrasena es del ordende 257. Es decir, el criptoanalisis diferencial es mas caro computacionalmente hablandoque la busqueda exhaustiva para el caso de DES estandar.

21

Page 22: Fundamentos del criptoanálisis diferencial

A. Cajas S

COLUMNASF 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15I 0 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7L 1 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8A 2 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0S 3 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13

Tabla 10: S1

COLUMNASF 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15I 0 15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10L 1 3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5A 2 0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15S 3 13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9

Tabla 11: S2

COLUMNASF 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15I 0 10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8L 1 13 7 0 9 3 4 6 10 2 8 5 14 12 11 15 1A 2 13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7S 3 1 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12

Tabla 12: S3

COLUMNASF 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15I 0 7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 15L 1 10 6 9 0 12 11 7 13 15 1 3 14 5 2 8 4A 2 13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7S 3 3 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14

Tabla 13: S4

COLUMNASF 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15I 0 2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 9L 1 14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 6A 2 4 2 1 11 10 13 7 8 15 9 12 5 6 3 0 14S 3 11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3

Tabla 14: S5

22

Page 23: Fundamentos del criptoanálisis diferencial

COLUMNASF 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15I 0 12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 11L 1 10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8A 2 9 14 15 5 2 8 12 3 7 0 4 10 1 13 11 6S 3 4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13

Tabla 15: S6

COLUMNASF 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15I 0 4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 1L 1 13 0 11 7 4 9 1 10 14 3 5 12 2 15 8 6A 2 1 64 11 13 12 3 7 14 10 15 6 8 0 5 9 2S 3 6 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12

Tabla 16: S7

COLUMNASF 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15I 0 13 2 8 4 6 15 11 1 10 9 3 14 5 0 12 7L 1 1 15 13 8 10 3 7 4 12 5 6 11 0 14 9 2A 2 7 11 4 1 9 12 14 2 0 6 10 13 15 3 5 8S 3 2 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11

Tabla 17: S8

23

Page 24: Fundamentos del criptoanálisis diferencial

B. Tablas asociadas a DES

XOR de entrada XOR de salida0 1 2 3 4 5 6 7 8 9 A B C D E F

0 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 0 0 0 6 0 2 4 4 0 10 12 4 10 6 2 42 0 0 0 8 0 4 4 4 0 6 8 6 12 6 4 23 14 4 2 2 10 6 4 2 6 4 4 0 2 2 2 04 0 0 0 6 0 10 10 6 0 4 6 4 2 8 6 25 4 8 6 2 2 4 4 2 0 4 4 0 12 2 4 66 0 4 2 4 8 2 6 2 8 4 4 2 4 2 0 127 2 4 10 4 0 4 8 4 2 4 8 2 2 2 4 48 0 0 0 12 0 8 8 4 0 6 2 8 8 2 2 49 10 2 4 0 2 4 6 0 2 2 8 0 10 0 2 12A 0 8 6 2 2 8 6 0 6 4 6 0 4 0 2 10B 2 4 0 10 2 2 4 0 2 6 2 6 6 4 2 12C 0 0 0 8 0 6 6 0 0 6 6 4 6 6 14 2D 6 6 4 8 4 8 2 6 0 6 4 6 0 2 0 2E 0 4 8 8 6 6 4 0 6 6 4 0 0 4 0 8F 2 0 2 4 4 6 4 2 4 8 2 2 2 6 8 810 0 0 0 0 0 0 2 14 0 6 6 12 4 6 8 611 6 8 2 4 6 4 8 6 4 0 6 6 0 4 0 012 0 8 4 2 6 6 4 6 6 4 2 6 6 0 4 013 2 4 4 6 2 0 4 6 2 0 6 8 4 6 4 614 0 8 8 0 10 0 4 2 8 2 2 4 4 8 4 015 0 4 6 4 2 2 4 10 6 2 0 10 0 4 6 416 0 8 10 8 0 2 2 6 10 2 0 2 0 6 2 617 4 4 6 0 10 6 0 2 4 4 4 6 6 6 2 018 0 6 6 0 8 4 2 2 2 4 6 8 6 6 2 219 2 6 2 4 0 8 4 6 10 4 0 4 2 8 4 01A 0 6 4 0 4 6 6 6 6 2 2 0 4 4 6 81B 4 4 2 4 10 6 6 4 6 2 2 4 2 2 4 21C 0 10 10 6 6 0 0 12 6 4 0 0 2 4 4 01D 4 2 4 0 8 0 0 2 10 0 2 6 6 6 14 01E 0 2 6 0 14 2 0 0 6 4 10 8 2 2 6 21F 2 4 10 6 2 2 2 8 6 8 0 0 0 4 6 420 0 0 0 10 0 12 8 2 0 6 4 4 4 2 0 1221 0 4 2 4 4 8 10 0 4 4 10 0 4 0 2 822 10 4 6 2 2 8 2 2 2 2 6 0 4 0 4 1023 0 4 4 8 0 2 6 0 6 6 2 10 2 4 0 1024 12 0 0 2 2 2 2 0 14 14 2 0 2 6 2 425 6 4 4 12 4 4 4 10 2 2 2 0 4 2 2 226 0 0 4 10 10 10 2 4 0 4 6 4 4 4 2 027 10 4 2 0 2 4 2 0 4 8 0 4 8 8 4 428 12 2 2 8 2 6 12 0 0 2 6 0 4 0 6 229 4 2 2 10 0 2 4 0 0 14 10 2 4 6 0 42A 4 2 4 6 0 2 8 2 2 14 2 6 2 6 2 22B 12 2 2 2 4 6 6 2 0 2 6 2 6 0 8 42C 4 2 2 4 0 2 10 4 2 2 4 8 8 4 2 62D 6 2 6 2 8 4 4 4 2 4 6 0 8 2 0 62E 6 6 2 2 0 2 4 6 4 0 6 2 12 2 6 42F 2 2 2 2 2 6 8 8 2 4 4 6 8 2 4 230 0 4 6 0 12 6 2 2 8 2 4 4 6 2 2 431 4 8 2 10 2 2 2 2 6 0 0 2 2 4 10 832 4 2 6 4 4 2 2 4 6 6 4 8 2 2 8 033 4 4 6 2 10 8 4 2 4 0 2 2 4 6 2 434 0 8 16 6 2 0 0 12 6 0 0 0 0 8 0 635 2 2 4 0 8 0 0 0 14 4 6 8 0 2 14 036 2 6 2 2 8 0 2 2 4 2 6 8 6 4 10 037 2 2 12 4 2 4 4 10 4 4 2 6 0 2 2 438 0 6 2 2 2 0 2 2 4 6 4 4 4 6 10 1039 6 2 2 4 12 6 4 8 4 0 2 4 2 4 4 03A 6 4 6 4 6 8 0 6 2 2 6 2 2 6 4 03B 2 6 4 0 0 2 4 6 4 6 8 6 4 4 6 23C 0 10 4 0 12 0 4 2 6 0 4 12 4 4 2 03D 0 8 6 2 2 6 0 8 4 4 0 4 0 12 4 43E 4 8 2 2 2 4 4 14 4 2 0 2 0 8 4 43F 4 8 4 2 4 0 2 4 4 2 4 8 8 6 2 2

Tabla 18: Tabla de probabilidades de XOR de salida en funcion de la entrada XOR para la cajaS1

24

Page 25: Fundamentos del criptoanálisis diferencial

XOR de entrada XOR de salida0 1 2 3 4 5 6 7 8 9 A B C D E F

0 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 0 0 0 4 0 2 6 4 0 14 8 6 8 4 6 22 0 0 0 2 0 4 6 4 0 0 4 6 10 10 12 63 4 8 4 8 4 6 4 2 4 2 2 4 6 2 0 44 0 0 0 0 0 6 0 14 0 6 10 4 10 6 4 45 2 0 4 8 2 4 6 6 2 0 8 4 2 4 10 26 0 12 6 4 6 4 6 2 2 10 2 8 2 0 0 07 4 6 6 4 2 4 4 2 6 4 2 4 4 6 0 68 0 0 0 4 0 4 0 8 0 10 16 6 6 0 6 49 14 2 4 10 2 8 2 6 2 4 0 0 2 2 2 4A 0 6 6 2 10 4 10 2 6 2 2 4 2 2 4 2B 6 2 2 0 2 4 6 2 10 2 0 6 6 4 4 8C 0 0 0 4 0 14 0 10 0 6 2 4 4 8 6 6D 6 2 6 2 10 2 0 4 0 10 4 2 8 2 2 4E 0 6 12 8 0 4 2 0 8 2 4 4 6 2 0 6F 0 8 2 0 6 6 8 2 4 4 4 6 8 0 4 210 0 0 0 8 0 4 10 2 0 2 8 10 0 10 6 411 6 6 4 6 4 0 6 4 8 2 10 2 2 4 0 012 0 6 2 6 2 4 12 4 6 4 0 4 4 6 2 213 4 0 4 0 8 6 6 0 0 2 0 6 4 8 2 1414 0 6 6 4 10 0 2 12 6 2 2 2 4 4 2 215 6 8 2 0 8 2 0 2 2 2 2 2 2 14 10 216 0 8 6 4 2 2 4 2 6 4 6 2 6 0 6 617 6 4 8 6 4 4 0 4 6 2 4 4 4 2 4 218 0 6 4 6 10 4 0 2 4 8 0 0 4 8 2 619 2 4 6 4 4 2 4 2 6 4 6 8 0 6 4 21A 0 6 8 4 2 4 2 2 8 2 2 6 2 4 4 81B 0 6 4 4 0 12 6 4 2 2 2 4 4 2 10 21C 0 4 6 6 12 0 4 0 10 2 6 2 0 0 10 21D 0 6 2 2 6 0 4 16 4 4 2 0 0 4 6 81E 0 4 8 2 10 6 6 0 8 4 0 2 4 4 0 61F 4 2 6 6 2 2 2 4 8 6 10 6 4 0 0 220 0 0 0 2 0 12 10 4 0 0 0 2 14 2 8 1021 0 4 6 8 2 10 4 2 2 6 4 2 6 2 0 622 4 12 8 4 2 2 0 0 2 8 8 6 0 6 0 223 8 2 0 2 8 4 2 6 4 8 2 2 6 4 2 424 10 4 0 0 0 4 0 2 6 8 6 10 8 0 2 425 6 0 12 2 8 6 10 0 0 8 2 6 0 0 2 226 2 2 4 4 2 2 10 14 2 0 4 2 2 4 6 427 6 0 0 2 6 4 2 4 4 4 8 4 8 0 6 628 8 0 8 2 4 12 2 0 2 6 2 0 6 2 0 1029 0 2 4 10 2 8 6 4 0 10 0 2 10 0 2 42A 4 0 4 8 6 2 4 4 6 6 2 6 2 2 4 42B 2 2 6 4 0 2 2 6 2 8 8 4 4 4 8 22C 10 6 8 6 0 6 4 4 4 2 4 4 0 0 2 42D 2 2 2 4 0 0 0 2 8 4 4 6 10 2 14 42E 2 4 0 2 10 4 2 0 2 2 6 2 8 8 10 22F 12 4 6 8 2 6 2 8 0 4 0 2 0 8 2 030 0 4 0 2 4 4 8 6 10 6 2 12 0 0 0 631 0 10 2 0 6 2 10 2 6 0 2 0 6 6 4 832 8 4 6 0 6 4 4 8 4 6 8 0 2 2 2 033 2 2 6 10 2 0 0 6 4 4 12 8 4 2 2 034 0 12 6 4 6 0 4 4 4 0 4 6 4 2 4 435 0 12 4 6 2 4 4 0 10 0 0 8 0 8 0 636 8 2 4 0 4 0 4 2 0 8 4 2 6 16 2 237 6 2 2 2 6 6 4 8 2 2 6 2 2 2 4 838 0 8 8 10 6 2 2 0 4 0 4 2 4 0 4 1039 0 2 0 0 8 0 10 4 10 0 8 4 4 4 4 63A 4 0 2 8 4 2 2 2 4 8 2 0 4 10 10 23B 16 4 4 2 8 2 2 6 4 4 4 2 0 2 2 23C 0 2 6 2 8 4 6 0 10 2 2 4 4 10 4 03D 0 16 10 2 4 2 4 2 8 0 0 8 0 6 2 03E 4 4 0 10 2 4 2 14 4 2 6 6 0 0 6 03F 4 0 0 2 0 8 2 4 0 2 4 4 4 14 10 6

Tabla 19: Tabla de probabilidades de XOR de salida en funcion de la entrada XOR para la cajaS2

25

Page 26: Fundamentos del criptoanálisis diferencial

XOR de entrada XOR de salida0 1 2 3 4 5 6 7 8 9 A B C D E F

0 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 0 0 0 2 0 4 2 12 0 14 0 4 8 2 6 102 0 0 0 2 0 2 0 8 0 4 12 10 4 6 8 83 8 6 10 4 8 6 0 6 4 4 0 0 0 4 2 24 0 0 0 4 0 2 4 2 0 12 8 4 6 8 10 45 6 2 4 8 6 10 6 2 2 8 2 0 2 0 4 26 0 10 6 6 10 0 4 12 2 4 0 0 6 4 0 07 2 0 0 4 4 4 4 2 10 4 4 8 4 4 4 68 0 0 0 10 0 4 4 6 0 6 6 6 6 0 8 89 10 2 0 2 10 4 6 2 0 6 0 4 6 2 4 6A 0 10 6 0 14 6 4 0 4 6 6 0 4 0 2 2B 2 6 2 10 2 2 4 0 4 2 6 0 2 8 14 0C 0 0 0 8 0 12 12 4 0 8 0 4 2 10 2 2D 8 2 8 0 0 4 2 0 2 8 14 2 6 2 4 2E 0 4 4 2 4 2 4 4 10 4 4 4 4 4 2 8F 4 6 4 6 2 2 4 8 6 2 6 2 0 6 2 410 0 0 0 4 0 12 4 8 0 4 2 6 2 14 0 811 8 2 2 6 4 0 2 0 8 4 12 2 10 0 2 212 0 2 8 2 4 8 0 8 8 0 2 2 4 2 14 013 4 4 12 0 2 2 2 10 2 2 2 2 4 4 4 814 0 6 4 4 6 4 6 2 8 6 6 2 2 0 0 815 4 8 2 8 2 4 8 0 4 2 2 2 2 6 8 216 0 6 10 2 8 4 2 0 2 2 2 8 4 6 4 417 0 6 6 0 6 2 4 4 6 2 2 10 6 8 2 018 0 8 4 6 6 0 6 2 4 0 4 2 10 0 6 619 4 2 4 8 4 2 10 2 2 2 6 8 2 6 0 21A 0 8 6 4 4 0 6 4 4 8 0 10 2 2 2 41B 4 10 2 0 2 4 2 4 8 2 2 8 4 2 8 21C 0 6 8 8 4 2 8 0 12 0 10 0 4 0 2 01D 0 2 0 6 2 8 4 6 2 0 4 2 4 10 0 141E 0 4 8 2 4 6 0 4 10 0 2 6 4 8 4 21F 0 6 8 0 10 6 4 6 4 2 2 10 4 0 0 220 0 0 0 0 0 4 4 8 0 2 2 4 10 16 12 221 10 8 8 0 8 4 2 4 0 6 6 6 0 0 2 022 12 6 4 4 2 4 10 2 0 4 4 2 4 4 0 223 2 2 0 6 0 2 4 0 4 12 4 2 6 4 8 824 4 8 2 12 6 4 2 10 2 2 2 4 2 0 4 025 6 0 2 0 8 2 0 2 8 8 2 2 4 4 10 626 6 2 0 4 4 0 4 0 4 2 14 0 8 10 0 627 0 2 4 16 8 6 6 6 0 2 4 4 0 2 2 228 6 2 10 0 6 4 0 4 4 2 4 8 2 2 8 229 0 2 8 4 0 4 0 6 4 10 4 8 4 4 4 22A 2 6 0 4 2 4 4 6 4 8 4 4 4 2 4 62B 10 2 6 6 4 4 8 0 4 2 2 0 2 4 4 62C 10 4 6 2 4 2 2 2 4 10 4 4 0 2 6 22D 4 2 4 4 4 2 4 16 2 0 0 4 4 2 6 62E 4 0 2 10 0 6 10 4 2 6 6 2 2 0 2 82F 8 2 0 0 4 4 4 2 6 4 6 2 4 8 4 630 0 10 8 6 2 0 4 2 10 4 4 6 2 0 6 031 2 6 2 0 4 2 8 8 2 2 2 0 2 12 6 632 2 0 4 8 2 8 4 4 8 4 2 8 6 2 0 233 4 4 6 8 6 6 0 2 2 2 6 4 12 0 0 234 0 6 2 2 16 2 2 2 12 2 4 0 4 2 0 835 4 6 0 10 8 0 2 2 6 0 0 6 2 10 2 636 4 4 4 4 0 6 6 4 4 4 4 4 0 6 2 837 4 8 2 4 2 2 6 0 2 4 8 4 10 0 6 238 0 8 12 0 2 2 6 6 2 10 2 2 0 8 0 439 2 6 4 0 6 4 6 4 8 0 4 4 2 4 8 23A 6 0 2 2 4 6 4 4 4 2 2 6 12 2 6 23B 2 2 6 0 0 10 4 8 4 2 4 8 4 4 0 63C 0 2 4 2 12 2 0 6 2 0 2 8 4 6 4 103D 4 6 8 6 2 2 2 2 10 2 6 6 2 4 2 03E 8 6 4 4 2 10 2 0 2 2 4 2 4 2 10 23F 2 6 4 0 0 10 8 2 2 8 6 4 6 2 0 4

Tabla 20: Tabla de probabilidades de XOR de salida en funcion de la entrada XOR para la cajaS3

26

Page 27: Fundamentos del criptoanálisis diferencial

XOR de entrada XOR de salida0 1 2 3 4 5 6 7 8 9 A B C D E F

0 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 0 0 0 0 0 16 16 0 0 16 16 0 0 0 0 02 0 0 0 8 0 4 4 8 0 4 4 8 8 8 8 03 8 6 2 0 2 4 8 2 6 0 4 6 0 6 2 84 0 0 0 8 0 0 12 4 0 12 0 4 8 4 4 85 4 2 2 8 2 12 0 2 2 0 12 2 8 2 2 46 0 8 8 4 8 8 0 0 8 0 8 0 4 0 0 87 4 2 6 4 6 0 16 6 2 0 0 2 4 2 6 48 0 0 0 4 0 8 4 8 0 4 8 8 4 8 8 09 8 4 4 4 4 0 8 4 4 0 0 4 4 4 4 8A 0 6 6 0 6 4 4 6 6 4 4 6 0 6 6 0B 0 12 0 8 0 0 0 0 12 0 0 12 8 12 0 0C 0 0 0 4 0 8 4 8 0 4 8 8 4 8 8 0D 8 4 4 4 4 0 0 4 4 8 0 4 4 4 4 8E 0 6 6 4 6 0 4 6 6 4 0 6 4 6 6 0F 0 6 6 4 6 4 0 6 6 0 4 6 4 6 6 010 0 0 0 0 0 8 12 4 0 12 8 4 0 4 4 811 4 2 2 16 2 4 0 2 2 0 4 2 16 2 2 412 0 0 0 8 0 4 4 8 0 4 4 8 8 8 8 013 8 2 6 0 6 4 0 6 2 8 4 2 0 2 6 814 0 8 8 0 8 0 8 0 8 8 0 0 0 0 0 1615 8 4 4 0 4 8 0 4 4 0 8 4 0 4 4 816 0 8 8 4 8 8 0 0 8 0 8 0 4 0 0 817 4 6 2 4 2 0 0 2 6 16 0 6 4 6 2 418 0 8 8 8 8 4 0 0 8 0 4 0 8 0 0 819 4 4 4 0 4 4 16 4 4 0 4 4 0 4 4 41A 0 6 6 4 6 0 4 6 6 4 0 6 4 6 6 01B 0 6 6 4 6 4 0 6 6 0 4 6 4 6 6 01C 0 8 8 8 8 4 0 0 8 0 4 0 8 0 0 81D 4 4 4 0 4 4 0 4 4 16 4 4 0 4 4 41E 0 6 6 0 6 4 4 6 6 4 4 6 0 6 6 01F 0 0 12 8 12 0 0 12 0 0 0 0 8 0 12 020 0 0 0 8 0 0 0 12 0 0 0 12 8 12 12 021 0 4 8 0 8 4 8 8 4 0 4 4 0 4 8 022 8 2 2 0 2 4 8 6 2 8 4 6 0 6 6 023 4 6 2 8 2 4 0 2 6 0 4 6 8 6 2 424 0 6 6 4 6 4 0 6 6 0 4 6 4 6 6 025 0 8 4 4 4 0 0 4 8 8 0 8 4 8 4 026 0 6 6 0 6 4 8 2 6 8 4 2 0 2 2 827 4 6 2 8 2 4 0 2 6 0 4 6 8 6 2 428 16 4 4 0 4 4 4 4 4 4 4 4 0 4 4 029 0 6 2 8 2 4 0 2 6 8 4 6 8 6 2 02A 0 2 2 16 2 4 4 2 2 4 4 2 16 2 2 02B 8 0 4 0 4 8 16 4 0 0 8 0 0 0 4 82C 8 4 4 4 4 0 8 4 4 8 0 4 4 4 4 02D 4 2 6 4 6 8 0 6 2 0 8 2 4 2 6 42E 16 0 0 0 0 16 0 0 0 0 16 0 0 0 0 162F 16 0 0 0 0 0 16 0 0 16 0 0 0 0 0 1630 0 6 6 4 6 4 0 6 6 0 4 6 4 6 6 031 0 8 4 4 4 0 0 4 8 8 0 8 4 8 4 032 16 6 6 4 6 0 4 2 6 4 0 2 4 2 2 033 0 2 6 4 6 8 8 6 2 0 8 2 4 2 6 034 0 12 12 8 12 0 0 0 12 0 0 0 8 0 0 035 0 4 8 0 8 4 8 8 4 0 4 4 0 4 8 036 0 2 2 4 2 0 4 6 2 4 0 6 4 6 6 1637 0 2 6 4 6 8 8 6 2 0 8 2 4 2 6 038 0 4 4 0 4 4 4 4 4 4 4 4 0 4 4 1639 0 6 2 8 2 4 0 2 6 8 4 6 8 6 2 03A 0 4 4 0 4 8 8 4 4 8 8 4 0 4 4 03B 16 4 4 0 4 0 0 4 4 0 0 4 0 4 4 163C 0 4 4 4 4 0 8 4 4 8 0 4 4 4 4 83D 4 2 6 4 6 8 0 6 2 0 8 2 4 2 6 43E 0 2 2 8 2 12 4 2 2 4 12 2 8 2 2 03F 8 4 0 8 0 0 0 0 4 16 0 4 8 4 0 8

Tabla 21: Tabla de probabilidades de XOR de salida en funcion de la entrada XOR para la cajaS4

27

Page 28: Fundamentos del criptoanálisis diferencial

XOR de entrada XOR de salida0 1 2 3 4 5 6 7 8 9 A B C D E F

0 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 0 0 0 4 0 10 8 6 0 4 2 2 12 10 2 42 0 0 0 4 0 10 6 4 0 6 4 2 4 8 10 63 8 2 4 6 4 4 2 2 6 8 6 4 4 0 2 24 0 0 0 8 0 4 10 6 0 6 6 4 8 6 0 65 12 2 0 4 0 4 8 2 4 0 16 2 0 2 0 86 0 8 4 6 4 6 2 2 4 4 6 0 6 0 2 107 2 0 4 8 4 2 6 6 2 8 6 2 2 0 6 68 0 0 0 2 0 8 10 4 0 4 10 4 8 4 4 69 8 6 0 4 0 6 6 2 2 10 2 8 6 2 0 2A 0 6 8 6 0 8 0 0 8 10 4 2 8 0 0 4B 4 2 2 4 8 10 6 4 2 6 2 2 6 2 2 2C 0 0 0 10 0 2 10 2 0 6 10 6 6 6 2 4D 10 4 2 2 0 6 16 0 0 2 10 2 2 4 0 4E 0 6 4 8 4 6 10 2 4 4 4 2 4 0 2 4F 4 4 0 8 0 2 0 2 8 2 4 2 8 4 4 1210 0 0 0 0 0 4 4 12 0 2 8 10 4 6 12 211 6 6 10 10 4 0 2 6 2 4 0 6 2 4 2 012 0 2 4 2 10 4 0 10 8 6 0 6 0 6 6 013 0 0 6 2 8 0 0 4 4 6 2 8 2 8 10 414 0 12 2 6 4 0 4 4 8 4 4 4 6 2 4 015 4 8 0 2 8 0 2 4 2 2 4 2 4 8 8 616 0 6 10 2 14 0 2 2 4 4 0 6 0 4 6 417 0 6 8 4 8 4 0 2 8 4 0 2 2 8 6 218 0 10 8 0 6 4 0 4 4 4 6 4 4 4 0 619 0 4 6 2 4 4 2 6 4 2 2 4 12 2 10 01A 0 2 16 2 12 2 0 6 4 0 0 4 0 4 4 81B 2 8 12 0 0 2 2 6 8 4 0 6 0 0 8 61C 0 10 2 6 6 6 6 4 8 2 0 4 4 4 2 01D 4 6 2 0 8 2 4 6 6 0 8 6 2 4 2 41E 0 2 6 2 4 0 0 2 12 2 2 6 2 10 10 41F 0 6 8 4 8 8 0 6 6 2 0 6 0 6 2 220 0 0 0 8 0 8 2 6 0 4 4 4 6 6 8 821 0 0 0 6 6 2 6 4 6 10 14 4 0 0 4 222 14 4 0 10 0 2 12 2 2 2 10 2 0 0 2 223 2 0 0 4 2 2 10 4 0 8 8 2 6 8 0 824 6 2 8 4 4 4 6 2 2 6 6 2 6 2 2 225 6 0 0 8 2 8 2 6 6 4 2 2 4 2 6 626 12 0 0 4 0 4 4 4 0 8 4 0 12 8 0 427 12 2 0 2 0 12 2 2 4 4 8 4 8 2 2 028 2 8 4 6 2 4 6 0 6 6 4 0 2 2 2 1029 6 4 6 8 8 4 6 2 0 0 2 2 10 0 2 42A 4 4 0 2 2 4 6 2 0 0 6 4 10 4 4 122B 4 6 2 6 0 0 12 2 0 4 12 2 6 4 0 42C 8 6 2 6 4 8 6 0 4 4 0 2 6 0 6 22D 4 4 0 4 0 6 4 2 4 12 0 4 4 6 4 62E 6 0 2 4 0 6 6 4 2 10 6 10 6 2 0 02F 10 4 0 2 2 6 10 2 0 2 2 4 6 2 2 1030 0 4 8 4 6 4 0 6 10 4 2 4 2 6 4 031 0 6 6 4 10 2 0 0 4 4 0 0 4 6 12 632 4 6 0 2 6 4 6 0 6 0 4 6 4 10 6 033 8 10 0 14 8 0 0 8 2 0 2 4 0 4 4 034 0 4 4 2 14 4 0 8 6 8 2 2 0 4 6 035 0 4 16 0 8 4 0 4 4 4 0 8 0 4 4 436 4 4 4 6 2 2 2 12 2 4 4 8 2 4 4 037 4 2 2 2 4 2 0 8 2 2 2 12 6 2 8 638 0 4 8 4 12 0 0 8 10 2 0 0 0 4 2 1039 0 8 12 0 2 2 2 2 12 4 0 8 0 4 4 43A 0 14 4 0 4 6 0 0 6 2 10 8 0 0 4 63B 0 2 2 2 4 4 8 6 8 2 2 2 6 14 2 03C 0 0 10 2 6 0 0 2 6 2 2 10 2 4 10 83D 0 6 12 2 4 8 0 8 8 2 2 0 2 2 4 43E 4 4 10 0 2 4 8 8 2 2 0 2 6 8 4 03F 8 6 6 0 4 2 2 4 4 2 8 6 2 4 6 0

Tabla 22: Tabla de probabilidades de XOR de salida en funcion de la entrada XOR para la cajaS5

28

Page 29: Fundamentos del criptoanálisis diferencial

XOR de entrada XOR de salida0 1 2 3 4 5 6 7 8 9 A B C D E F

0 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 0 0 0 6 0 2 6 2 0 4 2 4 6 16 14 22 0 0 0 2 0 10 6 10 0 2 4 8 6 6 8 23 0 8 0 8 0 6 4 6 4 4 4 12 2 4 2 04 0 0 0 8 0 0 8 0 0 6 8 10 2 4 10 85 10 2 4 4 4 8 8 4 2 2 0 4 0 8 0 46 0 8 4 4 8 4 2 2 12 0 2 6 6 2 2 27 6 6 4 0 2 10 2 2 2 2 6 6 8 0 6 28 0 0 0 6 0 2 16 4 0 2 6 2 4 12 6 49 10 4 2 6 0 2 6 2 4 0 8 6 4 4 2 4A 0 14 4 4 0 2 2 2 10 4 4 4 6 4 2 2B 4 6 2 0 2 2 12 8 2 2 2 6 8 2 0 6C 0 0 0 12 0 10 4 6 0 8 4 4 2 12 2 0D 12 0 2 10 6 4 4 2 4 2 6 0 2 6 0 4E 0 6 4 0 4 4 10 8 6 2 4 6 2 0 6 2F 2 2 2 2 6 2 6 2 10 4 8 2 6 4 4 210 0 0 0 8 0 8 0 12 0 4 2 6 8 4 6 611 6 2 6 4 6 2 6 4 6 6 4 2 4 0 6 012 0 8 4 2 0 4 2 0 4 10 6 2 8 6 4 413 6 6 12 0 12 2 0 6 6 2 0 4 0 2 4 214 0 4 6 2 8 6 0 2 6 10 4 0 2 4 6 415 2 2 6 6 4 4 2 6 2 6 8 4 4 0 4 416 0 4 14 6 8 4 2 6 2 0 2 0 4 2 0 1017 2 6 8 0 0 2 0 2 2 6 0 8 8 2 12 618 0 4 6 6 8 4 2 2 6 4 6 4 2 4 2 419 2 6 0 2 4 4 4 6 4 8 6 4 2 2 6 41A 0 6 6 0 8 2 4 6 4 2 4 6 2 0 4 101B 0 4 10 2 4 4 2 6 6 6 2 2 6 6 2 21C 0 0 8 2 12 2 6 2 8 6 6 2 4 0 4 21D 2 4 0 6 8 6 0 2 6 8 6 0 2 4 0 101E 0 10 8 2 8 2 0 2 6 4 2 4 6 4 2 41F 0 6 6 8 6 4 2 4 4 2 2 0 2 4 2 1220 0 0 0 0 0 6 6 4 0 4 8 8 4 6 10 821 2 8 6 8 4 4 6 6 8 4 0 4 0 2 2 022 16 2 4 6 2 4 2 0 6 4 8 2 0 2 2 423 0 4 0 4 4 6 10 4 2 2 6 2 4 6 6 424 10 8 0 6 12 6 10 4 8 0 0 0 0 0 0 025 0 2 4 2 0 4 4 0 4 0 10 10 4 10 6 426 2 2 0 12 2 2 6 2 4 4 8 0 6 6 8 027 8 4 0 8 2 4 2 4 0 6 2 4 4 8 2 628 6 8 4 6 0 4 2 2 4 8 2 6 4 2 2 429 2 4 4 0 8 8 6 8 6 4 0 4 4 4 2 02A 6 0 0 6 6 4 6 8 2 4 0 2 2 4 6 82B 12 0 4 0 0 4 2 2 2 6 10 6 10 2 4 02C 4 2 6 0 0 6 8 6 4 2 2 8 4 6 4 22D 6 2 2 6 6 4 4 2 6 2 4 8 4 2 4 22E 4 6 2 4 2 4 4 2 4 2 4 6 4 10 4 22F 10 0 4 8 0 6 6 2 0 4 4 2 6 2 2 830 0 12 8 2 0 6 0 0 6 6 0 2 8 2 6 631 2 6 10 4 2 2 2 4 6 0 2 6 0 2 4 1232 4 2 2 8 10 8 8 6 0 2 2 4 4 2 2 033 4 2 2 2 6 0 4 0 10 6 6 4 0 4 8 634 0 4 4 2 6 4 0 4 6 2 6 4 2 8 0 1235 6 12 4 2 4 2 2 4 8 2 2 0 6 4 4 236 0 2 2 4 4 4 4 0 2 10 12 4 0 10 4 237 10 2 2 6 14 2 2 6 2 0 4 6 2 0 4 238 0 4 14 0 8 2 0 4 4 4 2 0 8 2 4 839 2 4 8 0 6 2 0 6 2 6 4 2 8 6 2 63A 8 4 0 4 6 2 0 4 6 8 6 0 6 0 4 63B 0 4 6 6 2 2 2 14 0 12 0 4 2 2 8 03C 0 6 16 0 2 2 2 8 4 2 0 12 6 2 2 03D 0 6 2 2 2 6 8 2 4 2 6 2 6 2 4 103E 4 2 2 4 4 0 6 10 4 2 4 6 6 2 6 23F 0 4 6 6 4 8 4 0 4 8 4 0 4 8 2 2

Tabla 23: Tabla de probabilidades de XOR de salida en funcion de la entrada XOR para la cajaS6

29

Page 30: Fundamentos del criptoanálisis diferencial

XOR de entrada XOR de salida0 1 2 3 4 5 6 7 8 9 A B C D E F

0 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 0 0 0 2 0 4 4 14 0 12 4 6 2 6 6 42 0 0 0 0 0 12 2 2 0 4 0 4 8 12 6 143 8 2 12 2 6 8 6 0 6 4 4 2 2 0 0 24 0 0 0 8 0 4 4 8 0 8 8 12 2 6 2 25 6 0 0 2 8 0 8 4 0 2 6 0 10 6 6 66 0 2 12 0 8 4 8 2 4 4 4 2 6 0 6 27 4 6 4 12 0 4 2 0 0 14 2 6 4 0 0 68 0 0 0 8 0 0 6 10 0 4 12 4 6 6 0 89 10 8 4 8 6 2 2 0 2 6 8 2 0 6 0 0A 0 10 6 2 12 2 4 0 4 4 6 4 4 0 0 6B 0 2 2 2 4 8 6 4 4 0 4 2 6 4 2 14C 0 0 0 4 0 4 8 4 0 2 6 0 14 12 8 2D 6 6 2 4 2 6 4 6 6 4 8 8 0 2 0 0E 0 12 10 10 0 2 4 2 8 6 4 2 0 0 2 2F 2 0 0 0 6 8 8 0 6 2 4 6 8 0 6 810 0 0 0 4 0 2 8 6 0 6 4 10 8 4 8 411 6 10 10 4 4 2 0 4 4 0 2 8 4 2 2 212 0 0 8 8 2 8 2 8 6 4 2 8 0 0 8 013 4 4 2 2 8 6 0 2 2 2 0 4 6 8 14 014 0 8 6 2 8 8 2 6 4 2 0 2 8 6 0 215 4 4 8 2 4 0 4 10 8 2 4 4 4 2 0 416 0 6 10 2 2 2 2 4 10 8 2 2 0 4 10 017 8 2 4 2 6 4 0 6 4 4 2 2 0 4 8 818 0 16 2 2 6 0 6 0 6 2 8 0 6 0 2 819 0 8 0 2 4 4 10 4 8 0 6 4 2 6 2 41A 0 2 4 8 12 4 0 6 4 4 0 2 0 6 4 81B 0 6 2 6 4 2 4 4 6 4 8 4 2 0 10 21C 0 8 4 4 2 6 6 6 6 4 6 8 0 2 0 21D 4 4 4 0 0 2 4 2 4 2 2 4 10 10 8 41E 0 0 2 2 12 6 2 0 12 2 2 4 2 6 8 41F 2 2 10 14 2 4 2 4 4 6 0 2 4 8 0 020 0 0 0 14 0 8 4 2 0 4 2 8 2 6 0 1421 4 2 6 2 12 2 4 0 6 4 10 2 4 2 2 222 10 6 0 2 4 4 10 0 4 0 12 2 8 0 0 223 0 6 2 2 2 4 6 10 0 4 8 2 2 6 0 1024 4 2 0 6 8 2 6 0 8 2 2 0 8 2 12 225 2 0 2 16 2 4 6 4 6 8 2 4 0 6 0 226 6 10 0 10 0 6 4 4 2 2 4 6 2 4 2 227 4 0 2 0 2 2 14 0 4 6 6 2 12 2 4 428 14 4 6 4 4 6 2 0 6 6 2 2 4 0 2 229 2 2 0 2 0 8 4 2 4 6 4 4 6 4 12 42A 2 4 0 0 0 2 8 12 0 8 2 4 8 4 4 62B 16 6 2 4 6 10 2 2 2 2 2 2 4 2 2 02C 2 6 6 8 2 2 0 6 0 8 4 2 2 6 8 22D 6 2 4 2 8 8 2 8 2 4 4 0 2 0 8 42E 2 4 8 0 2 2 2 4 0 2 8 4 14 6 0 62F 2 2 2 8 0 2 2 6 4 6 8 8 6 2 0 630 0 6 8 2 8 4 4 0 10 4 4 6 0 0 2 631 0 8 4 0 6 2 2 6 6 0 0 2 6 4 8 1032 2 4 0 0 6 4 10 6 6 4 6 2 4 6 2 233 0 16 6 8 2 0 2 2 4 2 8 4 0 4 6 034 0 4 14 8 2 2 2 4 16 2 2 2 0 2 0 435 0 6 0 0 10 8 2 2 6 0 0 8 6 4 4 836 2 0 2 2 4 6 4 4 2 2 4 2 4 16 10 037 6 6 6 8 4 2 4 4 4 0 6 8 2 4 0 038 0 2 2 2 8 8 0 2 2 2 0 6 6 4 10 1039 4 4 16 8 0 6 4 2 4 4 2 6 0 2 2 03A 16 6 4 0 2 0 2 6 0 4 8 10 0 0 4 23B 2 0 0 2 0 4 4 4 2 6 2 6 6 12 12 23C 0 0 8 0 12 8 2 6 6 4 0 2 2 4 6 43D 2 4 12 2 2 2 0 4 6 10 2 6 4 2 0 63E 4 6 6 6 2 0 4 8 2 10 4 6 0 4 2 03F 14 0 0 0 8 0 6 8 4 2 0 0 4 8 4 6

Tabla 24: Tabla de probabilidades de XOR de salida en funcion de la entrada XOR para la cajaS7

30

Page 31: Fundamentos del criptoanálisis diferencial

XOR de entrada XOR de salida0 1 2 3 4 5 6 7 8 9 A B C D E F

0 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 0 0 0 6 0 16 10 0 0 0 6 0 14 6 2 42 0 0 0 8 0 10 4 2 0 10 2 4 8 8 6 23 6 0 2 8 2 6 4 0 6 6 6 2 2 0 8 64 0 0 0 2 0 4 6 12 0 6 8 4 10 4 8 05 4 10 6 0 0 2 6 0 4 10 4 6 8 2 0 26 0 0 10 4 6 4 4 8 2 6 4 2 4 2 2 67 6 2 8 2 8 10 6 6 4 2 0 4 0 0 0 68 0 0 0 4 0 6 4 2 0 8 6 10 8 2 2 129 8 4 0 6 0 4 4 6 2 4 6 2 12 2 0 4A 0 0 16 4 6 6 4 0 4 6 4 2 2 0 0 10B 2 8 0 6 2 6 0 4 4 10 0 2 10 2 6 2C 0 0 0 2 0 10 10 6 0 6 6 6 2 6 10 0D 6 0 4 10 2 0 8 6 2 2 6 10 2 2 2 2E 0 0 6 8 4 8 0 2 10 6 2 4 6 2 4 2F 8 0 4 2 2 4 2 2 2 6 4 6 0 2 14 610 0 0 0 4 0 0 8 12 0 0 8 8 2 10 6 611 0 6 4 6 2 2 6 6 4 6 4 6 0 4 4 412 0 4 0 8 6 2 8 4 2 4 4 6 2 4 10 013 4 2 2 6 8 6 2 2 14 2 2 4 2 2 2 414 0 16 4 2 6 0 2 6 4 0 4 6 4 6 4 015 0 10 6 0 6 0 2 8 2 2 0 8 2 6 6 616 0 12 6 4 6 0 0 0 8 6 6 2 2 6 4 217 0 6 8 0 6 2 4 6 6 0 2 6 4 4 2 818 0 12 2 2 8 0 8 0 10 4 4 2 4 2 0 619 6 4 8 0 8 0 4 2 0 0 12 2 4 6 2 61A 0 4 6 2 8 8 0 4 8 0 0 0 6 2 0 161B 2 4 8 10 2 4 2 8 2 4 8 2 0 2 4 21C 0 12 6 4 6 4 2 2 6 0 4 4 2 10 2 01D 8 6 0 0 10 0 0 8 10 4 2 2 2 8 4 01E 0 4 8 6 8 2 4 4 10 2 2 4 2 0 6 21F 4 2 4 2 6 2 4 0 2 6 2 2 2 16 8 220 0 0 0 16 0 4 0 0 0 14 6 4 2 0 4 1421 0 0 2 10 2 8 10 0 0 6 6 0 10 2 2 622 8 0 6 0 6 4 10 2 0 6 8 0 4 4 2 423 4 8 0 6 0 4 8 6 2 2 10 4 8 0 0 224 4 0 4 8 4 6 2 4 8 6 2 0 0 4 4 825 0 4 6 8 2 8 8 0 4 2 4 4 2 2 6 426 2 6 0 6 4 4 4 6 6 0 4 4 10 4 2 227 6 6 0 0 2 2 6 2 4 4 6 10 2 6 2 628 10 2 6 2 4 12 12 0 2 2 4 0 0 0 2 629 4 0 0 14 2 10 4 2 8 6 4 0 4 2 2 22A 8 8 0 2 0 2 4 0 2 6 8 14 2 8 0 02B 2 2 0 0 4 2 10 4 6 2 4 0 6 4 8 102C 2 6 6 2 4 6 2 0 2 6 4 0 6 4 10 42D 8 0 4 4 6 2 0 0 6 8 2 4 6 4 4 62E 6 2 2 4 2 2 6 12 4 0 4 2 8 8 0 22F 8 12 4 6 6 4 2 2 2 2 4 2 2 4 0 430 0 4 6 2 10 2 2 2 4 8 0 0 8 4 6 631 4 6 8 0 4 6 0 4 4 6 10 2 2 4 4 032 6 6 6 2 4 6 0 2 0 6 8 2 2 6 6 233 6 6 4 2 4 0 0 10 2 2 0 6 8 4 0 1034 0 2 12 4 10 4 0 4 12 0 2 4 2 2 2 435 6 4 4 0 10 0 0 4 10 0 0 4 2 8 8 436 4 6 2 2 2 2 6 8 6 4 2 6 0 4 10 037 2 2 8 2 4 4 4 2 6 2 0 10 6 10 2 038 0 4 8 4 2 6 6 2 4 2 2 4 6 4 4 639 4 4 4 8 0 6 0 6 4 8 2 2 2 4 8 23A 8 8 0 4 2 0 10 4 0 0 0 4 8 6 8 23B 8 2 6 4 4 4 4 0 6 4 4 6 4 4 4 03C 0 6 6 6 6 0 0 8 8 2 4 8 4 2 4 03D 2 2 8 0 10 0 2 12 0 4 0 8 0 2 6 83E 6 4 0 0 4 4 0 10 6 2 6 12 2 4 0 43F 0 6 6 0 4 4 6 10 0 6 8 2 0 4 8 0

Tabla 25: Tabla de probabilidades de XOR de salida en funcion de la entrada XOR para la cajaS8

31

Page 32: Fundamentos del criptoanálisis diferencial

Lista de tablas

1. Porcentaje de entradas validas para las tablas de distribucion de las cajas S . . . . 72. Valores posible de clave para S1E = 1x, S1∗E = 35x, S1′O = Dx . . . . . . . . . . . 83. Valores posibles de clave para 34x → 2x con entradas 27x y 13x . . . . . . . . . . . 84. Valores posibles de clave para 34x → 8x con entradas 3Ax y Ex . . . . . . . . . . . 85. Valores posibles de clave para 34x → 4x con entradas 30x y 4x . . . . . . . . . . . 96. Valores posibles de clave para 35x → Ex con entradas 30x y 5x . . . . . . . . . . . 97. Bits privados y XOR de entrada correspondiente para cada par de bits . . . . . . . 118. Caracterısticas de 1 vuelta para DES(valores en hexadecimal) . . . . . . . . . . . . 129. Bits conocidos en la quinta vuelta de cifrado . . . . . . . . . . . . . . . . . . . . . . 1910. S1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2211. S2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2212. S3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2213. S4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2214. S5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2215. S6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2316. S7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2317. S8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2318. Tabla de probabilidades de XOR de salida en funcion de la entrada XOR para la

caja S1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2419. Tabla de probabilidades de XOR de salida en funcion de la entrada XOR para la

caja S2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2520. Tabla de probabilidades de XOR de salida en funcion de la entrada XOR para la

caja S3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2621. Tabla de probabilidades de XOR de salida en funcion de la entrada XOR para la

caja S4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2722. Tabla de probabilidades de XOR de salida en funcion de la entrada XOR para la

caja S5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2823. Tabla de probabilidades de XOR de salida en funcion de la entrada XOR para la

caja S6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2924. Tabla de probabilidades de XOR de salida en funcion de la entrada XOR para la

caja S7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3025. Tabla de probabilidades de XOR de salida en funcion de la entrada XOR para la

caja S8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

Lista de figuras

1. Criptografıa de clave secreta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22. Esquema del algoritmo de cifrado DES . . . . . . . . . . . . . . . . . . . . . . . . . 33. Esquema de la funcion F vinculada a cada etapa de cifrado del algoritmo DES . . 44. Generacion de subclaves en DES . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55. Esquema de funcionamiento del criptoanalisis diferencial aplicado a una vuelta de

cifrado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66. Notacion para la funcion F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97. Caracterıstica de 1 vuelta con probabilidad 1 . . . . . . . . . . . . . . . . . . . . . 118. Caracterısticas de dos vueltas para DES . . . . . . . . . . . . . . . . . . . . . . . . 129. Caracterısticas de 3 vueltas para DES . . . . . . . . . . . . . . . . . . . . . . . . . 1410. DES reducido a 4 rondas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1511. Caracterıstica de una 1 vuelta con probabilidad 1 para criptoanalisis DES de 4 rondas 1612. Caracterıstica de 3 vueltas y probabilidad 1/16 para DES: criptoanalisis de DES

reducido a 6 vueltas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1713. Segunda caracterıstica de 3 vueltas: criptoanalisis de DES reducido a 6 vueltas . . 1814. Caracterıstica iterativa para criptoanalisis de n vueltas . . . . . . . . . . . . . . . . 19

Referencias

[1] E. Biham, A. Shamir, Differential Cryptanalysis of the Data Encryption Standard, Springer-Verlag, New York, 1993

32