Está en la página 1de 4

SOLUCIONES A LOS 4 EJERCICIOS DE CIFRA SIMÉTRICA: BLOQUE Y FLUJO

EJERCICIO 1. Tras una vuelta del algoritmo DES, nos encontramos que la salida en hexadecimal
de las cajas S es SCajasS = FB12FA34. Se pide:
a) Indica si alguna de estas posibles 8 entradas es la verdadera.
Entrada 1) 110000 001010 100001 111010 010110 101111 010000 100110
Entrada 2) 110000 001010 100001 111010 010110 101111 001000 100100
Entrada 3) 110000 001010 100001 111010 010110 101101 010000 100100
Entrada 4) 110000 001010 100001 111010 110110 101111 010000 100100
Entrada 5) 110000 001010 100001 101010 010110 101111 010000 100100
Entrada 6) 110000 001010 100111 111010 010110 101111 010000 100100
Entrada 7) 110000 011010 100001 111010 010110 101111 010000 100100
Entrada 8) 110000 001010 100001 111010 010110 101111 010000 100100
Ninguna de las anteriores.
b) Justifica por qué has descartado cada una de las entradas o todas.

SOLUCIÓN:
Apartado a:
Para que la salida de la primera caja S1 sea F = 1111, la entrada a S1 debe ser (2,8) = 1 1000 0
Las 8 entradas comienzan con esta cadena de seis bits. Todas lo cumplen.
Para que la salida de la segunda caja S2 sea B = 1011, la entrada a S2 debe ser (0,5) = 0 0101 0
Fallo: la entrada 7 = 011010 no cumple con esta cadena de bits.
Para que la salida de la tercera caja S3 sea 1 = 0001, la entrada a S3 debe ser (3,0) = 1 0000 1
Fallo: la entrada 6 = 100111 no cumple con esta cadena de bits.
Para que la salida de la cuarta caja S4 sea 2 = 0010, la entrada a S4 debe ser (2,13) = 1 1101 0
Fallo: la entrada 5 = 101010 no cumple con esta cadena de bits.
Para que la salida de la quinta caja S5 sea F = 1111, la entrada a S5 debe ser (0,11) = 0 1011 0
Fallo: la entrada 4 = 110110 no cumple con esta cadena de bits.
Para que la salida de la sexta caja S6 sea A = 1010, la entrada a S6 debe ser (3,7) = 1 0111 1
Fallo: la entrada 3 = 101101 no cumple con esta cadena de bits.
Para que la salida de la séptima caja S7 sea 3 = 0011, la entrada a S7 debe ser (0,8) = 0 1000 0
Fallo: la entrada 2 = 001000 no cumple con esta cadena de bits.
Para que la salida de la octava caja S8 sea 4 = 0100, la entrada a S8 debe ser (2,2) = 1 0010 0
Fallo: la entrada 1 = 100110 no cumple con esta cadena de bits.
La entrada que da como resultado SCajasS = FB12FA34 es la número 8,
Apartado b:
Se llega a esta conclusión porque todas las demás entradas fallan, en sólo una caja S diferente
en cada caso si bien todas las demás estás correctas. La entrada número 8 es la única que
cumple con el resultado buscado.

EJERCICIO 2. Vamos a cifrar el mensaje M en ASCII = ABBA usando cifrado en flujo. El


generador usado es un LFSR simple caracterizado por el polinomio generador x5 + x3 + x + 1 y
con la semilla 10001. Se pide:
a) Encuentra la secuencia cifrante y el periodo del generador.
b) ¿Qué puedes decir de la secuencia de clave encontrada?
c) Cifra el mensaje ABBA bit a bit con la secuencia de clave encontrada (AASCII = 0100 0001).
d) Representa el criptograma en formato Base 64 y comenta alguna particularidad de ese
resultado.
e) Descifra el criptograma bit a bit.
SOLUCIÓN:
Apartado a:
Registro LFSR: x5 + x3 + x + 1 con una semilla = 10001
S1 S2 S3 S4 S5
1 0 0 0 1 → Si
El XOR se realizará entre el bit de la cuarta última celda y el de la primera.
Evolución del registro:
1 0 0 0 1 → 1
0 1 0 0 0 → 0
0 0 1 0 0 → 0
1 0 0 1 0 → 0
1 1 0 0 1 → 1
0 1 1 0 0 → 0
1 0 1 1 0 → 0
0 1 0 1 1 → 1
1 0 1 0 1 → 1
1 1 0 1 0 → 0
1 1 1 0 1 → 1
1 1 1 1 0 → 0
0 1 1 1 1 → 1
0 0 1 1 1 → 1
0 0 0 1 1 → 1
1 0 0 0 1 Semilla.
La secuencia cifrante será Si = 100010011010111
Apartado b:
El periodo es igual a 15 y la secuencia encontrada es mala para este registro. Se trata de un
polinomio irreducible pero no primitivo y en este caso el periodo es siempre Smáx-1/2, es decir
para un registra de 5 celdas (31-1)/2 = 15.
Apartado c:
ABBA = 01000001 01000010 01000010 01000001
Si = 100010011010111
Para cifra se hace un XOR entre el mensaje M y la clave S se obtiene:
M=01000001010000100100001001000001
S=100010011010111100010011010111100010011010111
Obteniendo:
C=110010001110110101010001000111110000
La secuencia cifrante se repite dos veces dado que el texto en claro tiene 32 bits y ésta 30.
Los últimos 4 ceros (0 0 0 0) indican el relleno que habrá que hacer al pasarlo a código Base 64.
Apartado d:
C = 110010 001110 110101 010001 000111 110000
Usando la tabla del código Base 64 obtenemos:
C = yO1RHw==
Hay dos rellenos ==, puesto que faltan los cuatro bits indicados en negrita para formar el
último bloque de 6 bits de la codificación Base 64.
Apartado e:
C=11001000111011010101000100011111
S=10001001101011110001001101011110
Haciendo el XOR:
M=01000001010000100100001001000001
M = 01000001 01000010 01000010 01000001 = ABBA
EJERCICIO 3. Una entrada a las cajas S del DES activa las siguientes filas (F) y columnas (C)
como se indica:
S1F,C = 0,9 S2F,C = 0,10 S3F,C = 3,12 S4F,C = 1,4
S5F,C = 0,8 S6F,C = 2,10 S7F,C = 3,2 S8F,C = 1,7.
a) Los 48 bits de entrada a las cajas S (be) y la palabra en ASCII que esta forma.
b) Los 32 bits de salida (bs) de esas cajas S.
Si ahora la salida de las cajas S fuese: 1110 1111 1010 0111 0010 1100 0100 1101 y se
sospecha que en cada caja S se ha activado siempre la fila 0:
c) Indica una entrada válida.
d) En ambos casos, para una sola vuelta del DES, ¿cuántas entradas posibles podrían dar
lugar a una única salida de las cajas S?

SOLUCIÓN:
Apartado a)
Como las cajas S se activan seleccionando filas F y columnas C a partir de 6 bits b1b2b3b4b5b6 de
forma que los bits b1b6 indican la fila F y los bits b2b3b4b5 la columna C, entonces:
S1F,C = 0,9  0 1001 0
S2F,C = 0,10  0 1010 0
S3F,C = 3,12  1 1100 1
S4F,C = 1,4  0 0100 0
S5F,C = 0,8  0 1000 0
S6F,C = 2,10  1 1010 0
S7F,C = 3,2  1 0010 1
S8F,C = 1,7  0 1110 1
Agrupando los 48 bits en bloques de 8 bits (un byte), se tiene:
Entrada bits: 01001001 01001110 01001001 01000011 01001001 01001111
Entrada ASCII: I N I C I O
Apartado b)
S1F,C = 0,9  Salida 10  Salida2 = 1010 S2F,C = 0,10  Salida 2  Salida2 = 0010
S3F,C = 3,12  Salida 11  Salida2 = 1011 S4F,C = 1,4  Salida 6  Salida2 = 0110
S5F,C = 0,8  Salida 8  Salida2 = 1000 S6F,C = 2,10  Salida 4  Salida2 = 0100
S7F,C = 3,2  Salida 13  Salida2 = 1101 S8F,C = 1,7  Salida 4  Salida2 = 0100
Luego bs = 1010 0010 1011 0110 1000 0100 1101 0100
Apartado c)
Caja S1: Salida 1110, Decimal 14 => Fila 0 Columna 0, entrada 000000
Caja S2: Salida 1111, Decimal 15 => Fila 0 Columna 0, entrada 000000
Caja S3: Salida 1010, Decimal 10 => Fila 0 Columna 0, entrada 000000
Caja S4: Salida 0111, Decimal 7 => Fila 0 Columna 0, entrada 000000
Caja S5: Salida 0010, Decimal 2 => Fila 0 Columna 0, entrada 000000
Caja S6: Salida 1100, Decimal 12 => Fila 0 Columna 0, entrada 000000
Caja S7: Salida 0100, Decimal 4 => Fila 0 Columna 0, entrada 000000
Caja S8: Salida 1101, Decimal 13 => Fila 0 Columna 0, entrada 000000
Entrada 000000000000000000000000000000000000000000000000
Apartado d)
En una vuelta cada una de las cajas S tiene 4 posibles entradas para una única salida; por lo
tanto, habrá 48 = 65.536 entradas que entregan una misma salida.
EJERCICIO 4. Sospechamos que la cadena ci = 0110001111 de 10 bits es una parte de la
secuencia cifrante o clave Si para una cifra en flujo mediante registro LFSR primitivo de 5
etapas. Se pide:
a) Plantear el sistema de ecuaciones del ataque de Berlekamp – Massey.
b) Resolver el sistema de ecuaciones y encontrar el tipo de registro utilizado sin utilizar
matrices, solamente mediante la simple lógica de operaciones XOR en las ecuaciones,
en tanto se sabe además que la última celda siempre estará conectada y Cn tiene el
valor 1.
c) ¿Qué longitud en bits tendrá la secuencia cifrante Si?

SOLUCIÓN:
Apartado a)
El sistema de ecuaciones de Berlekamp-Massey para este generador de 5 celdas primitivo será:
S6 = C1S1  C2S2  C3S3  C4S4  C5S5
S7 = C1S6  C2S1  C3S2  C4S3  C5S4
S8 = C1S7  C2S6  C3S1  C4S2  C5S3
S9 = C1S8  C2S7  C3S6  C4S1  C5S2
S10 = C1S9  C2S8  C3S7  C4S6  C5S1
En donde la cadena ci = 0110001111 encontrada corresponderá a los primeros 5 bits de semilla
y los siguientes 5 bits serán producto de la realimentación del registro. Luego, tenemos la
secuencia:
S5 S4 S3 S2 S1 S6 S7 S8 S9 S10
0 1 1 0 0 0 1 1 1 1
Apartado b)
Reemplazando valores en el sistema de ecuaciones anterior y dado que C5 = 1, se tiene:
0 = C10  C20  C31  C41  10 (A)
1 = C10  C20  C30  C41  11 (B)
1 = C11  C20  C30  C40  11 (C)
1 = C11  C21  C30  C40  10 (D)
1 = C11  C21  C31  C40  10 (E)
Una forma de solución rápida puede ser:
1 = C10  C20  C30  C41  11 (B)  C4 = 0
1 = C11  C20  C30  C40  11 (C)  C1 = 0
Si C4 = 0 y 0 = C10  C20  C31  C41  10 (A)  C3 = 0
Si C1 = 0 y 1 = C11  C21  C30  C40  10 (D)  C2 = 1
El polinomio primitivo del registro LFSR será f(x) = x5 + x2 + 1
Apartado c)
Como el registro tiene 5 celdas y el polinomio f(x) es primitivo, su período será T = 25 – 1 = 31.

También podría gustarte