Está en la página 1de 14

Universidad Autonoma Metropolitana Unidad Iztapalapa

Division de Ciencias Basicas e Ingeniera


Departamento de Matematicas
Seminario de Criptografa
DES Simplicado
Por Sandra Daz Santiago
Introduccion
Debido a la evoluci on de las computadoras y a que en consecuencia el costo y el tama no
de las mismas disminuy o considerablemente, diversas empresas e instituciones comen-
zaron a utilizarlas. Al mismo tiempo, fue necesario cifrar comunicaciones importantes
como las transferencias de dinero. Pero para que dos compa nas intercambiaran infor-
maci on cifrada deban poseer el mismo algoritmo. Esto era un problema entre 1960 y
1970 ya que no exista un unico algoritmo de cifrado, es decir no haba un est andar.
Por tal raz on en mayo de 1973, la American National Bureau of Standards hoy la
National Institute of Standards and Technology (NIST) decidi o resolver el problema y
solicit o formalmente propuestas para establecer un sistema de cifrado est andar. Una
de esas propuestas fue un algoritmo propuesto por la IBM, resultado de un proyecto
de investigaci on a cargo de Walter Tuchman y Carl Meyer. [STA03, SIN99]
A nales de los 60s IBM estableci o un proyecto de investigaci on en criptografa con-
ducido por Horst Feistel, un emigrado alem an que lleg o a E.U.A. en 1934. El proyecto
concluy o en 1971 con el desarrollo de un algoritmo denominado LUCIFER, el cual
operaba con bloques de 64 bits y una clave de 128 bits y que fue vendido a la LLoyds
de Londres para ser usado en un sistema de cajero autom atico, igualmente desarrollado
por la IBM.
Posteriormente, dado que la IBM deseaba que LUCIFER se volviese un producto m as
comercial inici o un nuevo proyecto a cargo de Walter Tuchman y Carl Meyer. Cabe
mencionar que en dicho proyecto no s olo estuvieron involucrados investigadores de la
IBM, sino tambien la consultora y el apoyo tecnico de la National Security Agency
(NSA). El resultado fue una versi on renada del LUCIFER que era m as resistente al
criptoan alisis pero que usaba una clave de tama no m as peque no: 56 bits. Este ultimo fue
el algoritmo que la IBM someti o a consideraci on del National Institute of Standards and
Technology (NIST) en 1973, y que de hecho se adopt o formalmente como el algoritmo
de cifrado est andar en 1977. A partir de ese momento se le denomin o: Data Encryption
Standard (DES). [STA03]
1
Cabe se nalar que el DES ha generado mucha controversia principalmente en dos areas.
La primera era el tama no de clave de 56 bits, puesto que inicialmente era de 128 bits,
y la segunda era el dise no de las S-cajas, en las cuales se basa la seguridad del DES,
ya que este era material clasicado. Adem as corri o el rumor, de que la NSA haba
impuesto tales criterios porque de esa manera podra leer cualquier mensaje cifrado sin
conocer la clave, utilizando sus propios recursos. [SIN99]
Aunque el DES, actualmente ya no es el est andar, se considera un objeto de estudio
interesante en la criptografa y por ello se aborda a continuaci on usando una versi on
simplicada: DES simplicado (S-DES).
El DES simplicado (S-DES) fue dise nado por el profesor Edward Schaefer de la uni-
versidad de Santa Clara, como una herramienta para ser usada con nes educativos
m as que de seguridad. Dicha versi on permitir a que el lector pueda realizar f acilmente,
cada paso del algoritmo usando l apiz y papel.
S-DES
El S-DES es un algoritmo de cifrado por bloques [STA03]. Utiliza un tama no de bloque
de 8 bits, y una clave secreta de 10 bits. Esto signica que si tenemos un mensaje de
tama no mayor, este deber a partirse en bloques de 8 bits. Esto puede resultar muy con-
veniente, sobretodo si se esta trabajando con caracteres codicados en c odigo ASCII
1
en el cual cada caracter se codica con 8 bits, de esta manera tomaramos caracter por
caracter y lo cifraramos usando la clave. El S-DES es un algoritmo de clave secreta,
cuyo funcionamiento esta basado en el uso de permutaciones y sustituciones, que ya
han sido analizadas previamente. Su estructura general, se muestra en la gura 1.
Como se puede observar en la gura, para cifrar un bloque, inicialmente se aplica
una permutaci on inicial (IP); una funci on f
k
, la cual se describir a m as adelante; una
permutaci on simple SW que lo unico que hace es intercambiar las mitades derecha
e izquierda del bloque; luego se vuelve a aplicar la funci on f
k
y nalmente se aplica
nuevamente una permutaci on, que de hecho es la permutaci on inversa (IP
1
).
Para descifrar un bloque, se llevan a cabo las mismas operaciones, lo unico que
cambia es el orden en el que se utilizan las subclaves k
1
y k
2
que son generadas de la
clave k como se explica a continuaci on.
1
ASCII, signica American Standard Code for Information Interchange. Dado que las computado-
ras entienden s olo n umeros, un c odigo ASCII es la representaci on numerica de un caracter como a o
!.
2
CLAVE
(10 bits)
P 10
P 8
SHIFT
(8 bits)
CIFRADO
I P
1
f
k
S W
k
f
I P
I P
S W
I P
1
f
k
f
k
P 8
SHIFT
DESCIFRADO
Texto claro
Texto claro
(8 bits)
Texto cifrado Texto cifrado
(8 bits) (8 bits)
K
K
K
K
1
2
1
2
Figura 1: Diagrama general del DES
Generacion de claves para S-DES
Como ya se haba mencionado anteriormente, tanto DES como S-DES, son algoritmos
de clave secreta, lo cual implica que dos entidades que deseen comunicarse deben com-
partir la misma clave, pues depende de dicho dato, que se puedan cifrar y descifrar los
mensajes f acilmente.
S-DES utiliza una clave k de 10 bits, de la cual, se derivar an un par de subclaves k
1
y
k
2
, que se utilizar an en distintas etapas del proceso de cifrado y descifrado. La forma
de generar dichas subclaves se muestra en la gura 2. A continuaci on ayud andonos de
dicha gura, veremos con un ejemplo, c omo se obtienen las subclaves. Sup onga que
la clave es k = 1010000010. A dicha k, se le aplicar a la permutaci on P10, que se
muestra enseguida:
P10
3 5 2 7 4 10 1 9 8 6
Dicha permutaci on nos indica, que ahora colocaremos primero el bit que se encuentra
3
CLAVE
P 8
K
1
CI2 CI2
CI1 CI1
P 8
K
2
P10
(10 bits)
Figura 2: Generaci on de subclaves del S-DES
en la tercera posici on, luego el bit que se encuentra en la quinta posici on, luego el que se
encuentra en la segunda posici on, y as sucesivamente hasta que al ultimo colocaremos
el bit que se encuentra en la sexta posici on. Antes de aplicar la permutaci on, la clave
se vera como en la siguiente tabla
Clave k
k
1
k
2
k
3
k
4
k
5
k
6
k
7
k
8
k
9
k
10
1 0 1 0 0 0 0 0 1 0
Despues de haber aplicado la permutaci on, se observara de la siguiente forma
k
3
k
5
k
2
k
7
k
4
k
10
k
1
k
9
k
8
k
6
1 0 0 0 0 0 1 1 0 0
A dicho resultado, se le divide en dos partes:
1 0 0 0 0 0 1 1 0 0
4
a cada una de las cuales se le hace un corrimiento circular a la izquierda. Esto es
el bit m as a la izquierda se coloca m as a a la derecha, y los dem as se corren un lugar,
lo cual se observa en la siguiente tabla:
0 0 0 0 1 1 1 0 0 0
Este resultado nos va a servir para realizar dos operaciones. La primera de ellas ser a to-
mar el conjunto de 10 bits concatenando ambos bloques como sigue
k
1
k
2
k
3
k
4
k
5
k
6
k
7
k
8
k
9
k
10
0 0 0 0 1 1 1 0 0 0
y se le aplica la permutaci on P8 que aparece a continuaci on:
P8
6 3 7 4 8 5 10 9
Observa que dicha permutaci on no incluye los bits 1 y 2 y que por lo tanto, despues
de aplicarla nos quedar an solamente 8 bits, a este tipo de permutaciones, se les conoce
como permutaciones de compresion. Despues de lo cual habremos obtenido la
subclave k
1
:
Subclave k
1
k
6
k
3
k
7
k
4
k
8
k
5
k
10
k
9
1 0 1 0 0 1 0 0
La segunda operaci on que se llevar a a cabo ser a tomar ambos bloques de 5 bits, y
a cada uno de ellos, hacerle un corrimiento circular izquierdo de 2 posiciones,
esto es, haremos 2 corrimientos hacia la izquierda, despues de lo cual cada uno de los
bloques se ver a as:
0 0 1 0 0 0 0 0 1 1
Por ultimo se juntan los dos bloques anteriores en uno s olo:
k
1
k
2
k
3
k
4
k
5
k
6
k
7
k
8
k
9
k
10
0 0 1 0 0 0 0 0 1 1
5
al cual se le aplicar a la permutaci on P8 que ya conocamos, obteniendo la siguiente
subclave k
2
:
Subclave k
2
k
6
k
3
k
7
k
4
k
8
k
5
k
10
k
9
0 1 0 0 0 0 1 1
De esta manera hemos ya generado nuestras subclaves k
1
y k
2
, que se utilizar an en el
proceso de cifrado y descifrado de mensajes.
Cifrando con S-DES
Como se mencion o anteriormente, S-DES toma bloques de 8 bits, cada uno de los cuales
se cifra y formar a as parte del mensaje cifrado. Para comprender mejor, el proceso de
cifrado y descifrado del S-DES, haremos un ejemplo, ayud andonos con el diagrama que
aparece en la gura 1. Para simplicarnos a un m as la tarea, supondremos que nuestro
mensaje esta constituido por un s olo bloque de exactamente 8 bits.
Supongamos que el mensaje M, que se desea cifrar es:
Texto o mensaje en claro M
m
1
m
2
m
3
m
4
m
5
m
6
m
7
m
8
1 0 1 1 1 1 0 1
A dicho mensaje se le aplicar a un permutaci on inicial IP, que aparece a continuaci on:
IP
2 6 3 1 4 8 5 7
Despues de lo cual, los bits del mensaje quedar an asi:
m
2
m
6
m
3
m
1
m
4
m
8
m
5
m
7
0 1 1 1 1 1 1 0
6
E/P
S0 S1
P4
F
K
1
I P
f
k
Figura 3: Primera ronda del DES Simplicado
Ronda 1
Parte del proceso de cifrado, son las rondas (rounds en ingles), que no son m as que
una serie de pasos que se repiten. A continuaci on, veremos c omo se lleva a cabo la
ronda 1.
El mensaje que constituye el bloque anterior se separa en dos partes de 4 bits cada una,
las cuales seran el bloque izquierdo, denotado por L y el bloque derecho, denotado por
R:
L R
0 1 1 1 1 1 1 0
A continuaci on, se aplica la funci on f
k
que tambien se muestra en la gura 3.
Si seguimos el diagrama, podemos continuar con el cifrado. Primero se toman los 4 bits
que conforman la parte derecha y se les aplicar a la permutacion de expansion que
se muestra a continuaci on:
E/P
4 1 2 3 2 3 4 1
7
Como se podr a observar esta permutaci on tomar a los 4 bits de la parte derecha y nos
devolver a 8 bits, por esa raz on se le denomina de expansi on. De esta manera los bits a
los cuales se les aplicar a la permutaci on son:
R
b
1
b
2
b
3
b
4
1 1 1 0
y despues de aplicar la permutaci on queda as:
b
4
b
1
b
2
b
3
b
2
b
3
b
4
b
1
0 1 1 1 1 1 0 1
Estos 8 bits, se sumaran xor con la subclave k
1
= 10100100 que habiamos generado
anteriormente
0 1 1 1 1 1 0 1
1 0 1 0 0 1 0 0
1 1 0 1 1 0 0 1
Los 4 bits m as a la izquierda nos servira n para hacer una consulta en la tabla S
0
y los
4 bits m as a la derecha para hacer una consulta en la tabla S
1
. A dichas tablas S
0
y
S
1
se les conoce como las S-cajas.
Consideremos los cuatro bits m as a la izquierda: 1101, para realizar la consulta en S
0
,
ser a necesario ubicar un rengl on y una columna. El rengl on lo conforman el primero y
el cuarto, de estos cuatro bits, es decir: 11 y la columna la conforman el segundo y el
tercer bit, esto es: 10. Con estos datos buscamos en S
0
S
0
00 01 10 11
00 01 00 11 10
01 11 10 01 00
10 00 10 01 11
11 11 01 11 10
Y obtenemos 11. Luego, hacemos lo mismo, pero ahora tomando en cuenta los cuatro
bits m as a la derecha: 1001. Nuevamente, tomamos el primero y el cuarto bit, que
conformaran el rengl on, esto es: 11 y el segundo y el tercero la columna, es decir, 00.
Y realizamos la b usqueda pero ahora en S
1
.
8
S
1
00 01 10 11
00 00 01 10 11
01 10 00 01 11
10 11 00 01 00
11 10 01 00 11
Y obtenemos 10. Ahora concatenamos los 2 bits que encontramos en la S
0
con los
2 bits que encontramos en la S
1
. Y nos queda: 1110. A esta cadena le aplicamos la
permutaci on P4 que aparece a continuaci on:
P4
2 4 3 1
Y como resultado se tendr a: 1011. Esto lo sumamos xor con los cuatro bits de la
izquierda denotados por L:
0 1 1 1
1 0 1 1
1 1 0 0
El resultado constituir a el bloque izquierdo L y el bloque derecho, ser a el del principio:
L R
1 1 0 0 1 1 1 0
Hasta aqui, se ha realizado la ronda 1 del DES-Simplicado.
Ronda 2
Para llevar a cabo la ronda 2 del DES simplicado, se intercambiar an los bloques L y
R, anteriores, quedando de la siguiente manera:
L R
1 1 1 0 1 1 0 0
Al igual que en la ronda 1, se toma el bloque derecho R y se le aplica la permutaci on
de expansi on E/P, despues de lo cual, nos queda: 01101001. Esta cadena se suma xor
con la subclave k
2
de la siguiente manera:
9
0 1 1 0 1 0 0 1
0 1 0 0 0 0 1 1
0 0 1 0 1 0 1 0
Dicho resultado lo dividimos en dos partes: 0010 y 1010. La primera de ellas, la utili-
zamos para buscar en S
0
los 2 bits que ser an izquierdos:
S
0
00 01 10 11
00 01 00 11 10
01 11 10 01 00
10 00 10 01 11
11 11 01 11 10
La segunda de ellas, la usamos para buscar en S
1
los 2 bits que estar an a la derecha:
S
1
00 01 10 11
00 00 01 10 11
01 10 00 01 11
10 11 00 01 00
11 10 01 00 11
Tomando los bits que encontramos tanto en S
0
, como en S
1
se forma el bloque 0000 al
cual se le aplica la permutaci on P4 mencionada anteriormente, despues de lo cual, el
bloque nos queda igual, este se sumar a xor con el bloque izquierdo L:
0 0 0 0
1 1 1 0
1 1 1 0
Este resultado se concatena con el bloque derecho R original, quedandonos, el siguiente
resultado
L R
1 1 1 0 1 1 0 0
Al bloque anterior se le aplica la permutaci on inversa, denotada por IP
1
, que se
muestra a continuaci on:
10
I P
k
f
I P
1
f
k
E/P
S0 S1
P4
F
K
10111101
01111110
L=0111 R=1110
01111101
1110
E/P
S0 S1
P4
F
K
1
2
10100100
1101 1001
11 10
1011
0111
1110
1100
L=1110 R=1100
01101001
1100
01000011
0010 1010
00 00
0000
1110
1110 1100
011101101
SW
Figura 4: Proceso de cifrado
11
IP
1
4 1 3 5 7 2 8 6
Quedando como resultado nal:
Mensaje cifrado C
0 1 1 1 0 1 0 1
El proceso completo de cifrado se muestra en el diagrama que aparece en la gura 4.
Descifrando con DES-S
Para descifrar se necesita conocer la clave con la cual fue cifrado un mensaje y por
supuesto tener el mensaje cifrado. Teniendo ambos, se realiza el mismo proceso que se
llev o a cabo para cifrar el mensaje, con la diferencia de que ahora se usar a primero la
subclave k
2
y luego la subclave k
1
, como se puede observar en la gura 1.
Teniendo el mensaje cifrado de la secci on anterior, este se dividir a en dos partes L y
R:
L R
0 1 1 1 0 1 0 1
Dado que ya se ha descrito el procedimiento con todo detalle en la secci on anterior,
ahora para ser m as breves, se proporciona un diagrama con los datos que pasan por
cada etapa, como se puede ver en la gura 5. Es importante recordar que para hallar
los bits en las S-cajas, el rengl on se obtiene tomando el primer y el cuarto bit del
dato precedente, y la columna tomando el segundo y tercer bit del dato precedente.
Dejamos al lector, que realice las permutaciones necesarias para comprobar cada uno
de los resultados intermedios. Como se podr a observar, al nal se obtiene nuevamente
el texto en claro M, que tenamos al principio.
12
I P
E/P
S0 S1
P4
F
K
1
11101100
L: 1110 R: 1100
1100
01101001
01000011
0010 1010
00 00
0000
01110101
1110
1110 1100
k
f
I P
1
1100 1110
1110
01111101
10100100
1101 1001
11 10
1011
1100
0111 1110
10111101
f
k
E/P
S0 S1
P4
F
K
2
SW
Figura 5: Proceso de descifrado
13
Referencias
[SIN99] S. Singh. The codebook. The science of secrecy from ancient Egypt to quantum
cryptography. First Anchor Book Edition, 1999.
[STA03] W. Stallings Cryptography and Network Security, Prentice Hall, 2003.
14

También podría gustarte