Escolar Documentos
Profissional Documentos
Cultura Documentos
(a + k) mód n
S-DES
El S-DES es un algoritmo de cifrado por bloques [STA03]. Utiliza un ta-
maño de bloque de 8 bits, y una clave secreta de 10 bits. Esto significa que
si tenemos un mensaje de tamaño mayor, éste deberá partirse en bloques de
8 bits. Esto puede resultar muy conveniente, sobretodo si se esta trabajan-
do con caracteres codificados en código ASCII2 en el cual cada caracter se
codifica con 8 bits, de esta manera tomarı́amos caracter por caracter y lo
cifrarı́amos 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
figura 2.2.
Como se puede observar en la figura, para cifrar un bloque, inicial-
mente se aplica una permutación inicial (IP); una función fk , la cual se
2
ASCII, significa American Standard Code for Information Interchange. Dado que las
computadoras entienden sólo números, un código ASCII es la representación numérica de
un caracter como ’a’ o ’ !’.
2.3. DATA ENCRYPTION STANDARD (DES) 19
CLAVE
(10 bits) DESCIFRADO
CIFRADO
Texto claro
Texto claro (8 bits)
(8 bits)
P 10
SHIFT
IP −1
IP
P8 K1
K1
f f k
k
SHIFT
SW SW
P8 K2
K2
fk fk
−1
IP IP
describirá más adelante; una permutación simple SW que lo único que hace
es intercambiar las mitades derecha e izquierda del bloque; luego se vuelve
a aplicar la función fk y finalmente se aplica nuevamente una permutación,
que de hecho es la permutación inversa (IP −1 ).
Para descifrar un bloque, se llevan a cabo las mismas operaciones, lo
único que cambia es el orden en el que se utilizan las subclaves k1 y k2 que
son generadas de la clave k como se explica a continuación.
CLAVE
(10 bits)
P10
CI−1 CI−1
P8
K1
CI−2 CI−2
P8
K2
P10
3 5 2 7 4 10 1 9 8 6
Dicha permutación nos indica, que ahora colocaremos primero el bit que se
encuentra en la tercera posición, luego el bit que se encuentra en la quinta
posición, luego el que se encuentra en la segunda posición, y ası́ sucesivamente
hasta que al último colocaremos el bit que se encuentra en la sexta posición.
Antes de aplicar la permutación, la clave se verı́a como en la siguiente tabla
2.3. DATA ENCRYPTION STANDARD (DES) 21
Clave k
k1 k2 k3 k4 k5 k6 k7 k8 k9 k10
1 0 1 0 0 0 0 0 1 0
Después de haber aplicado la permutación, se observarı́a de la siguiente forma
k3 k5 k2 k7 k4 k10 k1 k9 k8 k6
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
a cada una de las cuales se le hace un corrimiento circular a la izquierda.
Esto es el bit más a la izquierda se coloca más a a la derecha, y los demás 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á tomar el conjunto de 10 bits concatenando ambos bloques como
sigue
k1 k2 k3 k4 k5 k6 k7 k8 k9 k10
0 0 0 0 1 1 1 0 0 0
y se le aplica la permutación P 8 que aparece a continuación:
P8
6 3 7 4 8 5 10 9
Observa que dicha permutación no incluye los bits 1 y 2 y que por lo tanto,
después de aplicarla nos quedarán solamente 8 bits, a este tipo de permuta-
ciones, se les conoce como permutaciones de compresión. Después de lo
cual habremos obtenido la subclave k1 :
Subclave k1
k6 k3 k7 k4 k8 k5 k10 k9
1 0 1 0 0 1 0 0
La segunda operación que se llevará a cabo será 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, después de
lo cual cada uno de los bloques se verá ası́:
22 CAPÍTULO 2. CRIPTOGRAFÍA DE CLAVE SECRETA
0 0 1 0 0 0 0 0 1 1
Por último se juntan los dos bloques anteriores en uno sólo:
k1 k2 k3 k4 k5 k6 k7 k8 k9 k10
0 0 1 0 0 0 0 0 1 1
al cual se le aplicará la permutación P8 que ya conocı́amos, obteniendo la
siguiente subclave k2 :
Subclave k2
k6 k3 k7 k4 k8 k5 k10 k9
0 1 0 0 0 0 1 1
De esta manera hemos ya generado nuestras subclaves k1 y k2 , que se utili-
zarán en el proceso de cifrado y descifrado de mensajes.
IP
fk
F
E/P
K1
S0 S1
P4
Ronda 1
Parte del proceso de cifrado, son las rondas (rounds en inglés), que no
son más que una serie de pasos que se repiten. A continuación, veremos cómo
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ón, se aplica la función fk que también se muestra en la figura
2.4.
Si seguimos el diagrama, podemos continuar con el cifrado. Primero se
toman los 4 bits que conforman la parte derecha y se les aplicará la permu-
tación de expansión que se muestra a continuación:
E/P
4 1 2 3 2 3 4 1
24 CAPÍTULO 2. CRIPTOGRAFÍA DE CLAVE SECRETA
R
b1 b2 b3 b4
1 1 1 0
b4 b1 b2 b3 b2 b3 b4 b1
0 1 1 1 1 1 0 1
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ás a la izquierda nos servirań para hacer una consulta en la tabla
S0 y los 4 bits más a la derecha para hacer una consulta en la tabla S1 . A
dichas tablas S0 y S1 se les conoce como las S-cajas.
Consideremos los cuatro bits más a la izquierda: 1101, para realizar la
consulta en S0 , será necesario ubicar un renglón y una columna. El renglón
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 S0
S0 00 01 10 11
00 01 00 11 10
01 11 10 01 00
10 00 10 01 11
11 11 01 11 10
S1 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 S0
con los 2 bits que encontramos en la S1 . Y nos queda: 1110. A esta cadena
le aplicamos la permutación P4 que aparece a continuación:
P4
2 4 3 1
Y como resultado se tendrá: 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á el bloque izquierdo L y el bloque derecho, será el del
principio:
L R
1 1 0 0 1 1 1 0
Hasta aqui, se ha realizado la ronda 1 del DES-Simplificado.
Ronda 2
Para llevar a cabo la ronda 2 del DES simplificado, se intercambiarán 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ón de expansión E/P, después de lo cual, nos queda: 01101001.
Esta cadena se suma xor con la subclave k2 de la siguiente manera:
0 1 1 0 1 0 0 1
⊕ 0 1 0 0 0 0 1 1
0 0 1 0 1 0 1 0
26 CAPÍTULO 2. CRIPTOGRAFÍA DE CLAVE SECRETA
10111101
IP 01111110
L=0111 R=1110
fk
1110
F
E/P
01111101
10100100
K1
1101 1001
S0 S1
11 10
P4
1011
0111
1100 1110
SW
L=1110 R=1100
fk
1100
F
E/P
01101001
01000011
K2
0010 1010
S0 S1
00 00
P4
0000
1110
1110 1100
I P −1
011101100
L R
0 1 1 1 0 1 0 1
01110101
IP 11101100
L: 1110 R: 1100
fk
1100
F
E/P
01101001
01000011
K2
0010 1010
S0 S1
00 00
P4
0000
1110
1110 1100
SW
1100 1110
fk
1110
F
E/P
01111101
10100100
K1
1101 1001
S0 S1
11 10
P4
1011
1100
0111 1110
I P −1
10111101