Está en la página 1de 19

1.

- Introducción 
2.- Historia del DES 
3.- Conceptos previos 
4.- Dispositivo LUCIFER 
5.- Algoritmo de cifrado DES 
 

 Descripción general
 Función de cifrado f y cajas
S
 Generador de claves
 El Descifrado

6.- Seguridad del DES

 Problemas en el uso de las


claves

7.- Modos de Operación 
8.- TRIPLE DES 
9.- AES (Advanced Encryption
Standard)

Autor

1.- Introducción 

Este documento en formato html se corresponde con el trabajo teórico de la


asignatura de Seguridad y Protección de la Información (F39). En él
comentaré todo lo relacionado con la criptografía moderna de clave
privada, más concretamente sobre el algoritmo DES (Data Encryption
Standard). 

Por hacer un poco de comparativa entre los métodos de criptografía


tradicional y los métodos de criptografía moderna, cabe destacar el
cambio que se  dioa la hora de evolucionar en temas criptográficos. Es decir,
en la criptografía tradicional se intentaba dificultar el criptoanálisis sobre todo
mediante el empleo de claves muy grandes, en lugar de complicar los
algoritmos.

La razón es que antes de la existencia de los ordenadores, un operador debía


realizar las transformaciones manualmente, o con ayuda de un aparato
concebido específicamente para la tarea. Por una parte, el uso de algoritmos
de cifrado con una complejidad medianamente alta podía influir muy
directamente en la velocidad de cifrado o descifrado además de existir la
posibilidad de que se diesen errores. Por otra parte, además de las
limitaciones técnicas, existía el problema de que fuera necesario cambiar de
algoritmo.

Con la aparición de los ordenadores, se dispone de una herramienta mucho


más potente que permite realizar algoritmos mucho más complejos dejando
de lado las limitaciones que existían anteriormente. Por contra, la
disponibilidad de ordenadores provoca un mayor riesgo de ataques ya que se
dispone de una mayor capacidad de cálculo.

Una vez introducidos en la evolución que ha sufrido la criptografía gracias a la


aparición de los ordenadores, me centraré en el tema que nos ocupa, es decir,
en el DES. Para ello, empezaremos por hacer un poco de historia sobre la
aparición y evolución del DES a lo largo de los años.

< Índice >

2.- Historia del DES (Data Encryption Standard)

 En 1973, el NBS (National Bureau of Standards) solicita públicamente


propuestas de sistemas criptográficos, dichos sistemas debían de
cumplir los siguientes criterios: 
o Residir la seguridad en la clave y no en el secreto del algoritmo.
o Proporcionar un alto nivel de seguridad y ser eficiente.
o Ser adaptable para ser utilizado en diversas aplicaciones.
o Ser barato de implementar en dispositivos electrónicos.
 En 1974, IBM presenta LUCIFER, un sistema de Horst Feistel que
trabajaba componiendo sucesivamente diferentes transformaciones,
según había sugerido Shannon. Después del estudio del algoritmo,
la NSA (National Security Agency) propone una serie de cambios que
son aceptados sin problemas.
 El 17 de Marzo de 1975, el NBS publica los detalles del DES. Dicho
algoritmo fue adoptado como estándar para las comunicaciones seguras
y el almacenamiento de información no clasificada por el Gobierno de
los EE.UU. En un principio la idea de la NSA era implementar este
algoritmo en hardware,  para ello dicho algoritmo debería mantenerse
en secreto. Debido a unos problemas, el algoritmo se hizo público por lo
que su implementación software se hizo posible ya que el nivel de
detalle del algoritmo era bastante alto.
 En 1981, varios organismos privados lo adoptan como estándar.
 En 1983, el DES se ratifica como estándar sin problemas.
 En 1997, el DES es roto como consecuencia de un reto que lanzó la
RSA, se examinaron el 25% de las claves.
 Seguidamente, en 1998 debido a la corta longitud de la clave (56 bits)
utilizada para cifrar el DES, se demostró que por fuerza bruta era
posible romper el DES. En 39 días se hizo posible examinar el 85% de
las claves. Poco más tarde, la EFP (Electronic Frontier Foundation)
presentó su DES cracker, capaz de romper el DES por fuerza bruta en
4.9 días. A pesar de esto, aún no se ha encontrado ninguna debilidad a
nivel teórico por lo que todavía se sigue utilizando.
 Finalmente, en 1999 la EFP rompe el DES en menos de 23 horas.
 Hoy en día existen sistemas capaces de trabajar con muchísimas
puertas lógicas que son capaces de romper el DES en 5 horas.

< Índice >

3.- Conceptos previos

Para poder entender el DES, previamente se han de introducir una serie de


conceptos que nos facilitarán la comprensión. Dado que el DES es
un criptosistema simétrico de clave privada, es necesario aclarar estos
conceptos.

 Los criptosistemas de clave privada (también conocidos como de clave


única) se caracterizan por utilizar para el cifrado y descifrado la misma
clave, y como su propio nombre indica, dicha clave es privada, es decir
que se mantiene secreta. Por contra existen los criptosistemas de clave
pública en los que parte de la clave se da a conocer.

 Estos algoritmos también se llaman simétricos. La criptografía


simétrica se refiere al conjunto de métodos que permiten tener
comunicación segura entre las partes siempre y cuando anteriormente
se hayan intercambiado la clave correspondiente que llamaremos clave
simétrica. La simetría se refiere a que las partes tienen la misma llave
tanto para cifrar como para descifrar como ya comenté anteriormente.

Una vez aclarados estos conceptos, pasamos a describir el DES: La idea


general es aplicar diferentes funciones al mensaje que se quiere cifrar de tal
modo que solo conociendo una clave pueda aplicarse de forma inversa para
poder así descifrar dicho mensaje. 
El DES cumple con dos de los principios más básicos de la criptografía, estos
son el secreto y la autenticidad de la información cifrada:

 El secreto se consigue con la utilización de una clave privada.


 y la autenticidad se consigue de la misma forma ya que sólo el emisor
legítimo puede producir un mensaje que el receptor podrá descifrar con
la clave compartida.
El principal problema que tienen este tipo de algoritmos es la forma en la que
intercambiar las claves ya que se ha de hacer de forma privada. 
El DES es englobado también dentro de los métodos de cifrado de producto.
Estos algoritmos son llamados así porque combinan la confusión y
la difusión para cifrar el mensaje. Ambos son conceptos que
introdujo Shannon en su día.

 La confusión consiste en conseguir que no se vea relación alguna entre


el texto plano (texto a cifrar), el texto cifrado y la clave. A la hora de la
implementación, la confusión se traduce en sustituciones simples a
través de pequeñas tablas.
 La difusión trata de repartir la influencia de cada bit del mensaje en
texto plano lo más posible en el mensaje cifrado. Dicha propiedad se
implementa mediante el uso depermutaciones.

Una vez conocidos estos conceptos será más fácil entender el DES ya que se
basa simplemente en aplicar una serie
de sustituciones y permutaciones varias veces. 
Otro aspecto importante a considerar es que los cifrados no
tengan estructura de grupo, es decir, que no se cumpla la siguiente
propiedad:

Para todo k1, k2 existe k3 tal que Ek2(Ek1(M)) = Ek3(M)

Es decir, que si hacemos dos cifrados encadenados con las llaves k1 y k2


obtendremos el mismo resultado que si lo  hiciésemos únicamente con la llave
k3.  
Ya que el DES nació como una continuación del dispositivo Lucifer, he creído
conveniente explicar brevemente dicho sistema para situarnos definitivamente
en la forma que el DES tiene de trabajar.

< Índice >

4.- Dispositivo LUCIFER

Es el más claro ejemplo de un algoritmo de cifrado de producto, que llegados


a este punto debemos de entender sus propiedades sin problemas. Así el
resultado de cifrar un mensaje M, con t funciones Fi (1 <= i <= t) será:
E (M) = Ft (...F3 (F2 (F1 (M)))...)

 Donde Fi puede ser una sustitución o una permutación, de esta forma se


pretende que el resultado ser lo más aleatorio posible en relación al mensaje
original. Esta idea fue desarrollada por Feistel (Redes de Feistel) y fue
implementada en el dispositivo Lucifer por Notz y Smith. 
La implementación es la siguiente:

1. El bloque de datos a cifrar es de 128 bits (16 bytes), que a su entrada


se divide en dos partes: la alta y la baja.
2. A los 8 bytes de la parte alta se les somete a una transformación no
lineal controlada por un bit determinado de la clave.
3. El resultado de la transformación se suma (o exclusivo) byte a byte, con
los ocho correspondientes de la clave.
4. Ahora se realiza una transposición sobre los 64 bits a nivel de bit, dicho
resultado se agrupa en bytes.
5. Estos bytes se suman (o exclusivo) con los bytes de la parte baja de la
entrada.
6. Finalmente, la parte alta y la baja se intercambian. 

Este proceso se repite 16 veces dando lugar al bloque cifrado. Evidentemente,


para obtener el mensaje cifrado se aplican las mismas operaciones en orden
inverso.

< Índice >

5.- Algoritmo de cifrado DES

El algoritmo DES cifra un bloque de 64 bits (8 bytes) de texto en claro en un


bloque de 64 bits de texto cifrado. Para ello usa una clave externa de 64 bits
en los que los bits en las posiciones octavas de cada byte son bits de paridad
impar. 
Consta de 16 iteraciones, y en cada una de ellas se realizan operaciones de o
exclusivo, permutaciones y sustituciones. Las permutaciones son de tres tipos:
simples, expandidas (se duplican bits) y restringidas (se eliminan bits). Las
sustituciones son no lineales que se implementan a partir de tablas que se
encuentran en las cajas S, que más tarde explicaremos ya que son de vital
importancia. 
 

5.1.- Descripción General 


 La mejor forma de entender el funcionamiento del DES es a través de un
esquema que muestre los diferentes pasos realizados para conseguir el
cifrado. Dicho esquema se muestra en la siguiente figura (figura 1):
Figura 1. Esquema del DES

 En la entrada, se consideran los 64 bits del bloque (b1,b2,...,b64), estos se


permutan a través de la permutación inicial IP (Tabla 1), siendo el bloque
de salida B0 el formado por el bloque L0 de 32 bits concatenado con el R0, del
mismo tamaño. A dicha salida se le aplican una serie de transformaciones y
sustituciones (mediante la función f) en 16 iteraciones distintas. Finalmente se
permuta de nuevo con la permutación inversa IP-1 (Tabla 2) obteniendo el
cifrado del bloque de 64 bits de la entrada. 

58 50 42 34 26 18 10 02 40 08 48 16 56 24 64 32
60 52 44 36 28 20 12 04 39 07 47 15 55 23 63 31
62 54 46 38 30 22 14 06 38 06 46 14 54 22 62 30
64 56 48 40 32 24 16 08 37 05 45 13 53 21 61 29
57 49 41 33 25 17 09 01 36 04 44 12 52 20 60 28
59 51 43 35 27 19 11 03 35 03 43 11 51 19 59 27
34 02 42 10 50 18 58 26
61 53 45 37 29 21 13 05
33 01 41 09 49 17 57 25
63 55 47 39 31 23 15 07

Tabla 1. Permutación Inicial Tabla 2. Permutación Inversa


IP. IP-1.
Cada una de estas 16 iteraciones realiza una serie de transformaciones y
sustituciones, de forma que el resultado de cada iteración, al que llamaremos
Ti, es la concatenación de las partes Li y Ri, es decir, Ti = Li . Ri (1 <= i <=
16). Para cada uno de estos pasos se verifica que:

 Li = Ri-1
 Ri = Li-1 + f(Ri-1, Ki)

Donde el símbolo + representa a la operación de o exclusivo (esto será así


mientras no se diga lo contrario) y donde Ki es una clave de 48 bits generada
por la función generadora de claves  Ki=KS (i, K) siendo K la clave externa de
64 bits, dicha función será explicada más adelante. Como se puede observar
en el esquema general del DES mostrado anteriormente, existe una pequeña
diferencia en la última iteración respecto a las anteriores, es decir, que las
partes L y R no se permutan sino que se concatenan (R16 . L16). Dicho
resultado se toma como entrada para la permutación inversa. La razón por la
cual la última iteración se hace de este modo es para que el algoritmo sirva
tanto para cifrar como para descifrar (esto quedará claro más adelante). 
Tras la descripción general del algoritmo pasaré a explicar cada una de sus
partes de forma más detallada. 
 

5.2.- Función de cifrado f y Cajas S 


 La función f transforma los 32 bits del bloque R i-1 mediante la subclave ki, en
los 32 bits de f (R i-1, ki). La siguiente figura muestra el esquema general de la
función f (R i-1, ki):
 
Figura 2. Función f.
Primero se expanden los 32 bits de R i-1 en un bloque de 48 bits, utilizando la
tabla de expansión E (ver tabla 3). 

32 1 2 3 4 5
4 5 6 7 8 9
8 9 10 11 12 13
12 13 14 15 16 17
16 25

24
24 25 21
20 21 22 23 24 25
24 25 26 27 28 29
28 29 30 31 32 1
Tabla 3. Tabla de expansión E 

Una vez obtenido el bloque se efectúa la operación o-exclusivo entre E(R i-1) y


ki, y el resultado es dividido en 8 bloques Bj de 6 bits. Cada uno de los
bloques Bj se usa como entrada de una tabla de selección-sustitución Sj
(Cajas S), dichas cajas realizan una transformación no lineal que da como
salida una secuencia de 4 bits, Sj ( Bj ).

E ( R i-1 ) + Ki = B1 . B2 . B3 . B4 . B5 . B6 . B7 . B8

Estas salidas, Sj ( Bj ), se concatena para dar lugar a 32 bits que son


sometidos a la permutación P (ver la tabla 4).

16 7 20 21
29 12 28 17
1 15 23 26
5 18 31 10
2 8 24 14
32 27 3 9
18 13 30 6
22 11 4 25
Tabla 4. Permutación P.
Resumiendo, al final de este proceso nos encontramos con una salida de la
siguiente forma:
P ( S1 ( B1 ) . S2 ( B2 ) ... S8 ( B8 ) )
Llegados a este punto únicamente nos falta conocer el funcionamiento de las
cajas S, es decir, que operaciones realiza para obtener la salida Sj ( Bj ). El
funcionamiento es sencillo, cada una de estas 8 cajas tiene asociada una
matriz (ver Tabla 5). Como ya he comentado anteriormente, los 6 bits Bj =
b1b2b3b4b5b6 se convierten en 4 bits que se corresponden con el valor decimal
de un elemento de la matriz Sj cuya fila, viene determinada por el valor
decimal de los bits b1b6; y en columna, por el número decimal correspondiente
al binario b2b3b4b5 de los bits centrales de Bj. 

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
00 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7
01 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8
10 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0
11 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13
Tabla 5. Matriz de selección para el bloque B1.
En la tabla anterior he resaltado algunas casillas para hacer más fácil la
comprensión de estas cajas a partir del siguiente ejemplo: 

 B1 = 101101, S1 ( B1 ) = 0001.

 cogiendo los bits b1 y b6 obtenemos la fila correspondiente, en este


caso la 11.
 y cogiendo los bits b2,b3,b4 y b5 obtenemos la columna
correspondiente, en este caso la 6 = 0110.
 Por lo que el resultado obtenido es el 1, que expresado en binario con 4
bits es S1 ( B1 ) = 0001.

Por último, únicamente nos falta explicar el funcionamiento del generador de


claves (KS), que como comenté anteriormente explicaría en su debido
momento. 
 

5.3.- Generador de Claves 


 La función KS es la encargada de generar las claves Ki = KS (i, k) para cada
iteración. Donde i es la iteración y k es la clave externa de 64 bits donde los
bits octavos (8, 16,...., 64) son de paridad impar para proteger la clave ante
errores de lectura. El proceso de obtención de estas claves internas se
describe a continuación (Figura 3):
 
Figura 3. Generador de claves internas Ki.
Nota: El símbolo << representa el desplazamiento circular de bits a la
izquierda (1 o 2 dependiendo de la iteración). Y no confundir los registros Li y
Ri de esta sección con los del esquema general del DES.

Vamos a describir detalladamente este esquema para facilitar su


comprensión. 
Los 64 bits de nuestra clave externa se someten a una permutación de
acuerdo con la tabla EP1 (Ver tabla 6), que sin tomar los 8 bits de paridad
permutan los 56 restantes. La salida de esta permutación se divide en dos
partes (L0 y R0). 

Permutación EP1 Permutación EP2


57 49 41 33 25 17 9 14 17 11 24 1 5

1 58 50 42 34 26 18 3 28 15 6 21 10

10 2 59 51 43 35 27 23 19 12 4 26 8

19 11 3 60 52 44 36 16 7 27 20 13 2

63 55 47 39 31 23 15 41 52 31 37 47 55

7 62 54 46 38 30 22 30 40 51 45 33 48

14 6 61 53 45 37 29 44 49 39 56 34 53

21 13 5 28 20 12 4 46 42 50 36 29 32

Tabla 6. Permutaciones EP1 y EP2 .


Los contenidos de los registros L0 y R0 se desplaza un bit a la izquierda para
obtener a través de la permutación EP2 (ver tabla 6) la clave Ki. Las sucesivas
claves internas se obtienen a partir de los registros Li y Ri obtenidos después
de realizar los sucesivos desplazamientos a izquierdas de los contenidos de los
registros L y R, de forma que:

 Li = LSi (Li-1)
 Ri = LSi (Ri-1)

Donde LS es un desplazamiento circular a izquierdas de forma que el número


de bits a desplazar viene dado por la siguiente tabla (Tabla 7) dependiendo de
la iteración en la que nos encontremos: 

iter. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
LS i 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1
Tabla 7. Relación entre la iteración y el número de desplazamientos. 

Resumiendo, la clave interna Ki queda de la siguiente forma:

 Ki = EP2 (Li . Ri)

Con esto queda completada la explicación de cómo el DES cifra la información


quedando únicamente por comentar la forma en la que la descifra. 
 

5.4.- El Descifrado 
 El descifrado se realiza utilizando el mismo algoritmo pero de una forma
distinta, es decir, en la primera iteración se utiliza la clave interna K16, la K15
en la segunda, y así hasta llegar a la K1 para la última iteración. Esto se hace
así porque la permutación final IP-1 es la inversa de la permutación inicial IP.
Por otra parte:

 Ri = Li-1
 Li = Ri-1 + f(Li-1, Ki)

Donde el símbolo + sigue representando el o exclusivo y donde R y L se


refieren en este caso a cada uno de los 32 bits del esquema general (no al
esquema del apartado de generación de claves internas).
< Índice >

6.- Seguridad del DES

Son varios los problemas existentes en cuanto al funcionamiento del DES.


Dicho algoritmo tiene diversas debilidades entre las que cabe destacar las
siguientes:
 El tamaño de la clave, 56 bits, hace que el sistema sea vulnerable dado
que el conjunto de claves resulta demasiado pequeño: 256 posibilidades.
 Desde el punto de vista del criptoanálisis, existen dos métodos de
ataque:

Búsqueda exhaustiva: usando un ataque con texto original


escogido. El texto original escogido m, es cifrado con cada una de
las n posibles claves k hasta que Ek(m) = c, siendo c el texto
cifrado conocido. El tiempo requerido es T = O(n) y la memoria
S=O(1).

Búsqueda en tablas: usando un ataque con texto original


escogido. Sea m el texto original escogido; cada texto cifrado, ci
= Eki(m), es precalculado para i= 1, ..., n. Las claves ki son
ordenadas y, junto con los textos cifrados ci, puestas en una
tabla, de manera que la clave correspondiente a un texto cifrado
dado pueda ser hallada en un tiempo T=O(1) con un
requerimiento de memoria de S = O(n). 

6.1.- Problemas en el uso de las Claves 


 Existen algunos problemas en función de las claves externas que se hayan
decidido utilizar, ya que dependiendo de ellas la seguridad del DES puede
bajar muchísimo. 
 

6.1.1.- Claves débiles y Semidébiles 


 Existen un reducido número de claves externas que generan las mismas
claves internas, es decir, que para una misma llave podemos obtener k1 =
k2 =...= k16. Esta situación se da en el caso de que los registros L0 y R0 del
generador de claves sea todo ceros o todo unos. Concretamente existen
cuatro claves externas para las que se da esta situación, y son las siguientes: 

01 01 01 01 01 01 01 01
1F 1F 1F 1F 0E 0E 0E 0E
E0 E0 E0 E0 F1 F1 F1 F1
FE FE FE FE FE FE FE FE
Tabla 8. Valores en hexadecimal de las llaves débiles

 En estos cuatro casos las operaciones de cifrado y descifrado son iguales ya
que al ser todas las claves internas iguales el resultado de aplicar estas claves
de la 1 a la 16 y de la 16 a la 1 es el mismo. Es decir, que se cumple que:

 Dk(Dk(M)) = M
 Ek(Ek(M)) = M

A parte de estas, existen otro grupo de llaves llamadas semidébiles. Estas


llaves únicamente generan dos llaves internas distintas, es decir, una más que
las llaves débiles. De esta forma, cada una de estas dos llaves se repetirá
ocho veces. 
En este caso, si expresamos en binario los valores de los registros L0 y R0 del
generador de llaves, tendríamos que encontrarnos con series de la forma C =
0101...01 o D= 1010...10 y su correspondiente D o C = 0000...00, 0101...01,
1010...10 o 1111...11. Pero sin duda alguna como mejor se entiende esto es a
través de un ejemplo. 
Supongamos que C0 = 1010...10 y D0 = 0101...01. En la siguiente tabla se
puede observar como afectan los desplazamientos del generador de claves a
este tipo de llaves: 
 

 i  Despl. Registro Li Registro Ri


0 0 1010...10 0101...01
1 1 0101...01 1010...10
2 1 1010...10 0101...01
3 2 1010...10 0101...01
4 2 1010...10 0101...01
5 2 1010...10 0101...01
6 2 1010...10 0101...01
7 2 1010...10 0101...01
8 2 1010...10 0101...01
9 1 0101...01 1010...10
10 2 0101...01 1010...10
11 2 0101...01 1010...10
12 2 0101...01 1010...10
13 2 0101...01 1010...10
14 2 0101...01 1010...10
15 2 0101...01 1010...10
16 1 1010...10 0101...01
Tabla 9. Ejemplo de claves semidébiles

En el ejemplo se ve claramente como los desplazamientos circulares de los


bits aplicados a este tipo de llaves da lugar únicamente a 2 llaves internas
distintas. A continuación se muestran las diferentes claves que dan lugar a
esta situación: 
 
01FE01FE01FE01FE
FE01FE01FE01FE01
1FE01FE00EF10EF1
E01FE01FF10EF10E
01E001E001F101F1
E001E001F101F101
1FFE1FFE0EFE0EFE
FE1FFE1FFE0EFE0E
011F011F010E010E
1F011F010E010E01
E0FEE0FEF1FEF1FE
FEE0FEE0FEF1FEF1
Tabla 10. Las 12 claves semidébiles
Como ya hemos visto existen dos grupos reducidos de llaves (débiles y
semidébiles) que no se aconseja utilizarlas. Sinembargo, esto no nos supone
ningún problema grave ya que disponemos de 256 posibles llaves por lo que no
gastando las anteriormente citadas es suficiente para evitar el problema. 
6.1.2.- Uso de dos claves 
 Con el objetivo de aumentar la seguridad del DES, se pensó en la utilización
de dos claves, es decir, aplicarle el Des a cada bloque dos veces. Pero tras
estudiar esta posibilidad,Merkel aseguró que utilizando un método
criptográfico por elección de mensaje, el coste para descifrarlo sería de 257 y
no 2112 como se suponía inicialmente. 
Más adelante explicaré el triple DES que se basa en esta idea pero
cumpliendo con el objetico inicial, es decir, multiplicar la seguridad del DES.

6.1.3.- Complementariedad 
Existe la posibilidad de utilizar claves que sean complementarias al mensaje
cifrado. Sean M' y K' los complementarios de los respectivos M y K, se cumple
que:

 C = Ek (M)
 C' = Ek' (M')

La solución a este problema es tan sencillo como el propuesto al problema de


las llaves débiles y semidébiles, basta con no utilizarlas.
< Índice >

7.- Modos de Operación del DES


Existen distintos modos de cifrado para estructuras de bloque entre las que
cabe destacar las siguientes: 
 
ECB (Electronic Code-Book), el texto original se procesa en bloques
disjuntos de 64 bits, cuyos bloques de salida, también de 64 bits, se
concatenan para formar el texto cifrado. Tiene el inconveniente de que
es susceptible a ataques estadísticos y/o ataques sobre la clave, con un
texto original conocido, sobre todo cuando las cabeceras de los textos
tienen un formato estándar. Una forma sencilla de observar el
funcionamiente de este método de cifrado es a través
del openssl.   mediante el comando openssl des-ecb -k "" aplicado para
cifrar una imagen, se puede ver como la imagen se modifica pero se
continua distinguiendo la imagen original.
CBC (Cipher Block Chaining), es un método de cifrado en bloques
encadenados, que consiste en dividir el texto a cifrar en bloques y hacer
depender el bloque n-ésimo de texto cifrado/descifrado del bloque n-
ésimo -1: 

cn = Ek (mn + cn-1 ) mn = Dk (cn ) + cn-1

El primer bloque de entrada al proceso DES está formado por la or


exclusiva (representada por el símbolo +) entre el primer bloque del
mensaje y los 64 bits de un vector inicial, c0 = VI, el cual es convenido,
previamente, entre el cifrador y el descifrador. 
Tiene la ventaja de que impide la supresión y/o inserción de bloques de
texto cifrado, puesto que en cualquier caso el receptor sería incapaz de
descifrar el criptograma recibido y, por lo tanto, quedaría alertado de
las posibles intrusiones. Los ataques estadísticos también se han
complicado, debido a la interdependencia del texo cifrado a lo largo de
todo el proceso. En este caso, si aplicamos el mismo ejemplo mediante
el openssl pero con el modo cbc se puede ver como la imagen queda
totalmente distorsionada siendo imposible relacionar la imagen cifrada
con la imagen original.

Para los modos de cifrado encadenado, es decir, en nuestro caso para el


modo cbc, existen diferentes mecanismos para encadenar los diferentes
bloques:

 Encadenamiento de texto cifrado o DES autosincronizado. El


bloque de cifrado/descifrado sólo depende del bloque de
cifrado/descifrado anterior.

Este modo, autosincronizado, se utiliza en la protección de ficheros.


Cuando se utiliza para la transmisión de datos, un error se puede
remediar, volviendo a mandar el mensaje, pero cuando se cifra un
fichero es importante asegurar que los posibles errores afectan al
menor número de bits. Sin embargo, este modo no es muy útil para la
autentificación de los mensajes. Tiene una debilidad teórica en que el
mismo texto siempre se encripta de la misma manera (con la misma
clave), pero tiene la ventaja que el encriptamiento no tiene que ser
secuencial, ej. puede usarse para registros de una base de datos. 

 
Figura 4. DES autosincronizado para el cifrado 
  
 

 
Figura 5. DES autosincronizado para el descifrado

 Encadenamiento de texto original y texto cifrado o DES con


autentificación. El bloque cifrado depende de los textos, original y
cifrado, anteriores.

 
Figura 6. DES con autentificación para el cifrado

 
Figura 7. DES con autentificación para el descifrado
< Índice >

8.- TRIPLE DES

He creído conveniente dedicar una sección a parte para explicar el triple DES
debido a que hoy en día es el modo más utilizado. Esto es así debido a lo que
ya expliqué anteriormente, es decir, que en los días que estamos y con la
tecnología de la que disponemos, no es excesivamente costoso romper el DES.
Así pues, existen métodos de cifrado múltiple entre los que cabe destacar el
triple DES. Simplemente se trata de utilizar tres llaves externas
independientes para cifrar el mismo texto de manera que las expresiones que
representan el cifrado y descifrado del mensaje son las siguientes:

 c = E k3 (D k2 (E k1 (m))) 
 m = D k1 (E k2 (D k3 (c)))

Donde c es el texto cifrado y m el texto a cifrar. La idea es cifrar el texto en


claro con un clave y descifrarla con otra totalmente independiente, y el
resultado de este proceso se vuelve a cifrar con una tercera clave también
independiente de las anteriores. De esta forma la seguridad del DES aumenta
considerablemente siendo mucho más costoso romperlo.
< Índice >

9.- AES (Advanced Encryption Standard)

El 12 de septiembre de 1997 en el departamento de comercio del National


Institute of Standars and 
Technology (NIST), antiguo NBS, se hace un llamamiento público para la
presentación de algoritmos 
candidatos al Advanced Encryption Standard (AES) para sustituir al DES
debido a que hoy en día ya existe tecnología suficiente para romper el DES en
un tiempo reducido de tiempo.

Requisitos mínimos

1. El algoritmo debe ser de clave secreta (simétrico).


2. El algoritmo debe ser un algoritmo de bloque.
3. El algoritmo debe ser capaz de soportar las combinaciones clave-bloque
de los tamaños 128-128, 192-128 y 256-128.

Criterios de evaluación

1. Seguridad: Es el factor más importante a la hora de evaluar los candidatos. 


2. Coste: 

 El algoritmo debe ser accesible a todo el mundo y de libre distribución.


 El algoritmo debe ser computacionalmente eficiente tanto en hardware
como en software.
 El algoritmo debe utilizar la menor memoria posible tanto en hardware
como en software.

3. Características de implemetación del algoritmo:

 El algoritmo debe ser fácilmente implementable en distintas plataformas


tanto en hardware como en software.
 El algoritmo debe acomodarse a diferentes combinaciones clave-bloque
además de las mínimas requeridas.
 El algoritmo debe ser de diseño simple.

He creido conveniente comentar el AES debido a que es el sustituto del DES


que es el tema que nos ocupa y por ello simplemente lo he comentado sin
extenderme lo más mínimo. Simplemente decir que el nuevo algoritmo utiliza
una clave de 256 bits que frente al DES (56 bits) evidentemente es muy
superior.  
Para que se hagan una idea, la misma computadora que rompería en apenas
un segundo el DES, tardaría unos 149 billones de años en reventar el AES. Y
conviene tener en cuenta que no existe tal máquina hoy en día. 
El Secretario de Comercio de Estados Unidos ha depositado toda su confianza
en que este estándar, que será adoptado tanto por entidades públicas como
privadas, blindará las estructuras de intercambio de información y protegerá
los datos personales de los ciudadanos americanos. Tanto confía el gobierno
en AES, que va a permitir que los programas encriptados puedan salir de sus
fronteras por primera vez durante años. 
En definitiva, si no hay una revolución en la tecnología (cosa que dudo), este
nuevo estándar será muy difícil (por no decir imposible) de romper por mucho
tiempo.

También podría gustarte