5.5.2 ALGORITMO
DES
La transformación DES es una cifra-producto
de bloques no lineal, iterativa, que opera sobre bloques de datos de 64
bits. Es muy compleja y es apropiada únicamente para ser operada por medio
de computadoras.
El algoritmo DES se utiliza en forma inversa
para descifrar el texto cifrado (utilizando la misma llave). En la
siguiente figura se muestra un diagrama del algoritmo.
El cifrado del texto en claro se realiza en
bloques de 64 bits que produce 64 bits de texto cifrado. Se parametriza
por una llave de 56 bits.
La primera etapa es una transposición
independiente de la llave sobre el texto en claro de 64 bits. La última
etapa es exactamente la inversa de esta transposición.
La penúltima etapa intercambia los 32 bits
de la parte izquierda con los 32 bits de la derecha. Las 16 etapas
restantes son funcionalmente idénticas, pero tienen diferentes funciones
de la llave.
En la siguiente figura se muestra el
funcionamiento de una de las etapas intermedias. Ambas partes toman 2
entradas de 32 bits cada una y producen 2 salidas de 32 bits.
La salida de la izquierda es una copia de la
entrada de la derecha. La salida de la derecha es un OR EXCLUSIVO, bit a
bit, de la entrada de la izquierda y una función de la entrada de la
derecha, siendo la llave de la etapa Ki.
La función consta de 4 pasos
secuenciales:
- Se construye un número E de 48 bits
mediante la expansión de los 32 bits Ri-1,de acuerdo con una regla
fija de transposición y duplicación.
- E y Ki, se someten conjuntamente a una
función OR EXCLUSIVO.
- La salida se divide en 8 grupos de 6
bits, cada uno de los cuales alimenta a una caja-S diferente, que
producen salidas de 4, en lugar de 6 bits. Cada una de las 64 posibles
entradas a una caja-S se corresponde con salidas de 4 bits.
- Los 32 bits se pasan por caja-P
En cada una de las 16 iteraciones se utiliza
una llave diferente. Antes de que comience el algoritmo, se aplica una
transposición de 56 bits a la llave. Antes de cada iteración se divide la
llave en dos unidades de 28 bits, las cuales se rotan a la izquierda según
número de bits, que depende del número de iteración.
El valor de Ki se deriva de esta llave
rotada por medio de la aplicación de otra transposición de 56 bits sobre
ella.
Existen 2 maneras de fortalecer la norma
DES:
1. Incluir caracteres aleatorios en el texto
en claro, por medio de una regla definida. Por ejemplo, todos los n-ésimos
caracteres son reales y el resto son sólo ruido.
Además, se pueden insertar mensajes de
relleno entre los que son reales. Este principio se conoce como
Cifrador Nulo, por el cual se tiene un desperdicio de
ancho de banda pero cuyo descifrado es muy difícil porque la posición de
los caracteres reales y de los mensajes se conserva en secreto y se cambia
cuando se modifica la llave.
2. Otra manera más difícil, es hacerla
funcionar como un Cifrador de Flujo, en el que tanto el
transmisor como el receptor operan sus circuitos integrados DES en modo de
cifrado (opuesto al descifrado).