Вы находитесь на странице: 1из 74

Seguridad de

Datos
Prof. Dr. Luis Marco Cáceres Alvarez
ÁREA DE COMPUTACIÓN E
INFORMÁTICA

21-
21-03-
03-2011 Prof. Dr. Luis Marco
Índice

1. Cifradores por sustitución poligrámica


monoalfabeto
• Cifrador de Playfair
• Cifrador Hill
2. Cifradores por transposición
• Transposición por grupos
• Transposición por series
• Transposición por columnas
• Otras transformaciones
3. Cifrado en bloque con clave secreta
• DES – Data Encryption Standard
21-
21-03-
03-2011 Prof. Dr. Luis Marco
1. Cifradores por sustitución poligrámica
monoalfabeto
 Los cifradores poligrámicos, a diferencia de los
monográmicos que cifraban carácter a carácter,
consideran un poligrama con n ≥ 2 del texto en claro
para proceder a su cifrado.

 El bloque de información a cifrar serán digramas,


trigramas o, en general, poligramas.

 El objeto de este cifrado por sustitución es destruir la


distribución de frecuencia típica de los monogramas.

 Cifradores poligrámicos: Playfair - Hill


21-
21-03-
03-2011 Prof. Dr. Luis Marco
1.1 Cifrador de Playfair

• El cifrador de Playfair en realidad fue


inventado por Charles Wheatstone
para comunicaciones telegráficas
secretas en el año 1854.
• Utilizado por el Reino Unido en la
Primera Guerra Mundial, este sistema
consiste en separar el texto en claro
en digramas y proceder a su cifra de
acuerdo a una matriz alfabética de
dimensiones 5x5 en la cual se
21-
21-03-
encuentran representadas 25 de las 26
03-2011 Prof. Dr. Luis Marco

letras del alfabeto inglés.


Cifrador de Playfair (cont. I)

 En las Figuras 1 se A B C D E
muestran las matrices
comentadas para el
lenguaje castellano de F G H I/J K
27 caracteres. En este
caso supondremos
que las letras I y J
ocupan una única L M N/ O P
celda, al igual que la Ñ Ñ
y la N.
Q R S T U

V W X Y Z

21-
21-03-
03-2011 Prof. Dr. Luis Marco
Cifrador de Playfair (cont. II)
 Para que este método
de cifra presente un V E R A N/
mayor nivel de
seguridad, se incluirá al Ñ
comienzo de dicha
matriz una clave que se O Z U L B
escribe a partir de la
primera fila omitiendo
las letras repetidas. A C D F G H
continuación de dicha
clave, se distribuyen las
restantes letras del I/J K M P Q
alfabeto hasta
completar la matriz.
 Si la clave es VERANO S T W X Y
AZUL, entonces la
matriz
21-
21-03-
03-2011
será como
Prof. Dr. Luis Marco
muestra la Figura 2.
Cifrador de Playfair (cont. III)
 El método de Playfair cifrará pares de caracteres
del texto en claro M1M2 como C1C2 de acuerdo a
las siguientes reglas:

1. Si M1 y M2 se encuentran en la misma fila, se eligen los


elementos del criptograma C1 y C2 como aquellos que están a la
derecha de M1 y M2, respectivamente. Esta operación se realiza
módulo 5, de forma que para la matriz de la Figura 2 se cumplen
las siguientes transformaciones:

Pares del texto en claro Criptograma


EA (1ª fila) RN
LU (2ª fila) BL
DH (3ª fila) FC

21-
21-03-
03-2011 Prof. Dr. Luis Marco
Cifrador de Playfair (cont. IV)
2. Si M1 y M2 se encuentran en la misma
columna, se eligen C1 y C2 como los
caracteres que están inmediatamente
debajo de ellos, operando módulo 5. Para
la matriz de la Figura 2 se cumplen las
siguientes transformaciones:

Pares del texto en claro Criptograma


ED (2ª columna) ZK
FU (3ª columna) MF
AX (4ª columna) LA

21-
21-03-
03-2011 Prof. Dr. Luis Marco
Cifrador de Playfair (cont. V)
3. Si M1 y M2 se encuentran en filas y
columnas distintas, entonces forman dos
vértices de un rectángulo. Los elementos
C1 y C2 se obtienen de los dos vértices
que faltan para completar dicha figura
geométrica, considerando siempre la fila
de M1 como el elemento C1. Esto es, en
la matriz de la Figura 2 se cumplen las
siguientes transformaciones:

Pares del texto en claro Criptograma


OT ZS
YU WB

21-
21-03-
03-2011 Prof. Dr. Luis Marco
Cifrador de Playfair (cont. VI)
• Recuerde, además, que las letras I y J
ocupan una misma celda, al igual que la
N y la Ñ, por lo que se cumplen por
ejemplo también las siguientes
transformaciones en dicha matriz:

Pares del texto en claro Criptograma


MI = MJ PK
EN = EÑ RV

• No obstante, si en la operación de
descifrado caemos en la retícula I/J,
siempre descifraremos como la letra I.
21-
21-03-
03-2011 Prof. Dr. Luis Marco
Cifrador de Playfair (cont. VII)
4. Al representar el texto en claro como una cadena de digramas,
pueden aparecer caracteres repetidos con lo cual no podría
aplicarse ninguna de las tres opciones de cifrado anteriores. Tal
sería el caso de cifrar el siguiente mensaje tenebroso:

• M = LAS SOMBRAS LLAMAN A LA PUERTA DEL CASTILLO.


• M = LA SS OM BR AS LL AM AN AL AP UE RT AD EL CA ST IL LO.

• La solución a este problema (los diagramas segundo SS y sexto


LL) está en romper esta repetición antes del cifrado, incluyendo
una letra nula que, de acuerdo al lenguaje castellano podría ser
X, Z o Q por ejemplo. Usaremos en el texto la letra X como
carácter de relleno, con lo que el mensaje se transforma ahora
en:

- M = LA SX SO MB RA SL LA MA NA LA PU ER TA DE LC AS TI LX
LO.

21-
21-03-
03-2011 Prof. Dr. Luis Marco
Cifrador de Playfair (cont. VIII)
5. Por último, es posible que el mensaje final a cifrar, una
vez eliminados los digramas repetidos, tenga un número
impar de caracteres. En tal situación se añade un carácter
nulo al final de la cadena para poder cifrar el último
carácter del texto en claro. Por ejemplo, si al mensaje
anterior le añadimos la palabra HOY, además de ser más
inquietante, quedaría como sigue:

• M = LA SX SO MB RA SL LA MA NA LA PU ER TA DE LC AS
TI LX LO HO YX.

Ejemplo 1: Cifre el mensaje, M = "Las sombras llaman a


la puerta del castillo hoy" con una matriz de Playfair con
clave K = MIEDO.

21-
21-03-
03-2011 Prof. Dr. Luis Marco
Cifrador de Playfair (cont. IX)
 Para descifrar un criptograma obtenido mediante
Playfair, simplemente utilizamos el algoritmo
inverso, esto es:
• Si los elementos C1 y C2 están en la misma fila, se eligen
M1 y M2 como los caracteres inmediatamente a la
izquierda, módulo 5.
• Si los elementos C1 y C2 se encuentran en la misma
columna, se eligen M1 y M2 como los caracteres
inmediatamente arriba de aquellos, módulo 5.
• Si los elementos C1 y C2 están en filas y columnas
distintas, M1 y M2 se eligen como aquellos caracteres que
forman los vértices que faltan del recuadro, comenzando
por la fila del primer elemento C1.

Ejemplo 2: Si en la matriz de cifra de Playfair con la


clave BEATLES se eliminan los caracteres K y Ñ, con
relleno X, descifre el siguiente criptograma:
C = EC TB AZ EN WB JH TX AB BU VC LO JT PM IL.

21-
21-03-
03-2011 Prof. Dr. Luis Marco
1.2 Cifrador de Hill
 En 1929, Lester S. Hill, un joven matemático, publica en
Nueva York un artículo en el que propone la utilización del
álgebra y, en particular de las matrices, en la operación de
cifrado.
 La importancia del método de cifra propuesto por Hill
descansa en la utilización de transformaciones lineales
matriciales operando en módulo 26 (las letras del alfabeto
inglés) con lo cual se facilita el cifrado poligráfico, algo que
tras el invento de Playfair fue insistentemente buscado por
los criptólogos y matemáticos de la época.
 Dado que bajo ciertas condiciones este sistema presenta una
alta seguridad, que puede implementarse fácilmente en los
ordenadores actuales y que hace uso de una buena cantidad
de conceptos de la aritmética modular operando con
matrices.

21-
21-03-
03-2011 Prof. Dr. Luis Marco
Cifrador de Hill (cont. I)
 Inicialmente, Hill plantea el problema como el conjunto de
cuatro ecuaciones que se indican a continuación, en donde la
variable yi representa las letras cifradas y la variable xi las
letras del texto en claro.
y1 = 8 x1 + 6 x2 + 9 x3 + 5 x4 mod 26
y2 = 6 x1 + 9 x2 + 5 x3 + 10 x4 mod 26
y3 = 5 x1 + 8 x2 + 4 x3 + 9 x4 mod 26
y4 = 10 x1 + 6 x2 + 11 x3 + 4 x4 mod 26

 Hill define un alfabeto de cifrado arbitrario como el que se


indica a continuación, aunque usaremos el habitual: A = 0, B
= 1, ... Z = 26.
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
5 23 2 20 10 15 8 4 18 25 0 16 13 7 3 1 19 6 12 24 21 17 14 22 11 9
 El mensaje original utilizado por Hill era M = DELAY
OPERATIONS. Toma entonces los cuatro primeros elementos,
el tetragrama DELA, que corresponden a las variables x1, x2,
x3 y x4, reemplaza sus valores de acuerdo al alfabeto
indicado en la ecuación para obtener los primeros cuatro
elementos del criptograma y repita el ciclo.

21-
21-03-
03-2011 Prof. Dr. Luis Marco
Cifrador de Hill (cont. II)
 Como en todo sistema poligrámico, se usan elementos de
relleno si el último bloque tiene un tamaño menor.
 Para descifrar este criptograma, basta con resolver ahora el
siguiente sistema de ecuaciones en x:
x1 = 23 y1 + 20 y2 + 5 y3 + 1 y4 mod 26
x2 = 2 y1 + 11 y2 + 18 y3 + 1 y4 mod 26
x3 = 2 y1 + 20 y2 + 6 y3 + 25 y4 mod 26
x4 = 25 y1 + 2 y2 + 22 y3 + 25 y4 mod 26

 Podemos deducir que el cifrado de Hill se trata de un cifrador


por sustitución monoalfabética y poligrámico, en tanto que
sustituye d caracteres del texto en claro por d caracteres de
texto cifrado; en este caso d = 4.
 Si representamos el problema de Hill de cuatro ecuaciones
mediante matrices, se tiene que la transformación para la
operación de cifra será:

21-
21-03-
03-2011 Prof. Dr. Luis Marco
Cifrador de Hill (cont. III)

 Para la operación de descifrado se tendrá entonces:

21-
21-03-
03-2011 Prof. Dr. Luis Marco
Cifrador de Hill (cont. IV)
 Las operaciones anteriores podemos generalizarlas
suponiendo:
{y} = C, {x} = M y la matriz {K} de orden dxd como la
clave K, luego:
C = KE * M mod n M = KD * C mod n

 En las ecuaciones anteriores, C y M serán vectores columna


de dimensiones dx1, siendo d el tamaño del d-grama.

 Obs.:
Como se ha comentado, al trabajar con bloques de información igual a d
caracteres, es posible que el mensaje M no sea múltiplo de este
valor. En tales circunstancias, se rellenará el último bloque hasta
completar el d-grama con un carácter nulo que deberá ser conocido
por quienes comparten el cifrado; por ejemplo la letra X.
En cuanto al alfabeto de cifrado, si bien puede utilizarse cualquiera como
lo propuso Hill, usaremos la representación numérica habitual en
módulo 27, es decir, A = 0, B = 1, etc.
21-
21-03-
03-2011 Prof. Dr. Luis Marco
Cifrador de Hill (cont. V)
 Consideraciones sobre la matriz K
• La matriz K será siempre cuadrada, y sus elementos serán
nuestra clave secreta.
• No será suficiente el hecho de que la clave sea una matriz
cuadrada; ésta deberá cumplir ciertos requisitos que pasamos a
enumerar:
 Deberá ser una matriz de dimensión dxd, que viene dada por el d-
grama que vamos a cifrar.
 Los elementos de la matriz serán enteros que formen parte del
Conjunto Completo de Restos módulo n, en nuestro caso para el
lenguaje castellano en mayúsculas [0, 26].
 La matriz K no deberá
deberá ser singular, es decir, deberá
deberá tener inversa para poder
realizar el proceso de descifrado segú
según se indicaba en la ecuació
ecuación 1.46. Para
demostrar que una matriz no es singular, basta con demostrar que el
determinante es distinto de cero.
 Para encontrar la matriz inversa de K, haremos:

-1 T Adj(K)
K =
|K|
• donde K-1 es la matriz Inversa de K, TAdj(K)
TAdj(K) es la Traspuesta de la matriz Adjunta de
K, y | K | es el determinante de K.
21-
21-03-
03-2011 Prof. Dr. Luis Marco
Cifrador de Hill (cont. VI)
 Ejemplo 3: Encuentre la matriz trigrámica traspuesta
de la matriz con clave simbólica K = NO ESTA MAL.
• Donde: N = 13; O = 15; E = 4; S = 19; T = 20; A = 0; M =
12; A = 0; L = 11.

 Ejemplo 4: Para la matriz con los valores que se indican,


se pide encontrar su matriz adjunta: k11=2, k12=4, k13=6,
k21=3, k22=5, k23=7, k31=1, k32=9 y k33=0.
• OBS:

 Requisito: aij = (-1)i+j * | aij | y | K | ≠ 0.

21-
21-03-
03-2011 Prof. Dr. Luis Marco
Cifrador de Hill (cont. VII)
 Recapitulando entonces, en el cifrado de Hill
deberá existir una transformación inversa
que permita recuperar el mensaje en claro, y
dicha operación sólo la puede dar la matriz
clave. Esto quiere decir que las claves KE y KD
deberán ser matrices inversas en el módulo
de trabajo. Luego, la condición sine qua non
del cifrador de Hill es que la matriz de cifrado
tenga inversa, es decir:

 KD = KE-1

 Ejemplo 5:
Cifre el texto M = AMIGO CONDUCTOR, SI
BEBES NO CONDUZCAS mediante tri-gramas
usando la matriz simbólica con clave
21-
21-03-
03-2011
PELIGROSO. Prof. Dr. Luis Marco
Cifrador de Hill (cont. VIII)

 Ejemplo 6:
Si la clave K es k11 = 4; k12 = 2; k21 = 9; k22 =
2, cifre el siguiente mensaje M = QUE TODA
LA VIDA ES SUEÑO Y LOS SUEÑOS SUEÑOS
SON.
Usando bloques de dos caracteres

 Ejemplo 7:
Sea la matriz K-1: k11=16, k12=22, k21=5, k22=1.
Se pide descifrar el siguiente criptograma C =
NXXZ XSNX NEKE MJZT RVXD ÑZWB XZYW
21-
21-03-
03-2011
RJEV. Prof. Dr. Luis Marco
2. Cifradores por Transposición
 El segundo método clásico utilizado para cifrar mensajes es la
transposición o permutación de caracteres.
 Esto consiste en reordenar los caracteres del texto en claro como si
se tratase de una baraja de cartas.
 El resultado de tal acción es la de desdibujar la información del
texto en claro y provocar, por tanto, la protección de la misma.
 Debe tenerse presente que al reordenar el texto, en el criptograma
aparecerán exactamente los mismos caracteres que en el texto en
claro y que, por tanto, no evitamos en este caso que un intruso
detecte fácilmente que nuestro criptosistema es de transposición
mediante la simple acción de contabilizar los caracteres del texto
cifrado y comparar las frecuencias relativas con las del lenguaje.
 Esto es, si en el alfabeto de 27 letras la letra E aparece cerca del
13%, la letra A cerca del 10%, etc., no cabe duda que el cifrado ha
sido realizado por permutaciones.
 No obstante, sí se destruyen los digramas, trigramas y, en general
poligramas, al separar los caracteres en el texto cifrado.

21-
21-03-
03-2011 Prof. Dr. Luis Marco
2.1. Transposición por Grupos
 En este tipo de cifra, los caracteres del texto en claro se reordenan
por medio de una permutación:

• Πx(y)
 Donde:
• x indica la acció
acción ejercida sobre el conjunto de caracteres del mensaje M e
• y es la posició
posición ordenada de los caracteres segú
según la acció
acción x.

 Luego, si a1, a2, a3, ..., ak son letras del texto en claro, y Π es una
permutación de 1, 2, 3, ... k números, entonces cada carácter Ci del
criptograma será el resultado de aplicar dicha permutación sobre
ese conjunto de k caracteres.
 Por ejemplo, sea el conjunto de números [1, 10] = 1, 2, 3, 4, 5, 6,
7, 8, 9, 10 y sean x1 y x2 dos acciones de permutación tales que:
• x1 es la acción de ordenar cada grupo de diez caracteres del mensaje de
forma que primero envía los caracteres impares y luego los pares y
• x2 es la función de ordenar los caracteres del mensaje desde la posición
mayor a la menor, entonces se tiene que:

21-
21-03-
03-2011 Prof. Dr. Luis Marco
Transposición por Grupos (cont. I)
 Π1 = 1, 3, 5, 7, 9, 2, 4, 6, 8, 10.
 Π2 = 10, 9, 8, 7, 6, 5, 4, 3, 2, 1.
 Entonces de los grupos indicados, tenemos por
ejemplo que:
• Π1(4) = 7; Π1(9) = 8; Π2(1) = 10; Π2(3) = 8
 La transposición por grupos será periódica, de
período p, tras el cual la permutación aplicada al
texto en claro se repite.
 Si el mensaje que se desea cifrar:
• M = m1m2m3 ... m10m11m12 y
• la permutación aplicada con período 4 es ΠM = 4132,
entonces el criptograma generado será:
 C = m4m1m3m2m8m5m7m6m12m9m11m10.
 Ejemplo 8:Utilizando la permutación ΠM = 24531
cifre el siguiente mensaje:
 M = MANOS ARRIBA, ESTO ES UN ATRACO.

21-
21-03-
03-2011 Prof. Dr. Luis Marco
2.2. Transposición por Series
 Esta técnica consiste en ordenar el mensaje como una cadena de
submensajes, de forma que el mensaje original se transmite como:
• M' = MS1MS2MS3..., en donde cada una de las cadenas sigue una funció
función o serie;
 Por ejemplo, MS1 puede corresponder a los múltiplos de 3, MS2 los números
primos, MS3 los números pares, etc.
 Supongamos entonces un mensaje M con un total de 25 caracteres. Si se
utilizan las 3 series MS1, MS2 y MS3 que se indican en ese mismo orden:
• MS1: Relació
Relación de nú
números primos
• MS2: Relació
Relación de nú
números pares
• MS3: Relació
Relación de nú
números impares
 Entonces la cifra se realizará como sigue:
M=m1m2m3m4m5m6m7m8m9m10m11m12m13m14m15m16m17m18m19m20m21m22m23m2
4m25
• M' = MS1MS2MS3
• MS1 = 1, 2, 3, 5, 7, 11, 13, 17, 19, 23
• MS2 = 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24
• MS3 = 9, 15, 21, 25
C=m1m2m3m5m7m11m13m17m19m23m4m6m8m10m12m14m16m18m20m22m24m9m15m2
1m25

 Ejemplo 9: Utilizando las series MS1MS2MS3 vistas anteriormente y en ese


orden, cifre el mensaje M = ERRAR ES HUMANO, PERDONAR DIVINO.

21-
21-03-
03-2011 Prof. Dr. Luis Marco
2.3. Transposición por Columnas Simples
 En este tipo de cifrados, se reordenan los caracteres del texto en
claro en NC columnas de forma que el mensaje así escrito se
transmite luego por columnas, obteniéndose de esta manera el
criptograma.
 El efecto, al igual que en los demás cifradores por permutación, es
desplazar las letras de las posiciones adyacentes.
 Por ejemplo, si NC = 6, la columna de cifrados podría quedar como
se indica:
Columna de cifrados
C1 C2 C3 C4 C5 C6
C7 C8 C9 C10 C11 C12
C13 C14 C15 C16 C17 C18
C19 C20 C21 C22 ... ...
 Luego, el criptograma se obtiene leyendo de arriba hacia abajo en
las columnas, es decir:
• C = C1C7C13C19 ... C2C8C14C20 ... C3C9C15C21 ... ... C6C12C18.
 Ejemplo 10:Cifre el siguiente texto mediante transposición por
columnas con NC = 6. Se usará como carácter de relleno la letra X.
M = NUNCA ES TARDE CUANDO LA DICHA ES BUENA.

21-
21-03-
03-2011 Prof. Dr. Luis Marco
2.3. Transposición por Columnas Simples (cont. I)
 Para descifrar un criptograma por
columnas, el receptor primero calculará el
número de filas NF a partir de la longitud
del texto cifrado LC y el número de
columnas NC, clave secreta que sólo él
conoce:
 NF = LC/NC
 Luego, se escribe el texto cifrado de forma
vertical en tantas filas como indique el
valor de NF y procede a leerlo por filas.
 Ejemplo 11: Se ha recibido el
criptograma C = PLXIU IEESN GTSOO OEX
y se sabe que ha sido cifrado en 6
columnas. Descífrelo.
21-
21-03-
03-2011 Prof. Dr. Luis Marco
2.3. Transposición por Columnas Simples (cont. II)
 En general, para un cifrado por
transposición a través de una matriz de
dimensiones j x k (j filas y k columnas),
existe una relación funcional entre el texto
en claro y el criptograma.
 En el caso de la cifra por columnas, el
carácter del texto en claro de la posición i-
ésima se desplaza a la posición Et(i) debido
a la acción de permutación, en donde:
• Et(i) = j ∗ [(i-1) mod k] + trunc [(i-1)/k] + 1
 Donde trunc(f(x)) es la parte entera de la operación
efectuada sobre f(x).
 Luego, el carácter Mi del texto en claro se
representará en el criptograma como:
 Mi = Cj∗(i-1) mod k + trunc[(i-1)/k] + 1
21-
21-03-
03-2011 Prof. Dr. Luis Marco
2.3. Transposición por Columnas Simples (cont. III)

 Ejemplo 12:Aplicando la ecuación Et(i)


cifre en columnas usando una clave
NC = 3 el mensaje:
 M = LA VIDA ES UNA TÓMBOLA.

 Ejemplo 13:Descifre a través de la


ecuación Mi el siguiente criptograma
cifrado con NC = 4 columnas.
 C = CNEAM SAANY IXMNO CNXIT HAOX.

21-
21-03-
03-2011 Prof. Dr. Luis Marco
2.3. Transposición por Columnas Simples con
Clave
 Esta clave puede ser cualquier combinación de números
desde 1 hasta NC, no obstante podemos asociar una palabra
de longitud NC con todos los caracteres distintos a dicha
combinación de números.
 Por ejemplo si se trabaja con 7 columnas y se desea una
permutación de éstas del tipo 2547136, una posible palabra
clave sería la palabra PERMISO pues, ordenando los
caracteres de dicha clave alfabéticamente, se obtiene
precisamente esa permutación:
 EIMOPRS.
 Ejemplo 14:Cifre por columnas con la clave RELOJ el
siguiente mensaje. Permutación tipo: 25341

M = EL PATIO DE MI CASA ES PARTICULAR, CUANDO LLUEVE SE MOJA COMO


COMO LOS DEMÁ
DEMÁS.

21-
21-03-
03-2011 Prof. Dr. Luis Marco
2.4. Transposición por Filas

 De forma similar al sistema de cifra


por columnas, en esta operación de
cifra se escribe el mensaje M en forma
vertical, por ejemplo de arriba hacia
abajo, con un cierto número de filas
NF que será la clave y luego se lee el
criptograma en forma horizontal .
 Ejemplo 15:Cifre por transposición de
filas con clave NF = 3 el siguiente
mensaje:
21-
21-03-
03-2011 Prof. Dr. Luis Marco
M = EL PRISIONERO SE ENTREGAR Á EN EL LUGAR YA INDICADO.
2.4. Transposición por Filas (cont. I)

 Ejemplo 16:Descifre el siguiente


criptograma de cifra por filas y clave NF =
3:

C = MAPDD ITOOE RURNX.

 Ejemplo 17:Utilizando el cifrado por líneas


con figura zig-zag con una profundidad
igual a 3, cifre el mensaje:

M = EL ESPAÑOL COMO EL JUDÍO, DESPUÉS DE COMER SIENTE FRÍO.


21-
21-03-
03-2011 Prof. Dr. Luis Marco
2.5. Otras Transformaciones
1. Transformación por Adición
• Puesto que la suma y la resta son operaciones que
cuentan con inversa, se pueden utilizar como funciones de
cifra. De hecho, este principio ya ha sido utilizado en los
cifradores por sustitución. Si existe una correspondencia
entre los caracteres ai del alfabeto del mensaje con los
dígitos cj del alfabeto de cifrado con 0 ≤ j ≤ n-1, serán
posibles las dos operaciones de cifra que se indican:
C = EK (M) = M + K 1.75
C = EK (M) = M - K
 En este tipo de cifrado, tomamos un bloque de n caracteres y la
cifra será el valor numérico resultante de la adición o sustracción
de dicho número con el que le corresponda a los n caracteres de
la clave que coinciden con el bloque. Estos números luego
pueden transmitirse o almacenarse en formato binario.
 Por ejemplo, para cifrar el mensaje:
 M = LA MEJOR DEFENSA ES UN BUEN ATAQUE
 Con la clave K = NAPOLEÓN
 Una transformación por adición con bloques de tres caracteres,
procedemos de la siguiente forma:

21-
21-03-
03-2011 Prof. Dr. Luis Marco
Otras Transformaciones (cont. I)
1. Transformación por Adición
 M=LAMEJORDEFENSAESUNBUENATAQ
UE
 C=NAPOLEONNAPOLEONNAPOLEONNA
PO
• La representación numérica será:
M = 11 00 12 04 09 15 18 03 04 05 04 13 19 00 04 19 21 13 01 21 04 13 00 20 00 17 21 04
K = 13 00 16 15 11 04 15 13 13 00 16 15 11 04 15 13 13 00 16 15 11 04 15 13 13 00 16 15
C = 24 00 28 19 20 19 33 16 17 05 20 18 30 04 19 32 34 13 17 36 15 17 15 33 13 17 37 19
 Si tomamos como bloque la cifra de cada tres
caracteres, el criptograma final será los números:
 C = 240.028 192.019 331.617 52.028 300.419
323.413 173.615 171.533 131.737 19.
 Para descifrar basta con realizar la operación inversa.
Esto es, el primero y el segundo bloques del
criptograma C1 y C2 se descifrarían como sigue:
 C1 240.028 C2 192.019
- K1 130.016 - K2 151.104
 M1 110.012 = LAM M2 040.915 = EJO

21-
21-03-
03-2011 Prof. Dr. Luis Marco
Otras Transformaciones (cont. II)
1. Transformación por Adición
 M=LAMEJORDEFENSAESUNBUENATAQ
UE
 C=NAPOLEONNAPOLEONNAPOLEONNA
PO
• La representación numérica será:
M = 11 00 12 04 09 15 18 03 04 05 04 13 19 00 04 19 21 13 01 21 04 13 00 20 00 17 21 04
K = 13 00 16 15 11 04 15 13 13 00 16 15 11 04 15 13 13 00 16 15 11 04 15 13 13 00 16 15
C = 24 00 28 19 20 19 33 16 17 05 20 18 30 04 19 32 34 13 17 36 15 17 15 33 13 17 37 19
 Si tomamos como bloque la cifra de cada tres
caracteres, el criptograma final será los números:
 C = 240.028 192.019 331.617 52.028 300.419
323.413 173.615 171.533 131.737 19.
 Para descifrar basta con realizar la operación inversa.
Esto es, el primero y el segundo bloques del
criptograma C1 y C2 se descifrarían como sigue:
 C1 240.028 C2 192.019
- K1 130.016 - K2 151.104
 M1 110.012 = LAM M2 040.915 = EJO

21-
21-03-
03-2011 Prof. Dr. Luis Marco
Otras Transformaciones (cont. III)
2. Transformación por Multiplicación
 De la misma manera, podríamos cifrar aplicando
una multiplicación del bloque del texto en claro
por el bloque de la secuencia de una clave.
 No obstante, deberíamos representar los
caracteres del alfabeto con dígitos Cj > 0 pues de
lo contrario la operación inversa sería
irrecuperable para texto en claro o clave igual a
cero.
 Esto quiere decir que los caracteres deberán
representarse desde 1 a 27 a diferencia de cómo
veníamos haciéndolo [0, 26] que era un
imposición de la aritmética modular, que no es
aquí el caso.
 Siguiendo entonces el mismo ejemplo anterior, y
tomando ahora como bloques a digramas del
mensaje, el primer criptograma será el producto
del mensaje LA (12 01) cifrado con la secuencia
de clave NA (14 01); luego:
C1
21-
21-03-
= M1 ∗ K1 = LAProf. ∗Dr. Luis
03-2011
NA Marco
= 1.201 ∗ 1.401 =
1.682.601.
Otras Transformaciones (cont. IV)

3. Transformación por conversión de


Base
 Si en la representación del mensaje se produce
un cambio de base, se obtiene un criptograma en
el que la seguridad reside únicamente en el
secreto de la base utilizada.
 Al igual que en los métodos aritméticos
anteriores, la longitud del mensaje podrá
expandirse o reducirse, según sea el sistema de
numeración que elijamos para cifrar en
comparación con la base original.
 Por ejemplo, si el mensaje a cifrar es M = SOS, de
acuerdo a los dígitos asignados en castellano a
estos caracteres del 1 al 27, su representación
decimal será: SOS = 20162010. Si la operación de
cifra consiste en representar bloques de
trigramas en el sistema octal, se tiene que M =
21-
21-03-
03-2011
SOS = 201.620Prof. Dr. Luis Marco
10 que se representa como C =
6116248.
Otras Transformaciones (cont. V)

3. Transformación por lógica de Boole


 Una posibilidad sería usar las operaciones de
negación y OR exclusivo que tienen inversos.
 Si el texto en claro se representa en binario
conjuntamente con una clave también binaria de
la misma longitud, esto dará lugar a las
operaciones de cifrado y descifrado que se
indican:
 Ejemplo 18: Se desea cifrar el mensaje
• M = SOL representado en su equivalente ASCII
binario:
a) Cífrelo con el algoritmo de negación y
b) Cífrelo con la función XOR y la clave K = SUN.
c) En cada caso, represente el resultado en
notación hexadecimal.
21-
21-03-
03-2011 • Equivalente ASCII
Prof. Dr.:Luis
S Marco
= 83; O = 79; L = 76; U = 85;
N = 78
3. Cifrado en Bloque con Clave Secreta
 La operación de cifrado en bloque con clave secreta o privada
consiste en aplicar el algoritmo o función de cifra sobre uno o más
grupos de símbolos o elementos del mensaje denominados bloques,
usando tanto en la operación de cifra como en el descifrado la
misma clave (Cifradores Simétricos).
 Aunque el tamaño del bloque a cifrar puede ser cualquiera como en
aquellos cifradores orientados a caracteres (por sustitución,
Playfair), hoy en día se asocia la cifra en bloques a sistemas
modernos que aplican transformaciones a bloques de 64 ó 64 bits.
 Las características principales de estos cifradores pueden resumirse
en los siguientes puntos:
1. Cada sí
símbolo o elemento del mensaje se cifra de manera dependiente de los los
adyacentes;
2. Independientemente de la posició
posición relativa del bloque dentro del mensaje,
cada bloque se cifra con el mismo algoritmo y la misma clave;
3. Si dos mensajes M1 y M2 iguales se cifran con la misma clave, entonces los
criptogramas resultantes C1 y C2 será
serán tambié
también iguales; y
4. Como el cifrado se aplica sobre bloques independientes, podemos descifrar el
criptograma completo o simplemente parte de él, desde el bloque que nos
interese, sin por ello perder informació
información.

21-
21-03-
03-2011 Prof. Dr. Luis Marco
3.1 Cifrado tipo Feistel
 Los cifradores de bloque con clave secreta aplican
técnicas de sustitución y transposición, además de
otras operaciones lineales de adición y
multiplicación e incluso no lineales.
 En ese sentido se hablara de cifradores tipo Feistel
cuando estas operaciones se aplican sólo a la
mitad del bloque de información que se está
cifrando y en cada vuelta del algoritmo se produce
una permutación o intercambio de estas dos
mitades.
 H. Feistel desarrolló en los años 70 un cifrador con
está filosofía, que conseguía la confusión y difusión
mediante transformaciones basadas en
permutaciones, sustituciones y operaciones
lineales simples.
 El sistema de cifra es moderno y orientado
21- 03evidentemente
21-03- -2011 a bits
Prof.,Dr.lo que llama la atención es
Luis Marco
el uso de técnicas que podríamos llamar de
clásicas – sustitución y permutación.
Cifrado tipo Feistel (cont. I)
 Dado un bloque de N
bits (típico 64) éste
se dividirá en dos
mitades.
 Existirá una función
unidireccional F
(muy difícil de
invertir).
 Se realizan
operaciones con la
clave ki sólo con una
mitad del bloque, y
se permutan en cada
vuelta las dos
21-
21-03-
03-2011 mitades, operación
Prof. Dr. Luis Marco

que se repite
durante n vueltas.
Cifrado tipo Feistel (cont. II)
 Un ejemplo básico
• El algoritmo usará bloques de tamaño 8
caracteres. Tendrá dos vueltas y en cada
vuelta realizará una operación de sustitución
S y una permutación P sobre la 1ª mitad.
 Sustitución: Ci = (Mi +1 ) mod 27
 Permutación: Ci = ∏3241 (el carácter 1º pasa a la 4ª
posición en el criptograma, el 4º a la 3ª, el 2º a la
2ª y el 3º a la 1ª)
• Mensaje:
M = STAR WARS, LA MISIÓN CONTINÚA

21-
21-03-
03-2011 Prof. Dr. Luis Marco
Cifrado tipo Feistel (cont. II)

 M= STAR WARS, LA MISIÓN CONTINÚA Si: +1 mod 27


Pi: ∏3241
n: 27
 M1 = STAR WARS LAMI SION CONT INUA
 S1 = TUBS WARS MBNJ SION DPÑU INUA Primera
 P1 = BUST WARS NBJM SION ÑPUD INUA vuelta
 M2 = WARS BUST SION NBJM INUA ÑPUD
 S2 = XBST BUST TJPÑ NBJM JÑVB ÑPUD
Segunda
 P2 = SBTX BUST PJÑT NBJM VÑBJ ÑPUD
vuelta

C = SBTX BUST PJÑT NBJM VÑBJ ÑPUD


Aunque le parezca increíble, el DES hará prácticamente lo mismo trabajando
con bits y con funciones un poco más “complejas”.

21-
21-03-
03-2011 Prof. Dr. Luis Marco
3.2 Cifradores de bloque más conocidos

Algoritmo Bloque (bits) Clave (bits) Vueltas

Lucifer 128 128 16


DES 64 56 16
Loki 64 64 16
RC2 64 variable --
CAST 64 64 8
Blowfish 64 variable 16
IDEA 64 128 8

Skipjack 64 80 32
Rijndael 128 128 o más flexible

21-
21-03-
03-2011 Prof. Dr. Luis Marco
Cifradores de bloque más conocidos (cont. I)

 Lucifer: algoritmo original tipo Feistel usado a


comienzos de los años 70 por en el Reino Unido
y que posteriormente dará lugar al DES.
 DES: algoritmo tipo Feistel que se convirtió en
estándar durante casi treinta años. Hoy es
vulnerable por su pequeña longitud de clave y
ha dejado de ser estándar mundial.
 Loki: algoritmo australiano similar al DES,
también de tipo Feistel.
 RC2: algoritmo propuesto por Ron Rivest y que
se incluye en navegadores de Internet desde
1999.
 CAST: algoritmo canadiense tipo Feistel que se
ofrece como uno de los algoritmos de cifra en
últimas versiones de PGP.
21-
21-03-
03-2011 Prof. Dr. Luis Marco
Cifradores de bloque más conocidos (cont. II)

 Blowfish: algoritmo de tipo Feistel


propuesto por Bruce Schneier.
 IDEA: algoritmo europeo usado
principalmente en el correo electrónico
PGP.
 Skipjack: propuesta de nuevo estándar
en USA a finales de los 90 para
comunicaciones oficiales (tiene puerta
trasera).
 Rijndael: nuevo estándar mundial desde
finales de 2001, conocido como AES,
Advanced Encryption Standard.
21-
21-03-
03-2011 Prof. Dr. Luis Marco
3.3 Algoritmos DES, IDEA y AES
Profundizaremos  en estas diapositivas en los algoritmos DES, Triple
DES, IDEA y AES. ¿Por qué?

 DES es un cifrador de Feistel, ha sido un


estándar y en aplicaciones bancarias se seguirá
usando durante algún tiempo.
 DES es de muy fácil comprensión y usa cajas S al
igual que varios algoritmos más modernos como
el actual estándar AES.
 Triple DES sigue siendo un estándar en e-
commerce.
 IDEA es un algoritmo seguro que hace uso de los
conceptos de inversos en un cuerpo finito, como
todos los algoritmos de cifra modernos, y se usa
entre otros en la aplicación PGP – Pretty Good
Privacy.
 AES (Rijndael) es el nuevo estándar de cifra
21-
21-03-
avanzada.
03-2011 Prof. Dr. Luis Marco
3.3.1 Data Encryption Standard - DES

 DES (Data Encryption Standard) ha sido el estándar utilizado


mundialmente durante 25 años, generalmente en la banca. Hoy
presenta signos de envejecimiento y ha sucumbido a los diversos
criptoanálisis que contra él se viene realizando hace ya años.

 FECHAS DE INTERÉS

• 1973: En EEUU la NBS - National Bureaux of Standards llama a


concurso público para buscar un algoritmo criptográfico estándar.

• 1974: La NSA - National Security Agency declara desierto el primer


concurso, publica unas segundas especificaciones y elige Lucifer,
algoritmo original de IBM (años 70) con variaciones.

• 1976: El DES se adopta como estándar y se autoriza para ser utilizado


en las comunicaciones no clasificadas del gobierno.

21-
21-03-
03-2011 Prof. Dr. Luis Marco
Data Encryption Standard – DES (cont. I)

 Especificaciones del algoritmo DES

• El nivel de seguridad computacional debe ser alto.


• El algoritmo debe ser fácil de entender y deberá estar
especificado en todos sus detalles.
• La seguridad del sistema no debe verse afectada por la
publicación y divulgación del algoritmo.
• Debe estar disponible para cualquier usuario.
• Deberá poder usarse en diferentes aplicaciones.
• Fabricación con dispositivos electrónicos de bajo costo.
• Se debe poder usar como validación.
• Debe ser exportable.

21-
21-03-
03-2011 Prof. Dr. Luis Marco
Data Encryption Standard – DES (cont. II)

 La NSA - National Security Agency - impone una


limitación en la longitud de la clave:
 De los 128 bits de Lucifer, NSA deja la
clave en 64 bits.

 La clave efectiva sólo son 56 bits


puesto que al ser datos de 8 bits, en el
ASCII, se conoce el bit de paridad.

 Luego, el espacio de claves será: 256


= 7.2 —1016, tan sólo setenta y dos mil
billones de valores, un valor pequeño en
criptografía.

K = 72.057.594.037.927.936
21-
21-03-
03-2011 Prof. Dr. Luis Marco
Data Encryption Standard – DES (cont. III)

 ¿Reducción del tamaño de la clave?

Hay distintas versiones sobre esta


reducción del espacio de claves:
• una habla de la dificultad de diseñar chips
capaces de operar de forma eficiente con una
clave de 128 bits en esos años 70;
• la otra sobre una política de seguridad interna
para proteger información sensible ante
ataques externos y ser capaces, eso sí, de
practicar criptoanálisis en un tiempo
razonable.
21-
21-03-
03-2011 Prof. Dr. Luis Marco
Data Encryption Standard – DES (cont. IV)

 Especificaciones técnicas finales del DES


• Bloque a cifrar: 64 bits
• Clave: 8 bytes (con paridad, en los caracteres ASCII)
• Normas ANSI:
 X3.92: Descripción del algoritmo.
 X3.108: Descripción de los modos de operación

• ECB: Electronic CodeBook (libro electrónico de


códigos)
• CBC: Cipher Block Chaining (encadenamiento de
bloques)
• OFB: Output FeedBack (realimentación bloque de
salida)
• Fácil implementación en un circuito integrado.

21-
21-03-
03-2011 Prof. Dr. Luis Marco
Data Encryption Standard – DES (cont. V)

 Visión general del DES


• Cifrador de bloque
• Tipo Feistel
• Longitud de clave de 56 bits
• Realiza 16 vueltas.
• La cifra del bloque
b central usa técnicas de
sustituciones y permutaciones.
• Para poder realizar las sumas OR exclusivo,
usará permutaciones con expansión y
compresión para igualar el número de bits.
• En el descifrado se aplican claves y
desplazamientos en sentido inverso
21-
21-03-
03-2011 Prof. Dr. Luis Marco
Data Encryption Standard – DES (cont. VI)
 Permutación inicial del DES: tabla IP (P1) sobre
bloque de texto
58 50 42 34 26 18 10 02

60 52 44 36 28 20 12 04

62 54 46 38 30 22 14 06

64 56 48 40 32 24 16 08

57 49 41 33 25 17 09 01

59 51 43 35 27 19 11 03

61 53 45 37 29 21 13 05

63 55 47 39 31 23 15 07

21-
21-03-
03-2011 Prof. Dr. Luis Marco
Data Encryption Standard – DES (cont. VII)

 Bloques izquierdo y derecho de texto

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

63 55 47 39 31 23 15 07

21-
21-03-
03-2011 Prof. Dr. Luis Marco
Primera vuelta del DES

En cada vuelta i del algoritmo se producen las siguientes operaciones:


21-
21-03-
03-2011
Li = Ri-1; Prof.
Ri =Dr.Li-1 ⊕ F (Ri-1, Ki)
Luis Marco
Data Encryption Standard – DES (cont. VIII)
 Permutación final del DES: tabla IP-1

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

21-
21-03-
03-2011 Prof. Dr. Luis Marco
Data Encryption Standard – DES (cont. IX)
 Operaciones en cada ciclo
del DES
• Se permuta la mitad
derecha Ri aplicando
expansión a 48 bits
• La clave de 56 bits se
desplaza, permuta y se
seleccionan los 48 bits
de Ki de cada vuelta.
En la próxima
• La nueva mitad derecha
vuelta, la mitad
Ri y la clave Ki se suman
derecha anterior
XOR
pasa íntegra como
• Se reducen los 48 bits de mitad izquierda. La
salida a 32 bits mediante mitad derecha de la
las Cajas-S nueva vuelta será el
• Se permuta el resultado último resultado or
• El resultado se suma exclusivo del ciclo
XOR con la mitad
21-
21-03-
izquierda Li
03-2011 Prof. Dr. Luis Marco
Data Encryption Standard – DES (cont. X)
Operación de las cajas S en el DES

Permutación con expansión a 48 bits (Tabla E)


ki (48 bits)

Operación Or Exclusivo con la subclave ki


De cada 6 bits de entrada se obtienen 4 bits de salida

Sustitución con compresión a 32 bits (Cajas S)

1 6 7 12 13 18 19 24 25 30 31 36 37 42 43 48

S1 S2 S3 S4 S5 S6 S7 S8
1 4 5 8 9 12 13 16 17 20 21 24 25 28 29 32

Permutación de Salida del ciclo (Tabla P)


No lineal y unidireccional. Hay cuatro soluciones de entrada para cada salida
21-
21-03-
03-2011 Prof. Dr. Luis Marco
Data Encryption Standard – DES (cont. XI)

 Módulo de cifra en DES - esquema de la función de


cifra f en cada ciclo

Enlas
En lascajas
cajasSS
seconsigue
se consiguelala
fortalezadel
fortaleza del
algoritmo.Es
algoritmo. Es
unafunción
una función
unidireccional
unidireccional
yyno
nolineal.
lineal.

21-
21-03-
03-2011 Prof. Dr. Luis Marco
Data Encryption Standard – DES (cont. XII)
Valores de las cajas S1 y S2 del DES

COLUMNAS
S1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 5

0 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7
F
I 1 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8
L 2 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0
A
S 3 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13

COLUMNAS
S2 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 5

F 0 15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10
I 1 3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5
L 2 0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15
A
3 13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9
S
21-
21-03-
03-2011 Prof. Dr. Luis Marco
Data Encryption Standard – DES (cont. XIII)
Valores de las cajas S3 y S4 del DES

COLUMNAS
S3 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 5

0 10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8
F
I 1 13 7 0 9 3 4 6 10 2 8 5 14 12 11 15 1
L 2 13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7
A
S 3 1 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12

COLUMNAS
S4 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 5

F 0 7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 15
I 1 13 8 11 5 6 15 0 3 4 7 2 12 1 10 14 9
L 2 10 6 9 0 12 11 7 13 15 1 3 14 5 2 8 4
A
3 3 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14
S
21-
21-03-
03-2011 Prof. Dr. Luis Marco
Data Encryption Standard – DES (cont. XIV)
Valores de las cajas S5 y S6 del DES

COLUMNAS
S5 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 5

0 2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 9
F
I 1 14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 6
L 2 4 2 1 11 10 13 7 8 15 9 12 5 6 3 0 14
A
S 3 11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3

COLUMNAS
S6 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 5

F 0 12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 11
I 1 10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8
L 2 9 14 15 5 2 8 12 3 7 0 4 10 1 13 11 6
A
3 4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13
S
21-
21-03-
03-2011 Prof. Dr. Luis Marco
Data Encryption Standard – DES (cont. XV)
Valores de las cajas S7 y S8 del DES

COLUMNAS
S7 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 5

0 4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 1
F
I 1 13 0 11 7 4 9 1 10 14 3 5 12 2 15 8 6
L 2 1 4 11 13 12 3 7 14 10 15 6 8 0 5 9 2
A
S 3 6 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12

COLUMNAS
S8 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 5

F 0 13 2 8 4 6 15 11 1 10 9 3 14 5 0 12 7
I 1 1 15 13 8 10 3 7 4 12 5 6 11 0 14 9 2
L 2 7 11 4 1 9 12 14 2 0 6 10 13 15 3 5 8
A
3 2 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11
S
21-
21-03-
03-2011 Prof. Dr. Luis Marco
Ejemplo de operación de cajas S del DES
Ejemplo:
Sean los bits 7 al 12 los siguientes: 101100
Los bits corresponderán entonces a la entrada de la caja S2
Para seleccionar la fila tomamos los bits extremos: 102 = 210 = 2
Para seleccionar la columna tomamos los bits centrales: 01102 = 610 = 6
La caja S2 indica una salida igual a 1310 = 11012

explicación

Entrada: 101100 (6 bits)


Salida: 1101 (4 bits)
Ejemplo: Al cifrar el bloque de texto de ocho caracteres M = ¿Buenos?, con una determinada
clave K, se obtiene como resultado de entrada a las cajas S una cadena de 48 bits cuya
representación hexadecimal es la siguiente: A4 E2 DF EF 8C D4.
Se pide:
a) Expresar en binario la entrada y salida de cada una de las cajas S y
b) Si se agrupan los bits de la cadena de salida y se representan en ASCII, ¿Qué mensaje
21- se-2011
21-03-
03 obtiene? Prof. Dr. Luis Marco
Data Encryption Standard – DES (cont. XVI)
Cálculo de subclaves en el DES (PC-1)

28 bits 28 bits Tabla PC1 – 56 bits


57 49 41 33 25 17 09
01 58 50 42 34 26 18
10 02 59 51 43 35 27
19 11 03 60 52 44 36
63 55 47 39 31 23 15
07 62 54 46 38 30 22
14 06 61 53 45 37 29
21 13 05 28 20 12 04
Se han eliminado los bits de paridad:
21-
21-03-
03-2011
08, 16, 24, 32, 40, 48, 56, 64.
Prof. Dr. Luis Marco
Data Encryption Standard – DES (cont. XVII)
Cálculo de subclaves en el DES (PC-2)

28 bits 28 bits
Tabla PC-2 (48 bits) ⇒ k1, k2, ..., k16
1 1 1 2 0 0
4 7 1 4 1 5
0 2 1 0 2 1
48 bits
3 8 5 6 1 0
2 1 1 0 2 0
3 9 2 4 6 8
1 0 2 2 1 0
6 7 7 0 3 2
48 bits
4 5 3 3 4 5
1 2 1 7 7 5
3 4 Se5han4eliminado
3 4 los bits:
48 bits 0 09,
0 18,1 22,525,335, 838, 43, 54.
21-
21-03-
03-2011
4 4 3 5 3 5
Prof. Dr. Luis Marco

4 9 9 6 4 3
Data Encryption Standard – DES (cont. XVIII)
Desplazamiento de subclaves en el DES

28 bits 28 bits
Se produce un desplazamiento total igual
a 28, todos los bits de cada bloque Ci y Di
LS1, LS2, ..., LS16
Vuelta i Bits Desp. Izda. Vuelta i Bits Desp. Izda.
1 1 9 1
2 1 10 2
3 2 11 2
4 2 12 2
5 2 13 2
6 2 14 2
7 2 15 2
8 2 16 1 Σ
21-
21-03-
03-2011 Prof. Dr. Luis Marco
Data Encryption Standard – DES (cont. IXX)
Claves débiles y semidébiles
Claves débiles en hexadecimal:
Una clave es débil si se verifica que: Ek[Ek (M)] = M
Además de 0000000000000000 y FFFFFFFFFFFFFFFF (que son obvias)
serán débiles estas cuatro claves:
Los bloques C y D de la clave son todos
0101010101010101 FEFEFEFEFEFEFEFE 0s ó 1s.
EOEOEOEOF1F1F1F1 1F1F1F1F0E0E0E0E
Claves semidébiles en hexadecimal:
Una clave es semidébil si se verifica que: Ek1[Ek2(M)] = M
Son claves k1,k2 semidébiles las siguientes seis parejas:

(01FE01FE01FE01FE, FE01FE01FE01FE01)
(1FE01FE00EF10EF1, E01FE01FF10EF10E)
(01E001E001F101F1, E001E001F101F101)
(1FFE1FFE0EFE0EFE, FE1FFE1FFE0EFE0E)
(011F011F010E010E, 1F011F010E010E01)
(E0FEE0FEF1FEF1FE, FEE0FEE0FEF1FEF1)
Además de éstas, hay otras ecuaciones que verifican dichas claves.

21-
21-03-
03-2011 Prof. Dr. Luis Marco
Data Encryption Standard – DES (cont. XX)
Ejemplo de cálculo de claves en DES
Ejemplo 1: a partir de las tablas PC-1 y PC-2, encuentre la secuencia de bits de
los registros C1 y D1 y la subclave k1.
Solución:
i = 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20
20 21 22 23 24 25
26 27 28
C1 = 49 41 33 25 17 09 01 58 50 42 34 26 18 10 02 59 51 43 35 27 19
19 11 03 60 52
44 36 57
i = 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
55 56
D1 = 55 47 39 31 23 15 07 62 54 46 38 30 22 14 06 61 53 45 37 29 21
21 13 05 28 20
12 04 63
k1 = 10 51 34 60 49 17 33 57 02 09 19 42 03 35 26 25 44 58 59 01 36 27
18 41
22 28 39 54 37 04 47 30 05 53 23 29 61 21 38 63 15 20 45 14 13 62
55 31

Ejemplo 2: si la clave es PRUEBALO, encuentre C0 y D0 y la subclave k1.




• Para encontrar C0 y D0 escriba en ASCII la clave y elimine el último bit de cada


byte como si fuese el de paridad.
Solución:
21- 03-2011C0 = 0000 0000 1111 1111
21-03- 0000
Prof. Dr. Luis0000
Marco 0000
D0 = 1001 0010 1100 1100 1100 0000 0111
k1 = 101000 001001 001001 000010 101101 010100 100111 100100
Data Encryption Standard – DES (cont. XXI)
Descifrado del DES
 Luego de tantas sustituciones, permutaciones,
desplazamientos de bits, compresiones,
expansiones y operaciones en módulo dos, se
podría pensar que el algoritmo de descifrado sea
totalmente diferente al de encriptación.
 Se concluye que C16 = C0 al igual que D16 = D0.
 Como en el descifrado el proceso comienza con
K16, entonces no se requiere el primer
desplazamiento a la izquierda.
 El valor de la clave k15 puede conseguirse
desplazando C16 y D16 ahora un bit a la derecha y
así sucesivamente siguiendo ahora la misma
Tabla de desplazamiento, es decir:
• 0, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1.
 Ejemplo: Compruebe que C16 = C0.

21-
21-03-
03-2011 Prof. Dr. Luis Marco
Data Encryption Standard – DES (cont. XXII)
Operación de descifrado en el DES

64 bits de criptograma
Se toman en sentido contrario:
k16, k15, k14, k13, k12, k11, k10,
k9, k8, k7, k6, k5, k4, k3, k2, k1

Como se aplica un desplazamiento


de 28 bits en cada bloque de clave,
entonces D16 = D0 y C16 = C0
Los desplazamientos para el cálculo de
las subclaves de descifrado son los
mismos de la tabla anterior pero ahora
se toman hacia la derecha, puesto que
los desplazamientos coinciden.
21-
21-03-
03-2011 Prof. Dr. Luis Marco
Data Encryption Standard – DES (cont. XXIII)
Conclusiones - características, propiedades y seguridad
del DES
 Una característica una interesante del DES es que cada bit del texto
cifrado es una función compleja de todos los bits de la clave y de todos
los bits del texto original.
 Además, un cambio en un bit de entrada en el mensaje original
produce un cambio de alrededor del 50% de los bits del criptograma.
 Todo esto tiene que ver con el número de vueltas elegido por sus
inventores y que sigue siendo un secreto muy bien guardado por la
NSA.
 También encontramos puntos negativos como lo son la existencia de
un conjunto de claves débiles y semidébiles que producen un
criptograma fácil de descifrar. A pesar de estas 64 claves débelis o
semidébiles pueden considerarse como un número infimo con respecto
a la 256 posibles del DES.
 No obstante, a pesar de que insistentemente se ha buscado romper
este algoritmo, tanto mediante técnicas de criptoanálisis y diferencial
en los últimos años, lo cierto es que sigue siendo en la actualidad un
est
21-
ándar de hecho, or lo menos a niveles de aplicación en el mercado,
21-03-
03-2011 Prof. Dr. Luis Marco
existiendo un gran número de implementaciones en hw y sw.

Вам также может понравиться