SlideShare una empresa de Scribd logo
1 de 32
Descargar para leer sin conexión
Introducci´n al criptoan´lisis diferencial
                            o             a
                                     David Arroyo Guarde˜o
                                                        n


´
Indice

´
Indice                                                                                                                                      1

1. Introducci´n
             o                                                                                                                              2

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

3. Fundamentos del criptoan´lisis diferencial
                                   a                                                                                                        5
   3.1. An´lisis de las cajas S . . . . . . . . . . . . . . . . . . . . . . . .
           a                                                                                       . . . . . .             . .     .   .    6
        3.1.1. Determinaci´n de la clave asociada a una caja S . . . . .
                             o                                                                     . . . . . .             . .     .   .    7
   3.2. An´lisis de la funci´n F . . . . . . . . . . . . . . . . . . . . . . .
           a                 o                                                                     . . . . . .             . .     .   .    9
        3.2.1. M´todo para la determinaci´n de la subclave empleada en
                  e                           o                                                    un bloque               F.      .   .   10
   3.3. An´lisis del encadenado de funciones F . . . . . . . . . . . . . . .
           a                                                                                       . . . . . .             . .     .   .   10
        3.3.1. Caracter´ ısticas de 1 vuelta . . . . . . . . . . . . . . . . . .                   . . . . . .             . .     .   .   10
        3.3.2. Caracter´ ısticas de 2 vueltas . . . . . . . . . . . . . . . . .                    . . . . . .             . .     .   .   12
        3.3.3. Definici´n formal de caracter´
                        o                       ıstica . . . . . . . . . . . . .                   . . . . . .             . .     .   .   12
        3.3.4. Caracter´ ısticas de 3 vueltas . . . . . . . . . . . . . . . . .                    . . . . . .             . .     .   .   13
        3.3.5. Esquema de conteo . . . . . . . . . . . . . . . . . . . . . .                       . . . . . .             . .     .   .   14

4. Criptoan´lisis de DES
             a                                                                                                                             15
   4.1. Criptoan´lisis de DES reducido a cuatro vueltas
                a                                              .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   15
   4.2. DES reducido a 6 vueltas . . . . . . . . . . . . .     .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   16
   4.3. DES con un n´mero arbitrario de vueltas . . . .
                      u                                        .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   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
1.      Introducci´n
                  o
    En el presente documento se lleva a cabo un estudio introductorio de la t´cnica de cripton´lisis
                                                                              e               a
diferencial. Dado que dicha t´cnica fue propuesta para criptoanalizar el algoritmo DES, toda la
                              e
exposici´n se centrar´ en este tipo de cifra sim´trica. En un primer punto se muestran los aspectos
        o            a                          e
fundamentales de DES, para posteriormente esbozar las l´     ıneas fundamentales del criptoan´lisis
                                                                                              a
diferencial. Cabe destacar que la meta esencial de la presente exposici´n no es sino mostrar las
                                                                         o
ideas fundamentales de esta t´cnica de criptoan´lisis, m´s que llevar a cabo un criptoan´lisis de
                               e                   a       a                               a
DES.


2.      Algoritmo de cifrado DES
     El la criptograf´ moderna los distintos sistemas de cifrado se clasifican en dos grandes grupos:
                     ıa

  1. Sistemas de clave secreta o sim´tricos
                                    e
  2. Sistemas de clave p´blica o asim´tricos
                        u            e
La diferencia entre estas dos variantes de cifrado radica en el hecho de que la clave de cifrado sea
igual o distinta de la clave descifrado. En el caso de los sistemas sim´tricos de cifrado, se hace uso
                                                                       e
de la misma clave a la hora de cifrar y de descifrar (figura 1).


                                                      Clave
                                                      Clave




                           Texto claro            Texto cifrado               Texto claro
                                         Cifrar
                                         Cifrar                   Descifrar
                                                                  Descifrar




                                  Figura 1: Criptograf´ de clave secreta
                                                      ıa

    Adem´s, dentro de los sistemas de clave secreta se habla de cifrado en flujo y de cifrado en
          a
bloque. En el cifrado en flujo se efect´a un cifrado bit a bit, mientras que en el cifrado en bloque
                                          u
se divide el texto claro, esto es, la informaci´n a cifrar, en bloques de un n´mero constante de bits.
                                               o                              u
A cada uno de estos bloque se le aplica el cifrado. El bloque de texto cifrado correspondiente a un
determinado bloque de texto claro es siempre el mismo, siempre que la clave no sea modificada.
Como se dijo en la introducci´n, el algoritmo con el que se trabajar´ es el DES. El DES pertenece al
                               o                                       a
sistema de cifrado sim´trico y es un algoritmo de cifra en bloque. Como todos los cifrado en bloque,
                        e
el DES se apoya en los conceptos de confusi´n y difusi´n inicialmente propuestos por Shannon:
                                                o           o

       La confusi´n consiste en tratar de ocultar la relaci´n que existe entre el texto claro, el texto
                   o                                       o
       cifrado y la clave.
       La difusi´n trata de repartir la influencia de cada bit del mensaje original lo m´s posible
                 o                                                                     a
       entre el mensaje cifrado.
La confusi´n por s´ sola ser´ suficiente. Basta generar una tabla de sustituci´n completamente
           o       ı         ıa                                                 o
diferente para cada clave con todos los textos claros posibles. Dichas tablas ocupar´ cantidades
                                                                                    ıan
astron´micas de memoria, por lo que en la pr´ctica ser´ inviable su manejo. Por ejemplo, un
       o                                        a         ıan
algoritmo que codificara bloques de 128 bits empleando una clave de 80 bits necesitar´ una tabla
                                                                                      ıa
de aproximadamente 1063 entradas. Lo que en realidad se hace para conseguir algoritmos fuertes,
sin necesidad de almacenar tablas enormes, es intercalar la confusi´n (sustituciones simples, con
                                                                     o
tablas peque˜as) y la difusi´n (permutaciones). De forma m´s precisa, la confusi´n y difusi´n se
             n               o                                a                   o         o
consigue a trav´s de los siguientes bloques funcionales:
               e




                                                        2
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. Transformaci´n inicial.
                  o
     Tiene por objetivo aleatorizar los datos de entrada. Suele constar de una o dos funciones que
     han de ser dependientes de la clave de cifrado, si se desea conseguir cierta inmunidad frente
     a ataques por an´lisis diferencial o lineal. En el caso de DES esta transformaci´n inicial no
                      a                                                               o
     depende de la clave, por lo que no tiene significaci´n criptogr´fica alguna (puede ignorarse
                                                          o          a
     en un criptoan´lisis).
                    a
  2. Funci´n criptogr´ficamente d´bil/r vueltas.
          o          a            e
     Es una funci´n no lineal formada por una operaci´n compleja o varias simples.
                 o                                   o
  3. Transformaci´n final.
                 o
     Tiene por misi´n garantizar la simetr´ entre cifrado y descifrado.
                   o                      ıa
  4. Algoritmo de expansi´n de clave.
                           o
     Mediante este algoritmo se obtienen a partir de una clave peque˜a (56−256 bits) las distintas
                                                                         n
     subclaves a emplear en las sucesivas vueltas de cifrado. El algoritmo ha de ser tal que no
     sea factible (o muy dif´
                            ıcil) inferir la clave a partir de las subclaves. Adem´s, las subclaves no
                                                                                  a
     deben ser un subconjunto mon´tono.o

En el caso de DES, los cuatro bloques reci´n citados quedan recogidos en el esquema de la figura
                                            e
2. DES lleva a cabo el cifrado de bloques de 64 bits de informaci´n en 16 iteraciones. En cada una
                                                                  o
de esas vueltas se hace uso de un bloque funcional F, el cual lleva cabo el proceso de difusi´n y
                                                                                                o
de confusi´n en dependencia de una subclave asociada a la vuelta correspondiente y obtenida a
           o
partir de la clave sim´trica. Ahora bien, ese bloque funcional s´lo act´a sobre la mitad de los bits
                       e                                        o      u
constituyentes del bloque a cifrar. De este modo, de forma alternativa, en cada vuelta s´lo se cifran
                                                                                        o
32 de los 64 bits del bloque. A los sistemas de cifra que, como DES, en cada vuelta s´lo cifran
                                                                                            o
la mitad del bloque, se les llama de tipo Feistel. Adem´s del bloque F, existe una transformaci´n
                                                        a                                          o
inicial que no tiene inter´s criptogr´fico (no depende de la clave) y que ser´ invertida tras las 16
                          e          a                                       a
vueltas de cifrado.
    Volviendo al bloque F, el proceso de confusi´n y difusi´n que lleva a cabo se sustenta en la
                                                   o         o
estructura de la figura 3. En primer lugar, el bloque F lleva a cabo una expansi´n de bloque,
                                                                                     o
de modo que los 32 bits de entrada se convierte en 48. La expansi´n no es m´s que un vector
                                                                       o           a
de 48 elementos obtenidos mediante el vector que aparece en la parte superior de la figura 3. El
vector aparece representado como una matriz de 4 filas y 12 columnas. La concatenaci´n de filas,
                                                                                          o
empezando por la superior, nos da el vector de expansi´n. Cada elemento del vector de expansi´n
                                                        o                                          o
refiere el ´
          ındice del bit del bloque de 32 bits que debe ocupar esa posici´n en el vector expandido
                                                                          o
de 48 bits. Una vez que se tiene el bloque expandido, se calcula la suma OR exclusiva del mismo
con la subclave asociada a la vuelta de cifrado en la que nos encontramos. Tras esto, se dividen
los 48 bits en 8 bloques de 6 bits. Cada uno de esos bloques es sometido a una transformaci´n no
                                                                                               o
lineal mediante las llamadas cajas S. Las cajas S implementan el fen´meno de confusi´n necesario
                                                                      o                 o
para elaborar un buen sistema de cifrado, mientras que el proceso de difusi´n se materializa en
                                                                               o

                                                                  3
a dr ei u q zI        23    1         2     3     4     5     4     5      6       7    8   9
                                                      . q zi ort n e C         8     9        01    11    21    31    21    31      1      51   61   71
                                                                                                                                            4
                                                                ort n e C      61    71       81    91    02    12    02    12      2      32   42   52
                                                      . a h cr d                                                                            2
                                                             a h c er e D      42    52       62    72    82    92    82    92      3      13   23   1
                X, bloque de entrada 32 bits                                                                                                0

                  E, expansión a 48 bits


                               K, Clave de 48 bits


                 Suma módulo-2 bit a bit



           S1      S2           ….             S8                                                   Componente no lineal, fuerza del DES




                      P, permutación


                Y, bloque de salida 32 bits          61      7            02    12       92    21    82    71     1    51    32    62       5   81   13   01
                                                      2      8            42    41       23    72     3     9    91    31    03     6      22   11    4   52




    Figura 3: Esquema de la funci´n F vinculada a cada etapa de cifrado del algoritmo DES
                                 o


la permutaci´n que se efect´a tras la acci´n de las cajas S. Esta ultima operaci´n, al igual que la
              o              u              o                        ´             o
expansi´n, viene dada por un vector, en este caso de 32 bits, cuyos elementos son los ´
        o                                                                                   ındices de
los bits de la entrada de 48 bits. Es decir, el vector de permutaci´n indica que bits de la entrada
                                                                     o
estar´n presentes en la salida, as´ como el orden de los mismos.
     a                             ı
    Como se menciono m´s arriba, DES divide el texto a cifrar en bloques de 64 bits y cada uno
                           a
de ellos los cifra mediante una clave tambi´n de 64 bits. Ahora bien, seg´n refleja la figura 2,
                                              e                                 u
en cada vuelta de cifrado se hace uso de una “clave” distinta. De este modo, en principio ser´       ıa
preciso contar con una clave de 16 × 48 bits. En lugar de esto DES lleva a cabo la generaci´n de o
16 subclaves de 48 bits a partir de los 64 bits de la clave. La generaci´n de subclaves responde al
                                                                          o
esquema referido por la figura 4. El proceso de generaci´n de subclaves incluye dos vectores, PC-1
                                                           o
y PC-2, que en el esquema aparecen en forma de matriz por facilitar su visualizaci´n. En realidad,
                                                                                      o
PC-1 y PC-2 son vectores que resultan de concatenar las filas de esas tablas de arriba a abajo. Al
                                                                                                     1
igual que en el caso de la expansi´n y de la permutaci´n, los vectores recogen los bits de entrada
                                     o                    o
que van a aparecer en la salida, as´ como el orden en que lo har´n. PC-1, adem´s de efectuar una
                                      ı                            a               a
reordenamiento de los bits de entrada, elimina ocho de los 64 bits de entrada (los bits 8, 16, 24
32, 40, 48, 56, 64). Esos bits no tienen, pues, valor criptogr´fico alguno, de modo que la longitud
                                                               a
efectiva de la clave de DES es de 56 bits. Esto es, un ataque por fuerza bruta sobre DES exige 256
pruebas.
Del esquema, adem´s, se deduce que cada una de las 16 subclaves contiene 48 bits de la clave
                     a
original, por lo que la determinaci´n de cualquiera de esas subclaves har´ posible rebajar la carga
                                     o                                      ıa
computacional de un ataque por fuerza bruta de las 256 operaciones originales a 28 . Este factor,
junto al hecho de que s´lo se cifren la mitad de los bits en cada vuelta, es una debilidad del sistema
                        o
DES.




                                                                                     4
1FL       2FL       3FL      4FL   5FL   6FL   7FL       8FL        9FL      01FL     11FL   21FL   31FL        41FL       41FL     61FL

                                 1         1         2        2     2     2     2         2          1        2        2      2      2           2          2        1




                                       K
                             Reducción
                              a 56 bits
                                                                                                                                         ) sti b 6 5( 1 - C P al b a T
         28 bits izquierda                        28 bits derecha                                                                    57     49       41         33   25     17   9
                             Permutación
                                PC-1                                                                                                 1      58       50         42   34     26   18
        Desplazamiento                           Desplazamiento                                                                      10      2       59         51   43     35   27
         Izquierda LF1                            Izquierda LF1
                                                                                                                                     19     11          3       60   52     44   36
                                PC-2
                                                                                                                                     63     55       47         39   31     23   15
        Desplazamiento           K1              Desplazamiento                                                                      7      62       54         46   38     30   22
         Izquierda LF2                            Izquierda LF2
                                                                                          ) sti b 8 4( 2- C P al b a T               14      6       61         53   45     37   29
                                PC-2
                                                                                      14        17       11       24   1      5      21     13          5       28   20     12   4

                                 K2                                                   3         28       15       6    21     10
                                                                                      23        19       12       4    26     8
        Desplazamiento                           Desplazamiento
        Izquierda LF16                            Izquierda LF16                      16        7        27       20   13     2
                                PC-2                                                  41        52       31       37   47     55
                                                                                      30        40       51       45   33     48
                                K16
                                                                                      44        49       39       56   34     53
                                                                                      46        42       50       36   29     32




                                                     Figura 4: Generaci´n de subclaves en DES
                                                                       o

2.1.    Caracter´
                ısticas de las cajas S
    Las cajas S son la componente no lineal de DES. Permiten eliminar caminos de inferencia de
valores de la clave a trav´s del estudio de texto claro y texto cifrado. Estas cajas presentan las
                           e
siguientes caracater´
                    ısticas:

  1. La salida de una caja S no puede ser expresada como funci´n lineal o af´ de la entrada.
                                                              o             ın
  2. La modificaci´n de un bit de la entrada de una caja S provoca el cambio de al menos dos
                    o
     bits de la salida.
  3. S(X) y S(X ⊕ 001100) difieren como m´
                                        ınimo en dos bits.
  4. S(X) y S(X ⊕ 11ef 00) difieren para cualquier elecci´n de e y f .
                                                        o
  5. Si se mantiene constante un bit de la entrada, la diferencia entre n´meros de unos y de ceros
                                                                         u
     a la salida es m´
                     ınima.

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


3.     Fundamentos del criptoan´lisis diferencial
                               a
    Para presentar las bases del criptoan´lisis diferencial nos centraremos en el cifrado que se lleva
                                          a
a cabo en una vuelta del algoritmo DES (mirar figura 5). En cada una de las vueltas de cifrado se
presenta una secuencia de 32 bits que, en primer t´rmino, sufre una transformaci´n que da lugar
                                                      e                               o
a una segunda segunda secuencia de 48 bits. Es decir, la primera fase del cifrado involucra una
expansi´n de la secuencia a cifrar para, de este modo, poder llevar a cabo la suma OR-exclusiva
        o
con la subclave (de 48 bits) asociada a dicha vuelta de cifrado. Consideremos dos secuencias de 32
bits 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
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 ∗ ) = Si (B) ⊕ Si (B ∗ ).                      (4)
Por ultimo, la operaci´n de permutaci´n tambi´n es de car´cter lineal, pues se cumple
    ´                 o              o       e           a
                          ∆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 por
                  ´
las cajas S. El criptoan´lisis diferencial se basa en el estudio de la distribuci´n de las sumas OR
                         a                                                       o
exclusiva de las salidas de cada caja S, cuando se trabaja con distintos pares de entradas cuya suma
OR exclusiva es constante. Este examen demuestra que, en efecto, no existe una correspondencia
directa entre valor XOR a la entrada de la caja y valor XOR a la salida de la misma. Esto es
debido a las caracter´ısticas de las cajas S (mirar apartado 2.1).

                                           X
                                               ∆   X

                                           E                          Ki

                                      ∆A
                                                              B
                                                              ∆
                                                       Caja Si

                                                              ∆   C

                                                          P

                                                              ∆   Y

                                                          Y




Figura 5: Esquema de funcionamiento del criptoan´lisis diferencial aplicado a una vuelta de cifrado
                                                a

3.1.     An´lisis de las cajas S
           a
    El an´lisis de las distintas cajas lleva a cabo la evaluaci´n de las distintas XOR de las salidas
         a                                                     o
obtenidas para las parejas de entradas cuya XOR toma un cierto valor. A continuaci´n se define
                                                                                        o
la tabla que contiene los resultados obtenidos mediante este examen.
Definici´n 1. Una tabla que muestra la distribuci´n de las XORs de entrada y de las XORs de
         o                                         o
salida de todas las posibles parejas de una caja S, se denomina tabla de distribuci´n de parejas
                                                                                   o
XOR de la caja S.
    En dicha tabla cada fila representa un valor XOR de las entradas, mientras que cada columna
es un posible valor de XOR de las salidas. Para un valor de XOR de entradas dado existen, en
el 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 distribuci´no
de una cierta caja, por cada fila, por cada valor de XOR de entrada se eval´an las 64 parejas de
                                                                              u
entradas. Para cada entrada de la pareja se obtiene el valor de salida. A continuaci´n se determina
                                                                                    o
la XOR de salida. De este modo, tras el c´lculo de las 64 parejas se tendr´ la tabla de distribuci´n
                                         a                                 a                      o
de parejas XOR. En el ap´ndice B aparecen las 8 tablas de distribuci´n obtenidas mediante este
                            e                                            o
an´lisis. A partir de ellas se concluye:
   a
       Cuando la XOR de entrada es 0, es decir, cuando las entradas de una caja S son iguales, la
       XOR de las salidas es siempre 0.
       El ´
          ındice de ocurrencia mayor detectado en el conjunto de tablas, exceptuando el caso en el
       que las entradas son iguales, es 16.
       No todos los valores de XOR de salida son posibles.
Definici´n 2. Sea X un n´mero de 6 bits e Y un n´mero de 4 bits. Se dice que X puede dar
         o                   u                          u
lugar a Y mediante una caja S si existe un par de entradas cuya XOR sea igual a X y que la XOR
de 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 Y
mediante la caja S, lo que se expresa como X → Y .

                                                          6
Definici´n 3. Se dice que X da lugar a Y mediante S con una probabilidad p, si para una fracci´n
         o                                                                                   o
p de las posibles parejas cuya XOR es igual a X, la XOR de las salidas es igual a Y .

3.1.1.     Determinaci´n de la clave asociada a una caja S
                      o
    El criptoan´lisis diferencial va a estar fundamentado en el an´lisis estad´
                a                                                   a         ıstico de las cajas S, de
modo que todas las inferencias y deducciones se van a desplegar como resultado de un conocimiento
suficiente y detallado de las tablas de distribuci´n asociadas a cada una de las ocho cajas S
                                                       o
(ap´ndice B). De las tablas se deduce que no todas las combinaciones de entrada y salida (XOR de
    e
entradas, XOR de salidas) son posibles. Dicho de otro modo, hay casillas con valor nulo para cada
una de las ocho tablas probabil´  ısticas. Se designa como entrada v´lida de una tabla de distribuci´n
                                                                    a                                 o
aquella combinaci´n de XOR de entradas y XOR de salidas tal que la casilla correspondiente en la
                   o
tabla de distribuci´n almacena un valor no nulo. En la tabla 1 aparecen los porcentajes de entradas
                   o
v´lidas para las tablas de distribuci´n de cada tabla S. Este porcentaje fluct´a entre el 70 % y el
  a                                      o                                       u
80 %, consider´ndose de forma gen´rica que para cada tabla el 80 % de las entradas, esto es, de las
               a                       e
combinaciones XOR de entrada y XOR de salida son posibles. Esta circunstancia ser´ de utilidad
                                                                                          a
a la hora de buscar combinaciones XOR de entradas y salidas v´lidas. De este modo, el primer
                                                                      a
estadio en la b´squeda de la clave relacionada con una cierta caja S, ser´ buscar una entrada a la
                u                                                           a
tabla de probabilidad posible. Adem´s, no vale que simplemente sea una entrada v´lida. Interesa
                                          a                                             a
que el ´ındice de ocurrencia de la XOR de salida para la XOR de entrada sea m´ximo. As´ se
                                                                                        a          ı,
lograr´ que el valor de clave sea sugerido por un n´mero considerable de las parejas de entradas
      a                                                 u
evaluadas.

                              Caja S    Porcentaje ( %) entradas v´lidas
                                                                  a
                               S1                  79.4921875
                               S2                 78.61328125
                               S3                    79.6875
                               S4                  68.5546875
                               S5                    76.5625
                               S6                   80.46875
                               S7                 77.24609375
                               S8                  77.1484375


         Tabla 1: Porcentaje de entradas v´lidas para las tablas de distribuci´n de las cajas S
                                          a                                   o

    La b´squeda de los 6 bits de clave asociados a una cierta caja S es un procedimiento de corte
         u
iterativo. Se llevan a cabo pruebas con los 64 valores posibles de clave trabajando con distintos
pares de texto claro y pares de texto cifrado. Se buscar´n aquel valor de clave que haga que, para
                                                        a
todas las parejas de entrada a la caja considerada, la XOR de las salidas sea coherente con la
tabla de distribuci´n implicada. De forma m´s detallada, en primer lugar se busca en la tabla
                    o                          a
de distribuci´n una entrada que sea posible, prefiriendo aquellas que presenten un mayor ´
             o                                                                              ındice
de ocurrencia. Se buscan todas las entradas de la caja S que, prescindiendo de la clave, pueden
dan lugar a la XOR de salida. Esto es, se determinan las 64 parejas con XOR igual a la prefija
y, a continuaci´n, se verifica cuales de ellas dan lugar a un par de salidas con XOR igual a la
                 o
preestablecida. Tras esto, se llevan a cabo las pruebas con los 64 posibles valores de clave. Se
tratar´ de hallar el valor de clave cuya XOR con pares de entradas de lugar a cualquiera de los
       a
pares 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 bits
de clave. Supongamos que estas entradas son S1E = 1x y S1∗ = 35x . Supongamos que el valor de
                                                                    E
clave que queremos deducir es S1K = 23x , con lo que las salidas ser´n S1O = 1x y S1∗ = Cx ,
                                                                              a          O
resultando S1O = Dx . En primer lugar se determinan todas las entradas a la caja S1 tal que la
pareja constituida por cada una de esas entradas y la XOR de la misma con S1E = 34x , de lugar
a 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 ser´n:
                                                                          a




                                                   7
Pareja de entrada         Valor de clave
                                     (S1I ,S1∗ )
                                              I
                                     (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∗ = 35x , S1O = Dx
                                                                  E


    Si ahora se tiene dos nuevas entradas S1E = 27x y S1∗ = 13x y la misma clave S1K = 23x ,
                                                                 E
las salidas ser´n S1O = Dx y S1∗ = Fx , respectivamente, de modo que S1O = 2x . En este caso
               a                      O
los 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       Valor de clave
                                      (S1I ,S1∗ )
                                                I
                                      (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 repetidos
tambi´n los valores 29x , 1Dx , 7x , 33x , 23x , 17x . Por tanto, habr´ que utilizar m´s parejas para
      e                                                               ıa              a
descartar m´s valores posibles de clave. El valor que aparezca en todas las tablas ser´ el valor
            a                                                                              a
verdadero de clave. En las tablas 4 y 5 aparecen los valores de clave obtenidos para otros dos
pares de entradas. Los valores de clave comunes para todas las tablas son 17x y 23x . Dado que
34x = 17x ⊕ 23x = S1I , no va a ser posible distinguir estos valores de clave para la XOR de
entrada dada. En efecto, en la tabla 1 se trabaja con XOR de entrada igual a 35x . Esta tabla s´loo
tiene en com´n con las dem´s el valor de clave 23x , es decir, el valor correcto de clave.
             u              a

                                  Pareja de entrada       Valor de clave
                                      (S1I ,S1∗ )
                                                I
                                     (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
Pareja de entrada                        Valor de clave
                                                  (S1I ,S1∗ )
                                                           I
                                                  (27x , 13x )                                   17x
                                                  (13x , 27x )                                   23x


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


                                               Pareja de entrada                        Valor de clave
                                                   (S1I ,S1∗ )
                                                            I
                                                  (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 criptoan´lisis diferencial. En
                                                                                a
los siguientes apartados se mostrar´n conceptos y estrategias que, en ultima instancia, tratan de
                                      a                                  ´
encontrar pares de entrada y XOR de salida asociadas a una o varias cajas S. Con esos pares de
entradas y esas salidas se podr´ llevar a cabo un an´lisis como el reci´n expuesto. De este modo,
                                 a                    a                 e
con un n´mero suficiente de parejas de texto claro y texto cifrado, escogidas para evitar entradas
          u
no v´lidas de las tablas de distribuci´n de cada una de las cajas S involucradas, se podr´ conseguir
     a                                 o                                                 a
de forma inequ´ ıvoca el valor de la subclave asociada a cada una de las cajas.

3.2.    An´lisis de la funci´n F
          a                 o

                           Entrada (32 bits)



                                  E

                                                 48 bits                                   48 bits
              S1E   S2E   S3E   S4E    S5E     S6E    S7E   S8E                            S1K     S2K   S3K   S4K     S5K   S6K   S7K   S8K




                                      S1I            S2I      S3I   S4I           S5I        S6I         S7I         S8I




                                      S1             S2       S3    S4            S5         S6          S7          S8



                                      S1O            S2O      S3O   S4O           S5O        S6O         S7O         S8O

                                                                              P


                                                                    Salida (32 bits)




                                             Figura 6: Notaci´n para la funci´n F
                                                             o               o



                                                                          9
Definici´n 4. Sean X e Y dos n´meros de 32 bits. Decimos que X da lugar a Y mediante F con
         o                       u
una probabilidad p si para una fracci´n p de todas las posibles parejas de entradas a F cuya XOR
                                     o
es 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 funci´n F , entonces para cada
                                                                      o
pareja Z, Z ∗ con ∆Z = Z ⊕ Z ∗ = X hace que el XOR de las salidas de la funci´n F sea igual a Y
                                                                             o
para la misma fracci´n p de los posibles valores de la subclave.
                    o
                                                                     ∗
Demostraci´n. Consideremos una caja S determinada. Sean SE y SE dos salidas del bloque de
             o
                                           ∗
expansi´n para las que se tiene ∆E = E ⊕ E (mirar figura 6). Se tiene que ∆SI = ∆SE para todo
         o
valor de la subclave SK . Supongamos que existen k parejas de entradas a la caja S distintas, cuya
XOR es igual a ∆SI y cuya XOR de las salidas de la caja S en cuesti´n es la misma. Es posible
                                                                       o
                                                             ∗
encontrar k valores de subclave SK = SI ⊕ SE , donde SI y SI son las parejas que dan lugar a las
salidas de la caja cuya XOR es la deseada. Por tanto, la fracci´n p de salidas que dan lugar a la
                                                               o
XOR deseada, es tambi´n la fracci´n de valores de subclave que permiten generar dicha XOR de
                        e         o
las salidas.


Corolario 1. La probabilidad p de X → Y mediante la funci´n F es el producto de las proba-
                                                                     o
bilidades pi de que Xi → Yi mediante las cajas Si (i ∈ {1, . . . , 8}), donde X1 X2 X3 X4 X5 X6 X7 X8 =
E(X) y Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8 = P −1 (Y ).

3.2.1.   M´todo para la determinaci´n de la subclave empleada en un bloque F
          e                        o
   El m´todo que se aplicar´ hace uso de los conceptos e ideas esbozadas en el anterior apartado:
       e                   a

  1. Elegir un valor apropiado de XOR de entrada.
  2. Generar un n´mero suficiente de parejas de texto claro que den lugar a la XOR de entrada
                  u
     previamente 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 n´mero de parejas de salidas cuya XOR coincide
                                                  u
     con la esperada.
  5. El valor correcto de clave es (si es unica) la clave sugerida por todas las parejas.
                                          ´

3.3.     An´lisis del encadenado de funciones F
           a
Definici´n 5. Asociados con cualquier par de cifrados est´n la XOR del par de textos claros,
         o                                                    a
la XOR del par de textos cifrados, las XORs de las entradas de cada vuelta y las XORs de las
salidas de cada vuelta. Estos valores XOR constituyen un caracter´     ıstica de n vueltas. Una
caracter´
        ıstica tiene asociada una probabilidad, que es la probabilidad de que una pareja de texto
claro con una XOR concreta de lugar a las XOR de entrada y salida de cada vuelta que aparecen
recogidas 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 distribuci´n del ap´ndice B muestran que la probabilidad m´xima para una XOR
                             o         e                                       a
de salida referida a cada una de las cajas S se da cuando la pareja de entradas son iguales. En este
caso las 64 salidas que nos da el an´lisis son 0. De este modo, si la XOR entrada de un DES de una
                                     a
vuelta tiene los 32 bits de la izquierda a 0 (mirar figura 7) habremos conseguido una caracter´ıstica
de 1 vuelta con probabilidad 1. Es decir, para cualquier par de entradas de un DES de una vuelta
tal que s´lo se diferencien en los 32 bits de la entrada, el XOR las salidas obtenidas es igual al
          o
XOR de las entradas.




                                                  10
P=(L’,0x)




                                A’=0x                              a’=0x
                                                  F




                                                T=(L’,0x)



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

   La caracter´ ıstica reci´n presentada es la de mayor probabilidad. Para conseguir otras buenas
                           e
caracter´
        ısticas de una vuelta habr´ que conseguir que s´lo una de las cajas S tenga XOR de
                                     ıa                    o
entradas no nula. Para lograr esto los pares de entradas al DES de una vuelta han de tener s´lo   o
dos bits de los 32 de la izquierda no nulos, de lo contrario tras la expansi´n habr´ m´s de una
                                                                             o       ıa a
caja S con XOR de entradas no nulas. Dicho de otro modo, los candidatos a caracter´     ıstica deben
tener entradas con bits no nulos en los llamados bits privados de las distintas cajas S. En la tabla
7 aparecen los bits privados de caja una de las ocho cajas S.

                  Caja    N´meros Bit
                           u              XOR entrada de 64 bits (hexadecimal)
                   S1        34,35                  L 60 00 00 00
                   S2        38,39                  L 06 00 00 00
                   S3        42,43                  L 00 60 00 00
                   S4        46,47                  L 00 06 00 00
                   S5        50,51                  L 00 00 60 00
                   S6        54,55                  L 00 00 06 00
                   S7        58,59                  L 00 00 00 60
                   S8        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 seg´n aparece en cada
                                                                              u
fila de la tabla 7, tras la expansi´n s´lo la XOR de entrada de una caja S ser´ no nula e igual a
                                   o o                                        a
OCx (el sub´  ındice x indica que el n´mero est´ expresado en hexadecimal). Si vamos a las tablas
                                      u        a
de distribuci´n de salidas de las cajas S, comprobamos que el m´ximo ´
              o                                                 a     ındice de ocurrencia es 14 ,
el cual se da para las cajas S1, S2 y S7:
  1. Con S1:

                                                                       14
                                        S1 : 0Cx → Ex con probabilidad
                                                                       64
                            S2, . . . , S8 : 00x → 0x siempre

  2. Con S2:

                                                                        14
                                         S2 : 0Cx → 5x con probabilidad
                                                                        64
                          S1, S3 . . . , S8 : 00x → 0x siempre

  3. Con S7:

                                                                         14
                                          S7 : 0Cx → Cx con probabilidad
                                                                         64
                          S1, . . . , S6, S8 : 00x → 0x siempre


                                                11
En resumen, la probabilidades m´ximas asociadas a una caracter´
                                   a                               ıstica de una vuelta para DES
son 1 y 1/4. Las caracter´
                         ısticas en cuesti´n aparecen en la tabla 12.
                                          o

                            ΩP                                   ΩT                                               Probabilidad
                  L,      00 00       00   00              L , 00 00 00 00                                             1
                                                                                                                              1
                  L,      60 00       00   00        L ⊕ 00 80 82 00, 60 00 00 00                                             4
                                                                                                                              1
                  L,      06 00       00   00        L ⊕ 00 00 40 10, 06 00 00 00                                             4
                                                                                                                              1
                  L,      00 00       00   60        L ⊕ 00 10 00 01, 00 00 60 00                                             4



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

3.3.2.   Caracter´
                 ısticas de 2 vueltas
    Se podr´ pensar en utilizar como caracter´
            ıa                                   ıstica de dos vueltas aquella conformada por pares
de entradas iguales. De este modo, a la entrada del DES de dos vueltas se tendr´ siempre una
                                                                                        ıa
XOR igual a 0, de modo que con probabilidad 1 la XOR de salida siempre ser´ cero. Ahora ıa
bien, esto ocurrir´ independientemente del valor de la clave, por lo que no es interesante para
                   ıa
nuestro criptoan´lisis. Lo deseable ser´ que se contar´ con una caracter´
                 a                     ıa                a                  ıstica con un valor alto de
probabilidad, con el objeto de inferir el valor de la misma mediante el an´lisis estad´
                                                                                a          ıstico de las
XOR de salidas obtenidas. Para ello, en el caso de caracter´ ısticas de dos vueltas vamos a construir
las mismas utilizando los resultados obtenidos para las caracter´  ısticas de una vuelta. En efecto, si
se hace que los 32 bits de la derecha de la XOR de entrada sean igual a la XOR de salida de la
primera vuelta, se conseguir´ tener en la segunda vuelta una XOR de entrada todo a 0, es decir,
                             a
en la segunda vuelta se tendr´ la caracter´
                              a            ıstica de m´xima probabilidad (probabilidad 1).
                                                        a

                    P=(00   80 82 00 60 00 00 00x)                                                          P=(00   00 40 10 06 00 00 00x)




              A’=00 80 82 00x            a’=60 00 00 00x               Probabilidad                   A’=00 00 40 10x             a’=06 00 00 00x
                                  F                                        1/4                                            F




                  B’=0x                    b’=0x                         Probabilidad                     B’=0x                     b’=0x
                                  F                                           1                                           F


                    T=(60   00 00 00 00 00 00 00x)               P=(00   10 00 01 00 00 00 60x)             T=(06   00 00 00 00 00 00 00x)



                                                                                                           Probabilidad 1/4
                                                           A’=00 10 00 01x              a’=00 00 00 60x
                                                                               F




                                                               B’=0x                      b’=0x
                                                                                                           Probabilidad 1
                                                                               F


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




                                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 definir
una serie de conceptos que permitir´n aplicar de forma m´s general el procedimiento que se ha
                                   a                      a
aplicado.

3.3.3.   Definici´n formal de caracter´
                o                    ıstica
Definici´n 6. Un caracter´
        o                 ıstica de n vueltas es una tupla Ω = (ΩP , ΩΛ , ΩT ) donde ΩP y ΩT son
n´meros de m bits, y ΩΛ es una lista de n elementos ΩΛ = (Λ1 , Λ2 , . . . , Λn ), cada uno de los cuales
 u
es un una pareja de la forma Λi = (λi , λi ), donde λi y λi son n´meros de m/2 bits y m es el
                                      I   O            I     O        u
tama˜o de bloque del criptosistema. Un caracter´
     n                                           ıstica satisface los siguientes requerimientos:
                                        λ1
                                         I         =       la mitad derecha de ΩP

                                                                             12
λ2
                               I   =     la mitad izquierda de ΩP ⊕ λ1
                                                                     O
                              λn
                               I   =     la mitad izquierda de ΩT ⊕ λn
                                                                     O

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

                                         λi
                                          O   =    λi−1 ⊕ λi+1
                                                    I      I

Definici´n 7. Una pareja correcta, con respecto a una caracter´
         o                                                     ı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 cifrado
de la pareja haciendo uso de la clave K, la XOR de entrada de la i−´sima vuelta es igual λi , y la
                                                                    e                      I
XOR de salida del bloque F es igual a λi .
                                         O

Definici´n 8. La concatenaci´n de una caracter´
         o                       o                   ıstica de n vueltas Ω1 = (Ω1 , Ω1 , Ω1 ) con una
                                                                                 P     Λ  T
        ıstica de m vueltas Ω = (ΩP , ΩΛ , ΩT ), donde los primeros 32 bits de Ω1 son iguales a los
caracter´                      2       2   2  2
                                                                                   T
32 bits finales de Ω2 , y los 32 bits finales de Ω1 son iguales a los 32 bits iniciales de Ω2 , es la
                    P                              T                                          P
        ıstica Ω = (Ω1 , ΩΛ , Ω2 ), siendo ΩΛ la concatenaci´n de las listas Ω1 y Ω2 .
caracter´             P        T                              o               Λ      Λ

Definici´n 9. La vuelta i de una caracter´
         o                                  ıstica Ω tiene probabilidad pΩ si λi → λi con proba-
                                                                         i     I    O
         Ω
bilidad pi mediante el bloque funcional F .
Definici´n 10. Una caracter´
         o                    ıstica de n vueltas tiene probabilidad pΩ si pΩ es el producto de las
probabilidades de sus n vueltas:
                                                  n
                                           pΩ =         pΩ .
                                                         i
                                                  i=1

   En resumen, mediante la ideas que se acaban de presentar es posible derivar un an´lisis de las
                                                                                         a
probabilidades asociadas a las distintas caracter´
                                                 ıstica de n vueltas a partir de un caracter´
                                                                                            ıstica de
una sola vuelta.
Teorema 1. La probabilidad de una caracter´   ıstica Ω = (ΩP , ΩΛ , ΩT ) es la probabilidad de que una
pareja determinada de entradas P y P ∗ , cuya XOR P = P ⊕ P ∗ = ΩP , sea una pareja correcta
cuando se utilizan claves aleatorias e independientes.

Demostraci´n. La probabilidad de que un par de entradas tales que P = ΩP sean una pareja
             o
correcta, es la probabilidad de que para todas las vueltas i: λi → λi . La probabilidad de cada
                                                                  I     O
vuelta es independiente del valor exacto de su entrada (lema 1), e independiente respecto a las
operaciones efectuadas en las anteriores vueltas (ya que la independencia de las claves hace que los
bits a la entrada de las cajas S sean aleatorios, de modo que s´lo queda fijados el valor de la XOR).
                                                               o
Por tanto, la probabilidad de que una pareja sea correcta es el producto de las probabilidades de
λi → λi , esto es, la probabilidad de la caracter´
 I      O                                          ıstica.

    En lo que respecta a nuestro intereses, esto es, en lo referente al criptoan´lisis, el objetivo
                                                                                   a
ser´ determinar aquel valor de la clave para el cual las parejas correctas con respecto a una
   a
caracter´
        ıstica dan lugar a una distribuci´n de valores XOR de salida coherente con la esperada.
                                           o
Este valor de clave ser´ el valor correcto de clave, es decir, la clave que buscamos. Ahora bien, las
                       a
parejas correctas y el n´mero de ellas depende directamente del valor de clave empleado, de modo
                        u
que la distribuci´n de XOR de salidas no es constante para todas las posibles claves. No obstante,
                 o
seg´n se˜ala [1], la probabilidad de una caracter´
   u     n                                          ıstica siempre puede ser considerada como una
buena aproximaci´n de la distribuci´n de salidas XOR.
                   o                  o

3.3.4.   Caracter´
                 ısticas de 3 vueltas
    Utilizando los resultados expuestos m´s arriba, se construyen las caracter´
                                             a                                      ısticas de 3 vueltas
a partir de las de 1 vuelta. Con el objeto de conseguir la m´xima probabilidad, en la primera
                                                                    a
vuelta se emplea cualquiera de las tres caracter´   ısticas de 1 vuelta con probabilidad 1/4 que han
sido comentadas. A continuaci´n se emplea la caracter´
                                  o                          ıstica de probabilidad 1 y, finalmente, se
hace uso de la misma caracter´  ıstica de 1 vuelta utilizada en el primer paso. En la figura 9 aparecen
las tres caracter´ ısticas de 3 vueltas con probabilidad m´xima p = ( 1 )2 . El esquema de estas
                                                               a             4
caracter´ısticas es claramente sim´trico. Si se quieren conseguir caracter´
                                    e                                      ısticas de un mayor n´mero
                                                                                                  u
de vueltas, bastar´ seguir un modelo sim´trico como el recogido en la figura 9 para caracter´
                    a                       e                                                     ısticas
de 3 vueltas.




                                                   13
P=(00    80 82 00 60 00 00 00x)                                                                       P=(00   00 40 10 06 00 00 00x)



              A’=00 80 82 00x          a’=60 00 00 00x                                                              A’=00 00 40 10x         a’=60 00 00 00x
                                 F                                 Probabilidad 1/4                                                    F




                B’=0x                    b’=0x                                                                        B’=0x                   b’=0x
                                 F                                 Probabilidad 1                                                      F




              C’= 00 80 82 00x         c’=60 00 00 00x                                                               C’=00 00 40 10x        c’=06 00 00 00x
                                 F                                 Probabilidad 1/4                                                    F

                                                             P=(00   10 00 01 00 00 00 60x)
                   T=(00   80 82 00 00 00 00 00x)                                                                       T=(00   00 40 10 06 00 00 00x)


                                                         A’=00 10 00 01x         a’=00 00 00 60x    Probabilidad 1/4
                                                                            F




                                                           B’=0x                   b’=0x
                                                                            F                      Probabilidad 1




                                                          C’=00 10 00 01x        c’=00 00 00 60x
                                                                            F                       Probabilidad 1/4


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




                                      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 sobre
el comportamiento de una cierta caracter´   ıstica. Se llevar´n a cabo pruebas con todos los valores
                                                             a
de clave posibles. El valor correcto de clave ser´ aquel para el cual se consigue una distribuci´n de
                                                 a                                              o
XOR de salidas en coherencia con la probabilidad de la caracter´   ıstica empleada. Para ello hay que
asegurar que se utilizan parejas correctas, pues de lo contrario puede que el valor correcto de la
clave sea descartado.
    Cada caracter´ ıstica nos permite deducir un determinado n´mero de bits de la subclave en la
                                                                  u
ultima 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, adem´s,a
permiten poner en pr´ctica el sistema de conteo con un mayor n´mero de bits de la subclave. No es
                       a                                           u
preciso aplicar el sistema de conteo a todos los bits de la subclave. Es m´s, ello implicar´ un muy
                                                                            a              ıa
elevado consumo de memoria. Por ello, se puede explotar el sistema de conteo para un subconjunto
de los bits de la subclave, mientras que los restantes bits, correspondientes a otras cajas S, ser´n
                                                                                                   a
utilizados para descartar parejas no correctas (aquellas cuya XOR de entrada no da lugar a la
XOR de salida esperada). Mirando las tablas de distribuci´n de la XOR de salida de las cajas S
                                                               o
(ap´ndice B), se observa que aproximadamente el 20 % de las XOR de entradas no son posibles,
    e
con lo que aproximadamente el 20 % de las parejas no correctas podr´n ser descartadas para cada
                                                                         a
caja S antes de efectuar el conteo de XOR de salidas.

Definici´n 11. La ratio entre el n´mero de parejas correctas y el n´mero medio de parejas
         o                          u                                  u
contabilizadas, en un esquema de conteo, se denomina ratio se˜al a ruido y se denota S/N .
                                                             n
    Supongamos que pretendemos determinar k bits de una cierta clave. Para ello, ser´ preciso
                                                                                           a
efectuar 2k pruebas y llevar a cabo un registro de las salidas XOR. Este conteo arroja un n´mero
                                                                                              u
medio de pruebas de m·α·β , donde m es el n´mero de parejas, α es el n´mero medio de conteos
                         2 k                   u                            u
por 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, siendo
p la probabilidad de la caracter´ıstica. Por tanto, la relaci´n se˜al a ruido del sistema de conteo
                                                             o       n
vendr´ dada por el cociente entre el n´mero medio de pruebas en el caso de s´lo trabajar con
      a                                  u                                          o
parejas correctas, y el n´mero medio de pruebas cuando se trabaja tanto como parejas correctas
                         u
como no correctas:
                                               m·p          2k · p
                                    S/N =                =         .                             (6)
                                            m · α · β/2k    α·β
De este modo, se comprueba que la relaci´n se˜al a ruido es independiente del n´mero de parejas
                                        o    n                                 u
empleado. Adem´s, para un an´lisis basado en la misma caracter´
                a             a                                    ıstica se obtendr´n distintas
                                                                                    a


                                                                           14
relaciones se˜al a ruido en funci´n del n´mero de bits de la clave que sen considerados. Por ultimo,
             n                   o       u                                                   ´
cabe rese˜ar que pese a la independencia de la se˜al a ruido del esquema respecto del n´mero
          n                                         n                                         u
de parejas considerado, existe una relaci´n directa entre el n´mero de parejas precisadas y dicha
                                          o                     u
ratio. Experimentalmente se comprueba [1] que cuando S/N ≈ 1 − 2 se precisan entre 20 y 40
parejas correctas. Para relaciones se˜al a ruido mucho menores, el n´mero de parejas requeridas
                                      n                                 u
es demasiado elevado, de ah´ la importancia de que la probabilidad asociada a una caracter´
                              ı                                                                ıstica
sea m´xima.
      a

                                              Texto claro (P)


                                          A                     a
                                                     F



                                          B                     b
                                                     F



                                          C                     c
                                                     F



                                          D                     d
                                                     F




                                              Texto cifrado (T)



                                Figura 10: DES reducido a 4 rondas


4.     Criptoan´lisis de DES
               a
4.1.    Criptoan´lisis de DES reducido a cuatro vueltas
                a
    En este apartado se van aplicar los resultados hasta ahora presentados a un DES reducido a 4
rondas (figura 10). En el cripton´lisis que se esbozar´ no se contempla el efecto de la permutaci´n de
                                  a                  a                                          o
entrada y salida, pues, tal y como se coment´, no tienen inter´s criptogr´fico alguno al no depender
                                               o               e          a
de la clave de cifrado y constituir una operaci´n invertible de forma trivial. Dicho esto, pasamos
                                                 o
a presentar la primera caracter´  ıstica de la que nos valdremos para ejecutar el criptoan´lisis. La
                                                                                            a
caracter´ıstica en cuesti´n est´ representada en la figura 11. Si se hace uso de tal caracter´
                         o     a                                                               ıstica,
en la primera ronda se consigue a = 0 → A = 0 con probabilidad uno. En la segunda ronda se
tendr´n parejas que s´lo difieren en un bit, el tercer bit de entrada a la caja S1. De esta forma, las
      a                o
parejas registradas a la salida de la caja S1 en la segunda ronda se diferenciar´n en al menos dos
                                                                                  a
bits (mirar tabla de distribuci´n de S1 en el ap´ndice B). Estos dos bits entrar´n en tres cajas S
                                o                 e                                a
distintas de la tercera ronda (c = a ⊕B = B ), de modo que en cada una de las parejas de entrada
de cada caja s´lo habr´ diferencia en un bit. Por tanto, en la tercera ronda habr´n alrededor de
                o        a                                                            a
6 bits de diferencia entre cada componente de cada una de las parejas consideradas. Estos bits
son 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 expansi´n, esos 7 bits dan lugar a 11 bits de diferencia a la entrada de las
                                o
cajas S. Este efecto avalancha hace que casi todas las entradas de las cajas S sean diferentes en las
diversas parejas. Es m´s, puede que la entrada de una cierta caja S en la cuarta ronda no presente
                        a
diferencias para una determinada pareja, mientras que otras pareja s´ puede dar diferencias en
                                                                          ı
la entrada de dicha caja. En definitiva, el valor exacto de d normalmente es diferente para cada
pareja.
    Los 28 bits de la XOR de la salidas de S2, . . . , S8 en B deben ser igual a 0, ya que la XOR
de entrada es 0. Dado que a ⊕ B = c = D ⊕ l , se tiene

                                         D =a ⊕l ⊕B .                                             (7)



                                                   15
Cuando la pareja de texto cifrado T = (l, r) y T ∗ = (l∗ , r∗ ) son conocidos, los valores d y d∗
tambi´n lo son (d = r, bloque de 32 bits de la derecha). Dado que a = a ⊕ a∗ , l y los 28 bits de
      e
B son conocidos, los 28 bits correspondientes de D tambi´n los son debido a (7). Estos 28 bits
                                                               e
                                                                                                ∗
son las XOR de las salidas de las cajas S2, . . . , S8. Por tanto, conocemos los valores SEd , SEd y
SOd de siete cajas S en la cuarta ronda.
    Dadas las parejas cifradas, se lleva a cabo un procedimiento de conteo para cada una de aquellas
siete cajas S en la cuarta ronda. Se prueban los 64 posibles valores de Skd para cada caja y se
                           ∗      ∗
verifica si SEd ⊕ SKd y SId = SEd ⊕ Skd implican que
                                                               ∗
                                                        SOd ⊕ SOd = SOd .                                              (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 con
probabilidad 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). Dado
que estamos trabajando con DES, estos 42 bits forman parte de los 56 bits de la clave del cifrado.
De este modo, s´lo restan 14 bits para tener la clave en su totalidad. Por tanto, bastar´ llevar a
                o                                                                        a
cabo sucesivos ensayos mediante fuerza bruta para obtener los bits de los que a´n no disponemos
                                                                               u
(como m´ximo ser´n precisas 214 pruebas). En [1] se extiende el criptoan´lisis al caso en el cual
         a         a                                                       a
todas las subclaves son independientes.

                                              Ω =  1
                                                   P   00 00 00 00 00 00 00 02   x




                                  A   '   =   x0                                     a   '   =   x0   Probabilidad 1
                                                                F




                                              Ω =
                                               1
                                                   T   00 00 00 00 00 00 00 02   x




Figura 11: Caracter´
                   ıstica de una 1 vuelta con probabilidad 1 para criptoan´lisis DES de 4 rondas
                                                                          a

4.2.    DES reducido a 6 vueltas
    Este criptoan´lsisis es m´s complejo que el anterior. Ahora ser´ necesario hacer uso de dos
                   a           a                                         a
                                  1
caracter´ısticas con probabilidad 16 . Cada una de esas caracter´ısticas nos permitir´ deducir 30 bits
                                                                                       a
de la clave K6 empleada en la quinta ronda. Esos 30 bits corresponden a las entradas de 5 cajas
S. Dado que tres de esas cajas no son comunes a las dos caracter´   ısticas, en realidad se conseguir´n
                                                                                                     a
42 bits de la clave K6. Los 14 bits restantes de la clave total del DES reducido a 6 vueltas podr´n  a
hallarse mediante b´squeda exhaustiva o mediante un an´lisis y conteo m´s preciso de los bits de
                     u                                      a                  a
la clave que se aplica a la entrada de las ocho cajas S.




                                                                    16
Ω =  1
                                                           P     00 00 00 40 00 00 80 04          x




                              A   '   =   00 80 04
                                                               x 00                   a   '   =   00 00 40
                                                                                                                       x 00    Probabilidad 1/4
                                                                             F




                                          B   '   =   x0                                              b   '   =   x0
                                                                             F                                                 Probabilidad 1




                                      C   '   =   00 80 04
                                                                      x 00
                                                                                      c       '   =   00 00 40
                                                                                                                        x 00
                                                                             F                                                 Probabilidad 1/4




                                                       Ω = 1
                                                           T      00 00 00 00 00 00 00 02             x




Figura 12: Caracter´
                   ıstica de 3 vueltas y probabilidad 1/16 para DES: criptoan´lisis de DES reducido
                                                                             a
a 6 vueltas

    La primera caracter´ ıstica, Ω1 , es la que aparece representada en la figura 12. En la cuarta vuelta
la XOR de las parejas de entradas de las cajas S2, S5, . . . , S8 (d = b ⊕ C = 40 08 00 00x ) es
igual a cero (SEd = 0) y, por tanto, la XOR de las parejas de salidas son tambi´n cero (i.e. SOd = 0,
                                                                                    e
para esas cinco cajas S). La XOR de las parejas de salidas en la sexta ronda vendr´ dada como
                                                                                            a
F = c ⊕ D ⊕ l , donde se tendr´ en cuenta que la XOR de las parejas de salidas correspondientes
                                    a
a las cajas S2, S5, . . . , S8 son cero. Dado el car´cter probabil´
                                                      a             ıstico del sistema de conteo, y con
objeto de incrementar la relaci´n se˜al a ruido S/N , es preferible llevar a cabo las pruebas con los
                                  o      n
30 bits de la subclave K6 (5 bits por cada caja S). Si no se hiciera de este habr´ que llevar a cabo
                                                                                      ıa
m´s pruebas, es decir, se precisar´ m´s parejas de texto claro y texto cifrado, pues puede que
  a                                    ıan a
se tenga una pareja correcta para una o varias cajas mientras que para el resto no lo es. Ahora
bien, con este planteamiento habr´ que llevar a cabo 230 pruebas, lo cual exige un gran consumo
                                       ıa
de memoria y de tiempo. Para evitar este problema se utilizar´ un grafo en el que cada v´rtice es
                                                                   a                            e
una pareja de entradas, y las parejas que compartan un valor candidato de clave estar´n unidosa
mediante un arco. En consecuencia, cada valor de clave da lugar a un ciclo constituido por todas
las parejas que lo han sugerido como valor v´lido. El ciclo de mayor longitud ser´ el vinculado
                                                   a                                      e
a la clave verdadera. Para cada caja de las cinco implicadas (S2, S5, . . . , S8) se tendr´ una    a
                                                                                                 ∗
m´scara de 64 bits, donde cada bit es un posible bit de clave. Dados los valores SE , SE y SO
  a
se fijan los valores de las m´scaras que corresponden a valores posibles de la clave. Cada pareja
                               a
tiene asociada 5 m´scaras de clave, una por cada caja S. Un ciclo es definido como el conjunto de
                    a
parejas para las cuales para cada una de las cinco m´scaras de clave hay un bit a uno para todas
                                                          a
las parejas del conjunto (i.e., el “and” l´gico de las cinco m´scaras de todas las parejas no es cero).
                                            o                   a
De este modo, mediante la localizaci´n de los ciclos de m´xima longitud, se fijan los 30 bits de K6
                                          o                   a
correspondientes a las cajas S2, S5, . . . , S8.




                                                                                 17
Ω =  2
                                                            P     00 40 00 00 80 00 02 00         x




                               A   '   =   00 02 00
                                                                x 80                  a   '   =   40 00 00
                                                                                                                       x 00   Probabilidad 1/4
                                                                             F




                                           B   '   =   x0                                             b   '   =   x0
                                                                             F                                                Probabilidad 1




                                       C   '   =   00 02 00
                                                                       x80
                                                                                      c       '   =   40 00 00
                                                                                                                       x 00
                                                                             F                                                Probabilidad 1/4




                                                        Ω = 2
                                                            T      00 40 00 00 80 00 02 00            x




    Figura 13: Segunda caracter´
                               ıstica de 3 vueltas: criptoan´lisis de DES reducido a 6 vueltas
                                                            a

    Con objeto de determinar una mayor n´mero de bits de K6, se explota la caracter´
                                                 u                                             ı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 m´todo reci´n introducido m´s arriba se acaban obtenien-
                                               e          e                 a
do los 30 bits de clave ligados a esas cajas. Ahora bien, los bits vinculados a S1 y S4 no son
comunes a los 30 bits resultantes del anterior an´lisis. Por tanto, en realidad se tienen 42 bits de
                                                       a
la subclave K6 y, dado que se trabaja sobre DES, s´lo nos faltar´n 14 bits para dar con la clave
                                                           o            a
completa del DES reducido a 6 vueltas. Para determinar estos 14 bits se podr´ optar por poner en
                                                                                    ıa
pr´ctica una b´squeda exhaustiva. Sin embargo, si se quiere acelerar la b´squeda se puede llevar
  a               u                                                              u
a cabo un an´lisis de los 6 bits de clave correspondientes a la caja S3. En primer lugar se filtran
                a
parejas no v´lidas aprovechando el conocimiento parcial que se tiene de la clave. Para ello se utiliza
              a
cualquiera de las dos caracter´   ısticas que han sido presentadas en este apartado, verificando que
para las 5 cajas implicadas por la caracter´  ıstica se cumple que SEd = 0 y que el valor SOf , obtenido
a partir del par f , f ∗ calculado, a su vez, a partir de los bits de la clave ya conocidos, es coherente
con el valor esperado F = c ⊕ D ⊕ l . Si no se cumple esto, la pareja de entradas en cuesti´n           o
ser´ desechada. A continuaci´n se llevan a cabo las 64 pruebas con la meta de obtener los 6 que nos
   a                            o
quedan de la subclave de la 6 vuelta. El procedimiento que se aplicar´ se apoya en la tabla 9. En
                                                                             a
esa tabla aparecen los bits de entrada de las distintas cajas en la quinta ronda, as´ como los bits de
                                                                                       ı
K5 para una de esas cajas. Los bits marcados con “+” son bits ya conocidos, obtenidos mediante
la utilizaci´n del par de caracter´
            o                        ısticas de las figuras 12 y 13. Los bits representados con “.” son
los bits de la clave K5 que no est´n presentes en la clave K6 (recordar el mecanismo de generaci´n
                                     a                                                                  o
de claves: figura 4). Por ultimo, los bits con el s´
                             ´                          ımbolo “3” son bits que se corresponden con el
valor de los bits de la subclave K6 asociados a la caja S3. Lo que se har´ ser´ comprobar que para
                                                                               a   a
los distintos valores de los 6 bits restantes de K6, las XOR de los pares de salidas obtenidas tras
las cajas S de la quinta vuelta, son coherentes con los valores esperados E = d ⊕ f . Para ello
se tendr´n en cuenta s´lo aquellas cajas S de la quinta ronda cuyas entradas y bits de subclave
         a                o
dependan s´lo de bits de K6. Estas cajas son S2, S3 y S8. Para los 64 posibles valores de subclave
             o
vinculada a S3 en la sexta ronda, se comprueba que los valores S2oe , S3oe y S8oe coinciden con
los esperados seg´n E = d ⊕ f . Los valores e y e∗ precisados para estas pruebas se obtendr´n por
                    u                                                                               a
descifrado de una vuelta utilizando K6. Tras efectuar las 64 pruebas se hallar´ los bits restantes de
                                                                                    a
K6, de modo que s´lo nos faltar´n por conocer 8 bits de la clave total. Estos 8 bits pueden ser de-
                      o             a
terminados mediante b´squeda exhaustiva (256 pruebas), o bien puede efectuarse un criptoan´lisis
                          u                                                                           a
con la quinta ronda similar al llevado a cabo con la sexta.




                                                                                 18
Fundamentos del criptoanálisis diferencial
Fundamentos del criptoanálisis diferencial
Fundamentos del criptoanálisis diferencial
Fundamentos del criptoanálisis diferencial
Fundamentos del criptoanálisis diferencial
Fundamentos del criptoanálisis diferencial
Fundamentos del criptoanálisis diferencial
Fundamentos del criptoanálisis diferencial
Fundamentos del criptoanálisis diferencial
Fundamentos del criptoanálisis diferencial
Fundamentos del criptoanálisis diferencial
Fundamentos del criptoanálisis diferencial
Fundamentos del criptoanálisis diferencial
Fundamentos del criptoanálisis diferencial

Más contenido relacionado

Destacado

DWT mediante lifting en JPEG2000
DWT mediante lifting en JPEG2000DWT mediante lifting en JPEG2000
DWT mediante lifting en JPEG2000Rafa Boix
 
Canal de comunicación y caos
Canal de comunicación y caosCanal de comunicación y caos
Canal de comunicación y caosdarg0001
 
Symbolic dynamics of unimodal maps
Symbolic dynamics of unimodal mapsSymbolic dynamics of unimodal maps
Symbolic dynamics of unimodal mapsdarg0001
 
Caos y Wavelets
Caos y WaveletsCaos y Wavelets
Caos y Waveletsdarg0001
 
David arroyo2009 en
David arroyo2009 enDavid arroyo2009 en
David arroyo2009 endarg0001
 
Articulo Wavelet
Articulo WaveletArticulo Wavelet
Articulo WaveletYosep Perez
 
Aplicaciones de la transformada de fourier para deteccion de daños
Aplicaciones de la transformada de fourier para deteccion de dañosAplicaciones de la transformada de fourier para deteccion de daños
Aplicaciones de la transformada de fourier para deteccion de dañosJavier Gonzales
 

Destacado (7)

DWT mediante lifting en JPEG2000
DWT mediante lifting en JPEG2000DWT mediante lifting en JPEG2000
DWT mediante lifting en JPEG2000
 
Canal de comunicación y caos
Canal de comunicación y caosCanal de comunicación y caos
Canal de comunicación y caos
 
Symbolic dynamics of unimodal maps
Symbolic dynamics of unimodal mapsSymbolic dynamics of unimodal maps
Symbolic dynamics of unimodal maps
 
Caos y Wavelets
Caos y WaveletsCaos y Wavelets
Caos y Wavelets
 
David arroyo2009 en
David arroyo2009 enDavid arroyo2009 en
David arroyo2009 en
 
Articulo Wavelet
Articulo WaveletArticulo Wavelet
Articulo Wavelet
 
Aplicaciones de la transformada de fourier para deteccion de daños
Aplicaciones de la transformada de fourier para deteccion de dañosAplicaciones de la transformada de fourier para deteccion de daños
Aplicaciones de la transformada de fourier para deteccion de daños
 

Similar a Fundamentos del criptoanálisis diferencial

Mi proyecto de pre-tesis
Mi proyecto de pre-tesisMi proyecto de pre-tesis
Mi proyecto de pre-tesisErwin Salas
 
Penduloinvertido
PenduloinvertidoPenduloinvertido
Penduloinvertidojevive
 
Fractales.minimonograph
Fractales.minimonographFractales.minimonograph
Fractales.minimonographcheliitaa
 
Fibras opticas
Fibras opticasFibras opticas
Fibras opticasnhanhaboy
 
Algoritmos y estructura_de_datos
Algoritmos y estructura_de_datosAlgoritmos y estructura_de_datos
Algoritmos y estructura_de_datosSIRCACAROTO
 
Algoritmos y estructura_de_datos
Algoritmos y estructura_de_datosAlgoritmos y estructura_de_datos
Algoritmos y estructura_de_datosch1c41z4
 
Intr a la matematica discreta
Intr a la matematica discretaIntr a la matematica discreta
Intr a la matematica discretaroyvelarde
 
Intro admon-redes-v1.1
Intro admon-redes-v1.1Intro admon-redes-v1.1
Intro admon-redes-v1.11 2d
 
Redestelecomunicacion
RedestelecomunicacionRedestelecomunicacion
RedestelecomunicacionHALCON NEGRO
 
Heuristicas para problemas de ruteo de vehiculosd
Heuristicas para problemas de ruteo de vehiculosdHeuristicas para problemas de ruteo de vehiculosd
Heuristicas para problemas de ruteo de vehiculosdolimpica
 
Gulp 0.11
Gulp 0.11Gulp 0.11
Gulp 0.111 2d
 

Similar a Fundamentos del criptoanálisis diferencial (20)

Mi proyecto de pre-tesis
Mi proyecto de pre-tesisMi proyecto de pre-tesis
Mi proyecto de pre-tesis
 
Penduloinvertido
PenduloinvertidoPenduloinvertido
Penduloinvertido
 
Fractales.minimonograph
Fractales.minimonographFractales.minimonograph
Fractales.minimonograph
 
Rarepaso
RarepasoRarepaso
Rarepaso
 
Rarepaso
RarepasoRarepaso
Rarepaso
 
Intro2
Intro2Intro2
Intro2
 
VXC: Computer Vision
VXC: Computer VisionVXC: Computer Vision
VXC: Computer Vision
 
Fibras opticas
Fibras opticasFibras opticas
Fibras opticas
 
Algoritmos y estructura_de_datos
Algoritmos y estructura_de_datosAlgoritmos y estructura_de_datos
Algoritmos y estructura_de_datos
 
Algoritmos y estructura_de_datos
Algoritmos y estructura_de_datosAlgoritmos y estructura_de_datos
Algoritmos y estructura_de_datos
 
Algebra[ufro]
Algebra[ufro]Algebra[ufro]
Algebra[ufro]
 
Intr a la matematica discreta
Intr a la matematica discretaIntr a la matematica discreta
Intr a la matematica discreta
 
Intro admon-redes-v1.1
Intro admon-redes-v1.1Intro admon-redes-v1.1
Intro admon-redes-v1.1
 
Fundamentos de-calculo
Fundamentos de-calculoFundamentos de-calculo
Fundamentos de-calculo
 
Redestelecomunicacion
RedestelecomunicacionRedestelecomunicacion
Redestelecomunicacion
 
Heuristicas para problemas de ruteo de vehiculosd
Heuristicas para problemas de ruteo de vehiculosdHeuristicas para problemas de ruteo de vehiculosd
Heuristicas para problemas de ruteo de vehiculosd
 
Heuristicos Para Vrp
Heuristicos Para VrpHeuristicos Para Vrp
Heuristicos Para Vrp
 
Analisis
AnalisisAnalisis
Analisis
 
Memoria Exploración y Análisis de Datos
Memoria Exploración y Análisis de DatosMemoria Exploración y Análisis de Datos
Memoria Exploración y Análisis de Datos
 
Gulp 0.11
Gulp 0.11Gulp 0.11
Gulp 0.11
 

Fundamentos del criptoanálisis diferencial

  • 1. Introducci´n al criptoan´lisis diferencial o a David Arroyo Guarde˜o n ´ Indice ´ Indice 1 1. Introducci´n o 2 2. Algoritmo de cifrado DES 2 2.1. Caracter´ ısticas de las cajas S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3. Fundamentos del criptoan´lisis diferencial a 5 3.1. An´lisis de las cajas S . . . . . . . . . . . . . . . . . . . . . . . . a . . . . . . . . . . 6 3.1.1. Determinaci´n de la clave asociada a una caja S . . . . . o . . . . . . . . . . 7 3.2. An´lisis de la funci´n F . . . . . . . . . . . . . . . . . . . . . . . a o . . . . . . . . . . 9 3.2.1. M´todo para la determinaci´n de la subclave empleada en e o un bloque F. . . 10 3.3. An´lisis del encadenado de funciones F . . . . . . . . . . . . . . . a . . . . . . . . . . 10 3.3.1. Caracter´ ısticas de 1 vuelta . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.3.2. Caracter´ ısticas de 2 vueltas . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.3.3. Definici´n formal de caracter´ o ıstica . . . . . . . . . . . . . . . . . . . . . . . 12 3.3.4. Caracter´ ısticas de 3 vueltas . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.3.5. Esquema de conteo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 4. Criptoan´lisis de DES a 15 4.1. Criptoan´lisis de DES reducido a cuatro vueltas a . . . . . . . . . . . . . . . . . . . 15 4.2. DES reducido a 6 vueltas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 4.3. DES con un n´mero arbitrario de vueltas . . . . u . . . . . . . . . . . . . . . . . . . 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
  • 2. 1. Introducci´n o En el presente documento se lleva a cabo un estudio introductorio de la t´cnica de cripton´lisis e a diferencial. Dado que dicha t´cnica fue propuesta para criptoanalizar el algoritmo DES, toda la e exposici´n se centrar´ en este tipo de cifra sim´trica. En un primer punto se muestran los aspectos o a e fundamentales de DES, para posteriormente esbozar las l´ ıneas fundamentales del criptoan´lisis a diferencial. Cabe destacar que la meta esencial de la presente exposici´n no es sino mostrar las o ideas fundamentales de esta t´cnica de criptoan´lisis, m´s que llevar a cabo un criptoan´lisis de e a a a DES. 2. Algoritmo de cifrado DES El la criptograf´ moderna los distintos sistemas de cifrado se clasifican en dos grandes grupos: ıa 1. Sistemas de clave secreta o sim´tricos e 2. Sistemas de clave p´blica o asim´tricos u e La diferencia entre estas dos variantes de cifrado radica en el hecho de que la clave de cifrado sea igual o distinta de la clave descifrado. En el caso de los sistemas sim´tricos de cifrado, se hace uso e de la misma clave a la hora de cifrar y de descifrar (figura 1). Clave Clave Texto claro Texto cifrado Texto claro Cifrar Cifrar Descifrar Descifrar Figura 1: Criptograf´ de clave secreta ıa Adem´s, dentro de los sistemas de clave secreta se habla de cifrado en flujo y de cifrado en a bloque. En el cifrado en flujo se efect´a un cifrado bit a bit, mientras que en el cifrado en bloque u se divide el texto claro, esto es, la informaci´n a cifrar, en bloques de un n´mero constante de bits. o u A cada uno de estos bloque se le aplica el cifrado. El bloque de texto cifrado correspondiente a un determinado bloque de texto claro es siempre el mismo, siempre que la clave no sea modificada. Como se dijo en la introducci´n, el algoritmo con el que se trabajar´ es el DES. El DES pertenece al o a sistema de cifrado sim´trico y es un algoritmo de cifra en bloque. Como todos los cifrado en bloque, e el DES se apoya en los conceptos de confusi´n y difusi´n inicialmente propuestos por Shannon: o o La confusi´n consiste en tratar de ocultar la relaci´n que existe entre el texto claro, el texto o o cifrado y la clave. La difusi´n trata de repartir la influencia de cada bit del mensaje original lo m´s posible o a entre el mensaje cifrado. La confusi´n por s´ sola ser´ suficiente. Basta generar una tabla de sustituci´n completamente o ı ıa o diferente para cada clave con todos los textos claros posibles. Dichas tablas ocupar´ cantidades ıan astron´micas de memoria, por lo que en la pr´ctica ser´ inviable su manejo. Por ejemplo, un o a ıan algoritmo que codificara bloques de 128 bits empleando una clave de 80 bits necesitar´ una tabla ıa de aproximadamente 1063 entradas. Lo que en realidad se hace para conseguir algoritmos fuertes, sin necesidad de almacenar tablas enormes, es intercalar la confusi´n (sustituciones simples, con o tablas peque˜as) y la difusi´n (permutaciones). De forma m´s precisa, la confusi´n y difusi´n se n o a o o consigue a trav´s de los siguientes bloques funcionales: e 2
  • 3. 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. Transformaci´n inicial. o Tiene por objetivo aleatorizar los datos de entrada. Suele constar de una o dos funciones que han de ser dependientes de la clave de cifrado, si se desea conseguir cierta inmunidad frente a ataques por an´lisis diferencial o lineal. En el caso de DES esta transformaci´n inicial no a o depende de la clave, por lo que no tiene significaci´n criptogr´fica alguna (puede ignorarse o a en un criptoan´lisis). a 2. Funci´n criptogr´ficamente d´bil/r vueltas. o a e Es una funci´n no lineal formada por una operaci´n compleja o varias simples. o o 3. Transformaci´n final. o Tiene por misi´n garantizar la simetr´ entre cifrado y descifrado. o ıa 4. Algoritmo de expansi´n de clave. o Mediante este algoritmo se obtienen a partir de una clave peque˜a (56−256 bits) las distintas n subclaves a emplear en las sucesivas vueltas de cifrado. El algoritmo ha de ser tal que no sea factible (o muy dif´ ıcil) inferir la clave a partir de las subclaves. Adem´s, las subclaves no a deben ser un subconjunto mon´tono.o En el caso de DES, los cuatro bloques reci´n citados quedan recogidos en el esquema de la figura e 2. DES lleva a cabo el cifrado de bloques de 64 bits de informaci´n en 16 iteraciones. En cada una o de esas vueltas se hace uso de un bloque funcional F, el cual lleva cabo el proceso de difusi´n y o de confusi´n en dependencia de una subclave asociada a la vuelta correspondiente y obtenida a o partir de la clave sim´trica. Ahora bien, ese bloque funcional s´lo act´a sobre la mitad de los bits e o u constituyentes del bloque a cifrar. De este modo, de forma alternativa, en cada vuelta s´lo se cifran o 32 de los 64 bits del bloque. A los sistemas de cifra que, como DES, en cada vuelta s´lo cifran o la mitad del bloque, se les llama de tipo Feistel. Adem´s del bloque F, existe una transformaci´n a o inicial que no tiene inter´s criptogr´fico (no depende de la clave) y que ser´ invertida tras las 16 e a a vueltas de cifrado. Volviendo al bloque F, el proceso de confusi´n y difusi´n que lleva a cabo se sustenta en la o o estructura de la figura 3. En primer lugar, el bloque F lleva a cabo una expansi´n de bloque, o de modo que los 32 bits de entrada se convierte en 48. La expansi´n no es m´s que un vector o a de 48 elementos obtenidos mediante el vector que aparece en la parte superior de la figura 3. El vector aparece representado como una matriz de 4 filas y 12 columnas. La concatenaci´n de filas, o empezando por la superior, nos da el vector de expansi´n. Cada elemento del vector de expansi´n o o refiere el ´ ındice del bit del bloque de 32 bits que debe ocupar esa posici´n en el vector expandido o de 48 bits. Una vez que se tiene el bloque expandido, se calcula la suma OR exclusiva del mismo con la subclave asociada a la vuelta de cifrado en la que nos encontramos. Tras esto, se dividen los 48 bits en 8 bloques de 6 bits. Cada uno de esos bloques es sometido a una transformaci´n no o lineal mediante las llamadas cajas S. Las cajas S implementan el fen´meno de confusi´n necesario o o para elaborar un buen sistema de cifrado, mientras que el proceso de difusi´n se materializa en o 3
  • 4. a dr ei u q zI 23 1 2 3 4 5 4 5 6 7 8 9 . q zi ort n e C 8 9 01 11 21 31 21 31 1 51 61 71 4 ort n e C 61 71 81 91 02 12 02 12 2 32 42 52 . a h cr d 2 a h c er e D 42 52 62 72 82 92 82 92 3 13 23 1 X, bloque de entrada 32 bits 0 E, expansión a 48 bits K, Clave de 48 bits Suma módulo-2 bit a bit S1 S2 …. S8 Componente no lineal, fuerza del DES P, permutación Y, bloque de salida 32 bits 61 7 02 12 92 21 82 71 1 51 32 62 5 81 13 01 2 8 42 41 23 72 3 9 91 31 03 6 22 11 4 52 Figura 3: Esquema de la funci´n F vinculada a cada etapa de cifrado del algoritmo DES o la permutaci´n que se efect´a tras la acci´n de las cajas S. Esta ultima operaci´n, al igual que la o u o ´ o expansi´n, viene dada por un vector, en este caso de 32 bits, cuyos elementos son los ´ o ındices de los bits de la entrada de 48 bits. Es decir, el vector de permutaci´n indica que bits de la entrada o estar´n presentes en la salida, as´ como el orden de los mismos. a ı Como se menciono m´s arriba, DES divide el texto a cifrar en bloques de 64 bits y cada uno a de ellos los cifra mediante una clave tambi´n de 64 bits. Ahora bien, seg´n refleja la figura 2, e u en cada vuelta de cifrado se hace uso de una “clave” distinta. De este modo, en principio ser´ ıa preciso contar con una clave de 16 × 48 bits. En lugar de esto DES lleva a cabo la generaci´n de o 16 subclaves de 48 bits a partir de los 64 bits de la clave. La generaci´n de subclaves responde al o esquema referido por la figura 4. El proceso de generaci´n de subclaves incluye dos vectores, PC-1 o y PC-2, que en el esquema aparecen en forma de matriz por facilitar su visualizaci´n. En realidad, o PC-1 y PC-2 son vectores que resultan de concatenar las filas de esas tablas de arriba a abajo. Al 1 igual que en el caso de la expansi´n y de la permutaci´n, los vectores recogen los bits de entrada o o que van a aparecer en la salida, as´ como el orden en que lo har´n. PC-1, adem´s de efectuar una ı a a reordenamiento de los bits de entrada, elimina ocho de los 64 bits de entrada (los bits 8, 16, 24 32, 40, 48, 56, 64). Esos bits no tienen, pues, valor criptogr´fico alguno, de modo que la longitud a efectiva de la clave de DES es de 56 bits. Esto es, un ataque por fuerza bruta sobre DES exige 256 pruebas. Del esquema, adem´s, se deduce que cada una de las 16 subclaves contiene 48 bits de la clave a original, por lo que la determinaci´n de cualquiera de esas subclaves har´ posible rebajar la carga o ıa computacional de un ataque por fuerza bruta de las 256 operaciones originales a 28 . Este factor, junto al hecho de que s´lo se cifren la mitad de los bits en cada vuelta, es una debilidad del sistema o DES. 4
  • 5. 1FL 2FL 3FL 4FL 5FL 6FL 7FL 8FL 9FL 01FL 11FL 21FL 31FL 41FL 41FL 61FL 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1 K Reducción a 56 bits ) sti b 6 5( 1 - C P al b a T 28 bits izquierda 28 bits derecha 57 49 41 33 25 17 9 Permutación PC-1 1 58 50 42 34 26 18 Desplazamiento Desplazamiento 10 2 59 51 43 35 27 Izquierda LF1 Izquierda LF1 19 11 3 60 52 44 36 PC-2 63 55 47 39 31 23 15 Desplazamiento K1 Desplazamiento 7 62 54 46 38 30 22 Izquierda LF2 Izquierda LF2 ) sti b 8 4( 2- C P al b a T 14 6 61 53 45 37 29 PC-2 14 17 11 24 1 5 21 13 5 28 20 12 4 K2 3 28 15 6 21 10 23 19 12 4 26 8 Desplazamiento Desplazamiento Izquierda LF16 Izquierda LF16 16 7 27 20 13 2 PC-2 41 52 31 37 47 55 30 40 51 45 33 48 K16 44 49 39 56 34 53 46 42 50 36 29 32 Figura 4: Generaci´n de subclaves en DES o 2.1. Caracter´ ısticas de las cajas S Las cajas S son la componente no lineal de DES. Permiten eliminar caminos de inferencia de valores de la clave a trav´s del estudio de texto claro y texto cifrado. Estas cajas presentan las e siguientes caracater´ ısticas: 1. La salida de una caja S no puede ser expresada como funci´n lineal o af´ de la entrada. o ın 2. La modificaci´n de un bit de la entrada de una caja S provoca el cambio de al menos dos o bits de la salida. 3. S(X) y S(X ⊕ 001100) difieren como m´ ınimo en dos bits. 4. S(X) y S(X ⊕ 11ef 00) difieren para cualquier elecci´n de e y f . o 5. Si se mantiene constante un bit de la entrada, la diferencia entre n´meros de unos y de ceros u a la salida es m´ ınima. Los valores de las cajas S se encuentran en el ap´ndice A. Las cajas contienen los distintos e valores de salida para las distintas entradas. El primer y ultimo bit, de los 6 que constituyen el ´ bloque de entrada de una caja S, nos da la fila en la que se encuentra el valor de salida, mientras que la columna queda consignada por los 4 bits restantes. Todos los valores de salida se encuentran comprendidos en el intervalo [0, 15], esto es, la salida de cada caja S tiene 4 bits. 3. Fundamentos del criptoan´lisis diferencial a Para presentar las bases del criptoan´lisis diferencial nos centraremos en el cifrado que se lleva a a cabo en una vuelta del algoritmo DES (mirar figura 5). En cada una de las vueltas de cifrado se presenta una secuencia de 32 bits que, en primer t´rmino, sufre una transformaci´n que da lugar e o a una segunda segunda secuencia de 48 bits. Es decir, la primera fase del cifrado involucra una expansi´n de la secuencia a cifrar para, de este modo, poder llevar a cabo la suma OR-exclusiva o con la subclave (de 48 bits) asociada a dicha vuelta de cifrado. Consideremos dos secuencias de 32 bits 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
  • 6. 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 ∗ ) = Si (B) ⊕ Si (B ∗ ). (4) Por ultimo, la operaci´n de permutaci´n tambi´n es de car´cter lineal, pues se cumple ´ o o e a ∆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 por ´ las cajas S. El criptoan´lisis diferencial se basa en el estudio de la distribuci´n de las sumas OR a o exclusiva de las salidas de cada caja S, cuando se trabaja con distintos pares de entradas cuya suma OR exclusiva es constante. Este examen demuestra que, en efecto, no existe una correspondencia directa entre valor XOR a la entrada de la caja y valor XOR a la salida de la misma. Esto es debido a las caracter´ısticas de las cajas S (mirar apartado 2.1). X ∆ X E Ki ∆A B ∆ Caja Si ∆ C P ∆ Y Y Figura 5: Esquema de funcionamiento del criptoan´lisis diferencial aplicado a una vuelta de cifrado a 3.1. An´lisis de las cajas S a El an´lisis de las distintas cajas lleva a cabo la evaluaci´n de las distintas XOR de las salidas a o obtenidas para las parejas de entradas cuya XOR toma un cierto valor. A continuaci´n se define o la tabla que contiene los resultados obtenidos mediante este examen. Definici´n 1. Una tabla que muestra la distribuci´n de las XORs de entrada y de las XORs de o o salida de todas las posibles parejas de una caja S, se denomina tabla de distribuci´n de parejas o XOR de la caja S. En dicha tabla cada fila representa un valor XOR de las entradas, mientras que cada columna es un posible valor de XOR de las salidas. Para un valor de XOR de entradas dado existen, en el 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 distribuci´no de una cierta caja, por cada fila, por cada valor de XOR de entrada se eval´an las 64 parejas de u entradas. Para cada entrada de la pareja se obtiene el valor de salida. A continuaci´n se determina o la XOR de salida. De este modo, tras el c´lculo de las 64 parejas se tendr´ la tabla de distribuci´n a a o de parejas XOR. En el ap´ndice B aparecen las 8 tablas de distribuci´n obtenidas mediante este e o an´lisis. A partir de ellas se concluye: a Cuando la XOR de entrada es 0, es decir, cuando las entradas de una caja S son iguales, la XOR de las salidas es siempre 0. El ´ ındice de ocurrencia mayor detectado en el conjunto de tablas, exceptuando el caso en el que las entradas son iguales, es 16. No todos los valores de XOR de salida son posibles. Definici´n 2. Sea X un n´mero de 6 bits e Y un n´mero de 4 bits. Se dice que X puede dar o u u lugar a Y mediante una caja S si existe un par de entradas cuya XOR sea igual a X y que la XOR de 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 Y mediante la caja S, lo que se expresa como X → Y . 6
  • 7. Definici´n 3. Se dice que X da lugar a Y mediante S con una probabilidad p, si para una fracci´n o o p de las posibles parejas cuya XOR es igual a X, la XOR de las salidas es igual a Y . 3.1.1. Determinaci´n de la clave asociada a una caja S o El criptoan´lisis diferencial va a estar fundamentado en el an´lisis estad´ a a ıstico de las cajas S, de modo que todas las inferencias y deducciones se van a desplegar como resultado de un conocimiento suficiente y detallado de las tablas de distribuci´n asociadas a cada una de las ocho cajas S o (ap´ndice B). De las tablas se deduce que no todas las combinaciones de entrada y salida (XOR de e entradas, XOR de salidas) son posibles. Dicho de otro modo, hay casillas con valor nulo para cada una de las ocho tablas probabil´ ısticas. Se designa como entrada v´lida de una tabla de distribuci´n a o aquella combinaci´n de XOR de entradas y XOR de salidas tal que la casilla correspondiente en la o tabla de distribuci´n almacena un valor no nulo. En la tabla 1 aparecen los porcentajes de entradas o v´lidas para las tablas de distribuci´n de cada tabla S. Este porcentaje fluct´a entre el 70 % y el a o u 80 %, consider´ndose de forma gen´rica que para cada tabla el 80 % de las entradas, esto es, de las a e combinaciones XOR de entrada y XOR de salida son posibles. Esta circunstancia ser´ de utilidad a a la hora de buscar combinaciones XOR de entradas y salidas v´lidas. De este modo, el primer a estadio en la b´squeda de la clave relacionada con una cierta caja S, ser´ buscar una entrada a la u a tabla de probabilidad posible. Adem´s, no vale que simplemente sea una entrada v´lida. Interesa a a que el ´ındice de ocurrencia de la XOR de salida para la XOR de entrada sea m´ximo. As´ se a ı, lograr´ que el valor de clave sea sugerido por un n´mero considerable de las parejas de entradas a u evaluadas. Caja S Porcentaje ( %) entradas v´lidas a S1 79.4921875 S2 78.61328125 S3 79.6875 S4 68.5546875 S5 76.5625 S6 80.46875 S7 77.24609375 S8 77.1484375 Tabla 1: Porcentaje de entradas v´lidas para las tablas de distribuci´n de las cajas S a o La b´squeda de los 6 bits de clave asociados a una cierta caja S es un procedimiento de corte u iterativo. Se llevan a cabo pruebas con los 64 valores posibles de clave trabajando con distintos pares de texto claro y pares de texto cifrado. Se buscar´n aquel valor de clave que haga que, para a todas las parejas de entrada a la caja considerada, la XOR de las salidas sea coherente con la tabla de distribuci´n implicada. De forma m´s detallada, en primer lugar se busca en la tabla o a de distribuci´n una entrada que sea posible, prefiriendo aquellas que presenten un mayor ´ o ındice de ocurrencia. Se buscan todas las entradas de la caja S que, prescindiendo de la clave, pueden dan lugar a la XOR de salida. Esto es, se determinan las 64 parejas con XOR igual a la prefija y, a continuaci´n, se verifica cuales de ellas dan lugar a un par de salidas con XOR igual a la o preestablecida. Tras esto, se llevan a cabo las pruebas con los 64 posibles valores de clave. Se tratar´ de hallar el valor de clave cuya XOR con pares de entradas de lugar a cualquiera de los a pares 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 bits de clave. Supongamos que estas entradas son S1E = 1x y S1∗ = 35x . Supongamos que el valor de E clave que queremos deducir es S1K = 23x , con lo que las salidas ser´n S1O = 1x y S1∗ = Cx , a O resultando S1O = Dx . En primer lugar se determinan todas las entradas a la caja S1 tal que la pareja constituida por cada una de esas entradas y la XOR de la misma con S1E = 34x , de lugar a 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 ser´n: a 7
  • 8. Pareja de entrada Valor de clave (S1I ,S1∗ ) I (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∗ = 35x , S1O = Dx E Si ahora se tiene dos nuevas entradas S1E = 27x y S1∗ = 13x y la misma clave S1K = 23x , E las salidas ser´n S1O = Dx y S1∗ = Fx , respectivamente, de modo que S1O = 2x . En este caso a O los 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 Valor de clave (S1I ,S1∗ ) I (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 repetidos tambi´n los valores 29x , 1Dx , 7x , 33x , 23x , 17x . Por tanto, habr´ que utilizar m´s parejas para e ıa a descartar m´s valores posibles de clave. El valor que aparezca en todas las tablas ser´ el valor a a verdadero de clave. En las tablas 4 y 5 aparecen los valores de clave obtenidos para otros dos pares de entradas. Los valores de clave comunes para todas las tablas son 17x y 23x . Dado que 34x = 17x ⊕ 23x = S1I , no va a ser posible distinguir estos valores de clave para la XOR de entrada dada. En efecto, en la tabla 1 se trabaja con XOR de entrada igual a 35x . Esta tabla s´loo tiene en com´n con las dem´s el valor de clave 23x , es decir, el valor correcto de clave. u a Pareja de entrada Valor de clave (S1I ,S1∗ ) I (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
  • 9. Pareja de entrada Valor de clave (S1I ,S1∗ ) I (27x , 13x ) 17x (13x , 27x ) 23x Tabla 5: Valores posibles de clave para 34x → 4x con entradas 30x y 4x Pareja de entrada Valor de clave (S1I ,S1∗ ) I (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 criptoan´lisis diferencial. En a los siguientes apartados se mostrar´n conceptos y estrategias que, en ultima instancia, tratan de a ´ encontrar pares de entrada y XOR de salida asociadas a una o varias cajas S. Con esos pares de entradas y esas salidas se podr´ llevar a cabo un an´lisis como el reci´n expuesto. De este modo, a a e con un n´mero suficiente de parejas de texto claro y texto cifrado, escogidas para evitar entradas u no v´lidas de las tablas de distribuci´n de cada una de las cajas S involucradas, se podr´ conseguir a o a de forma inequ´ ıvoca el valor de la subclave asociada a cada una de las cajas. 3.2. An´lisis de la funci´n F a o Entrada (32 bits) E 48 bits 48 bits S1E S2E S3E S4E S5E S6E S7E S8E S1K S2K S3K S4K S5K S6K S7K S8K S1I S2I S3I S4I S5I S6I S7I S8I S1 S2 S3 S4 S5 S6 S7 S8 S1O S2O S3O S4O S5O S6O S7O S8O P Salida (32 bits) Figura 6: Notaci´n para la funci´n F o o 9
  • 10. Definici´n 4. Sean X e Y dos n´meros de 32 bits. Decimos que X da lugar a Y mediante F con o u una probabilidad p si para una fracci´n p de todas las posibles parejas de entradas a F cuya XOR o es 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 funci´n F , entonces para cada o pareja Z, Z ∗ con ∆Z = Z ⊕ Z ∗ = X hace que el XOR de las salidas de la funci´n F sea igual a Y o para la misma fracci´n p de los posibles valores de la subclave. o ∗ Demostraci´n. Consideremos una caja S determinada. Sean SE y SE dos salidas del bloque de o ∗ expansi´n para las que se tiene ∆E = E ⊕ E (mirar figura 6). Se tiene que ∆SI = ∆SE para todo o valor de la subclave SK . Supongamos que existen k parejas de entradas a la caja S distintas, cuya XOR es igual a ∆SI y cuya XOR de las salidas de la caja S en cuesti´n es la misma. Es posible o ∗ encontrar k valores de subclave SK = SI ⊕ SE , donde SI y SI son las parejas que dan lugar a las salidas de la caja cuya XOR es la deseada. Por tanto, la fracci´n p de salidas que dan lugar a la o XOR deseada, es tambi´n la fracci´n de valores de subclave que permiten generar dicha XOR de e o las salidas. Corolario 1. La probabilidad p de X → Y mediante la funci´n F es el producto de las proba- o bilidades pi de que Xi → Yi mediante las cajas Si (i ∈ {1, . . . , 8}), donde X1 X2 X3 X4 X5 X6 X7 X8 = E(X) y Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8 = P −1 (Y ). 3.2.1. M´todo para la determinaci´n de la subclave empleada en un bloque F e o El m´todo que se aplicar´ hace uso de los conceptos e ideas esbozadas en el anterior apartado: e a 1. Elegir un valor apropiado de XOR de entrada. 2. Generar un n´mero suficiente de parejas de texto claro que den lugar a la XOR de entrada u previamente 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 n´mero de parejas de salidas cuya XOR coincide u con la esperada. 5. El valor correcto de clave es (si es unica) la clave sugerida por todas las parejas. ´ 3.3. An´lisis del encadenado de funciones F a Definici´n 5. Asociados con cualquier par de cifrados est´n la XOR del par de textos claros, o a la XOR del par de textos cifrados, las XORs de las entradas de cada vuelta y las XORs de las salidas de cada vuelta. Estos valores XOR constituyen un caracter´ ıstica de n vueltas. Una caracter´ ıstica tiene asociada una probabilidad, que es la probabilidad de que una pareja de texto claro con una XOR concreta de lugar a las XOR de entrada y salida de cada vuelta que aparecen recogidas 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 distribuci´n del ap´ndice B muestran que la probabilidad m´xima para una XOR o e a de salida referida a cada una de las cajas S se da cuando la pareja de entradas son iguales. En este caso las 64 salidas que nos da el an´lisis son 0. De este modo, si la XOR entrada de un DES de una a vuelta tiene los 32 bits de la izquierda a 0 (mirar figura 7) habremos conseguido una caracter´ıstica de 1 vuelta con probabilidad 1. Es decir, para cualquier par de entradas de un DES de una vuelta tal que s´lo se diferencien en los 32 bits de la entrada, el XOR las salidas obtenidas es igual al o XOR de las entradas. 10
  • 11. P=(L’,0x) A’=0x a’=0x F T=(L’,0x) Figura 7: Caracter´ ıstica de 1 vuelta con probabilidad 1 La caracter´ ıstica reci´n presentada es la de mayor probabilidad. Para conseguir otras buenas e caracter´ ısticas de una vuelta habr´ que conseguir que s´lo una de las cajas S tenga XOR de ıa o entradas no nula. Para lograr esto los pares de entradas al DES de una vuelta han de tener s´lo o dos bits de los 32 de la izquierda no nulos, de lo contrario tras la expansi´n habr´ m´s de una o ıa a caja S con XOR de entradas no nulas. Dicho de otro modo, los candidatos a caracter´ ıstica deben tener entradas con bits no nulos en los llamados bits privados de las distintas cajas S. En la tabla 7 aparecen los bits privados de caja una de las ocho cajas S. Caja N´meros Bit u XOR entrada de 64 bits (hexadecimal) S1 34,35 L 60 00 00 00 S2 38,39 L 06 00 00 00 S3 42,43 L 00 60 00 00 S4 46,47 L 00 06 00 00 S5 50,51 L 00 00 60 00 S6 54,55 L 00 00 06 00 S7 58,59 L 00 00 00 60 S8 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 seg´n aparece en cada u fila de la tabla 7, tras la expansi´n s´lo la XOR de entrada de una caja S ser´ no nula e igual a o o a OCx (el sub´ ındice x indica que el n´mero est´ expresado en hexadecimal). Si vamos a las tablas u a de distribuci´n de salidas de las cajas S, comprobamos que el m´ximo ´ o a ındice de ocurrencia es 14 , el cual se da para las cajas S1, S2 y S7: 1. Con S1: 14 S1 : 0Cx → Ex con probabilidad 64 S2, . . . , S8 : 00x → 0x siempre 2. Con S2: 14 S2 : 0Cx → 5x con probabilidad 64 S1, S3 . . . , S8 : 00x → 0x siempre 3. Con S7: 14 S7 : 0Cx → Cx con probabilidad 64 S1, . . . , S6, S8 : 00x → 0x siempre 11
  • 12. En resumen, la probabilidades m´ximas asociadas a una caracter´ a ıstica de una vuelta para DES son 1 y 1/4. Las caracter´ ısticas en cuesti´n aparecen en la tabla 12. o ΩP ΩT Probabilidad L, 00 00 00 00 L , 00 00 00 00 1 1 L, 60 00 00 00 L ⊕ 00 80 82 00, 60 00 00 00 4 1 L, 06 00 00 00 L ⊕ 00 00 40 10, 06 00 00 00 4 1 L, 00 00 00 60 L ⊕ 00 10 00 01, 00 00 60 00 4 Tabla 8: Caracter´ ısticas de 1 vuelta para DES(valores en hexadecimal) 3.3.2. Caracter´ ısticas de 2 vueltas Se podr´ pensar en utilizar como caracter´ ıa ıstica de dos vueltas aquella conformada por pares de entradas iguales. De este modo, a la entrada del DES de dos vueltas se tendr´ siempre una ıa XOR igual a 0, de modo que con probabilidad 1 la XOR de salida siempre ser´ cero. Ahora ıa bien, esto ocurrir´ independientemente del valor de la clave, por lo que no es interesante para ıa nuestro criptoan´lisis. Lo deseable ser´ que se contar´ con una caracter´ a ıa a ıstica con un valor alto de probabilidad, con el objeto de inferir el valor de la misma mediante el an´lisis estad´ a ıstico de las XOR de salidas obtenidas. Para ello, en el caso de caracter´ ısticas de dos vueltas vamos a construir las mismas utilizando los resultados obtenidos para las caracter´ ısticas de una vuelta. En efecto, si se hace que los 32 bits de la derecha de la XOR de entrada sean igual a la XOR de salida de la primera vuelta, se conseguir´ tener en la segunda vuelta una XOR de entrada todo a 0, es decir, a en la segunda vuelta se tendr´ la caracter´ a ıstica de m´xima probabilidad (probabilidad 1). a P=(00 80 82 00 60 00 00 00x) P=(00 00 40 10 06 00 00 00x) A’=00 80 82 00x a’=60 00 00 00x Probabilidad A’=00 00 40 10x a’=06 00 00 00x F 1/4 F B’=0x b’=0x Probabilidad B’=0x b’=0x F 1 F T=(60 00 00 00 00 00 00 00x) P=(00 10 00 01 00 00 00 60x) T=(06 00 00 00 00 00 00 00x) Probabilidad 1/4 A’=00 10 00 01x a’=00 00 00 60x F B’=0x b’=0x Probabilidad 1 F T=(00 00 00 60 00 00 00 00x) 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 definir una serie de conceptos que permitir´n aplicar de forma m´s general el procedimiento que se ha a a aplicado. 3.3.3. Definici´n formal de caracter´ o ıstica Definici´n 6. Un caracter´ o ıstica de n vueltas es una tupla Ω = (ΩP , ΩΛ , ΩT ) donde ΩP y ΩT son n´meros de m bits, y ΩΛ es una lista de n elementos ΩΛ = (Λ1 , Λ2 , . . . , Λn ), cada uno de los cuales u es un una pareja de la forma Λi = (λi , λi ), donde λi y λi son n´meros de m/2 bits y m es el I O I O u tama˜o de bloque del criptosistema. Un caracter´ n ıstica satisface los siguientes requerimientos: λ1 I = la mitad derecha de ΩP 12
  • 13. λ2 I = la mitad izquierda de ΩP ⊕ λ1 O λn I = la mitad izquierda de ΩT ⊕ λn O de modo que para 2 ≤ i ≤ n − 1: λi O = λi−1 ⊕ λi+1 I I Definici´n 7. Una pareja correcta, con respecto a una caracter´ o ı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 cifrado de la pareja haciendo uso de la clave K, la XOR de entrada de la i−´sima vuelta es igual λi , y la e I XOR de salida del bloque F es igual a λi . O Definici´n 8. La concatenaci´n de una caracter´ o o ıstica de n vueltas Ω1 = (Ω1 , Ω1 , Ω1 ) con una P Λ T ıstica de m vueltas Ω = (ΩP , ΩΛ , ΩT ), donde los primeros 32 bits de Ω1 son iguales a los caracter´ 2 2 2 2 T 32 bits finales de Ω2 , y los 32 bits finales de Ω1 son iguales a los 32 bits iniciales de Ω2 , es la P T P ıstica Ω = (Ω1 , ΩΛ , Ω2 ), siendo ΩΛ la concatenaci´n de las listas Ω1 y Ω2 . caracter´ P T o Λ Λ Definici´n 9. La vuelta i de una caracter´ o ıstica Ω tiene probabilidad pΩ si λi → λi con proba- i I O Ω bilidad pi mediante el bloque funcional F . Definici´n 10. Una caracter´ o ıstica de n vueltas tiene probabilidad pΩ si pΩ es el producto de las probabilidades de sus n vueltas: n pΩ = pΩ . i i=1 En resumen, mediante la ideas que se acaban de presentar es posible derivar un an´lisis de las a probabilidades asociadas a las distintas caracter´ ıstica de n vueltas a partir de un caracter´ ıstica de una sola vuelta. Teorema 1. La probabilidad de una caracter´ ıstica Ω = (ΩP , ΩΛ , ΩT ) es la probabilidad de que una pareja determinada de entradas P y P ∗ , cuya XOR P = P ⊕ P ∗ = ΩP , sea una pareja correcta cuando se utilizan claves aleatorias e independientes. Demostraci´n. La probabilidad de que un par de entradas tales que P = ΩP sean una pareja o correcta, es la probabilidad de que para todas las vueltas i: λi → λi . La probabilidad de cada I O vuelta es independiente del valor exacto de su entrada (lema 1), e independiente respecto a las operaciones efectuadas en las anteriores vueltas (ya que la independencia de las claves hace que los bits a la entrada de las cajas S sean aleatorios, de modo que s´lo queda fijados el valor de la XOR). o Por tanto, la probabilidad de que una pareja sea correcta es el producto de las probabilidades de λi → λi , esto es, la probabilidad de la caracter´ I O ıstica. En lo que respecta a nuestro intereses, esto es, en lo referente al criptoan´lisis, el objetivo a ser´ determinar aquel valor de la clave para el cual las parejas correctas con respecto a una a caracter´ ıstica dan lugar a una distribuci´n de valores XOR de salida coherente con la esperada. o Este valor de clave ser´ el valor correcto de clave, es decir, la clave que buscamos. Ahora bien, las a parejas correctas y el n´mero de ellas depende directamente del valor de clave empleado, de modo u que la distribuci´n de XOR de salidas no es constante para todas las posibles claves. No obstante, o seg´n se˜ala [1], la probabilidad de una caracter´ u n ıstica siempre puede ser considerada como una buena aproximaci´n de la distribuci´n de salidas XOR. o o 3.3.4. Caracter´ ısticas de 3 vueltas Utilizando los resultados expuestos m´s arriba, se construyen las caracter´ a ısticas de 3 vueltas a partir de las de 1 vuelta. Con el objeto de conseguir la m´xima probabilidad, en la primera a vuelta se emplea cualquiera de las tres caracter´ ısticas de 1 vuelta con probabilidad 1/4 que han sido comentadas. A continuaci´n se emplea la caracter´ o ıstica de probabilidad 1 y, finalmente, se hace uso de la misma caracter´ ıstica de 1 vuelta utilizada en el primer paso. En la figura 9 aparecen las tres caracter´ ısticas de 3 vueltas con probabilidad m´xima p = ( 1 )2 . El esquema de estas a 4 caracter´ısticas es claramente sim´trico. Si se quieren conseguir caracter´ e ısticas de un mayor n´mero u de vueltas, bastar´ seguir un modelo sim´trico como el recogido en la figura 9 para caracter´ a e ısticas de 3 vueltas. 13
  • 14. P=(00 80 82 00 60 00 00 00x) P=(00 00 40 10 06 00 00 00x) A’=00 80 82 00x a’=60 00 00 00x A’=00 00 40 10x a’=60 00 00 00x F Probabilidad 1/4 F B’=0x b’=0x B’=0x b’=0x F Probabilidad 1 F C’= 00 80 82 00x c’=60 00 00 00x C’=00 00 40 10x c’=06 00 00 00x F Probabilidad 1/4 F P=(00 10 00 01 00 00 00 60x) T=(00 80 82 00 00 00 00 00x) T=(00 00 40 10 06 00 00 00x) A’=00 10 00 01x a’=00 00 00 60x Probabilidad 1/4 F B’=0x b’=0x F Probabilidad 1 C’=00 10 00 01x c’=00 00 00 60x F Probabilidad 1/4 T=(00 10 00 01 00 00 00 60x) 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 sobre el comportamiento de una cierta caracter´ ıstica. Se llevar´n a cabo pruebas con todos los valores a de clave posibles. El valor correcto de clave ser´ aquel para el cual se consigue una distribuci´n de a o XOR de salidas en coherencia con la probabilidad de la caracter´ ıstica empleada. Para ello hay que asegurar que se utilizan parejas correctas, pues de lo contrario puede que el valor correcto de la clave sea descartado. Cada caracter´ ıstica nos permite deducir un determinado n´mero de bits de la subclave en la u ultima 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, adem´s,a permiten poner en pr´ctica el sistema de conteo con un mayor n´mero de bits de la subclave. No es a u preciso aplicar el sistema de conteo a todos los bits de la subclave. Es m´s, ello implicar´ un muy a ıa elevado consumo de memoria. Por ello, se puede explotar el sistema de conteo para un subconjunto de los bits de la subclave, mientras que los restantes bits, correspondientes a otras cajas S, ser´n a utilizados para descartar parejas no correctas (aquellas cuya XOR de entrada no da lugar a la XOR de salida esperada). Mirando las tablas de distribuci´n de la XOR de salida de las cajas S o (ap´ndice B), se observa que aproximadamente el 20 % de las XOR de entradas no son posibles, e con lo que aproximadamente el 20 % de las parejas no correctas podr´n ser descartadas para cada a caja S antes de efectuar el conteo de XOR de salidas. Definici´n 11. La ratio entre el n´mero de parejas correctas y el n´mero medio de parejas o u u contabilizadas, en un esquema de conteo, se denomina ratio se˜al a ruido y se denota S/N . n Supongamos que pretendemos determinar k bits de una cierta clave. Para ello, ser´ preciso a efectuar 2k pruebas y llevar a cabo un registro de las salidas XOR. Este conteo arroja un n´mero u medio de pruebas de m·α·β , donde m es el n´mero de parejas, α es el n´mero medio de conteos 2 k u u por 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, siendo p la probabilidad de la caracter´ıstica. Por tanto, la relaci´n se˜al a ruido del sistema de conteo o n vendr´ dada por el cociente entre el n´mero medio de pruebas en el caso de s´lo trabajar con a u o parejas correctas, y el n´mero medio de pruebas cuando se trabaja tanto como parejas correctas u como no correctas: m·p 2k · p S/N = = . (6) m · α · β/2k α·β De este modo, se comprueba que la relaci´n se˜al a ruido es independiente del n´mero de parejas o n u empleado. Adem´s, para un an´lisis basado en la misma caracter´ a a ıstica se obtendr´n distintas a 14
  • 15. relaciones se˜al a ruido en funci´n del n´mero de bits de la clave que sen considerados. Por ultimo, n o u ´ cabe rese˜ar que pese a la independencia de la se˜al a ruido del esquema respecto del n´mero n n u de parejas considerado, existe una relaci´n directa entre el n´mero de parejas precisadas y dicha o u ratio. Experimentalmente se comprueba [1] que cuando S/N ≈ 1 − 2 se precisan entre 20 y 40 parejas correctas. Para relaciones se˜al a ruido mucho menores, el n´mero de parejas requeridas n u es demasiado elevado, de ah´ la importancia de que la probabilidad asociada a una caracter´ ı ıstica sea m´xima. a Texto claro (P) A a F B b F C c F D d F Texto cifrado (T) Figura 10: DES reducido a 4 rondas 4. Criptoan´lisis de DES a 4.1. Criptoan´lisis de DES reducido a cuatro vueltas a En este apartado se van aplicar los resultados hasta ahora presentados a un DES reducido a 4 rondas (figura 10). En el cripton´lisis que se esbozar´ no se contempla el efecto de la permutaci´n de a a o entrada y salida, pues, tal y como se coment´, no tienen inter´s criptogr´fico alguno al no depender o e a de la clave de cifrado y constituir una operaci´n invertible de forma trivial. Dicho esto, pasamos o a presentar la primera caracter´ ıstica de la que nos valdremos para ejecutar el criptoan´lisis. La a caracter´ıstica en cuesti´n est´ representada en la figura 11. Si se hace uso de tal caracter´ o a ıstica, en la primera ronda se consigue a = 0 → A = 0 con probabilidad uno. En la segunda ronda se tendr´n parejas que s´lo difieren en un bit, el tercer bit de entrada a la caja S1. De esta forma, las a o parejas registradas a la salida de la caja S1 en la segunda ronda se diferenciar´n en al menos dos a bits (mirar tabla de distribuci´n de S1 en el ap´ndice B). Estos dos bits entrar´n en tres cajas S o e a distintas de la tercera ronda (c = a ⊕B = B ), de modo que en cada una de las parejas de entrada de cada caja s´lo habr´ diferencia en un bit. Por tanto, en la tercera ronda habr´n alrededor de o a a 6 bits de diferencia entre cada componente de cada una de las parejas consideradas. Estos bits son 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 expansi´n, esos 7 bits dan lugar a 11 bits de diferencia a la entrada de las o cajas S. Este efecto avalancha hace que casi todas las entradas de las cajas S sean diferentes en las diversas parejas. Es m´s, puede que la entrada de una cierta caja S en la cuarta ronda no presente a diferencias para una determinada pareja, mientras que otras pareja s´ puede dar diferencias en ı la entrada de dicha caja. En definitiva, el valor exacto de d normalmente es diferente para cada pareja. Los 28 bits de la XOR de la salidas de S2, . . . , S8 en B deben ser igual a 0, ya que la XOR de entrada es 0. Dado que a ⊕ B = c = D ⊕ l , se tiene D =a ⊕l ⊕B . (7) 15
  • 16. Cuando la pareja de texto cifrado T = (l, r) y T ∗ = (l∗ , r∗ ) son conocidos, los valores d y d∗ tambi´n lo son (d = r, bloque de 32 bits de la derecha). Dado que a = a ⊕ a∗ , l y los 28 bits de e B son conocidos, los 28 bits correspondientes de D tambi´n los son debido a (7). Estos 28 bits e ∗ son las XOR de las salidas de las cajas S2, . . . , S8. Por tanto, conocemos los valores SEd , SEd y SOd de siete cajas S en la cuarta ronda. Dadas las parejas cifradas, se lleva a cabo un procedimiento de conteo para cada una de aquellas siete cajas S en la cuarta ronda. Se prueban los 64 posibles valores de Skd para cada caja y se ∗ ∗ verifica si SEd ⊕ SKd y SId = SEd ⊕ Skd implican que ∗ SOd ⊕ SOd = SOd . (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 con probabilidad 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). Dado que estamos trabajando con DES, estos 42 bits forman parte de los 56 bits de la clave del cifrado. De este modo, s´lo restan 14 bits para tener la clave en su totalidad. Por tanto, bastar´ llevar a o a cabo sucesivos ensayos mediante fuerza bruta para obtener los bits de los que a´n no disponemos u (como m´ximo ser´n precisas 214 pruebas). En [1] se extiende el criptoan´lisis al caso en el cual a a a todas las subclaves son independientes. Ω = 1 P 00 00 00 00 00 00 00 02 x A ' = x0 a ' = x0 Probabilidad 1 F Ω = 1 T 00 00 00 00 00 00 00 02 x Figura 11: Caracter´ ıstica de una 1 vuelta con probabilidad 1 para criptoan´lisis DES de 4 rondas a 4.2. DES reducido a 6 vueltas Este criptoan´lsisis es m´s complejo que el anterior. Ahora ser´ necesario hacer uso de dos a a a 1 caracter´ısticas con probabilidad 16 . Cada una de esas caracter´ısticas nos permitir´ deducir 30 bits a de la clave K6 empleada en la quinta ronda. Esos 30 bits corresponden a las entradas de 5 cajas S. Dado que tres de esas cajas no son comunes a las dos caracter´ ısticas, en realidad se conseguir´n a 42 bits de la clave K6. Los 14 bits restantes de la clave total del DES reducido a 6 vueltas podr´n a hallarse mediante b´squeda exhaustiva o mediante un an´lisis y conteo m´s preciso de los bits de u a a la clave que se aplica a la entrada de las ocho cajas S. 16
  • 17. Ω = 1 P 00 00 00 40 00 00 80 04 x A ' = 00 80 04 x 00 a ' = 00 00 40 x 00 Probabilidad 1/4 F B ' = x0 b ' = x0 F Probabilidad 1 C ' = 00 80 04 x 00 c ' = 00 00 40 x 00 F Probabilidad 1/4 Ω = 1 T 00 00 00 00 00 00 00 02 x Figura 12: Caracter´ ıstica de 3 vueltas y probabilidad 1/16 para DES: criptoan´lisis de DES reducido a a 6 vueltas La primera caracter´ ıstica, Ω1 , es la que aparece representada en la figura 12. En la cuarta vuelta la XOR de las parejas de entradas de las cajas S2, S5, . . . , S8 (d = b ⊕ C = 40 08 00 00x ) es igual a cero (SEd = 0) y, por tanto, la XOR de las parejas de salidas son tambi´n cero (i.e. SOd = 0, e para esas cinco cajas S). La XOR de las parejas de salidas en la sexta ronda vendr´ dada como a F = c ⊕ D ⊕ l , donde se tendr´ en cuenta que la XOR de las parejas de salidas correspondientes a a las cajas S2, S5, . . . , S8 son cero. Dado el car´cter probabil´ a ıstico del sistema de conteo, y con objeto de incrementar la relaci´n se˜al a ruido S/N , es preferible llevar a cabo las pruebas con los o n 30 bits de la subclave K6 (5 bits por cada caja S). Si no se hiciera de este habr´ que llevar a cabo ıa m´s pruebas, es decir, se precisar´ m´s parejas de texto claro y texto cifrado, pues puede que a ıan a se tenga una pareja correcta para una o varias cajas mientras que para el resto no lo es. Ahora bien, con este planteamiento habr´ que llevar a cabo 230 pruebas, lo cual exige un gran consumo ıa de memoria y de tiempo. Para evitar este problema se utilizar´ un grafo en el que cada v´rtice es a e una pareja de entradas, y las parejas que compartan un valor candidato de clave estar´n unidosa mediante un arco. En consecuencia, cada valor de clave da lugar a un ciclo constituido por todas las parejas que lo han sugerido como valor v´lido. El ciclo de mayor longitud ser´ el vinculado a e a la clave verdadera. Para cada caja de las cinco implicadas (S2, S5, . . . , S8) se tendr´ una a ∗ m´scara de 64 bits, donde cada bit es un posible bit de clave. Dados los valores SE , SE y SO a se fijan los valores de las m´scaras que corresponden a valores posibles de la clave. Cada pareja a tiene asociada 5 m´scaras de clave, una por cada caja S. Un ciclo es definido como el conjunto de a parejas para las cuales para cada una de las cinco m´scaras de clave hay un bit a uno para todas a las parejas del conjunto (i.e., el “and” l´gico de las cinco m´scaras de todas las parejas no es cero). o a De este modo, mediante la localizaci´n de los ciclos de m´xima longitud, se fijan los 30 bits de K6 o a correspondientes a las cajas S2, S5, . . . , S8. 17
  • 18. Ω = 2 P 00 40 00 00 80 00 02 00 x A ' = 00 02 00 x 80 a ' = 40 00 00 x 00 Probabilidad 1/4 F B ' = x0 b ' = x0 F Probabilidad 1 C ' = 00 02 00 x80 c ' = 40 00 00 x 00 F Probabilidad 1/4 Ω = 2 T 00 40 00 00 80 00 02 00 x Figura 13: Segunda caracter´ ıstica de 3 vueltas: criptoan´lisis de DES reducido a 6 vueltas a Con objeto de determinar una mayor n´mero de bits de K6, se explota la caracter´ u ı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 m´todo reci´n introducido m´s arriba se acaban obtenien- e e a do los 30 bits de clave ligados a esas cajas. Ahora bien, los bits vinculados a S1 y S4 no son comunes a los 30 bits resultantes del anterior an´lisis. Por tanto, en realidad se tienen 42 bits de a la subclave K6 y, dado que se trabaja sobre DES, s´lo nos faltar´n 14 bits para dar con la clave o a completa del DES reducido a 6 vueltas. Para determinar estos 14 bits se podr´ optar por poner en ıa pr´ctica una b´squeda exhaustiva. Sin embargo, si se quiere acelerar la b´squeda se puede llevar a u u a cabo un an´lisis de los 6 bits de clave correspondientes a la caja S3. En primer lugar se filtran a parejas no v´lidas aprovechando el conocimiento parcial que se tiene de la clave. Para ello se utiliza a cualquiera de las dos caracter´ ısticas que han sido presentadas en este apartado, verificando que para las 5 cajas implicadas por la caracter´ ıstica se cumple que SEd = 0 y que el valor SOf , obtenido a partir del par f , f ∗ calculado, a su vez, a partir de los bits de la clave ya conocidos, es coherente con el valor esperado F = c ⊕ D ⊕ l . Si no se cumple esto, la pareja de entradas en cuesti´n o ser´ desechada. A continuaci´n se llevan a cabo las 64 pruebas con la meta de obtener los 6 que nos a o quedan de la subclave de la 6 vuelta. El procedimiento que se aplicar´ se apoya en la tabla 9. En a esa tabla aparecen los bits de entrada de las distintas cajas en la quinta ronda, as´ como los bits de ı K5 para una de esas cajas. Los bits marcados con “+” son bits ya conocidos, obtenidos mediante la utilizaci´n del par de caracter´ o ısticas de las figuras 12 y 13. Los bits representados con “.” son los bits de la clave K5 que no est´n presentes en la clave K6 (recordar el mecanismo de generaci´n a o de claves: figura 4). Por ultimo, los bits con el s´ ´ ımbolo “3” son bits que se corresponden con el valor de los bits de la subclave K6 asociados a la caja S3. Lo que se har´ ser´ comprobar que para a a los distintos valores de los 6 bits restantes de K6, las XOR de los pares de salidas obtenidas tras las cajas S de la quinta vuelta, son coherentes con los valores esperados E = d ⊕ f . Para ello se tendr´n en cuenta s´lo aquellas cajas S de la quinta ronda cuyas entradas y bits de subclave a o dependan s´lo de bits de K6. Estas cajas son S2, S3 y S8. Para los 64 posibles valores de subclave o vinculada a S3 en la sexta ronda, se comprueba que los valores S2oe , S3oe y S8oe coinciden con los esperados seg´n E = d ⊕ f . Los valores e y e∗ precisados para estas pruebas se obtendr´n por u a descifrado de una vuelta utilizando K6. Tras efectuar las 64 pruebas se hallar´ los bits restantes de a K6, de modo que s´lo nos faltar´n por conocer 8 bits de la clave total. Estos 8 bits pueden ser de- o a terminados mediante b´squeda exhaustiva (256 pruebas), o bien puede efectuarse un criptoan´lisis u a con la quinta ronda similar al llevado a cabo con la sexta. 18