Академический Документы
Профессиональный Документы
Культура Документы
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
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:
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:
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:
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:
• 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 = 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.
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.
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
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
21-
21-03-
03-2011 Prof. Dr. Luis Marco
Cifrador de Hill (cont. III)
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
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.
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
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)
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
21-
21-03-
03-2011 Prof. Dr. Luis Marco
2.4. Transposición por Filas
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)
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)
21-
21-03-
03-2011 Prof. Dr. Luis Marco
3.2 Cifradores de bloque más conocidos
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)
FECHAS DE INTERÉS
21-
21-03-
03-2011 Prof. Dr. Luis Marco
Data Encryption Standard – DES (cont. I)
21-
21-03-
03-2011 Prof. Dr. Luis Marco
Data Encryption Standard – DES (cont. II)
K = 72.057.594.037.927.936
21-
21-03-
03-2011 Prof. Dr. Luis Marco
Data Encryption Standard – DES (cont. III)
21-
21-03-
03-2011 Prof. Dr. Luis Marco
Data Encryption Standard – DES (cont. V)
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)
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
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
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
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
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
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