Solución Exa Jun 95_002 (1)

171
SOLUCION EXAMEN SEGURIDAD INFORMÁTICA Convocatoria Junio 1995 Dpto. Lenguajes, Proyectos y Sistemas Informáticos E.U.I pág. 1 SOLUCION AL EXAMEN Nota: El archivo se ha convertido a Word 97. Mantiene el mismo formato que el examen original de dicho año. Preguntas de Teoría: (0,3 pts c/u; Tiempo Máximo Recomendado: 45 minutos) a) ¿Por qué motivo en cualquier sistema de cifrado en el que la información aparezca relacionada con una operación de producto (C = am +b; C = M e ...) debe cumplirse que dicho número y el módulo del grupo finito en el que se trabaja sean primos entre sí? Sol: Porque si no se cumple que ambos números sean primos entre sí, por teoría de números se demuestra que no se obtiene el conjunto completo de restos del módulo, o lo que es lo mismo, no se puede generar el alfabeto completo de cifrado con los mismos elementos del texto en claro o no hay inversos. b) ¿Qué significa que la entropía de una clave sea alta? Bajo el punto de vista de la criptografía, ¿es bueno o malo que sea un valor alto y por qué? Sol: Si la entropía de la clave del criptosistema es alta, entonces dicho criptosistema tendrá una mayor seguridad, en tanto que la entropía tiene una relación directa con el "desorden" o posibles combinaciones o valores que dicha clave puede tomar. Es aconsejable, por tanto, que sea lo más alta posible para que se tenga el mayor valor de distancia de unicidad que equivale a mayor seguridad. c) Si al aplicar el método de Kasiski y el Indice de Coincidencia (IC) en un criptoanálisis de un cifrado por sustitución múltiple suponemos que la frecuencia relativa de aparición de caracteres (F i /N) es igual a la probabilidad de su aparición (p i ), ¿qué error cometemos? ¿En qué casos tendría dicho error una mayor incidencia en el resultado del IC? ¿Aumenta o disminuye el IC? Sol: Cometemos un error ya que suponemos que F i /N = p i lo cual no es cierto pues al calcular IC en el que interviene p i 2 , este valor es en realidad F i (F i -1)/N(N-1). Este error tiene importancia cuando la cantidad de criptograma a analizar es pequeña, por ejemplo menos de 100 palabras. Siempre aumentará el valor de IC, es decir, el error será por exceso pues F i 2 > F i (F i -1) si bien N(N-1) N 2 , siendo más significativo cuando F i es un número pequeño, por ejemplo < 10. No obstante, como una primera aproximación o cuando no se cuenta con los medios adecuados, se puede llegar a resultados satisfactorios de criptoanálisis.

description

soilucion examenes

Transcript of Solución Exa Jun 95_002 (1)

Page 1: Solución Exa Jun 95_002 (1)

SOLUCION EXAMEN SEGURIDAD INFORMÁTICA Convocatoria Junio 1995

Dpto. Lenguajes, Proyectos y Sistemas Informáticos E.U.I pág. 1

SOLUCION AL EXAMEN Nota: El archivo se ha convertido a Word 97. Mantiene el mismo formato que el examen original de dicho año. Preguntas de Teoría: (0,3 pts c/u; Tiempo Máximo Recomendado: 45 minutos) a) ¿Por qué motivo en cualquier sistema de cifrado en el que la información

aparezca relacionada con una operación de producto (C = am +b; C = Me ...)

debe cumplirse que dicho número y el módulo del grupo finito en el que se trabaja sean primos entre sí?

Sol: Porque si no se cumple que ambos números sean primos entre sí, por teoría de números se demuestra que no se obtiene el conjunto completo de restos del módulo, o lo que es lo mismo, no se puede generar el alfabeto completo de cifrado con los mismos elementos del texto en claro o no hay inversos.

b) ¿Qué significa que la entropía de una clave sea alta? Bajo el punto de vista de

la criptografía, ¿es bueno o malo que sea un valor alto y por qué?

Sol: Si la entropía de la clave del criptosistema es alta, entonces dicho criptosistema tendrá una mayor seguridad, en tanto que la entropía tiene una relación directa con el "desorden" o posibles combinaciones o valores que dicha clave puede tomar. Es aconsejable, por tanto, que sea lo más alta posible para que se tenga el mayor valor de distancia de unicidad que equivale a mayor seguridad.

c) Si al aplicar el método de Kasiski y el Indice de Coincidencia (IC) en un

criptoanálisis de un cifrado por sustitución múltiple suponemos que la frecuencia relativa de aparición de caracteres (Fi/N) es igual a la probabilidad de su aparición (pi), ¿qué error cometemos? ¿En qué casos tendría dicho error una mayor incidencia en el resultado del IC? ¿Aumenta o disminuye el IC?

Sol: Cometemos un error ya que suponemos que Fi/N = pi lo cual no es cierto pues al calcular IC en el que interviene pi

2, este valor es en realidad Fi(Fi-1)/N(N-1).

Este error tiene importancia cuando la cantidad de criptograma a analizar es pequeña, por ejemplo menos de 100 palabras. Siempre aumentará el valor de IC, es decir, el error será por exceso pues Fi

2 > Fi(Fi-1) si bien N(N-1) N

2,

siendo más significativo cuando Fi es un número pequeño, por ejemplo < 10. No obstante, como una primera aproximación o cuando no se cuenta con los medios adecuados, se puede llegar a resultados satisfactorios de criptoanálisis.

Page 2: Solución Exa Jun 95_002 (1)

SOLUCION EXAMEN SEGURIDAD INFORMÁTICA Convocatoria Junio 1995

Dpto. Lenguajes, Proyectos y Sistemas Informáticos E.U.I pág. 2

d) Para generar la clave de un cifrador con clave continua, usamos un registro de desplazamiento de cuatro etapas como el de la figura. Si la semilla es la indicada, se pide encontrar los 8 primeros bits de salida, incluyendo los de la semilla.

Cadena cifrante

Sol: Los cuatro primeros dígitos a transmitir serán los de la clave, es decir 1100. Los próximos cuatro bits serán el resultado de aplicar la operación XOR de las celdas 1ª y 4ª, por ejemplo, el primer resultado (semilla) será 0 XOR 1 = 1. En resumen, se tendrán los siguientes estados, en el que el bit de la izquierda es el resultado de la operación XOR y el bit de la derecha (en negrita y subrayado) corresponde al próximo bit a transmitir junto con el desplazamiento del registro:

Estado i: 0011 Estado i+1: 1001 Estado i+2: 0100 Estado i+3: 0010 Estado i+4: 0001 Estado i+5: 1000 Estado i+6: 1100 Estado i+7: 1110 Luego, los primeros 8 bits de la clave continua son: 11001000

e) En un sistema DES en la caja S1 se tiene como entrada la siguiente cadena de

bits: 101110. ¿Qué secuencia de bits es la salida de dicha caja S1?

Sol: Como los bits de entrada a la caja S1 son 101110, separamos estos dígitos para buscar filas y columnas: los dígitos de los extremos (1....0) nos entregan la fila y los cuatro dígitos centrales (..0111..) la columna en dicha caja.

Fila: 102 = 210 Fila 2; Columna: 01112 = 710 Columna 7 Según las tablas de Cajas S, en caja S1 la intersección de fila 2 y columna 7

entrega el número 11 que pasado a notación binaria es: 1011. Luego, la secuencia de salida de la caja S1 es: 1011.

0 0 1 1

Page 3: Solución Exa Jun 95_002 (1)

SOLUCION EXAMEN SEGURIDAD INFORMÁTICA Convocatoria Junio 1995

Dpto. Lenguajes, Proyectos y Sistemas Informáticos E.U.I pág. 3

Ejercicio Práctico nº 1: (1,0 pts; Tiempo Máximo Recomendado: 15 minutos) El resultado de cifrar un mensaje M mediante el método de Playfair con la clave SABINA (quitando las letras K y W) es el siguiente criptograma: C = ZI UC FA FQ TS JB AC BF UZ Se pide descriptarlo y encontrar el mensaje M.

Solución: La matriz de Playfair para cifrar queda como la indicada que, utilizando el algoritmo de este tipo de cifrado, entrega el mensaje M que se indica.

S A B I N C D E F G H J L M Ñ O P Q R T U V X Y Z C = ZI UC FA FQ TS JB AC BF UZ Luego: M = YN OS DI ER ON LA SD IE ZY

M = Y NOS DIERON LAS DIEZ Y ...

Ejercicio Práctico nº 2: (3,0 pts; Tiempo Máximo Recomendado: 45 minutos) Se desea transmitir el mensaje M = NO (en ASCII, M = 01001110 01001111) a través de un sistema de mochila de Merkle-Hellman de cuatro elementos. Si la mochila simple supercreciente usada como clave privada es A' = [1, 3, 5, 10] y dado que la suma de sus elementos es 19, se elige el valor de trampa privado u = 20 como módulo del cuerpo. Se pide: a) Elegir el valor de w de forma que sea el más pequeño posible. b) Encontrar la mochila de clave pública A. c) Cifrar el mensaje M antes indicado. d) ¿Con cuántos bits se transmitirá cada parte del criptograma y por qué? e) Descifre el criptograma.

Solución: a) Como debe cumplirse que mcd (w,u) = 1, elegimos w = 3. (Valor entregado en el examen) b) a1 = 3x1 = 3 (mod 20) = 3 a2 = 3x3 = 9 (mod 20) = 9 a3 = 3x5 = 15 (mod 20) = 15 a4 = 3x10 = 30 (mod 20) = 10

Page 4: Solución Exa Jun 95_002 (1)

SOLUCION EXAMEN SEGURIDAD INFORMÁTICA Convocatoria Junio 1995

Dpto. Lenguajes, Proyectos y Sistemas Informáticos E.U.I pág. 4

Luego: A = w x A' A = [3, 9, 15, 10] (que es fácil comprobar que no es supercreciente) c) Como tenemos una mochila de cuatro elementos, se divide el mensaje M en

bloques de 4 bits, es decir: M = 0100 1110 0100 1111. Si multiplicamos estos valores por la mochila pública A, se obtiene:

[3, 9, 15, 10][0, 1, 0, 0]) = (0 + 9 + 0 + 0) = 9 ... etc. Luego: C = 9, 27, 9, 37 d) Se debe transmitir con 6 bits porque el mayor criptograma parcial posible para

esta mochila de cuatro elementos será precisamente para un mensaje 1111 cuyo valor cifrado es 37. Es decir, se cumple que 2

5 < 37 < 2

6.

e) Para descifrar debemos multiplicar el criptograma por el inverso de w para

obtener valores que se correspondan con la mochila simple o clave privada. Inv (3,20) = 7 (7*3 = 21 = 20*1 + 1) w

-1 = 7

Luego: 7*9 (mod 20) = 3 7*27 (mod 20) = 9 7*9 (mod 20) = 3 7*37 (mod 20) = 19 Entonces: m1 = 3; m2 = 9; m3 = 3; m4 = 19 Por lo tanto: 3 = V1 * [1, 3, 5, 10] V1 = 0100 9 = V2 * [1, 3, 5, 10] V2 = 1110 3 = V3 * [1, 3, 5, 10] V3 = 0100 19 = V4 * [1, 3, 5, 10] V4 = 1111 Luego recuperamos el mensaje: M = 0100 1110 0100 1111 = NO

Ejercicio Práctico nº 3: (2,5 pts; Tiempo Máximo Recomendado: 45 minutos) Alicia (A) desea transmitir un mensaje M a Bernardo (B) dentro de un cuerpo finito Zn, con n = 27, el número de letras del alfabeto utilizado, el español. El cifrado mediante RSA será letra a letra. Si el grupo y claves que utiliza cada usuario es: Alicia (A): na = p x q = 5 x 7 = 35 Claves: (na, ea) = (35, 5) Bernardo (B): nb = p x q = 3 x 11 = 33 Claves: (nb, eb) = (33, 3) a) Encontrar las claves privadas de Alicia (A) y Bernardo (B). b) Cifrar el mensaje M = HOLA que Alicia (A) envía a Bernardo (B). c) Descifrar el criptograma que recibe Bernardo (B). NOTA 1: Los valores de los caracteres en mod 27 se pueden ver en Vigenère. NOTA 2: Recordar que (A) envía M a (B) cifrándolo como: C = M

eb (mod nb)

Page 5: Solución Exa Jun 95_002 (1)

SOLUCION EXAMEN SEGURIDAD INFORMÁTICA Convocatoria Junio 1995

Dpto. Lenguajes, Proyectos y Sistemas Informáticos E.U.I pág. 5

Solución: a) (na) = (p-1)(q-1) = 4*6 = 24 (nb) = (p-1)(q-1) = 2*10 = 20 da = inv (ea, (na)) = inv (5,24) = 5 db = inv (eb, (nb)) = inv (3,20) = 7 b) M = HOLA H = 07; O = 15; L = 11; A = 00 M = m1m2m3m4 = 07 15 11 00 C = c1c2c3c4 c1 = m1

eb (mod nb) = 07

3 (mod 33) = 13

c2 = m2eb

(mod nb) = 153 (mod 33) = 09

c3 = m3eb

(mod nb) = 113 (mod 33) = 11

c4 = m4eb

(mod nb) = 003 (mod 33) = 00 C = 13, 09, 11, 00

c) m1 = c1

db (mod nb) = 13

7 (mod 33) = 07

m2 = c2db

(mod nb) = 097 (mod 33) = 15

m3 = c3db

(mod nb) = 117 (mod 33) = 11

m4 = c4db

(mod nb) = 007 (mod 33) = 00

Que es el mensaje original M = 07 15 11 00 = H O L A

Page 6: Solución Exa Jun 95_002 (1)

EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 1995

Dpto. Lenguajes, Proyectos y Sistemas Informáticos E.U.I Solución pág. 1

SOLUCIÓN AL EXAMEN Nota: El archivo se ha convertido a Word 97. Se mantiene el mismo formato que el original de dicho año. No se han modificado las ecuaciones con matrices. PREGUNTAS DE TEORÍA: (0,25 puntos c/u) a) Se tienen dos criptogramas C1 y C2 que pertenecen a sendos textos en claro

en español: C1 = RTCTB MPHOO XNLTO DRYYV VVJKP ÑHIOA

C2 = MUNLP HJRRT OPQRT UUUUG JHUOP ETYKZ

Si Ana afirma que es posible que ambos criptogramas pertenecen a un cifrador

por sustitución monoalfabética y Mari dice, por el contrario, que es imposible, ¿quién tiene la razón y por qué?

Solución: Tiene la razón Mari porque, si bien el criptograma C1 es posible que pertenezca a un cifrador por sustitución monoalfabética (cada letra del alfabeto se sustituye por otra) al tener como máximo tres letras consecutivas iguales (... VVV ...; e.g. "... el Alguacil llamó al ..."), no así el criptograma C2 en el que aparecen cuatro letras consecutivas iguales (... UUUU ...), situación que no se da en el lenguaje español.

b) Si en un criptograma la Distancia de Unicidad es de 23 caracteres, ¿qué

significa? ¿Se puede romper fácilmente el criptograma a partir de dicho valor?

Solución: Significa que es necesario contar al menos con 23 caracteres para que exista una solución única en el espacio de mensajes con sentido. No obstante, este valor no asegura que se pueda descriptar el criptograma inmediatamente; es necesario un mayor esfuerzo y, en general, se deberá contar con un texto cifrado mucho más largo.

c) Alguien nos afirma que, independientemente del criptosistema que utilicemos,

el tamaño (en caracteres o bits) del criptograma es siempre igual al del texto en claro. ¿Es esto cierto? Justifique su respuesta.

Solución: Es falso, porque dependiendo del criptosistema empleado, es posible que el criptograma resultante tenga más caracteres o bits que el mensaje en claro como sucede, entre otros, con los cifradores tipo mochila y RSA, o bien menos caracteres, como en los casos de cifradores con cambio de base.

Page 7: Solución Exa Jun 95_002 (1)

EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 1995

Dpto. Lenguajes, Proyectos y Sistemas Informáticos E.U.I Solución pág. 2

d) Si se desea atacar un criptograma para romper un cifrado partiendo solamente de dicho texto cifrado, ¿qué es lo primero que realizaría un criptoanalista y porqué?

Solución: La primera tarea que aborda todo criptoanalista es la de realizar un análisis de frecuencia de los caracteres del criptograma, pues éste bien podría ser el resultado de algún tipo de cifrado por sustitución, cuyo criptoanálisis es conocido y sencillo. El primer ataque siempre deberá cubrir a los cifradores clásicos.

EJERCICIOS PRÁCTICOS EJERCICIO PRÁCTICO Nº 1: (3.0 puntos) Se tiene el siguiente criptograma: C = VPUVV PZNVT VIBDW WHEOW GZVNW UVACD DCLCT CICP Si se sospecha que el criptograma se ha obtenido mediante un cifrador por sustitución monoalfabética, se pide: a) Encontrar la función de cifrado E(m). b) Encontrar el alfabeto de cifrado. c) Descriptar el criptograma.

NOTA: El texto en claro que se ha elegido cumple con bastante acierto la distribución de frecuencias característica del lenguaje español.

Solución: Haciendo un recuento de frecuencias relativas de aparición de

caracteres en el criptograma (de longitud 39 caracteres), obtenemos: Letra nº veces fi (%) Letra nº veces fi (%) V 7 17,9 P,D 3 7,7 C 5 12,8 N,U,I,T,Z 2 5,1 W 4 10,3 O,B,H,E,A,G,L 1 2,6 Obteniendo evidentemente que (fi) = 100%

Page 8: Solución Exa Jun 95_002 (1)

EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 1995

Dpto. Lenguajes, Proyectos y Sistemas Informáticos E.U.I Solución pág. 3

a) Dado que se nos dice que el texto en claro cumple con la distribución de frecuencia característica del lenguaje español, supondremos que los tres caracteres de mayor frecuencia en el criptograma (V,C,W) se corresponden con las letras (E,A,O). Entonces:

Texto en claro Criptograma E (4) V (22) A (0) C (2) O (15) W (23) planteando ecuaciones: (1) (a 4 + b) mod 27 = 22 (2) (a 0 + b) mod 27 = 2 b = 2 (3) (a 15 +b) mod 27 = 23 (3) - (1) = a 11 mod 27 = 1 a = inv(11,27) = 5 Al mismo resultado se llega si se hace (1) – (2). Como mcd (a,n) = mcd (5,27) = 1, puede ser una solución. Luego: E(m) = (5 m + 2) mod 27 NOTA: Para asegurar que es ésta la función de cifrado habría que aplicarla a parte

del criptograma para obtener texto en claro con sentido. Suponiendo que E(m1) = E(m4) = E(m5) = V corresponden a letra E: E(m2) = (5m2 + 2) mod 27 E(m2) = P = 16 = (5m2 + 2) mod 27 m2 = (16-2) inv (5,27) = 14 11 mod 27 = 154 mod 27 = 19 m2 = S E(m3) = (5m3 + 2) mod 27 E(m3) = U = 21 = (5m3 + 2) mod 27 m3 = (21-2) inv (5,27) = 19 11 mod 27 = 209 mod 27 = 20 m3 = T Luego: M = ESTE ES ... etc., que se corresponde con el lenguaje español. b) Aplicando la función cifradora E(m) = (5 m + 2) mod 27, obtenemos el

siguiente alfabeto de cifrado: mi 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 nº 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 E(m) 2 7 12 17 22 27 32 37 42 47 52 57 62 67 72 77 82 87 92 97 102 107 112 117 122 127 132 Ci C H M Q V A F K O T Y D I N R W B G L P U Z E J Ñ S X

c) Resolviendo el criptograma con este alfabeto de cifrado, se tiene: M = ESTE ES UN EJEMPLO OBVIO QUE NO TE FALLARA JAMAS

Page 9: Solución Exa Jun 95_002 (1)

EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 1995

Dpto. Lenguajes, Proyectos y Sistemas Informáticos E.U.I Solución pág. 4

EJERCICIO PRÁCTICO Nº 2: (2.5 puntos) Si los elementos kij de la matriz de cifrado K de un cifrador de Hill son: k11 = 2; k12 = 0; k21 = 1; k22 = 1 y se tiene el siguiente mensaje: M = HAKUNA MATATA. Se pide: a) Cifrar el mensaje M con dicha matriz K. b) Encuentre la matriz inversa K

-1 y demuestre que (K)(K

-1) mod 27 = 1.

c) Comente de qué forma se descifra el criptograma del punto a).

Solución: k11 k12 2 0 a) K = = k21 k22 1 1 M = H A K U N A M A T A T A M = 7 0 10 21 13 0 12 0 20 0 20 0

Como M = m1m2 m3m4 m5m6 m7m8 m9m10 m11m12 entonces: C = c1c2 c3c4 c5c6 c7c8 c9c10 c11c12

Luego: C = [K(m1m2) K(m3m4) K(m5m6) K(m7m8) K(m9m10) K(m11m12)] Cálculo de c1c2: 2 0 7 c1c2 = K(m1m2) = x mod 27 1 1 0 c1c2 = (2 7 + 0 0)mod 27 (1 7 + 1 0)mod 27 c1c2 = (14 mod 27)(7 mod 27) = 14 7 c1c2 = ÑH Cálculo de c3c4: 2 0 10 c3c4 = K(m3m4) = x mod 27 1 1 21 c3c4 = (2 10 + 0 21)mod 27 (1 10 + 1 21)mod 27 c3c4 = (20 mod 27)(31 mod 27) = 20 4 c3c4 = TE

Page 10: Solución Exa Jun 95_002 (1)

EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 1995

Dpto. Lenguajes, Proyectos y Sistemas Informáticos E.U.I Solución pág. 5

Cálculo de c5c6: 2 0 13 c5c6 = K(m5m6) = x mod 27 1 1 0 c5c6 = (2 13 + 0 0)mod 27 (1 13 + 1 0)mod 27 c5c6 = (26 mod 27)(13 mod 27) = 26 13 c5c6 = ZN Cálculo de c7c8: 2 0 12 c7c8 = K(m7m8) = x mod 27 1 1 0 c7c8 = (2 12 + 0 0)mod 27 (1 12 + 1 0)mod 27 c7c8 = (24 mod 27)(12 mod 27) = 24 12 c7c8 = XM Cálculo de c9c10: 2 0 20 c9c10 = K(m9m10) = x mod 27 1 1 0 c9c10 = (2 20 + 0 0)mod 27 (1 20 + 1 0)mod 27 c9c10 = (40 mod 27)(20 mod 27) = 13 20 c9c10 = NT Luego: C = ÑHTEZN XMNTNT b) k11 k12 2 0 K = = K = 2 1 - 1 0 = 2 k21 k22 1 1 k22 -k12 1 2

-1 - 0 2

-1

K-1

= x K -1

mod 27 = mod 27 -k21 k11 -1 2

-1 2 2

-1

como 2

-1 = inv (2,27) = 14, entonces

14 0 14 0 K

-1 = mod 27 =

-14 28 -14 1 y se comprueba que: 2 0 14 0 1 0 K x K

-1 = x =

1 1 -14 1 0 1 es la matriz de identidad

Page 11: Solución Exa Jun 95_002 (1)

EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 1995

Dpto. Lenguajes, Proyectos y Sistemas Informáticos E.U.I Solución pág. 6

c) Como C = Ñ H T E Z N X M N T N T C = 14 7 20 4 26 13 24 12 13 20 13 20

realizando el proceso inverso se recupera el mensaje original. Es decir, aplicando la matriz inversa a los digramas cicj: 14 0 ci mimj = K

-1 cicj = x mod 27

-14 1 cj

EJERCICIO PRÁCTICO Nº 3: (1.5 puntos) Si se tienen los siguientes datos de un cifrador de mochila M-H: 1. Mochila usada como clave privada A' = [2, 3, 9, 15]. 2. Valor de la trampa y módulo del cuerpo u = 35. 3. Valor del multiplicador para generación de la mochila pública w = 11. a) Encontrar la mochila de Merkle-Hellman de clave pública A. b) Cifrar el mensaje M = 101100 111110. Presentar C en notación decimal. c) ¿Cuántos bits son necesarios para transmitir con esta mochila? ¿Por qué?

Solución: A' = [a1', a2', a3', a4'] = [2, 3, 9 ,15] A = [a1, a2, a3, a4] = [w a1', w a2', w a3', w a4'] mod u Luego: A = [11 2, 11 3, 11 9, 11 15] mod 35 A = [22, 33, 99, 165] mod 35 A = [22, 33, 29, 25] b) Como M = 1011 0011 1110 Luego: C = 76, 54, 84 c) Como el mayor número que puede obtenerse con esta mochila es el 109,

correspondiente a una entrada 1111, necesitan 7 bits puesto que: 2

6 < 109 < 2

7

Page 12: Solución Exa Jun 95_002 (1)

EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 1996

Dpto. Lenguajes, Proyectos y Sistemas Informáticos E.U.I pág. 1

S O L U C I Ó N 3 de julio de 1996 Nota: El archivo convertido a Word 97 y mantiene el mismo formato que el original. PARTE TEÓRICA Preguntas de Teoría: (0.4 puntos c/u. Tiempo Recomendado: 1 hora) 1. Tenemos posibilidad de realizar un ataque por elección de texto en claro

conocido a un criptosistema, siendo estos textos los siguientes: Texto 1: AABABABAA Texto 2: ABCDEFGHIJKLMNÑOPQRSTUVWXYZ Texto 3: AAAAAAAAAAAAAAAAAAAAAAAAAAA ¿Qué tipo de sistemas clásicos podrían romperse automáticamente con cada

uno de los textos elegidos? Justifique su respuesta.

Solución: a) El texto 1 nos servirá para atacar un cifrado de Hill trigrámico pues AAB, ABA y

BAA son los vectores unitarios del sistema. b) El texto 2 nos servirá para atacar un cifrado por desplazamiento, decimación o

afín, con cualquier tipo de alfabeto en módulo 27. c) El texto 3 nos servirá para atacar cifradores polialfabéticos. Si la longitud de la

clave es menor que 15 caracteres, al cifrarlo obtendremos la clave en claro.

2. ¿Cuáles de estas tres claves simbólicas de cifrado de Hill trigrámico son

válidas en el cuerpo n = 27? Justifique su respuesta. a) PRODUCTOS b) DESCUBRIR c) MIRANDOLA

Solución:

a) 0 = 27- = 27(K) =>

191520

2213

151816

= K moddet No es válida (matriz singular mod 27)

b) 19 = 8- = 27(K) =>

18818

1212

1943

= K moddet Es válida.pues mcd (19,27) = 1

c) 18 = 9- = 27(K) =>

01115

3130

18812

= K moddet No es válida pues mcd (18,27) = 9

Page 13: Solución Exa Jun 95_002 (1)

EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 1996

Dpto. Lenguajes, Proyectos y Sistemas Informáticos E.U.I pág. 2

3. Al cifrar el bloque de texto M = ¿BUENOS? con una determinada clave K mediante el sistema DES, se obtiene como resultado que la entrada a las cajas S es una cadena de 48 bits que pueden representarse por los siguientes valores en hexadecimal: A4 E2 DF EF 8C D4. Se pide:

a) Indicar la salida de cada una de las cajas S en decimal. b) ¿Cuántos bits hay en total a la salida de las cajas S? c) ¿Qué mensaje ASCII sale de las cajas S si agrupamos la salida en 8 bits?

Solución: a) En binario la entrada a las cajas S será: A4 = 1010 0100; E2 = 1110 0010; DF = 1101 1111; EF = 1110 1111; 8C = 1000 1100; D4 = 1101 0100. Luego en las cajas S entran los siguientes 6 bits: S1 = 101001; S2 = 001110; S3 = 001011; S4 = 011111; S5 = 111011; S6 = 111000; S7 = 110011; S8 = 010100. Por lo tanto la salida de cada caja S será: S1 = 4; S2 = 4; S3 = 4; S4 = 9; S5 = 4; S6 = 1; S7 = 5; S8 = 3. b) El número total de bits de salida de las cajas S será 32, correspondientes a los

valores de Si, es decir: S = 0100 0100 0100 1001 0100 0001 0101 0011. c) Agrupando S en bloques de 8 bits obtenemos los siguientes valores decimales:

68 73 65 83 (44 49 41 53 en hexadecimal) que en ASCII se corresponden con la cadena de caracteres DIAS.

4. Para un sistema de cifra RSA con p = 97 y q = 31, nos dicen que podemos

usar cualquiera de las siguientes claves públicas: a) e = 24 b) e = 33 c) e = 45 d) e = 49 ¿Cuáles de ellas son válidas y cuáles no? Justifique su respuesta.

Solución: (n) = (p-1)(q-1) = (97-1)(31-1) = 96 30 = 2880 = 2

63

25

Luego la clave pública e no podrá tener factor común con 2, 3 ó 5. a) 24 tiene factor común con 2 y 3. Luego, no es una clave pública válida. b) 33 tiene factor común con 3. Luego, no es una clave pública válida. c) 45 tiene factor común con 3 y 5. Luego, no es una clave pública válida. d) 49 no tiene estos factores comunes. Luego, es la única clave pública válida.

5. Se desea cifrar un texto editado en ASCII extendido con el sistema de cifra

exponencial de clave privada de Pohlig-Hellman. ¿Cuál será el valor mínimo

del grupo de trabajo n para poder cifrar todos los mensajes? ¿Por qué?

Solución: El valor mínimo del grupo de trabajo n deberá ser el primer primo mayor que el

máximo valor ASCII a cifrar que es 255. Luego nmín = 257.

Page 14: Solución Exa Jun 95_002 (1)

EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 1996

Dpto. Lenguajes, Proyectos y Sistemas Informáticos E.U.I pág. 3

PARTE PRÁCTICA Ejercicio Práctico nº 1: (2.0 puntos. Tiempo Recomendado: 45 minutos) Se recibe el siguiente criptograma cifrado mediante el método de Vigenère: NSZEF UAEIR BXJNO ATOYX EXDZA CNRBE KVQVE ZOKIX NQHIV RQBEZ ADOEJ RNSZE FUAEI RTNVC NLZEZ CELFJ INZUQ SZTQT AÑESE FMEFE XUEXT QVRAY JTNRM NPXSG RVSHV PNSZT BYAXA ETQUA EIRUZ MOFTJ EFDNC AKIGX PNTJA FDNPO KTENS HNHAF QTBPR LNVTQ MRRUJ UZDGS GAEFU EPNBI GOHAG AAF a) Usando el método de Kasiski, indique con cuál de las siguientes claves

ha sido cifrado el mensaje. a1) UVA a2) PIÑA a3) MELON a4) SANDIA a5) NARANJA a6) AGUACATE a7) MELOCOTON (Ayuda: El comienzo del criptograma puede ser interesante...) b) Descifre los 2 primeros bloques (10 caracteres) del criptograma según la

clave encontrada en el punto anterior.

Solución: a) Encontramos entre otras la cadena UAEIR en la posición 6, luego se repite en

la posición 62, separados (62-6) = 56 caracteres. Por último, se vuelve a repetir en la posición 139, con una separación de (139-62) = 77. Calculamos el máximo común divisor entre estos valores obteniendo mcd (56,77) = 7.

A lo mismo se llega eligiendo la cadena de tres caracteres iniciales NSZ que aparece luego en la posición 57, separadas entonces (57-1) = 56 caracteres y que vuelve a repetirse en la posición 127, separada ahora (127-57) = 70 caracteres, con lo que mcd (56,70) = 14. El resultado de las dos cadenas es 7. No obstante, es más fiable la primera solución con la cadena de 5 caracteres por ser más larga.

Como la única clave con longitud 7 es la a5, la clave podría ser NARANJA, lo que se comprueba descifrando el comienzo del criptograma en busca de un mensaje inteligible.

b) Utilizando bien aritmética modular mod 27 o la tabla de Vigenère, se obtiene el

siguiente texto escrito en minúsculas en el que se ha incluido puntuación: M = ASÍ ES MARÍA, blanca como el día, pero es veneno si le quieres enamorar. Así es María, tan caliente y fría, que si te la bebes de seguro te va a matar. Un dos tres, un pasito p'alante María, un dos tres, un pasito p'atrás. Un dos tres, un pasito p'alante María, un dos tres, un pasito p'atrás.

Page 15: Solución Exa Jun 95_002 (1)

EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 1996

Dpto. Lenguajes, Proyectos y Sistemas Informáticos E.U.I pág. 4

Ejercicio Práctico nº 2: (2.0 puntos. Tiempo Recomendado: 30 minutos) Bernardo recibe el siguiente par (

v, 1751) cifrado con el sistema de ElGamal y

enviado por Alicia. Si el grupo de trabajo de Bernardo es el primo p = 1997 y su clave privada es un número secreto b, tal que (

v)b = 242, se pide:

a) Descifre el criptograma. Para ello es imprescindible calcular el inverso usando el Método de Restos del Algoritmo Extendido de Euclides.

b) Indique qué carácter en ASCII ha enviado Alicia a Bernardo.

Solución: a) Para descifrar, Bernardo deberá calcular la siguiente expresión siguiendo el

algoritmo de ElGamal: m

bv 1751

m = ------------ = ----- mod 1997 = 1751 [inv(242,1997)]) mod 1997

vb 242

Cálculo de inv (242,1997): 1997 = 8 242 + 61 242 = 3 61 + 59 61 = 1 59 + 2 59 = 29 2 + 1 2 = 2 1 + 0 Ordenando por restos y factorizando por a = 242 y n = 1997 se tiene: a1) 61 = 1997 - 8 * 242 a2) 59 = 242 - 3 * 61 59 = 242 - 3 * (1997 - 8 * 242) = - 3 * 1997 + 25 * 242 a3) 2 = 61 - 1 * 59 2 = (1997 - 8 * 242) - 1 * (-3 * 1997 + 25 * 242) 2 = 4 * 1997 - 33 * 242 a4) 1 = 59 - 29 * 2 1 = (-3 * 1997 + 25 * 242) - 29 * (4 * 1997 - 33 * 242) 1 = -119 * 1997 + 982 * 242 Luego, inv (242,1997) = 982. Por lo tanto, Bernardo descifra el mensaje calculando: m = 1751 982 mod 1997 = 65. b) Alicia ha enviado a Bernardo el carácter decimal 65, es decir, la letra A.

Page 16: Solución Exa Jun 95_002 (1)

EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 1996

Dpto. Lenguajes, Proyectos y Sistemas Informáticos E.U.I pág. 5

Ejercicio práctico nº 3: (2.0 puntos. Tiempo Recomendado: 45 minutos) Paco y Lola se envían mensajes de amor por correo electrónico que desean se mantengan en secreto. Además, para evitar malos entendidos y una que otra sorpresa desagradable, todos sus mensajes los firman digitalmente. Para ello deciden "pasar del ASCII" y enviar sus mensajes codificados sólo con 28 elementos de forma que A=00, B=01, C=02 ... X=24, Y=25, Z=26 y Blanco=27 usando técnica de cifrado RSA. El grupo de trabajo y clave pública de cada uno son: PACO: ZnP = 7*5 = 35 eP=11. LOLA: ZnL = 3*11 = 33 eL=7. Después de una fuerte discusión, Paco envía a Lola el mensaje "SÍ" a lo cual Lola le contesta como es de esperar con el mensaje "NO". Ambos firman usando sólo el primer carácter enviado (es decir, la S para Paco y la N para Lola). Se pide: a) Enviar los dos mensajes. Paco: MP = M1P, M2P; Lola: ML = M1L, M2L. b) Firmar cada uno de los mensajes: rP para Paco y rL para Lola. c) Descifrar los criptogramas y comprobar la firma en cada caso.

Solución: a) Mensaje de Paco a Lola: MP = SÍ = M1P, M2P = 19, 8. CP = M1P

eL mod nL, M2P

eL mod nL = 19

7 mod 33, 8

7 mod 33 = 13, 2.

Mensaje de Lola a Paco: ML = NO = M1L, M2L = 13, 15. CL = M1L

eP mod nP, M2L

eP mod nP = 13

11 mod 35, 15

11 mod 35 = 27, 15.

b) Firmas. Debe calcularse previamente las claves privadas dP y dL para lo cual

es necesario conocer el indicador (n) de cada grupo. Paco: (nP) = (p-1)(q-1) = (7-1)(5-1) = 6 4 = 24. Lola: (nL) = (p-1)(q-1) = (3-1)(11-1) = 2 10 = 20. Luego: dP = inv [eP, (nP)] = inv(11,24) = 11. dP = 11 dL = inv [eL, (nL)] = inv(7,20) = 3. dL = 3 Rúbrica de Paco: rP = S

dP mod nP = 19

11 mod 35 = 24. rP = 24

Rúbrica de Lola: rL = NdL

mod nL = 133 mod 33 = 19. rL = 19

Entonces, Paco envía mensaje (13,2,24) y Lola le contesta (27,15,19). c) Descifrado del mensaje de Paco por parte de Lola: MP = C1P

dL mod nL, C2P

dL mod nL = 13

3 mod 33, 2

3 mod 33 = 19,8 = SÍ.

Comprobación de la firma de Paco: rP

eP mod nP = 24

11 mod 35 = 19, que coincide con el primer carácter S.

Descifrado del mensaje de Lola por parte de Paco: ML = C1L

dP mod nP, C2L

dP mod nP = 27

11 mod35, 15

11 mod35 = 13,15 = NO.

Comprobación de la firma de Lola: rL

eL mod nL = 19

7 mod 33 = 13, que coincide con el primer carácter N.

Page 17: Solución Exa Jun 95_002 (1)

EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Febrero 1997

Departamento de Lenguajes, Proyectos y Sistemas Informáticos pág. 1

SOLUCIÓN AL EXAMEN Nota: El archivo se ha convertido a Word 97 manteniendo el mismo formato del original.

Ejercicio Práctico nº 1: (2.0 puntos) Se recibe el siguiente criptograma: JGAZN WINHY LZDYV BBJLC QHTNK UDQXM OXJNO ZMUSP NONYJ MTEJH QHQFO OPUPB CYAÑJ ONCNN QHNMO NDHKU TJMQC MOPNF AOXNT NLOAZ MJDQY MOZCJ RNBAO QTUIE NFAIX TLXJG AZMJA XJVAZ MUDNM YLNLJ MUMUY HVUMH TÑIGD XDQUC LSJPI BCUSF NUGXX GEEXK AEJME SJÑEN ASLHL BAEYJ ROJXA CQTCN MYPUC UNMJW OYNHZ NKUOG AJDUJ XENRY TENJS CNMON TYJNM JYFXF IGJMI BUUSN TFAPN FAFKU ROJNY CTUYN BYSGJ VACAU CGQWA ZMJJH JHSNT

PAPXM GNECO GJUTE NCNGJ GEGAJ SPNUL GDMAÑ JDOFD NPUNN PNTGE NMJSN TTOFD KIOXS SQNNF BATOC XMMNV ÑEZNM EZBOS NTUSQ BUDBT JRBBU YPQZI OQFTB ANIBV MEDDY RUMUP NAULB OMAED HVHNF OCJOS NMJ.

Al romper el criptograma en cuatro subcriptogramas (C1, C2, C3, C4) se contabilizan las siguientes frecuencias de caracteres en cada uno de ellos:

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 C1 7 5 6 8 1 0 0 1 0 21 3 3 12 17 0 1 1 6 1 0 11 2 3 0 9 2 0 C2 1 1 3 1 0 8 5 6 0 15 2 0 14 8 3 5 2 0 0 2 4 22 2 3 3 9 1 C3 18 0 2 6 9 1 2 0 9 2 1 8 4 4 0 15 5 2 5 12 6 0 2 0 0 5 1 C4 0 10 8 1 8 5 9 7 1 0 0 0 1 24 2 6 6 7 0 2 0 6 0 0 4 2 10 Si se conoce que ha sido cifrado mediante el algoritmo de Vigenère, se pide: a) Comprobar con el Método de Kasiski la longitud de la clave. b) Encontrar la clave del sistema y descriptar sólo los diez primeros caracteres.

Solución: Las cadenas presentan las siguientes separaciones en el criptograma: JGAZ 128 caracteres NMON 184 caracteres PNFA 196 caracteres AZMJ 32 y 184 caracteres a) El mcd(128,196,184,32) = 4. Se comprueba que la longitud de la clave es 4. b) Aplicando la Regla AEO de separación de letras en los criptogramas, encontramos finalmente las siguientes posiciones relativas de estas letras: C1: AEO JNX; C2: AEO UYJ; C3: AEO AEO; C4: AEO NQB Luego la clave es K = JUAN JGAZN WINHY L......... JUANJ UANJU A.........

M = AMANE CIAYE L nuevo sol pintaba de oro las ondas de un mar tranquilo.

Chapoteaba un pesquero a un kilómetro de la costa cuando...

Ayuda: Aparecen 4 cadenas de 4 caracteres que se repiten en el criptograma: JGAZ, NMON, PNFA y AZMJ.

Page 18: Solución Exa Jun 95_002 (1)

EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Febrero 1997

Departamento de Lenguajes, Proyectos y Sistemas Informáticos pág. 2

(párrafo de Juan Salvador Gaviota)

Page 19: Solución Exa Jun 95_002 (1)

EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Febrero 1997

Departamento de Lenguajes, Proyectos y Sistemas Informáticos pág. 3

Ejercicio Práctico nº 2: (1.5 puntos) Cifrar el mensaje M = MISION IMPOSIBLE STOP con un sistema de mochila de Merkle-Hellman. La mochila fácil es S' = [3, 9, 15, 30]. Elija los valores del módulo de trabajo (u) y factor de multiplicación (w) de forma que sean lo más pequeños posible de acuerdo con el diseño de este tipo de mochilas. El formato binario ASCII de los caracteres del mensaje es: M = 01001101 I = 01001001 S = 01010011 O = 01001111 N = 01001110 P = 01010000 B = 01000010 L = 01001100 E = 01000101 T = 01010100. a) Cifrar de forma que cada letra en C sea un bloque de 6 dígitos numéricos. b) ¿Es adecuada esta elección del módulo u y del factor w? Coméntelo.

Solución: a1) Cálculo de u, w: El módulo u debe ser mayor que la suma de los elementos de la mochila fácil. Como este valor es igual a 57, elegimos u=58. Como 58=2 29, elegimos w = 3 pues es el número menor que cumple mcd (u,w) = 1. a2) La mochila difícil S será w S' mod u, luego: S1 = 3 3 mod 58 = 9 S2 = 3 9 mod 58 = 27 S3 = 3 15 mod 58 = 45 S4 = 3 30 mod 58 = 32 La mochila difícil será: S = [9, 27, 45, 32] que no es supercreciente. a3) Para cifrar representamos el mensaje en su código binario y lo pasamos por la mochila de forma que: M = MISION IMPOSIBLE STOP, se transmitirá como: C = 027068, 027041, 059077, 027041, 027113, 027081 027041, 027068, 059000, 027113, 059077, 027041, 027045, 027036, 027059, 059077, 059027, 027113, 059000. b) Tanto el módulo u como el factor multiplicador w cumplen los requisitos de las mochilas de M-H pero sus valores no son adecuados. Es preferible que sean números grandes pues así se obtiene una mochila difícil que costará más descriptar, siempre y cuando hablemos de mochilas de muchos elementos y no de cuatro como es este caso. Romper la cifra para este problema con n = 4 es igual de sencillo que descifrar el criptograma con la mochila fácil.

Page 20: Solución Exa Jun 95_002 (1)

EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Febrero 1997

Departamento de Lenguajes, Proyectos y Sistemas Informáticos pág. 4

Ejercicio práctico nº 3: (1.5 puntos) En un sistema de cifra se utiliza una codificación de los caracteres del alfabeto como se indica: 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 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28

a) Cifrar con RSA el mensaje M = "OLE TUS VIDEOS" por bloques de dos

caracteres eligiendo consecuentemente un grupo de trabajo mínimo de cifra. Asimismo, deberá elegirse como clave pública el número más pequeño posible.

b) ¿Es posible representar el criptograma con caracteres? Justifique su respuesta.

Solución: a) Agrupamos el mensaje en bloques de dos caracteres es decir: M = OL ET US VI DE OS y lo representamos por sus códigos, es decir: M = 1713 0622 2321 2410 0506 1721 (M = M1M2M3M4M5M6) El cuerpo mínimo para cifrar mensajes con este alfabeto será el número inmediatamente superior a 2828 (ZZ). Luego, hay que buscar dos primos p y q de valores parecidos y cuyo producto sea ligeramente superior a este valor. Calculando la raíz cuadrada de 2828 se obtiene 53,18 por lo tanto elegiremos los siguientes valores: p = 53; q = 59 n = p q = 3127 Luego (n) = (p-1)(q-1) = 52 58 = 3016 Elegimos e=3 pues es el número más bajo que cumple mcd (e, (n)) = 1. C1 = M1

e mod n = 1713

3 mod 3127 = 2899

C2 = M2e mod n = 0622

3 mod 3127 = 0436

C3 = M3e mod n = 2321

3 mod 3127 = 0153

C4 = M4e mod n = 2410

3 mod 3127 = 2693

C5 = M5e mod n = 0506

3 mod 3127 = 2606

C6 = M6e mod n = 1721

3 mod 3127 = 2534

Luego, C = 2899 0436 0153 2693 2606 2534

Ayuda: Los primos p y q deben tener valores muy parecidos.

Page 21: Solución Exa Jun 95_002 (1)

EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Febrero 1997

Departamento de Lenguajes, Proyectos y Sistemas Informáticos pág. 5

b) No se puede representar el criptograma en caracteres puesto que el cuerpo de cifrado no se corresponde con el alfabeto de los caracteres al tomar bloques de tamaño dos en la operación de cifra.

Page 22: Solución Exa Jun 95_002 (1)

EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Febrero 1997

Departamento de Lenguajes, Proyectos y Sistemas Informáticos pág. 6

Ejercicio práctico nº 4: (3.0 puntos) Al día siguiente del derby madrileño, Maripuri recibe en el buzón de su correo electrónico el siguiente mensaje: "Hola Maripuri. Te escribo estas líneas na más que pa saludarte. Lo del

partido de ayer fue una gozada. Lo pasé dabuten tía. Bueno tronqui, si aún no te percatas efestivamente quién soy, intenta romper esta cifra: 22304148223041. Eso es todo. Un saludo. Afestuosamente, El Enigma."

Maripuri sospecha que el mensaje sea de uno de sus dos amigos que usan habitualmente el sistema RSA en su mail: Paquito que es merengue o Crispín que es colchonero. Sus claves públicas son:

Paquito: módulo: nP = 55 Clave pública: eP = 49 Crispín: módulo: nC = 77 Clave pública: eC = 13 a) Romper la cifra RSA = 22304148223041 y ayudar a Maripuri desvelar la

identidad emisor. La codificación del alfabeto es la misma del Ejercicio nº 3. b) ¿Por qué ha sido tan fácil romper esta cifra si se supone que RSA es un

sistema muy seguro?

Solución: Para romper la cifra es necesario conocer la clave secreta de ambos: Paquito: nP = 55 p = 11; q = 5 (n) = 10 4 = 40 Luego hay que encontrar dP = inv (eP, (n)) = inv (49,40) = inv (9,40) = 9. NOTA: Como eP > (n) entonces la clave eP = 49 puede reducir mod (n); o lo

que es lo mismo, podemos considerar eP = 49 mod (n) = 9. Aplicando cualquier método (incluso fuerza bruta) se obtiene: dP = 9. Descriptado: M1 = C1

dP mod 55 = 22

9 mod 55 = 22 T

M2 = C2dP

mod 55 = 309 mod 55 = 40 (no existe representación)

M3 = C3dP

mod 55 = 419 mod 55 = 51 (no existe representación)

M4 = C4dP

mod 55 = 489 mod 55 = 03 B

Luego: M = T__BT__ (no es un mensaje pues hay elementos _ que no son caracteres) Crispín: nC = 77 p = 11; q = 7 (n) = 10 6 = 60 Luego hay que encontrar dC = inv (eC, (n)) = inv (13,60). Aplicando cualquier método (incluso fuerza bruta) se obtiene: dC = 37. Descriptado: M1 = C1

dC mod 77 = 22

37 mod 77 = 22 T

M2 = C2dC

mod 77 = 3037

mod 77 = 02 A M3 = C3

dC mod 77 = 41

37 mod 77 = 13 L

M4 = C4dC

mod 77 = 4837

mod 77 = 27 Y Luego: M = TALYTAL (al parecer, podemos concluir que lo ha enviado Crispín)

Page 23: Solución Exa Jun 95_002 (1)

EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Febrero 1997

Departamento de Lenguajes, Proyectos y Sistemas Informáticos pág. 7

b) Ha sido muy fácil romper la cifra (clave privada de los emisores) porque el número n es el producto de dos primos muy pequeños y el problema de la factorización es simple.

Page 24: Solución Exa Jun 95_002 (1)

EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 1996

Dpto. Lenguajes, Proyectos y Sistemas Informáticos E.U.I Solución Pág. 1

Solución al Examen Nota: Este archivo corresponde al documento original del examen. PARTE TEÓRICA Cuestiones de Teoría: (0.4 puntos c/u. Tiempo máximo estimado: 1 hora) 1. ¿Cuál de los dos textos M1 o M2 tiene una entropía mayor y por qué? Nota: No es necesario calcular el valor de dichas entropías. Los espacios en blanco y signos de puntuación no se consideran. M1 : HABIA UNA VEZ UN CIRCO. M2 : AHI ESTA, AHI ESTA, LA PUERTA DE ALCALA.

Solución: Contabilizando los caracteres de cada uno de los mensajes se tiene: M1: Total 18 caracteres: Sus frecuencias relativas son: A=3; I=2; U=2; N=2; C=2; H=1; B=1; V=1; E=1; Z=1; O=1; R=1 M2: Total 30 caracteres: Sus frecuencias relativas son: A=9; E=4; T=3; L=3; H=2; I=2; S=2; P=1; U=1; R=1; D=1; C=1 La entropía de M1 es mayor que la de M2 pues en este último hay una

mayor dispersión de los valores de repetición o frecuencia para igual número de letras distintas (12 en cada caso). En otras palabras, M1 se asemeja más a una distribución normal con entropía máxima que M2.

Estableciendo una especie de simplificación, las probabilidades de letras con igual frecuencia de aparición, en total 9 de las 12 en cada mensaje, son más bajas en el texto M2 de 30 caracteres que en M1 de 18, si bien las otras 3 restantes son mayores pero que no llegan a compensar la dismunición de la entropía. Si se aplica la ecuación de la entropía se obtiene: H(M1) = 3,46 y H(M2) = 3,17.

2. Si el siguiente criptograma C ha sido obtenido mediante un cifrado por

desplazamiento puro, encuentre dicho desplazamiento y descífrelo. C = QJ MFR WTGFT PF QTZRYFNR GNOJ, KZJ ZR DTRVZN IJ PF UPFEF WJFP.

Solución: La letra más frecuente del criptograma F, que aparace 8 veces, debería corresponder a la E, A, O, S,... etc. del texto en claro. Si F=E, entonces el desplazamiento b=1 con lo que M = PI LEQ VSFES... que es ininteligible. Si F=A, entonces b=5 y M = ME HAN ROBAO... que es texto en claro.

Luego b=5 será el único desplazamiento que entrega un texto inteligible en castellano, con lo cual desciframos el criptograma como sigue:

M = Me han robao la mountain bike, fue un yonqui de la Plaza Real. A igual resultado se llega mediante un ataque por fuerza bruta,

aplicando sucesivos desplazamientos. En este caso se rompe el criptograma con un desplazamiento b' igual a 27-b = 27-5 = 22

Page 25: Solución Exa Jun 95_002 (1)

EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 1996

Dpto. Lenguajes, Proyectos y Sistemas Informáticos E.U.I Solución Pág. 2

espacios.

3. Nos dicen que al transformar una mochila fácil A' multiplicando sus elementos

por w y reduciendo el resultado módulo u, de forma que mcd (w,u) = 1, se obtiene siempre una mochila difícil A, independientemente del tamaño de la mochila. ¿Es esto cierto o no? Justifique su respuesta con un ejemplo.

Solución: No. Si el tamaño de la mochila es pequeño, puede darse el caso de que la mochila difícil sea también del tipo supercreciente y, por tanto, fácil de solucionar, si bien es posible que los elementos de la mochila no estén ordenados. En mochilas con más de 5 elementos, es muy poco probable que con el algoritmo de Merkle-Hellman no se obtenga una mochila difícil.

Como ejemplo, además del que aparece en los apuntes de clase en páginas 25 y 26, podemos suponer el siguiente:

Sea la mochila fácil de tres elementos A' = [1, 2, 4]. Elegimos u = 13 (mayor que mi) y el factor multiplicativo w=7 de forma que mcd(7,13) = 1. Luego, la mochila difícil será A = [w A']mod u, es decir:

A = [1 7, 2 7, 4 7]mod 13 = [7, 1, 2] que, aunque no está ordenada, resultar ser supercreciente.

4. Un sistema de cifra RSA con bloque de tamaño igual a un carácter y

representación numérica ASCII, utiliza p = 17, q = 19 y como clave pública del receptor e = 5.

a) ¿Son apropiados estos números para tal fin? ¿Por qué sí o por qué no? b) Si, por ejemplo, se sabe que el mensaje M1 = FUMANDO ESPERO se

cifrará como C = 185 187 229 12 108 102 129 223 103 87 207 103 233 129, encuentre el criptograma del mensaje M2 = AMADO MIO.

Nota: el valor ASCII de la letra A = 65 y el de la letra Z = 90.

Solución: a) Los valores p=17 y q=19, son primos; además n = p q = 17*19 = 323. Como este valor es mayor que 256, sirve para cifrar ASCII.

(n) = (p-1)(q-1) = (17-1)(19-1) = 16*18 = 288. Como mcd (5,288) = 1, entonces la clave pública e = 5 también es apropiada.

b) El segundo mensaje M2 tiene los mismos caracteres que el primero, con la excepción de la letra I. Como su valor ASCII es 73, este carácter se cifrará como 73

5mod 323 = 99. Esto significa que el criptograma C2

será: C2 = 12 229 12 102 129 223 229 99 129.

5. ¿Se puede firmar digitalmente un mensaje con el algoritmo Data Encryption

Standard, DES? Si es así, ¿cómo lo haría y por qué?

Solución: No. Es imposible firmar digitalmente un mensaje con el algoritmo DES pues se trata de un método de clave privada y es, por tanto, una función simétrica que no posee inversa. La firma digital debe contemplar

Page 26: Solución Exa Jun 95_002 (1)

EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 1996

Dpto. Lenguajes, Proyectos y Sistemas Informáticos E.U.I Solución Pág. 3

siempre dos valores inversos entre sí en el módulo de trabajo del transmisor y firmante del mensaje, de forma que éste firme con su clave privada (que permite la autenticidad) y el destinatario pueda comprobar dicha firma con la clave pública, inversa de la anterior.

PARTE PRÁCTICA Ejercicio Práctico nº 1: (2.0 puntos. Tiempo máximo estimado: 30 minutos) Se recibe el siguiente criptograma cifrado mediante el método de Beaufort: C: BARJG ÑTLWI YYEMY MQWUO QHGYE MYWÑX IZDPE MAMAA ÑGTHD HMYEM YATHI GYANA VGHYR ÑLGHÑ GIEÑR GYYEM YWÑ.

a) Usando el método de Kasiski, indique con cuál de las siguientes claves

ha sido cifrado el mensaje. a1) JAEN a2) CADIZ a3) HUELVA a4) MALAGA a5) SEVILLA a6) MARBELLA (Ayuda: La cadena Y... de cuatro letras aparece 4 veces) b) Descifre ahora el criptograma completo según la clave encontrada en el

punto anterior usando directamente la Tabla de Beaufort.

Solución: a) La cadena de cuatro caracteres YEMY aparece en las posiciones 12, 24, 48 y 78 del criptograma, con separaciones iguales a 24-12 = 12; 48-24 = 24 y 78-48 = 30. El mcd (12,24,30) = 6 que será el período de la cifra, con lo que la clave puede ser HUELVA o MALAGA.

Además de esta cadena principal de 4 caracteres, aparecen otras cadenas dependientes de la misma (YYEMYM, YEMYWÑ, ...) que confirman el resultado del período encontrado.

Descifrando los tres primeros bloques del criptograma con la tabla de Beaufort con estas dos claves se obtiene:

HUELVA: C = BARJG ÑTLWI YYEMY ... K = HUELV AHUEL VAHUE... M = GUNCP NÑKID XCDJG ... (que no tiene sentido) MALAGA: C = BARJG ÑTLWI YYEMY ... K = MALAG AMALA GAMAL ... M = LATRA NSPOS ICION ... (que sí tiene sentido) b) Continuando el descifrado con la Tabla de Beaufort y la clave

MALAGA se obtiene el siguiente texto en claro: M = La transposición o permutación es débil como la sustitución ante

un ataque con buenas intuiciones. Nota: La cadena YEMY del criptograma corresponde al tetragrama

CION del texto en claro, muy común en castellano.

Page 27: Solución Exa Jun 95_002 (1)

EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 1996

Dpto. Lenguajes, Proyectos y Sistemas Informáticos E.U.I Solución Pág. 4

Ejercicio Práctico nº 2: (2.0 puntos. Tiempo máximo estimado: 45 minutos) Un sistema de cifra por mochila de Merkle-Hellman orientado al cifrado de mensajes sólo con letras mayúsculas, utiliza como código binario el valor asignado a cada una de ellas con 5 bits de forma que A = 00000, B = 00001, C = 00010, ... Y = 11001, Z = 11010. Los espacios en blanco no se codifican. Si la mochila pública A es la que se indica: A = [43, 129, 215, 473, 903, 302, 561, 1165, 697, 1523]. Se pide: a) Cifrar el mensaje M = TE AMO ANITA. b) Si se sabe que Ana ha utilizado w = 43 y u = 1590 para calcular su mochila

difícil, encuentre la trampa o mochila fácil. c) Descifre ahora el criptograma recibido.

Solución: a) Mensaje TE AMO ANITA representado en el código que se indica es: M = T E A M O A N I T A M = 20 4 0 12 15 0 13 8 20 0 M = 10100 00100 00000 01100 01111 00000 01101 01000 10100 00000

Pasando estos vectores por la mochila pública A cada dos caracteres puesto que el número de elementos es n = 10, se obtiene:

C = (43+215+1165), (561+1165), (129+215+473+903), (129+215+903+561), (43+215) C = 1423, 1726, 1720, 1808, 258. b) Para encontrar la trampa o mochila fácil, debemos calcular w

-1 mod

u, es decir, inv (43,1590). Usando el algoritmo de Euclides con restos: 1590 = 36 43 + 42 43 = 1 42 + 1 42 = 42 1 + 0 Ordenando por restos, se obtiene: 42 = 1590 - 36 43 1 = 43 - 1 42 = 43 - 1(1590 - 36 43) = - 1 1590 + 37 43 Luego, inv (43,1590) = 37 A' = A w

-1 mod u

A' = [43, 129, 215, 473, 903, 302, 561, 1165, 697, 1523] 37 mod 1590 A' = [1, 3, 5, 11, 21, 44, 87, 175, 349, 701] (es supercreciente). c) Ana recibe 5 números que debe pasar por su mochila fácil, pero

primero multiplica estos valores por w-1

mod u de forma que los valores de entrada a esta mochila suprecreciente serán:

C' = C*w-1

mod u = [1423, 1726, 1720, 1808, 258]*37 mod 1590 C' = [181, 262, 40, 116, 6] Para cada uno de estos valores, se buscan los vectores en la mochila

fácil, obteniéndose: 181 = [175 + 5 + 1] 10100 00100 = TE 262 = [175 + 87] 00000 01100 = AM 40 = [21 + 11 + 5 + 3] 01111 00000 = OA 116 = [87 + 21 + 5 + 3] 01101 01000 = NI 6 = [5 + 1] 10100 00000 = TA

Page 28: Solución Exa Jun 95_002 (1)

EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 1996

Dpto. Lenguajes, Proyectos y Sistemas Informáticos E.U.I Solución Pág. 5

Ejercicio práctico nº 3: (2.0 puntos. Tiempo máximo estimado: 45 minutos) En contestación a la propuesta de una cita a ciegas a través de Internet hecha por nuestra inefable amiga Clotilde, el bueno de Bonifacio le envía el mensaje de ocho caracteres "VALE TIA", cifrándolo con el método RSA. Clotilde trabaja en el grupo formado por los primos pC = 47 y qC = 61, siendo su clave pública eC = 7. Como Bonifacio teme que surja algún impostor que envíe un mensaje distinto y eche por tierra su plan, firma el mensaje con su clave privada utilizando para ello todo el texto, es decir los 8 caracteres en este caso. El grupo de trabajo de nuestro amante internauta es pB = 53, qB = 59 y su clave pública eB = 2011. Los mensajes se codifican con dos dígitos con el siguiente código: A=01 B=02 C=03 D=04 E=05 F=06 G=07 H=08 I=09 J=10 K=11 L=12 M=13 N=14 Ñ=15

O=16 P=17 Q=18 R=19 S=20 T=21 U=22 V=23 W=24 X=25 Y=26 Z=27 Blanco=28

Nota: Puesto que tanto nC como nB son superiores al valor 2.828 e inferiores a 282.828, las cifras y firmas se realizan formando grupos de dos caracteres a partir del mensaje. a) Exprese con números (sin calcular) la cifra del mensaje de Bonifacio. b) Exprese con números (sin calcular) la firma del mensaje de Bonifacio. c) Exprese con números (sin calcular) el descifrado del criptograma.

Solución: pC=47; qC=61; nC=47 61=2867; (nC)=46 60=2760; eC=7 pB=53; qB=59; nB=53 59=3127; (nB)=52 58=3016; eB=2011 a) M = VA LE _T IA = 2301 1205 2821 0901 C1 = 2301

7 mod 2867 = 2410; C2 = 1205

7 mod 2867 = 2689

C3 = 28217 mod 2867 = 1364; C4 = 901

7 mod 2867 = 1328

Luego: C = 2410 2689 1364 1328 b) Para encontrar la rúbrica de Bonifacio, debemos encontrar dB: dB = inv[dB, (nB)] = inv(2011,3016) 3016 = 1 2011 + 1005 Ordenando por restos: 2011 = 2 1005 + 1 1 = 2011 - 2 1005 = 2011 - 2 (3016 - 1 2011) 1005 = 1005 1 + 0 1 = -2 3016 + 3 2011 Luego, inv(2011,3016) = dB = 3 r = M

dB mod nB

r = 23013 mod 3127, 1205

3 mod 3127, 2821

3 mod 3127, 901

3 mod 3127

r = 472, 2614, 85, 2385. c) Para descifrar el criptograma debemos calcular la clave privada de

Clotilde, dC, es decir, inv[eC, (nC)] = inv(7,2760) 2760 = 394 7 + 2 Ordenando por restos: 7 = 3 2 + 1 1 = 7 - 3 2 = 7 - 3 (2760 - 394 7) 2 = 2 1 + 0 1 = - 3 2760 + 1183 7 Luego, inv(7,2760) = dC = 1183 Por lo tanto, Clotilde descifra el criptograma como sigue: M = (2301

7)1183

mod 2867, (12057)1183

mod 2867, (2821

7)1183

mod 2867, (9017)1183

mod 2867 Por ser inversos 7 y 1183 en (nC) = 2760, se recupera M = VALE TIA.

Page 29: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 1997

Departamento de Lenguajes, Proyectos y Sistemas Informáticos pág. 1

PARTE TEÓRICA Preguntas de Teoría: (0.4 puntos c/u. Tiempo Recomendado: 1 hora)

1. La función de cifra para sistemas genéricos de sustitución monográmica sin clave es:

a) Ci = (Mi + b) mod n Desplazamiento puro

b) Ci = a Mi mod n Decimación pura

c) Ci = (a Mi + b) mod n Sustitución afín 1a) Se pide escribir las ecuaciones para descifrar de forma directa un criptograma sin

utilizar las correspondencias entre alfabeto en claro y alfabeto cifrado. 1b) Si n = 27, a = 7 y b = 3, cifre y descifre el mensaje M = SOL según las ecuaciones

dadas y encontradas en el apartado anterior.

Solución: 1a) a) Ci = (Mi + b) mod n Mi = (Ci - b) mod n b) Ci = a Mi mod n Mi = a

-1Ci mod n

c) Ci = (a Mi + b) mod n Mi = a -1

(Ci - b) mod n donde a

-1 = inv(a,n) y se puede reemplazar -b por (n-b).

1b) SOL = M1M2M3 = 19 15 11. Por otro lado, a -1

= inv (7,27) = 4. a) C1 = (19+3) mod 27 = 22 = V M1 = (22 - 3) mod 27 = 19 = S C2 = (15+3) mod 27 = 18 = R M2 = (18 - 3) mod 27 = 15 = O C3 = (11+3) mod 27 = 14 = Ñ M3 = (14 - 3) mod 27 = 11 = L b) C1 = 7 19 mod 27 = 25 = Y M1 = 4 25 mod 27 = 19 = S C2 = 7 15 mod 27 = 24 = X M2 = 4 24 mod 27 = 15 = O C3 = 7 11 mod 27 = 23 = W M3 = 4 23 mod 27 = 11 = L c) C1 = (7 19+3) mod 27 = 01 = B M1 = 4 (01 - 3) mod 27 = 19 = S C2 = (7 15+3) mod 27 = 00 = A M2 = 4 (00 - 3) mod 27 = 15 = O C3 = (7 11+3) mod 27 = 26 = Z M3 = 4 (26 - 3) mod 27 = 11 = L

2. En el cifrador IDEA se utilizan tres operaciones algebraicas sobre cadenas de 16 bits: suma módulo 2, suma módulo 2

16 y producto módulo 2

16+1.

a) ¿Por qué se hace la multiplicación en módulo 216

+1 y no en 216

? ¿Cómo se obtiene la tabla de multiplicación?

b) Compruebe la operación producto X Y para 3 bits para X=2 y el valor de Y igual a todos los restos de 2

3. ¿Cuál es el inverso de 2 en 2

3+1?

Solución: 2a) Todas las operaciones algebraicas deben tener inversa. Es el caso de las dos sumas. En cambio si el cuerpo de la multiplicación es 2

16 no se obtienen todos los

restos y por lo tanto no se asegura la existencia de inverso. Si el módulo es 216

+1 y se considera que el bloque de 16 ceros es igual al número 2

16 = 65.536, se obtiene

para cada multiplicación el conjunto completo de restos y por tanto la existencia de un único inverso para cada valor. La tabla del producto X Y (números de 16 bits cada uno) se obtiene haciendo la multiplicación en decimal o binario de todos los posibles valores de X e Y en el cuerpo 2

16 (0, …, 65.535) considerando que 0 = 65.536 y

reduciendo todas las operaciones en módulo 216

+1.

Page 30: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 1997

Departamento de Lenguajes, Proyectos y Sistemas Informáticos pág. 2

2b) Cálculo de X Y mod 2

3+1 = 2 Y mod 9. Se supone 0 = 2

3 = 8.

X Y X Y X Y mod 216

+1 Cálculo Valor 010 000 2 0 2 8 mod 9 16 mod 9 7 010 001 2 1 2 1 mod 9 2 mod 9 2 010 010 2 2 2 2 mod 9 4 mod 9 4 010 011 2 3 2 3 mod 9 6 mod 9 6 010 100 2 4 2 4 mod 9 8 mod 9 0 010 101 2 5 2 5 mod 9 10 mod 9 1 010 110 2 6 2 6 mod 9 12 mod 9 3 010 111 2 7 2 7 mod 9 14 mod 9 5 El inverso de 2 en 2

3+1 es inv(2,9) = Y = 5 pues el resultado es igual a la unidad. No

obstante, no cumple la condición de cuerpo de cifra 2n+1ya que 9 no es primo. De

hecho, no existirán inversos parea los valores 3 y 6 lo que no tiene sentido.

3. En una vuelta del algoritmo DES entra en las Cajas S la siguiente cadena de 48 bits: S = 01110010 00001100 11001011 01101011 00100110 11111000. Si los bits más significativos afectan a la caja S1 y así sucesivamente, se pide:

a) Indicar para cada caja S la entrada en bits, la fila y columna dentro de ella para obtener el valor de salida y la salida en decimal.

b) ¿Cuál es la cadena completa de bits de salida en esta fase del DES en octetos?

Solución: 2b) Pasando a binario esta cadena de bits se tiene la siguiente salida en octetos: S = 00000000 11111111 00000000 11111111

CAJA ENTRADA FILA COLUMNA SALIDA

S1 011100 0 14 0

S2 100000 2 0 0

S3 110011 3 9 15

S4 001011 1 5 15

S5 011010 0 13 0

S6 110010 2 9 0

S7 011011 1 13 15

S8 111000 2 12 15

4. Se cifra un documento de Word con un tamaño de 11.264 bits con el programa PGP. ¿Cuál de estos archivos podría corresponder al criptograma y porqué?

a) DOC1.PGP (11.264 bytes) b) DOC2.PGP (13.586 bytes) c) DOC3.PGP (2.084 bytes) d) DOC4PGP (10.084 bytes)

Solución: El único archivo posible cifrado con PGP es DOC3.PGP porque para un archivo con formato como es este caso con un tamaño de algunos kbytes, al aplicar por defecto la opción de compresión ZIP, el tamaño final se reduce significativamente, incluso si luego se modifica el formato con armadura (Radix 64) para su transmisión por Internet. DOC1.PGP y DOC2.PGP tienen un tamaño igual o mayor que el documento fuente y DOC4PGP no tiene la extensión de archivos cifrados por defecto (.PGP) de este programa.

Page 31: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 1997

Departamento de Lenguajes, Proyectos y Sistemas Informáticos pág. 3

5. Segismundo dice que no firma digitalmente sus mensajes cifrados enviados por email porque el archivo resultante tiene un tamaño igual al doble del que no incluye firma. Venancio afirma estar seguro de que eso no es cierto y que el tamaño del fichero sólo se ve incrementado en unas decenas de bits. Prudencio asegura que el hecho de firmar un mensaje no altera el tamaño del archivo final pues va implícito en el mismo mensaje. Si los tres están hablando de un sistema real como por ejemplo el PGP:

a) ¿Quién de los tres tiene razón y porqué?

b) ¿Qué función hace que el tamaño del archivo final con firma digital sea el doble, algo mayor o no se vea afectado por la inclusión de la firma?

Solución:

a) Tiene la razón Venancio porque la firma digital sólo aumenta el tamaño del documento en un valor del orden de las centenas de bits debido al resumen que se le añade a éste.

b) Se trata de una función hash que en PGP es el algoritmo MD5, que actúa sobre el texto en claro convirtiéndolo en n bloques de tamaño 512 bits cada uno (añadiendo bits si es el caso) y que produce como salida una cadena de 128 bits que es función de todo el mensaje original.

PARTE PRÁCTICA

EJERCICIO PRÁCTICO Nº 1: (2.0 puntos. Tiempo Recomendado: 30 minutos) Se recibe un criptograma de 642 caracteres que comienza con la cadena C = CMWJW IXHEW POHXG TQLDJ RLREW FSFGB y que supuestamente ha sido cifrado con el sistema de Vigenère. Si al aplicar el método de ataque de Kasiski se obtiene la siguiente tabla de frecuencias relativas de caracteres en subcriptogramas se pide: 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

C1 6 6 13 0 14 5 3 6 6 2 8 0 0 0 1 0 11 1 5 4 23 0 1 0 14 0 0

C2 0 0 3 0 11 2 3 6 13 0 2 2 13 1 0 7 7 15 0 12 3 6 6 5 5 7 0

C3 0 2 0 12 1 1 3 24 1 4 1 11 0 0 2 5 7 0 14 2 5 14 5 4 10 0 0

C4 1 0 4 5 11 1 10 3 8 12 5 3 8 1 0 0 2 1 10 1 5 2 22 3 2 0 8

C5 2 9 0 12 5 7 8 4 5 11 3 0 0 2 0 11 0 2 4 18 0 1 0 15 0 0 9

a) Encontrar la clave de cifrado.

b) Descifrar los 30 caracteres del criptograma C que se indica en el enunciado.

Solución: 1a) En la tabla se ha indicado en negrita los valores que ocupan las posiciones relativas de las letras AEO en cada subcriptograma. Las cadenas en las que se cumple esta regla y en las que además la letra con mayor frecuencia corresponde a la letra E del texto en claro serán PTE, EIS, DHR, RVG y OSD. Puesto que la primera letra correspondiente al texto en claro A dará la clave, se obtiene los caracteres P, E, D, R, y O luego la clave es K = PEDRO. 1b) Aplicando directamente la Tabla de Vigenère o aritmética modular se tiene: C = CMWJW IXHEW POHXG TQLDJ RLREW FSFGB K = PEDRO PEDRO PEDRO PEDRO PEDRO PEDRO M = NITRI STENI ALEGR ENIMU CHONI POCON

Page 32: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 1997

Departamento de Lenguajes, Proyectos y Sistemas Informáticos pág. 4

M = Ni triste ni alegre ni mucho ni poco n…. El texto corresponde a la canción “Ni todo lo contrario” de Pedro Guerra.

EJERCICIO PRÁCTICO Nº 2: (2.0 puntos. Tiempo Recomendado: 45 minutos) Ante el trascendental partido de mañana sábado, aparece una pintada en las paredes del estadio Santiago Bernabéu con el criptograma de cinco números: C =165.739, 50.688, 152.500, 128.125, 150.543. Si existe la sospecha de que se ha cifrado con la mochila pública S = [839, 1.678, 3.356, 6.712, 13.424, 26.848, 53.696, 41.855, 18.173, 36.346, 7.155, 14.310, 28.620, 57.240, 48.943, 32.349] y además sabemos que el módulo de trabajo es = 65.537 y que la mochila fácil S’ = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1.024, 2.048, 4.096, 8.192, 16.384, 32.768], se pide:

a) Encontrar la trampa w -1

con el Algoritmo Extendido de Euclides de Restos. b) Descifrar el criptograma y representarlo como una cadena de octetos (bits). Nota: C w

-1 mod = 12.930, 1.154, 33.458, 18.978, 8.850

c) Si el texto es ASCII, ¿cual es el mensaje para los merengues?

d) Si se incluye una marca de firma con una función hash suma or exclusivo de todos los caracteres tomados de dos en dos: M1M2 M3M4 M5M6 etc., ¿cómo lo haría?

e) ¿Cuáles serían el módulo de trabajo y factor w mínimos para esta mochila?

Solución: 2a) El valor de w se puede deducir fácilmente de los valores de las mochilas difícil y fácil pues es el primer valor de S que se obtiene como S = S’ w mod . La trampa w

-1 será inv (w, ) = inv (839, 65.537). Usando el método de Euclides:

65.537 = 78 839 + 95 Restos: 95 = 65.537 - 78 839 839 = 8 95 + 79 79 = 839 - 8 95 95 = 1 79 + 16 16 = 95 - 1 79 79 = 4 16 + 15 15 = 79 - 4 16 16 = 1 15 + 1 1 = 16 - 1 15 15 = 15 1 + 0 Ordenando por restos se tiene: 1 = 16 - 1 15 = (95 - 1 79) - 1(79 - 4 16) 1 = (95 - 79) - (79 - 4(95 - 1 79)) 1 = 5 95 - 6 79 = 5 95 - 6(839 - 8 95) = 53 95 - 6 839 1 = 53(65.537 - 78 839) - 6 839 1 = (53 65.537 - 4140 839) mod 65.527 Luego inv (839, 65.537) = -4140 Por lo tanto, la trampa w

-1 = (-4140 + 65.537) mod 65.537 = 61.397

2b) Para descifrar el criptograma habrá que multiplicarlo por w -1

en el cuerpo =65.537 pero en el enunciado ya nos indican que C w

-1 mod = 12.930, 1.154,

33.458, 18.978, 8.850 por lo tanto lo único que hay que hacer es pasar estos valores por la mochila fácil de mayor a menor según el algoritmo para encontrar los vectores: M1’ (12.930) = 0100 0001 0100 1100 M2’ (1.154) = 0100 0001 0010 0000 M3’ (33.458) = 0100 1101 0100 0001 M4’ (18.978) = 0100 0100 0101 0010 M5’ (8.850) = 0100 1001 0100 0100 M = 01000001 01001100 01000001 00100000 01001101 01000001 01000100 01010010 01001001 01000100 2c) Buscando la equivalencia ASCII de estos valores (tabla dada en clase) se obtiene en mensaje M = ALA MADRID Observación: El mensaje correcto debería tener 13 caracteres M = ¡HALA MADRID! pero sería un error presuponer que un individuo que pinta las paredes tenga un

Page 33: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 1997

Departamento de Lenguajes, Proyectos y Sistemas Informáticos pág. 5

mínimo nivel de cultura.

2d) Sumando or exclusivo las cadenas de 16 bits, se tiene: 01000001 01001100 01000001 00100000 01001101 01000001 01000100 01010010 01001001 01000100 Suma: 01000000 00111011 Se podría pasar este vector por la mochila difícil para incluir una especie de MAC que sería igual al número 1.678+7.155+14.310+28.620+48.943+32.349 = 133.055. En recepción se descifraría el criptograma y se aplicaría la misma función hash al documento recuperado para confrontar ambos valores. Esto indica que el mensaje no ha sido modificado y que posee integridad, pero no es una firma digital. Otra solución podría consistir en incluir en el criptograma los caracteres ASCII que resultan de esta suma, en este caso @;. 2e) Puesto que la suma de los elementos de la mochila fácil es 2

16-1 = 65.535 se

podría haber elegido = 216

= 65.536 y el factor w = 3 puesto que mcd (3, 65536) = 1.

EJERCICIO PRÁCTICO Nº 3: (2.0 puntos. Tiempo Recomendado: 45 minutos) Adelaida quiere enviar a Brunilda el mensaje M = HOLA = 72 79 76 65 mediante el algoritmo de cifra de ElGamal. Brunilda trabaja con p = 991, ab = 7, b = 7 (privado) y clave pública ab

b mod p = 22. Adelaida trabaja con q = 1009, aa = 4, a = 4 (privado) y

clave pública aaa mod q = 256. Si en el proceso de cifra se usa = 13 y en la firma h =

5, se pide:

a) Cifrar el mensaje enviado por Adelaida.

b) Firmar dicho mensaje con el último elemento del texto en claro, A = 65. c) Descifrar el criptograma recibido por Brunilda.

d) Comprobar en recepción la firma de Adelaida.

e) ¿Es una buena política usar el algoritmo de firma digital indicado en el apartado b) de este ejercicio? ¿Por qué sí o por qué no? En todo caso, proponga Ud. otro algoritmo.

Algunos cálculos de interés: 7

13 mod 991 = 777 22

13 mod 991 = 323 inv(323,991) = 135

25615

mod 1009 = 576 inv (5,1008) = 605 465

mod 1009 = 568

Solución: 3a) Se cifra carácter a carácter porque el grupo p y q no permiten una cifra mayor. Para enviar un mensaje a Brunilda se trabajará con sus parámetros públicos. C = [ab , Ci] = [ab , Mi(ab

b) ] mod p

Mi=M1M2M3M4 = HOLA = 72 79 76 65 Como: ab mod p = 7

13 mod 991 = 777 (dado en el enunciado)

y (abb) mod p = 22

13 mod 991 = 323 (dado en el enunciado) entonces:

C1 = 72 323 mod 991 = 463 C2 = 79 323 mod 991 = 742 C3 = 76 323 mod 991 = 764 C4 = 65 323 mod 991 = 184 Luego: C = [777, 463, 742, 764, 184] 3b) Para la firma se trabaja con los parámetros de Adelaida. Firma = [r, s] r = aa

h mod q = 4

5 mod 1009 = 15

Page 34: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 1997

Departamento de Lenguajes, Proyectos y Sistemas Informáticos pág. 6

s = (M - a r) h -1

mod (q) = (65 - 4 15) inv(5,1008) mod 1008 Pero inv(5,1008) = 605 (dado en el enunciado); por lo tanto: s = (65 - 4 15) 605 mod 1008 = 5 605 mod 1008 = 1. Luego Firma = [r,s] = [15,1]

3c) Para descifrar Brunilda hace lo siguiente: Mi = [Mi(ab

b) mod p] / (ab )

b mod p = [Mi(ab

b) inv((ab )

b , p))] mod p

Como (ab )b mod p = (ab

b) mod p = 22

13 mod 991 = 323 (dado en el enunciado), el

Inv (323,991) = 135 (dado en el enunciado) y Mi(abb) mod p = Ci entonces:

M1 = C1 inv((ab )b mod p = 463 135 mod 991 = 72

M2 = C2 inv((ab )b mod p = 742 135 mod 991 = 79

M3 = C3 inv((ab )b mod p = 764 135 mod 991 = 76

M4 = C4 inv((ab )b mod p = 184 135 mod 991 = 65

El valor de (ab )b mod p también puede calcularse a partir de ab mod p = 777, que es

el primer elemento que recibe Brunilda, y elevarlo a su clave privada b, es decir 7777

mod 991 = 323. Que son los valores decimales ASCII del mensaje original M = HOLA. 3d) Para comprobar la firma de Adelaida, Brunilda recibe [r, s] = [15, 1] y calcula: (aa

a )r mod q = 256

15 mod 1009 = 576 (dado en el enunciado) y luego calcula:

(aaa )r r

s mod q = 576 15

1 mod 1009 = 568

Este último valor deberá coincidir con (aa)M mod q = 4

65 mod 1009

Como 465

mod 1009 = 568 (dado en el enunciado), se comprueba la firma. 3d) No, porque toma sólo el último carácter del texto en claro (A = 65) con lo que cualquier mensaje terminado en A tendrá igual firma y ésta debe ser distinta por definición para cada mensaje. La solución sería aplicar una función hash de forma que para cada mensaje distinto se obtenga un resumen distinto, por ejemplo los algoritmos MD5 o SHA-1.

Page 35: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 1997

Departamento de Lenguajes, Proyectos y Sistemas Informáticos pág. 1

PARTE TEÓRICA PREGUNTAS DE TEORÍA: (0.5 puntos c/u. Tiempo Recomendado: 1 hora)

1. Un intruso capta parte de un mensaje cifrado con un método monoalfabético de bajo nivel, al parecer sustitución afín, y que va dirigido al presidente de la empresa “Arroz La Lluvia”. Si el criptograma en cuestión es: C = … HFLXF JQKNK GFZHL CLCQB COFBK XCICI KCLLF AXCXX QSRCZ CDCBC ….

a) ¿Cuál es la operación de cifra y sus parámetros?

b) Encuentre el alfabeto de cifrado.

c) Descifre el mensaje que se esconde.

Solución:

a) Como el sistema de cifra es monoalfabético, es muy posible que los caracteres repetidos LL y XX del criptograma se correspondan con los caracteres RR y LL de “Arroz la Lluvia” por lo que supondremos esta correspondencia de texto en claro con el criptograma para plantear el sistema de ecuaciones que nos dé la solución a los valores de a y b en la ecuación C = (a M + b) mod n:

L = (a R + b) mod n 11 = (a 18 + b) mod 27 (ecuación 1) X = (a L + b) mod n 24 = (a 11 + b) mod 27 (ecuación 2) Restando la ecuación 2 de la 1, se tiene: -13 = a 7 mod 27 a = (-13) inv(7,27) mod 27 a = -13 4 mod 27 = -52 mod 27 = 2 Reemplazando este valor en la ecuación 2: 24 = (2 11 + b) mod 27 b = (24 - 2 11) mod 27 = 2 La ecuación de cifra será: C = (2 M + 2) mod 27

b) Mediante la ecuación del punto a) se encuentra el siguiente alfabeto de cifra: 0 1 2 3 4 5 6 7 8 9 1

0

1

1

1

2

1

3

1

4

1

5

1

6

1

7

1

8

1

9

2

0

2

1

2

2

2

3

2

4

2

5

2

6 Alfabeto

Claro

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 Alfabeto

Cifrado

C E G I K M Ñ P R T V X Z B D F H J L N O Q S U W Y A

c) Usando la tabla anterior se encuentra el mensaje: C = HFLXF JQKNK GFZHL CLCQB COFBK XCICI KCLLF AXCXX QSRCZ CDCBC M = PORLO QUESE COMPR ARAUN ATONE LADAD EARRO ZLALL UVIAM AÑANA

M = … por lo que se comprará una tonelada de arroz la lluvia mañana …

2. En un sistema de cifra de Hill por trigramas en módulo 27 se proponen dos claves simbólicas a) CARIÑOSAS y b) AVENTURAS. Se pide encontrar si son válidas las dos, una de ellas o bien ninguna. En cualquier caso, deberá justificar su respuesta matemáticamente.

Solución: Sea K1 = CARIÑOSAS y K2 = AVENTURAS. Para que sean matrices válidas de cifra en el cuerpo n=27 deberá cumplirse que el determinante |Ki| sea distinto de cero y además primo relativo con el módulo 27.

Page 36: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 1997

Departamento de Lenguajes, Proyectos y Sistemas Informáticos pág. 2

C A R

I Ñ O

S A S

=

2 0 18

8 14 15

19 0 19

A V E

N T U

R A S

=

0 22 4

13 20 21

18 0 19

a) Clave K1 = CARIÑOSAS: |K1| = 2 (14 19 - 0 15) - 0 + 18 (8 0 - 19 14) mod 27 = -4256 mod 27 = 10 La clave simbólica CARIÑOSAS es válida porque |K1| > 0 y mcd (|K1|,n) = 1 b) Clave K2 = AVENTURAS: |K2| = 0 - 22 (13 19 - 18 21) + 4 (13 0 - 18 20) mod 27 = 1442 mod 27 = 11 La clave simbólica AVENTURAS es válida porque |K2| > 0 y mcd (|K2|,n) = 1

3. Se propone utilizar como función hash para obtener un resumen del mensaje en claro y poder así firmar digitalmente un documento la siguiente: contabilizar los caracteres del mensaje, agruparlos por frecuencia de aparición y asignar códigos binarios de forma que el código más bajo posible corresponda al carácter menos frecuente y el código binario más alto posible al carácter más frecuente. Hecho esto, se efectúa la suma or exclusivo dos a dos de todos estos valores.

a) Comente si el algoritmo de firma es adecuado y en cualquier caso justifique su respuesta.

b) Compare esta firma con el método MD5 que utiliza el PGP.

Solución:

a) Independientemente del alfabeto usado, ASCII por ejemplo, existirá una frecuencia característica de aparición de los caracteres que como mucho ocupará 8 bits de forma que 0000 0000 sería el valor correspondiente al carácter menos frecuente y un valor a lo sumo igual a 1111 1111 (incluyendo la tabla ASCII completa) al carácter más frecuente. En todo caso, la suma or exclusivo dos a dos de todos estos valores podría entregar como máximo 1111 1111, que representa el valor 2

8-

1 = 255, con lo que existirán tan sólo 255 firmas distintas posibles con este algoritmo, un valor muy bajo y por lo tanto nada adecuado para usarlo como firma digital. Si el texto tiene mucho formato o bien muestra una fuerte repetición de algunos caracteres y ausencia de otros, este valor puede ser incluso menor.

b) En el caso de la función hash que se obtiene con el algoritmo MD5, ésta no depende de las estadísticas del lenguaje y además entrega un resumen de 128 bits con lo que el número de firmas distintas asciende en este caso a 3,4x10

38 que

es un valor mucho más lógico.

4. Paquito desea enviar un mensaje cifrado a tres amigos y además firmarlo utilizando como herramienta el programa PGP.

a) ¿Qué datos tiene Paquito que permite cifrar y enviar el mensaje a sus amigos?

b) ¿Qué dato debe tener Paquito para poder firmar sus mensajes?

c) Si transmite el criptograma por Internet, ¿qué precaución debería tomar?

Solución:

a) Paquito tiene las claves públicas de sus tres amigos en su archivo o anillo de claves públicas PUBRING.PGP.

Page 37: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 1997

Departamento de Lenguajes, Proyectos y Sistemas Informáticos pág. 3

b) Tiene que haber creado su par de claves, una pública que está en el anillo indicado en el apartado anterior y una privada que está en el archivo o anillo de claves privadas SECRING.PGP a la que accede a través de una frase de paso secreta.

c) Debería incluir la opción armadura para convertir el texto resultante de la cifra en caracteres que puedan transmitirse por la red, en formato a Radix o Base 64.

PARTE PRÁCTICA Ejercicio Práctico nº 1: (2.0 puntos. Tiempo Recomendado: 45 minutos) Un criptoanalista se propone atacar un cifrado de Hill digrámico y para ello cuenta con el texto en claro M y su correspondiente criptograma C: M = HABIA UNA VEZ UN CIRCO C = PIEBR DVLBA IYHKZ ECP

a) Encontrar la matriz de cifra K y la matriz inversa K-1

mediante el método de vectores unitarios.

b) Comprobar la cifra del primer digrama con la matriz K encontrada.

Solución:

a) M = HA BI AU NA VE ZU NC IR CO C = PI EB RD VL BA IY HK ZE CP

En el criptograma encontramos el vector unitario BA = (1 0) que le corresponde el mensaje en claro VE = (22 4), luego ésta será la primera columna de la matriz inversa:

K-1

=22

4

1

2

X

X

Los valores de X1 y X2 lo obtenemos a partir de algún par digrámico mediante la ecuación M = K

-1C. En este caso sólo nos servirán los digramas C cuyo segundo

elemento sea distinto de cero y además primo relativo con el módulo n = 27 para que exista el inverso; es decir todos excepto RD y el ya usado BA. La elección óptima por razones obvias es el digrama C = EB puesto que B=1 y entonces inv (B,n)=1. Luego:

B

I =

22

4

1

2

X

X

E

B

a1) B = (22 E + X1 B) mod 27 1 = (22 4 + X1) mod 27 X1 = (1 - 22 4) mod 27 = 21 a2) I = (4 E + X2 B) mod 27 8 = (4 4 + X2) mod 27 X2 = (8 - 4 4) mod 27 = 19

Luego la matriz inversa será:

K-1

=22 21

4 19

Para calcular la matriz de cifra K, como tenemos la inversa, volvemos a invertirla, es decir K = (K

-1)-1

por lo tanto: K = T(Adj (K

-1)) / |K

-1| = T(Adj K

-1)) inv(|K

-1|,n)

|K-1

| = (22 19 - 4 21) mod 27 = 334 mod 27 = 10 inv (|K

-1|,n) = inv (10,27) = 19

Page 38: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 1997

Departamento de Lenguajes, Proyectos y Sistemas Informáticos pág. 4

Adj(K-1

) = 2221

419 T (Adj (K

-1)) =

19 21

4 22

Luego K = 19 19 21 19

4 19 22 19mod 27 K =

10 6

5 13

b) Cifrando el primer digrama del mensaje HA = (7 0) con la matriz K se obtiene: C1 = (10 7 + 7 0) mod 27 = 16 = P C2 = (5 7 + 13 0) mod 27 = 8 = I

Ejercicio práctico nº 2: (2.0 puntos. Tiempo Recomendado: 30 minutos) En plena guerra fría, el comandante Anatoli Kremlin desea enviar un disquete con un archivo que contiene un mensaje cifrado a su camarada Boris Vodka sobre la suerte que ha corrido el espía Igor Smirnoff (conocido en el mundillo como Curro) y que en una misión secreta ha caído prisionero por el bando enemigo y luego ha desaparecido. El mensaje de 17 caracteres es M = ESTA EN EL CARIBE. Si las claves pública y privada de Anatoli (A) y Boris (B) son las indicadas, el sistema de cifra utilizado es el RSA óptimo en cuanto a la longitud del bloque a cifrar y los caracteres se representan por su valor ASCII de 8 bits, se pide:

a) Expresar las ecuaciones de la cifra para este mensaje, sin calcular valores.

b) Expresar las ecuaciones de descifrado del criptograma, sin calcular valores. Anatoli: pA = 16.011; qA = 16.019; eA = 5; dA = 51.296.042 Boris: pB = 16.001; qB = 16.007; eB = 7; dB = 36.585.143

Solución: a) Según los datos del enunciado, los grupos de trabajo de cada uno será: Anatoli: nA = pA qA = 16.011 16.019 = 256.480.209 Boris: nB = pB qB = 16.001 16.007 = 256.128.007 Como los mensajes se intercambian en formato ASCII y el valor mayor es 255, entonces cada uno puede cifrar bloques de hasta tres caracteres porque el hipotético valor máximo sería 255.255.255 menor que el grupo de ambos. Si representamos _ como el carácter blanco, formamos seis bloques de 3 caracteres con lo que se obtiene: M1 = EST = 069083084 M2 = A_E = 065032069 M3 = N_E = 078032069 M4 = L_C = 076032067 M5 = ARI = 065082073 M6 = BE = 066069 La ecuación de cifra será Ci = Mi

eB mod nB = Mi

7 mod 256.128.007

Las valores que se obtienen (no se pide calcularlos en el examen) son: C1 = 224.293.659 C2 = 243.934.054 C3 = 180.473.117 C4 = 54.226.997 C5 = 64.371.557 C6 = 159.760.689

b) Las ecuaciones de descifrado serán Mi = CidB

mod nB = Ci36.585.143

mod 256.128.007.

Ejercicio práctico nº 3: (2.0 puntos. Tiempo Recomendado: 45 minutos) Firmar digitalmente el mensaje del punto 2 mediante el algoritmo RSA, usando para ello como función resumen del mensaje en claro el esquema que se indica:

Page 39: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 1997

Departamento de Lenguajes, Proyectos y Sistemas Informáticos pág. 5

M1 M2 Mn+R Cajas S Cajas S Cajas S (DES) (DES) ….. (DES) V0 V1 V2 Vn = r XOR XOR XOR Mi = Cadenas de seis caracteres de texto en claro. V0 = Vector inicial de 32 bits cuyo valor en hexadecimal es V0 = ABCD 1234. +R = Relleno de bits (todos unos) si el mensaje no es múltiplo de 48 bits. Nota: El valor r se subdivide para su posterior cifra en dos bloques de 16 bits: r1 y r2. a) Indicar todas las salidas del último bloque (bloque n) de Cajas S en decimal.

b) Si los vectores V1 y V2 son V1 = 0AA5 9FEB y V2 = 647E 9E34, encontrar el valor del resumen r = r1 r2 en decimal.

c) Expresar la ecuación de firma digital a partir del resumen r encontrado en el apartado anterior, sin calcular su valor.

Solución: a) Aunque en el examen se pide sólo el último bloque, en esta solución se entregará el problema completo. Como el mensaje tiene 17 caracteres, se usarán 3 bloques de cajas S (3 6 = 18) y en la última habrá un relleno de un byte es decir R = 1111 1111. M1 = ESTA_E = 01000101 01010011 01010100 01000001 00100000 01000101 M2 = N_EL_C = 01001110 00100000 01000101 01001100 00100000 01000011 M3 =ARIBE(+R) = 01000001 01010010 01001001 01000010 01000101 11111111 Los valores de las tres cajas S serán los que se indican en la tabla:

Bloque

I

Bloque

II

Bloque

III

Fila Col. Salida Fila Col. Salida Fila Col. Salida

S1 1 8 10 1 9 6 0 8 3

S2 1 10 1 2 1 14 1 10 1

S3 1 6 6 1 0 13 1 4 3

S4 0 10 8 1 2 11 1 4 6

S5 0 8 8 1 9 0 0 8 8

S6 0 9 13 0 1 1 2 2 15

S7 1 0 13 1 0 13 1 11 12

S8 1 2 13 1 1 15 3 15 11

b) Comprobación de los vectores V1 y V2 y cálculo del resumen r. En el examen sólo se pide este último valor.

Page 40: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 1997

Departamento de Lenguajes, Proyectos y Sistemas Informáticos pág. 6

Salida Bloque I: 1010 0001 0110 1000 1000 1101 1101 1101 Vector V0: 1010 1011 1100 1101 0001 0010 0011 0100 (ABCD 1234) Vector V1: 0000 1010 1010 0101 1001 1111 1110 1011 (Suma or exclusivo) Salida Bloque II: 0110 1110 1101 1011 0000 0001 1101 1111 Vector V1: 0000 1010 1010 0101 1001 1111 1110 1011 (0AA5 9FEB) Vector V2: 0110 0100 0111 1110 1001 1110 0011 0100 (Suma or exclusivo) Salida Bloque III: 0011 0001 0011 0110 1000 1111 1100 1011 Vector V2: 0110 0100 0111 1110 1001 1110 0011 0100 (647E 9E34) Vector V3 = r: 0101 0101 0100 1000 0001 0001 1111 1111 (Suma or exclusivo) Luego: r1 = 0101 0101 0100 1000 = 21.832 r2 = 0001 0001 1111 1111 = 4.607 c) Firma1 = r1

dA mod nA = 21.832

51.296.042 mod 256.480.209

Firma2 = r2dA

mod nA = 4.60751.296.042

mod 256.480.209 Realizando los cálculos (no pedidos en el examen) se obtiene: r1 = 6.152.071 r2 = 826.678 Nota: Si no se divide la firma digital en dos partes, el mayor valor posible de la función hash sería 32 bits unos, lo que es igual a 4.294.967.295 que resulta ser mayor que el tamaño del cuerpo de cifra. Con dos trozos de firma de 16 bits cada uno el mayor valor de cada uno sería 65.535, que ahora es mucho menor que el módulo en cuestión y además muy pequeña por lo que puede dar lugar a muchas colisiones. Ninguna de las dos situaciones son las más indicadas para una firma digital. Lo ideal (y lo que se hace en la práctica) es que el módulo de trabajo sea del orden de los 1.000 bits (1.024 o al menos 512) y el resumen de 128 ó 160 bits.

Page 41: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 1998

Departamento de Lenguajes, Proyectos y Sistemas Informáticos pág. 1

SOLUCIÓN DEL EXAMEN

PARTE TEÓRICA Cuestiones de Teoría: (0.5 pts c/u. Tiempo recomendado 30 minutos) 1) Se sospecha que un archivo ha sido cifrado mediante una sustitución polialfabética de

Beaufort. Tras aplicar el método de ataque de Kasiski al criptograma, aparecen las siguientes frecuencias relativas de los caracteres de cada uno de los subcriptogramas.

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

C1 4 3 1 2 2 0 3 1 22 6 6 0 28 1 1 1 0 0 3 4 14 10 1 3 12 0 5 C2 2 3 7 7 2 6 6 1 11 5 11 0 1 6 2 4 0 17 6 5 1 22 0 4 1 0 3

C3 6 3 7 0 0 4 3 0 2 13 5 9 0 25 2 0 0 0 2 4 8 6 10 1 5 18 0 C4 7 5 2 19 1 1 0 0 2 5 6 18 11 1 3 5 1 7 3 10 0 0 10 1 2 0 13 C5 5 2 1 2 21 2 6 1 20 0 3 0 0 2 6 12 5 13 1 5 11 0 6 4 4 0 0 C6 25 0 2 1 0 1 9 5 11 8 2 2 11 0 14 2 8 0 0 9 1 1 1 10 3 2 4 C7 15 0 1 10 2 1 2 13 4 4 1 17 2 1 0 0 0 7 7 7 8 0 8 11 1 8 2

Preguntas: a) Encuentre la clave. b) Compruebe que efectivamente es una clave válida si los 20 primeros elementos de criptograma son C = IKBZV ILDQX OPSRE ZFLOA. Ayuda: En el texto en claro la letra A predomina sobre la letra E.

Solución: a) En la tabla se han marcado las posiciones relativas de las letras A (en negrita), la letra E (subrayado doble) y la O (subrayado simple). En este caso por ser la cifra de Beaufort Ci = (-mi + ki) mod n, la rotación modular de la regla se lee de derecha a izquierda. Leyendo entonces los caracteres donde está la posición relativa de la letra A se obtiene la clave K = MUNDIAL. b) Aplicando la ecuación Mi = (ki - Ci) mod 27 o bien directamente desde la tabla de Beaufort: K = M U N D I A L M U N D I A L M U N D I A C = I K B Z V I L D Q X O P S R E Z F L O A M = E L M E N S A J E P O S I T I V I S T A

Como es un texto bastante largo y con sentido, se comprueba que la clave es la verdadera. El texto en claro es parte de una noticia aparecida el martes 23 de junio en el periódico El País, antes del trascendental partido de la selección española ante Bulgaria en Francia 98. El mensaje positivista de Clemente ha calado en el grupo. Hay que espantar la pesadilla de una

eliminación prematura, conciliar el sueño y aguardar a una radiante mañana estival. Unos hablan de no

perder las virtudes teologales. Es el caso de Zubizarreta: "Pase lo que pase y se diga lo que se diga, hay

que mantener la fe y la esperanza". Y otros apuntan ya incluso grandes proyectos. "Más de una vez

durante el día o la noche debes afrontar la imagen de una posible derrota", confiesa Amor, "te pasa por la

cabeza, pero la apartas, y piensas: 'si pasamos a los octavos, borraremos todo lo que ha ocurrido hasta

ahora y podremos aspirar a grandes cosas".

Frente a una situación tan extrema, parece imponerse más un ejercicio de voluntarismo que no una

autocrítica o reflexión más bien táctica. A tenor de las palabras de algún futbolista, para remontar

conviene recuperar la furia española. Alkorta fue el más explícito: "Las tácticas no sirven para nada; son

los jugadores los que sacan los partidos adelante poniendo mala leche". Hay que apelar pues a valores

como "la casta, la garra, la velocidad, las ganas". Y remacha el central: "El corazón es la mejor táctica".

(Sin comentarios)

Page 42: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 1998

Departamento de Lenguajes, Proyectos y Sistemas Informáticos pág. 2

2) Un sistema de cifra en bloque con clave secreta (IDEA) tiene una clave de 128 bits y

uno de clave pública (RSA) usa 512 bits para generar un par de números primos. Preguntas: a) ¿Qué significa esto bajo el punto de vista de la entropía de la clave? b) ¿Puede decirse que los 512 bits de RSA dan una mayor fortaleza que los 128 bits de IDEA?

Solución: a) En el caso del cifrador IDEA, al ser la clave binaria equiprobable, la entropía de la clave será la máxima, es decir H(X) = H(X)máx = log2 n = log2 2

128 = 128.

En el caso del sistema RSA, con 512 bits lo que hacemos es generar un par de números primos cada uno de 256 bits, pero en ningún caso podemos decir que la entropía de esta clave tenga 512 ó 256 estados equiprobables. La cantidad de números primos que existen y cuyo producto sea de 512 bits es muchísimo menor. b) No son comparables los 512 bits de RSA con los 128 de IDEA. 512 bits para generar un par de claves en RSA es un valor muy bajo y para sistemas simétricos, 128 bits de clave es muy alto. Además, en el primer caso el ataque sería por fuerza bruta en tanto que en el segundo hablamos de algoritmos de factorización. Por ello, las “longitudes” de las claves en sistemas simétricos como el IDEA son mucho menores que la de los sistemas asimétricos como RSA si se desea que sus niveles de seguridad sean comparables

3) Se nos pide utilizar un sistema de clave pública para que un protocolo de intercambio

de ficheros ftp sea seguro en el sentido de que el cliente pueda certificar en cualquier momento al servidor. Preguntas: a) Indique el número mínimo de claves a usar. b) Describa el protocolo de

intercambio de claves necesario.

Solución: a) Si lo que se desea es sólo certificar al servidor, hará falta solamente el par de claves por ejemplo del tipo RSA que éste genera, de forma que su clave pública la conocen todos sus usuarios. Si además se quiere que la transmisión sea segura en el sentido de confidencialidad, habrá que intercambiarse una clave secreta de sesión, por ejemplo en la misma forma que lo plantea pgp. b) El protocolo podría ser el siguiente: cuando un cliente desea conectarse al servidor, busca la clave pública de éste y le envía un mensaje de inicio de transmisión cifrado. El servidor lo descifra con su clave privada (sólo él puede hacerlo) y lo devuelve en claro al cliente. A partir de ese momento el cliente está seguro de que el servidor es quien dice ser. Si se desea además confidencialidad, el cliente genera una clave de sesión que envía al servidor cifrada con la clave pública de éste. Descifrada la clave en destino, se procede a la cifra de mensajes con un algoritmo simétrico.

Cuestiones de Prácticas: (0.5 pts c/u. Tiempo recomendado 15 minutos) 1) María José afirma que si un cifrado de Vigenère con una clave de longitud 7 no puede

romperse, menos podrá hacerse si la clave es de longitud 12. José Mari por el contrario cree que no tiene razón y dice que la longitud de la clave no es en este sentido un sinónimo de fortaleza en el cifrado ante un ataque por el método de Kasiski.

Page 43: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 1998

Departamento de Lenguajes, Proyectos y Sistemas Informáticos pág. 3

Preguntas: a) ¿Quién está en lo cierto y porqué? b) ¿Sucede lo mismo si la cifra es de

Beaufort?

Solución: a) Tiene razón José Mari porque puede darse el caso de que con longitud de clave 7 no se formen cadenas repetidas de longitud suficiente y, en cambio, con longitud 12 (no múltiplo del anterior) sí existan cadenas repetidas. Aunque el criptograma se rompa en subcriptogramas más pequeños y por tanto se tenga un número menor de caracteres para aplicar estadísticas y la regla AEO (y por ende mayor posibilidad de fallo), son suficientes para encontrar dichas posiciones relativas y romper así la clave. Véase la práctica de Vigenère en el Cuaderno de Prácticas. b) Puesto que en el algoritmo de Beaufort con respecto al de Vigenère sólo cambia el signo del alfabeto (negativo), se sigue cumpliendo la misma característica indicada anteriormente.

2) Nos muestran las cuatro mochilas M’ que se indican: M’1 = {2,3,7,18}; M’2 =

{3,5,10,25,44}; M’3 = {3,6,11,30,50,105} y M’4 = {2,3,6,13,25,52,103,210}. Preguntas: a) ¿Cuáles de estas cuatro mochilas pueden usarse para crear una mochila pública de M-H? b) Bajo el punto de vista de seguridad, ¿cuál de ellas elegiría?

Solución: a) De las cuatro mochilas, de tamaño n=4, n=5, n=6 y n=8, la tercera no es de tipo supercreciente (50=3+6+11+30), luego sólo podríamos utilizar M’1, M’2 y M’4 para generar una mochila M-H. b) Si bien el tamaño y los valores de cada una de las mochilas son extremadamente pequeños y facilitan un ataque por fuerza bruta, la que entrega una mayor seguridad sería M’2 ya que su tamaño no es múltiplo de 8, que es el número de bits de la representación ASCII del mensaje. Los demás criptogramas podrían romperse aplicando simplemente estadísticas del lenguaje al igual que en los sistemas de cifra monoalfabética por sustitución. También dependerá la seguridad del valor del módulo u elegido que no debe tener factores comunes con S’1 y S’2. Véase la práctica de Mochilas en el Cuaderno de Prácticas y el Informe Final de Prácticas.

PARTE PRÁCTICA

Ejercicio Nº 1: (2.5 pts. Tiempo recomendado 45 minutos) Se tiene el siguiente fichero en claro con su correspondiente texto cifrado.

M1 = A LA MÍNIMA OCASIÓN, LA VIDA VA Y TE METE UN GOL. C1 = IQ UU SÑ GK GG DE LP PB DV CV RG GQ ÑV AC WH JL DW QT

Se sabe que el método utilizado es el de Hill digrámico mod 27. a) ¿Se puede intentar en este ejemplo un ataque por medio de los vectores unitarios? b) Criptoanalice el sistema y encuentre la matriz clave. c) ¿Cuál es la clave simbólica usada en la operación de cifra? d) Encuentre la matriz de descifrado. e) Con la clave simbólica K = DIEZ, cifre los dos primeros bloques del mensaje

Page 44: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 1998

Departamento de Lenguajes, Proyectos y Sistemas Informáticos pág. 4

M2 = QUÉ MÁS ME DA, YO TENGO EL CUPÓN.

Solución: a) Es imposible intentar un ataque por medio de los vectores unitarios BA y AB pues no

existe ninguno ni en el texto en claro ni en el criptograma. b) Aplicando el método de matrices de Gauss-Jordan con [TextoEnClaro-TextoCifrado] a

los tres primeros elementos de cifra, se obtiene:

AL IQ

AM UU

IN SÑ

0 11 8 17

0 12 21 21

8 13 19 14

Multiplicando la primera fila por inv (11,27) = 5 y reduciendo mod 27se obtiene:

0 1 13 4

0 12 21 21

8 13 19 14

Multiplicando la tercera fila por inv (8,27) = 17 y reduciendo mod 27se obtiene:

0 1 13 4

0 12 21 21

1 5 26 22

Haciendo (3ª fila = 3ª fila - 5x1ª fila) mod 27, descartando la segunda fila y cambiando la posición de las dos filas restantes, se obtiene:

1 0 15 2

0 1 13 4

Al estar los vectores unitarios BA (10) y AB (01), la matriz de cifra K será:

K15 13

2 4

c) Puesto que 15 = O, 13 = N, 2 = C y 4 = E, la clave simbólica será entonces K = ONCE. d) La matriz inversa K

-1 será por fórmula = T(Adj K)/ |K|

Adj K T(Adj K( ) ( )) mod4 2

13 15

4 13

2 15

4 14

25 1527

Como |K| mod 27 = (15x4 - 13x2) = (60 - 26) = 34 mod 27 = 7 e inv (7,27) = 4 entonces:

Inversa Kx x

x x( ) mod

4 4 14 4

25 4 15 427

16 2

19 6

Efectivamente, con esta matriz se descifra el criptograma. Como C1C2 = IQ = 8 17, entonces:

M

M

C

C

M

M

x x

x x

A

L

1

2

1

2

1

2

16 2

19 6

16 2

19 6

8

17

16 8 2 17

19 8 6 1727

0

11mod

Los demás elementos del criptograma se descifran de igual manera. e) Como D = 3, I = 8, E = 4 y Z = 26, y los dos primeros bloques del texto en claro son QU

(17 21) y EM (4 12), la matriz de cifra y el cifrado pedido serán:

C

C

M

M

x x

x x

D

T

1

2

1

2

3 8

4 26

3 8

4 26

17

21

3 17 8 21

4 17 26 2127

3

20mod

Page 45: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 1998

Departamento de Lenguajes, Proyectos y Sistemas Informáticos pág. 5

C

C

M

M

x x

x x

A

E

3

4

3

4

3 8

4 26

3 8

4 26

4

12

3 4 8 12

4 4 26 1227

0

4mod

Ejercicio Nº 2: (2.5 pts. Tiempo recomendado 45 minutos) Se desea cifrar el mensaje M = “FRANCIA 98” de diez caracteres ASCII usando un sistema de mochila. La mochila privada nos viene impuesta S’ = {3, 8, 12, 25, 50, 99} y se nos exige que el parámetro u sea el mínimo posible y que el parámetro w sea el cuadrado de su valor mínimo posible. a) Encuentre la mochila pública. b) Cifre el mensaje. c) Indique con cuántos bits debería transmitirse el criptograma.

d) Descifre el criptograma anterior. Para calcular el inverso w-1

se debe usar obligatoriamente el algoritmo Extendido de Euclides de restos.

e) ¿Será seguro el sistema de cifra con esta mochila y parámetros? ¿Por qué? Ayuda: ASCII( )10 = 032; ASCII(8)10 = 056; ASCII(A)10 = 065.

Solución: a) Como S’ = {3, 8, 12, 25, 50, 99} es supercreciente y sus elementos suman 197, el valor mínimo de u será 197 + 1 = 198. Como 198 = 2x3

2x11, el valor mínimo de w tal que mcd

(u, w) = 1 será 5; por lo tanto el valor que nos exigen es 52 = 25. Luego, u = 198, w = 25.

S1 = S’1 x w mod u = 3 x 25 mod 198 = 75 S2 = S’2 x w mod u = 8 x 25 mod 198 = 2 S3 = S’3 x w mod u = 12 x 25 mod 198 = 102 S4 = S’4 x w mod u = 25 x 25 mod 198 = 31 S5 = S’5 x w mod u = 50 x 25 mod 198 = 62 S6 = S’6 x w mod u = 99 x 25 mod 198 = 99

Luego la mochila pública será: S = {75, 2, 102, 31, 62, 99} b) La representación de los caracteres del mensaje es: F = 07010 = 0100 01102 R = 08210 = 0101 00102 A = 06510 = 0100 00012 N = 07810 = 0100 11102 C = 06710 = 0100 00112 I = 07310 = 0100 10012 = 03210 = 0010 00002 9 = 05710 = 0011 10012 8 = 05610 = 0011 10002 Agrupando de seis en seis bits para cifrar con la mochila S, se obtienen 15 bloques: 010001 100101 001001 000001 010011 100100 001101 001001 010000 010010 000000 111001 001110 000000 (estos últimos ceros son de relleno) Pasando los bloques por la mochila S, se obtiene el siguiente criptograma: C = 101 205 201 099 163 106 232 201 002 064 000 278 195 000 c) Puesto que el mayor mensaje posible será una cadena de seis unos (111111) y los elementos de la mochila difícil suman (75+2+102+31+62+99) = 371 = 1011100112, valor que se representa en binario con 9 bits, deberán transmitirse los elementos del criptograma con 9 bits. d) Para descifrar el criptograma anterior, multiplicamos cada elemento por w

-1 y pasamos

este resultado por la mochila fácil S’. Cálculo de w-1

según método de restos de Euclides: 198 = 7x25 + 23 23 = 198 - 7x25 25 = 1x23 + 2 2 = 25 - 1x23 2 = 25 - (198 - 7x25) = -198 + 8x25 23 = 11x2 + 1 1 = 23 - 11x2 1 = (198 - 7x25) - 11x(-198 + 8x25) 2 = 2x1 + 0 1 = 12x198 - 95x25 mod 198

El inv (25, 198) = -95 = 103.

Page 46: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 1998

Departamento de Lenguajes, Proyectos y Sistemas Informáticos pág. 6

Multiplicado entonces y pasando por la mochila simple S’ = {3, 8, 12, 25, 50, 99} se tiene: 101 x 103 mod 198 = 10.403 mod 198 = 107 = [0 1 0 0 0 1] 205 x 103 mod 198 = 21.115 mod 198 = 127 = [1 0 0 1 0 1] 201 x 103 mod 198 = 20.703 mod 198 = 111 = [0 0 1 0 0 1] 099 x 103 mod 198 = 10.197 mod 198 = 099 = [0 0 0 0 0 1] 163 x 103 mod 198 = 16.789 mod 168 = 157 = [0 1 0 0 1 1] 106 x 103 mod 198 = 10.918 mod 198 = 028 = [1 0 0 1 0 0] 232 x 103 mod 198 = 23.896 mod 198 = 136 = [0 0 1 1 0 1] 201 x 103 mod 198 = 20.703 mod 198 = 111 = [0 0 1 0 0 1] 002 x 103 mod 198 = 00.206 mod 198 = 008 = [0 1 0 0 0 0] 064 x 103 mod 198 = 06.592 mod 198 = 058 = [0 1 0 0 1 0] 000 x 103 mod 198 = 00.000 mod 168 = 000 = [0 0 0 0 0 0] 278 x 103 mod 198 = 28.634 mod 198 = 122 = [1 1 1 0 0 1] 195 x 103 mod 198 = 20.085 mod 198 = 087 = [0 0 1 1 1 0] 000 x 103 mod 198 = 00.000 mod 198 = 000 = [0 0 0 0 0 0]

La última columna coincide con los bloques de seis bits formados para cifrar por lo que agrupándolos en bytes de obtiene nuevamente la cadena M = FRANCIA 98. e) Como mcd (S1, u) = mcd (75, 198) = 3 y mcd (S2, u) = mcd (2, 198) = 2; es decir no se cumple la primalidad entre ellos, no podrá plantearse un ataque del tipo Shamir a la mochila M-H y la mochila bajo este concepto sería segura. Desgraciadamente su tamaño y valores son muy pequeños por lo que resulta fácil un ataque por fuerza bruta a partir de la mochila difícil.

Ejercicio Nº 3: (2.5 pts. Tiempo recomendado 45 minutos)

Adelaida (A) y Benito (B) se envían mensajes cifrados con el algoritmo DES. Como ambos tienen muy mala memoria, olvidan a menudo su clave secreta; cuando no es uno es el otro. Como solución, deciden utilizar el algoritmo de Diffie-Hellman para intercambiar una clave de sesión única. Para ello eligen en cada comunicación valores primos que estén comprendidos entre 5 y 50 y un generador que van cambiando en cada sesión. El algoritmo es el siguiente: a través del protocolo de Diffie-Hellman comparten un número secreto dentro de ese cuerpo que luego utilizan para buscar caracteres separados esa misma distancia dentro de un texto predeterminado y secreto (el texto base se muestra en el apartado b). Una vez encuentran los 8 caracteres necesarios para la clave, cifran en el modo habitual. Como puede ver, este sistema resulta bastante más complicado que el anterior pero como nuestros amigos se lo pasan muy bien haciendo estas cosas lo adoptan como estándar. a) Encuentre el número secreto de sesión si A elige a = 10 y B elige b = 8, trabajando

ambos en el cuerpo Z*47 con el generador = 10.

b) Si el texto base es el indicado, encuentre la clave en caracteres y la clave efectiva en binario. ENUNL UGARD ELAMA NCHAD ECUYO NOMBR ENOQU IEROA CORDA RMENO HAMUC HOTIE MPOQU EVIVÍ AUNHI DALGO DELOS DELAN ZAENA STILL EROAD ARGAA NTIGU AROCÍ NFLAC OYGAL GOCOR REDOR UNAOL LADEA LGOMÁ SVACA QUECA RNERO SALPI CÓNLA SMÁSN OCHES DUELO SYQUE BRANT OSLOS SÁBAD OSLEN TEJAS LOSVI ERNES YALGÚ NPALO MINOD EAÑAD IDURA LOSDO MINGO SCONS UMÍAN LASTR ESPAR TESDE SUHAC IENDA ELRES TODEL LACON CLUÍA NSAYO VELAR TECAL ZASDE VELLU DOPAR ALASF IESTA SCONS USPAN TUFLO SDELO MESMO.

c) Con respecto a la fortaleza de este sistema, ¿qué sucede si el secreto del texto base

Page 47: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 1998

Departamento de Lenguajes, Proyectos y Sistemas Informáticos pág. 7

está en entredicho? ¿Qué puede decir de la entropía de la clave y de la distancia de

unicidad? d) Si en vez de 10 se elige como generador el valor = 2, ¿es mejor o peor elección y

porqué?

Solución: a) Adelaida elige a = 10 y calcula

a mod p = 10

10 mod 47 = 21, valor que envía a Benito.

Por su parte, Benito elige b = 8 y calcula b mod p = 10

8 mod 47 = 27 que envía a

Adelaida. Luego, Adelaida calcula 27a mod p = 27

10 mod 47 = 25 y Benito calcula 21

b

mod p = 218 mod 47 = 25. Ambos comparten el valor

ab mod p = 10

10*8 mod 47 = 10

80

mod 47 = 42*42 mod 47 = 25. b) Se recorre el texto eligiendo un carácter cada 25 posiciones (indicado en el texto en negrita y subrayado) por lo que la clave es K = OOILCAIE. Pasando a código ASCII, la clave binaria de 64 bits será como se indica

O = 0100 1111 O = 0100 1111 I = 0100 1001 L = 01001100 C = 0100 0011 A = 0100 0001 I = 0100 1001 E = 0100 0101

Eliminando el último bit de cada carácter (aunque aquí no exista el concepto de paridad) se obtiene la clave efectiva de 56 bits que se indica:

K = 0100111 0100111 0100100 0100110 0100001 0100000 0100100 0100010 c) Si se conoce el texto y el algoritmo de selección de caracteres, el número de claves posibles es muy pequeño. Para p = 47 se tendrán p-1 = 46 combinaciones posibles, desde letras separadas 1 espacio hasta letras separadas 46 espacios por lo que las primeras y últimas claves serán: K1 = ENUNLUGA; K2 = NNUADLMN; …………..….. K45 = ANRASOLF; K46 = RADSIULO Si trabajan con primos comprendidos entre 5 y 50, éste podrá ser cualquiera: 5, 7, 11, 13, 17, 19, 23,29, 37, 41 ó 47. El número de claves sería 4+6+10+12+16+18+22+28+36+40+46 = 238, un valor muy bajo que permite un fácil ataque por fuerza bruta. La entropía de la clave y, por tanto, la distancia de unicidad serán muy bajas al no ser los 64 bits de clave equiprobables. Más aún, de todas estas claves, 40 serán repetidas por lo que para, un mismo texto base, el número de claves distintas será solamente 46 facilitando sobremanera el ataque por fuerza bruta. En resumen, podemos decir que nuestros amigos, criptográficamente hablando, lo han hecho muy mal. d) El valor de = 10 es un generador en el grupo Z*47 ya que

r mod 47, siendo r todos

los restos del cuerpo, genera el conjunto completo de restos. En cambio, = 2 no es un generador en este cuerpo ya que produce un ciclo de repetición a partir de r = 23. Por lo tanto elegir = 2 sería una peor elección ya que daríamos ventajas al posible criptoanalista.

Page 48: Solución Exa Jun 95_002 (1)

EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 1998

Departamento de Lenguajes, Proyectos y Sistemas Informáticos pág. 1

SOLUCIÓN DEL EXAMEN

PARTE TEÓRICA

Cuestiones de Teoría: (0.5 pts c/u. Tiempo recomendado 30 minutos) 1) Se cifra mediante una mochila de 8 elementos un mensaje obteniéndose el

criptograma que se indica: 462 602 642 462 104 462 602 104 670 714 104

410 462 602 346 578 742 104 462 482 462 578 410 550 742 104 434 462 104 394 346 598 574 230 104 394 742 714 104 578 742 394 318 346 550

230 602 104 410 670 462 602 104 670 602 230 104 742 394 318 742 104 366 346 642 602 Preguntas: a) ¿Es seguro el sistema de cifra empleado? b) Conociendo que la clave o mochila pública del sistema es S = {251, 202, 104, 208, 116, 232, 164, 28} ¿podría atacarse la cifra?

Solución:

a) El sistema de cifra es muy inseguro puesto que el tamaño de la mochila es de 8 bits, igual a un byte. Esto significa que los caracteres ASCII se cifrarán siempre con el mismo valor y el sistema será análogo a una cifra de sustitución monoalfabética muy vulnerable. b) Sí podría intentarse romper la cifra porque la cantidad de números que corresponden a caracteres cifrados (66) es suficientemente alto como para intentar un ataque por análisis de frecuencias. De hecho, el número más frecuente (104) del criptograma corresponde al carácter espacio ASCII10 = 32 que en binario es 0010 0000, que entrega e1 104 al pasar por la mochila. El segundo número más frecuente es el 462 que no resulta tan difícil deducir que corresponde a la suma de los elementos segundo, sexto y octavo de la mochila, es decir 0100 0101 (202+232+28) que es la representación binaria de la letra E Con este mismo razonamiento podemos ir rompiendo el criptograma por partes, formando palabras, etc. hasta llegar al mensaje en claro cuyo contenido es: ESTE ES UN PÉSIMO EJEMPLO DE CIFRA CON MOCHILAS PUES USA OCHO BITS.

2) La entrada (IN) de 48 bits representados en hexadecimal de las 8 cajas S de

una vuelta del DES es la cadena IN16 = 123456ABCDEF. Preguntas: a) ¿Cuál es la salida de cada una de las cajas S en representación decimal? b) ¿Cuál es la cadena de bits a la salida de esta etapa? ¿Cuál es su representación en hexadecimal?

Solución:

IN = 0001 0010 0011 0100 0101 0110 1010 1011 1100 1101 1110 1111. Agrupando en bloques de 6 bits, IN = 000100 100011 010001 010110 101010 111100 110111 101111. a) En la tabla se muestra las entradas y salidas de cada caja S. b) En la tabla se muestran las salidas en binario y en hexadecimal.

Page 49: Solución Exa Jun 95_002 (1)

EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 1998

Departamento de Lenguajes, Proyectos y Sistemas Informáticos pág. 2

S1 S2 S3 S4 S5 S6 S7 S8

ENTRADA 000100 100011 010001 010110 101010 111100 110111 101111

FILA 0 3 1 0 2 2 3 3

COLUMNA 2 1 8 11 5 14 11 7

SALIDA10 13 8 2 5 13 11 15 13

SALIDA2 1101 1000 0010 0101 1101 1011 1111 1101

SALIDA16 D 8 2 5 D B F D

3) Paquito intenta explicar a Eulalia las ventajas de firmar un documento

digitalmente a partir del resumen MD5 del mensaje. Preguntas: a) ¿Cómo le explica a Eulalia que es muy difícil que alguien encuentre a partir de ese resumen el mensaje en claro que lo generó? b) ¿Cómo le convence ahora sobre la imposibilidad de que dos mensajes distintos tengan igual resumen?

Solución:

a) Porque la función hash MD5 al ser unidireccional no puede invertirse. Resulta imposible deducir el mensaje a partir de su resumen. La dificultad de encontrar un mensaje a partir de su resumen es del orden de 2

128 operaciones.

b) Como cada resumen tiene 128 bits y éstos son el resultado de diversas operaciones del algoritmo que entregan como resumen una cadena de bits de carácter casi aleatorio que dependen de cada uno de los bits de entrada, la dificultad de encontrarse con dos mensajes que tengan el mismo resumen es del orden de 2

64 operaciones. Esto convierte en casi imposible el hecho de que dos

mensajes al azar tengan resúmenes iguales. Nota: ambas conjeturas son aceptables; han sido presentadas por Ron Rivest y todavía no se ha demostrado lo contrario. No obstante MD5 presenta algunos puntos débiles.

Cuestiones de Prácticas: (0.5 pts c/u. Tiempo recomendado 15 minutos) 1) Dos archivos de texto distintos se cifran el primero con un algoritmo de

decimación pura y el segundo con uno de sustitución afín. Se procede al ataque del segundo de ellos con éxito. Preguntas: a) Explique de forma resumida cómo se ha roto la operación de cifra. b) Si el factor de decimación a en ambos casos es el mismo valor, ¿es posible descifrar con los datos encontrados en el ataque anterior el primero de los archivos y porqué?

Solución:

a) Como es una sustitución monoalfabética, se buscan los caracteres más

frecuentes del criptograma y se asocian a los caracteres más frecuentes del alfabeto. Esto da origen a dos ecuaciones independientes de las que se despejan la constante de decimación a y la constante de desplazamiento b.

Con esto se obtiene el alfabeto de cifrado que permite descifrar o bien se descifra aplicando a cada elemento del criptograma la función inversa.

Page 50: Solución Exa Jun 95_002 (1)

EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 1998

Departamento de Lenguajes, Proyectos y Sistemas Informáticos pág. 3

b) Aunque el factor de decimación sea el mismo en ambas cifras, no serán iguales los alfabetos de cifrado, por lo que no se puede descifrar de forma inmediata el otro archivo. Evidentemente, no se acepta como sustitución afín aquella ecuación en la que la constante de desplazamiento valga cero. No obstante, podría restarse el valor de b en el alfabeto anterior y así descifrar el criptograma de forma directa.

2) Trabajando con PGP se crean las claves de dos usuarios Usr1 y Usr2, en

este mismo orden. Hecho esto, el usuario Usr1 desea enviar un mensaje en claro y firmado al usuario Usr2. Preguntas: a) ¿Qué usuario queda por defecto y cómo se fuerza por programa a que el usuario sea siempre el mismo si hay más de una clave privada? b) ¿Qué comando debe usar Usr1 en este entorno para enviar a Usr2 el mensaje document.txt en claro incluyendo su firma digital? Justifique cada uno de los elementos que incluya en la línea de comando.

Solución:

a) Siempre queda como usuario el último en crearse por lo que en este caso el usuario por defecto será Usr2. Forzamos por programa a un usuario añadiendo la línea MyName = “Nombre de usuario” en el programa config.txt del pgp. b) Como Usr1 no es el usuario por defecto, el comando será: pgp sta document.txt Usr2 - u Usr1 donde:

pgp: comando principal del programa s: inclusión de la firma de Usr1 a partir de su clave privada y frase de paso t: fuerza a que se transmita el mensaje como texto en claro a: indica que se incluya armadura en el proceso de firma Usr2: es el usuario de destino o receptor -u Usr1: fuerza al cambio de usuario por defecto a Usr1, el transmisor.

PARTE PRÁCTICA

Ejercicio Nº 1: (2.5 pts. Tiempo recomendado 45 minutos) Un cifrado de Hill ha utilizado una de estas claves simbólicas K1 = MILITANTE, K2 = CALAVERAS o K3 = AMATISTAS trabajando en el cuerpo de las letras mayúsculas. Recuerde que con claves simbólicas la clave escrita de izquierda a derecha da lugar a sus elementos. Por ejemplo, para la clave K1 se tiene:

k11 = M, k12 = I, k13 = L, k21 = I, k22 = T, k23 = A, k31 = N, k32 = T, k33 = E

Preguntas: a) ¿Cuál podría ser la clave usada en la cifra y por qué descarta a las demás? b) Encuentre la matriz inversa de la clave de cifra. c) Si el criptograma de la cifra es C = SDN PIN HYX, encuentre el mensaje en

claro.

Solución:

Los determinantes |K| de las tres claves serán:

Page 51: Solución Exa Jun 95_002 (1)

EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 1998

Departamento de Lenguajes, Proyectos y Sistemas Informáticos pág. 4

K1

12 8 11

8 20 0

13 20 4

|K1| = [12(20*4-20*0) - 8(8*4-13*0) + 11(8*20-13*20)] mod

27=9

K2

2 0 11

0 22 4

18 0 19

|K2 = [2(22*19-0*4) - 0 + 11(0*0-18*22)] mod 27 = 17

K3

0 12 0

20 8 19

20 0 19

|K3| = [0 - 12(20*19-20*19) + 0] mod 27 = 0

a) La única clave válida es K2 ya que mcd (17, 27) = 1. K1 no es una clave válida porque mcd (3, 27) = 3 y la clave K3 tampoco es válida porque entrega una matriz singular con determinante igual a cero. b) K

-1 = T[Adj(K)]/|K|

K Adj K T(Adj K

2 0 11

0 22 4

18 0 19

13 18 9

0 2 0

1 19 17

13 0 1

18 2 19

9 0 17

( ) ( ))

Como el inv (|K|, n) = inv (17, 27) = 8 entonces la matriz de descifrado será:

inv K( ) mod

13 0 1

18 2 19

9 0 17

8 27

23 0 8

9 16 17

18 0 1

c) C = SDN PIN HYX C1 = (19 3 13); C2 = (16 8 13) y C3 = (7 25 24).

M1

23 0 8

9 16 17

18 0 1

19

3

13

M1 (23*19+0*3+8*13) mod 27 = 541 mod 27 = 01 = B (9*19+16*3+17*13) mod 27 = 440 mod 27 = 08 = I (18*19+0*3+1*13) mod 27 = 355 mod 27 = 04 = E

M2

23 0 8

9 16 17

18 0 1

16

8

13

M2 (23*16+0*8+8*13) mod 27 = 472 mod 27 = 13 = N (9*16+16*8+17*13) mod 27 = 493 mod 27 = 07 = H (18*16+0*8+1*13) mod 27 = 301 mod 27 = 04 = E

M3

23 0 8

9 16 17

18 0 1

7

25

24

M3 (23*7+0*25+8*24) mod 27 = 353 mod 27 = 02 = C (9*7+16*25+17*24) mod 27 = 871 mod 27 = 07 = H (18*7+0*25+1*24) mod 27 = 150 mod 27 = 15 = O

Page 52: Solución Exa Jun 95_002 (1)

EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 1998

Departamento de Lenguajes, Proyectos y Sistemas Informáticos pág. 5

Luego, el mensaje es M = BIEN HECHO.

Ejercicio Nº 2: (2.5 pts. Tiempo recomendado 45 minutos) La siguiente tabla muestra una parte de los resultados de las operaciones algebraicas que se desarrollan en el algoritmo IDEA con 16 bits expresados en base decimal. NOTA: en la solución están indicados todos.

X Y X + Y X Y X Y

32.768 32.765 65.533 65.533 16.386

32.768 32.766 65.534 65.534 49.154

32.768 32.767 65.535 65.535 16.385

32.768 32.768 0 0 49.153

32.768 32.769 1 1 16.384

32.768 32.770 2 2 49.152

32.768 32.771 3 3 16.383

Nota: 32.768 = 215

Preguntas: a) Rellene las siete operaciones de suma módulo 2

16 comentando la operación

hecha. b) Rellene las cinco operaciones de suma módulo 2 comentando la operación

hecha. c) Rellene las tres operaciones de multiplicación módulo 2

16 + 1 comentando la

operación hecha. d) ¿Cómo se calculan los inversos de cada una de estas operaciones

algebraicas? e) Encuentre los inversos de la línea intermedia (para X = Y = 32.768) de la

tabla anterior para cada una de las operaciones X+Y, X Y, X Y. Para el

producto X Y deberá usar el Teorema de Euclides de Restos y la propiedad de reducibilidad para trabajar con números grandes.

Solución:

a) Los resultados de las siete operaciones X+Y están expresados en la tabla. Para la suma módulo 2

16 simplemente se suman X e Y y se reduce el resultado módulo

65.536.

b) Los resultados de la cinco operaciones X Y están expresados en la tabla.

Para el primer valor (32.768 32.765) se tiene 1000000000000000 0111111111111101 cuyo resultado es 1111111111111101 = 65.533.

Y así todos los demás. Como curiosidad, obsérvese que se repiten los valores de resultados en las operaciones OR y XOR para este caso particular en que X es par y la mitad del módulo. Para otros valores no se da esta particularidad.

Los resultados de la operación X Y están expresados en la tabla. Los cálculos de la multiplicación se hacen con calculadora y se reducen módulo n = 2

16+1 =

65.537. Si el número en cuestión desborda la calculadora, se aplica la propiedad de reducibilidad dentro de un cuerpo. Por ejemplo, si al calcular

Page 53: Solución Exa Jun 95_002 (1)

EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 1998

Departamento de Lenguajes, Proyectos y Sistemas Informáticos pág. 6

32.768*32.765 = 10.740.203.520, la calculadora indica desbordamiento, se calcula (2

5*32.765) mod 65.537 = 39.171.

Este resultado se multiplica por 210

o dos veces por 25, etc., reduciendo módulo

n en cada operación si es necesario. d) Los inversos aditivos son aquellos cuya suma da igual a cero y siempre existen. En cambio los inversos multiplicativos, su multiplicación reducida al cuerpo es igual a la unidad; no siempre existen y es condición necesaria que el número al que se busca su inverso y el módulo sean primos entre sí. En nuestro caso 65.537 es primo por lo que asegura un inverso para cada resto. e) El inv (0, 65.536) de la suma módulo 2

16 es cero porque sólo 0 + 0 mod n = 0.

Para la suma módulo 2, inv (0, 65.536) = 0 porque en este caso siempre se

cumplirá que el inverso de x módulo n sea también x ya que sólo x x = 0. Para la multiplicación se calculará el inv (49.153, 65.537) por el método de Restos de Euclides:

65.537 = 49.153 1 + 16.384

49.153 = 16.384 3 + 1

Ordenando por restos: 1 = 49.153 - 3(65.537 - 49.153) = -3 65.537 + 4 49.153 Luego inv (49.153, 65.537) = 4

Ejercicio Nº 3: (2.5 pts. Tiempo recomendado 45 minutos) Adelaida (A) desea enviar a Benito (B) un mensaje en claro incluyendo su firma digital a través del algoritmo de ElGamal. El resumen MD de 128 bits del texto en claro lo obtiene con un algoritmo similar a MD5 y es el que se indica: MD = 87AB 198D 6E2F F103 E0DA E8F6 1BA4 AA8F C382. Ambos deciden trabajar

con p = 65.551 y = 51. Adelaida tiene como clave privada a = 10. Preguntas: a) Envíe la firma digital correspondiente al primer bloque de 16 bits de ese

resumen si Adelaida elige el valor h = 11 para la generación de la firma. b) ¿Con cuántos bits se debe transmitir la operación hecha en el apartado a)? c) ¿Es acertada la elección del primo 65.551 para operar con bloques de 16

bits? d) Indique (no calcule) las operaciones que debería realizar Benito para

comprobar la firma de Adelaida

e) ¿Qué debería cumplir para que Benito pudiera comprobar la firma digital?

Page 54: Solución Exa Jun 95_002 (1)

EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 1998

Departamento de Lenguajes, Proyectos y Sistemas Informáticos pág. 7

Solución:

a) Primer bloque será M16 = 87AB M2 = 1000 0111 1010 1011 M10 = 34.731

Adelaida elige h = 11 que cumple con la condición mcd (h, (p)) = mcd (11, 65.550) = 1 y calcula su inverso usando el Teorema Extendido de Euclides:

65.550 = 11 5959 + 1

Por lo tanto: 1 = 65.550 - 5.959 11. El inverso h-1 es -5.959 + 65.550 = 59.591

Adelaida calcula ahora su rúbrica r:

r = h mod p = 51

11 mod 65.551 = 18.609

Adelaida resuelve entonces la congruencia M [a r + h s] mod (p) es decir:

s = [M - a r] h-1 mod (p) = [34.731 - 10 18.609] 59.591 mod 65.550

s = -19.719 mod 65.550 = 45.831 Luego, la firma de Adelaida será el par (r, s) = (18.609, 45.831) b) Como los valores se reducen mod 65.551 y se tiene que 2

16 < 65.551 < 2

17,

habría que transmitir con un mínimo de 17 bits para asegurar que aquellos valores comprendidos entre 65.535 (2

16-1) y 65.551 y que puedan ser resultado de las

operaciones hechas se envíen correctamente. La firma entonces anterior será: (r,s) = (00100100010110001, 01011001100000111) c) Sin entrar en otras consideraciones de pertenencia o no al grupo del bloque de resumen tratado, se podría decir que esa elección es acertada. Al realizar operaciones sobre bloques de 16 bits del resumen, que significan valores comprendidos entre 0 y 65.535, y ser el primo ligeramente superior a este último valor, fuerza a que todas las operaciones vayan en bloques de 17 bits. En cambio si se elige el primo inmediatamente inferior a 65.535 (65.521) se podrá transmitir el resultado de la firma con 16 bits pero a costa de limitar el espacio de M. d) Aunque no se pide en el examen, se incluyen los resultados numéricos de cada una de las operaciones que realiza Benito. Benito calcula r

s mod p = 18.609

45.831 mod 65.551 = 43.254

A continuación calcula k = (a)r

rs mod p = (51

10)18.609

18.60945.831

mod 65.551 En esta operación, Benito sólo conoce la clave pública de Adelaida, es decir,

(a) mod p = (51

10) mod 65.551 = 58.204, luego:

k = 58.20418.609

43.254 mod 65.551 = 34.153 43.254 mod 65.551 = 62.077 Puesto que se recibe M10 = 34.731, Benito compara ahora el valor anterior con

(M) mod p = (51

34.731) mod 65.551 = 62.077.

Los valores coinciden por lo que cabe esperar que = 51 sea un generador dentro del cuerpo p = 65.551. No obstante, en realidad 51 no es un generador.

e) Es recomendable, aunque no estrictamente necesario, que el valor fuese un generador del cuerpo p = 65.551.

NOTA: Si es un generador dentro de un cuerpo p, entonces

j mod p, siendo j los valores

comprendidos entre 1 y p-1, entregará el conjunto completo de restos. El valor no

será un generador en p si (p-1)/q

mod p con q los factores primos de (p-1) entrega para alguno de ellos el resultado igual a la unidad. Si, por el contrario, todos los cálculos

para los diferentes qi entregan valores distintos de la unidad, entonces el valor será un generador en el cuerpo p. 51 no es generador porque: p-1 = 65.550 =

2x3x52x19x23 y 51

(65550/3) mod 65.551 = 1. Sí lo son por ejemplo = 6, 12, ... 46,...

Usar un generador asegura la firma única y su comprobación.

Page 55: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 1999

Departamento de Lenguajes, Proyectos y Sistemas Informáticos pág. 1

SEGURIDAD INFORMÁTICA 14 de Junio de 1999

SOLUCIÓN

PARTE TEÓRICA

Cuestiones de Teoría nº 1 (0.5 pts. Tiempo recomendado 10 minutos) Sin calcular sus valores, por simple inspección visual, indique cuál de los tres mensajes tiene una entropía menor en módulo 27. Justifique su respuesta.

M1 = NO ME CANSO M2 = MI MAMA ME MIMA M3 = QUE TE PASA

SOLUCIÓN: Los mensajes M1 y M3 tienen la misma distribución de caracteres como se muestra:

M1 N = 2; O = 2; M = 1; E = 1; C = 1; A = 1; S = 1

M3 E = 2; A = 2; Q = 1; U = 1; T = 1; P = 1; S = 1 Por lo tanto tendrán la misma entropía. El mensaje M2 tiene la siguiente distribución:

M2 M = 6; I = 2; A = 3; E = 1 A simple vista, la distribución de M2 se parece menos a una distribución uniforme, con valores equiprobables, y por lo tanto cabe esperar una entropía menor que la de M1 y M3. Los valores (que no se piden en el examen) son H(M1) = H(M3) = 2,73 y H(M2) = 1,73.

Cuestiones de Teoría nº 2 (0.5 pts. Tiempo recomendado 10 minutos) La entrada de 48 bits a las Cajas S en una vuelta DES es en hexadecimal 1FA3 BD81 EF34. Indique la salida de cada una de las cajas S en binario y en hexadecimal. SOLUCIÓN:

La conversión a binario de la entrada en hexadecimal es: 1FA3 BD81 EF3416 = 0001 1111 1010 0011 1011 1101 1000 0001 1110 1111 0011 0100 Entrada a las Cajas S = 000111 111010 001110 111101 100000 011110 111100 110100

Entrada Caja Si Fila Columna Salida10 Salida2 Salida16

S1 000111 1 3 4 0100 4

S2 111010 2 13 3 0011 3

S3 001110 0 7 5 0101 5

S4 111101 3 14 2 0010 2

S5 100000 2 0 4 0100 4

S6 011110 0 15 11 1011 B

S7 111 100 2 14 9 1001 9

S8 110100 2 10 10 1010 A

S2 = 0100 0011 0101 0010 0100 1011 1001 1010; S16 = 4352 4B9A

Page 56: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 1999

Departamento de Lenguajes, Proyectos y Sistemas Informáticos pág. 2

Cuestiones de Teoría nº 3 (0.5 pts. Tiempo recomendado 10 minutos) Nos dicen que a partir del producto de los polinomios f1(x) = (x

2 + x +1) y f2(x) = (x +

1) se obtiene un tipo de generador de secuencia cifrante con registro de desplazamiento y realimentación lineal (LFSR). ¿De qué generador se trata?

SOLUCIÓN:

f(x) = f1(x) f2(x) = (x2 + x +1) (x + 1) = (x

3 + x

2)+(x

2 + x)+(x + 1) = x

3 + 2x

2 + 2x + 1

Reduciendo módulo 2 nos queda f(x) = x3 + 1 cuya representación es:

Si

Como no hay suma de los elementos del registro y sólo se realimenta una muestra del bit que sale, simplemente se transmitirá como secuencia la semilla S3S2S1. Esto no es un generador de secuencia cifrante y por lo tanto no pertenece a ningún sistema LFSR.

Cuestiones de Teoría nº 4 (0.5 pts. Tiempo recomendado 10 minutos) En un protocolo de correo seguro basado en S/MIME, un navegador (cliente) de Internet nos ofrece cifrar los mensajes con el algoritmo RC2 (40 bits de clave) y firmar los mismos con RSA y 512 bits de clave, usando MD5 o SHA-1. a) Justifique esta diferencia en la longitud de las claves. b) A nivel empresarial y particular, ¿está satisfecho con estos valores de clave? c) ¿Qué función hash usaría y porqué?

SOLUCIÓN: a) Es normal y lógico que la longitud de la clave del sistema simétrico (DES,

IDEA, RC2, etc.) sea mucho menor que la del sistema asimétrico (RSA, ElGamal, etc.) con una relación típica de 1/10 aproximadamente. Esto es debido a que son dos tipos de cifra distintos. En la cifra simétrica la fortaleza reside en que en la práctica debe hacerse un ataque por fuerza bruta, en cambio en el ataque a la cifra asimétrica se pueden utilizar distintos algoritmos de factorización o de logaritmo discreto. Podríamos decir que en muchos casos el espacio efectivo de claves es mayor en el primer caso de cifra simétrica al ser los 2

n valores equiprobables.

b) Estos valores (que son los que entregan por defecto los clientes Netscape y Explorer para correo electrónico bajo S/MIME fuera de los EEUU) sólo son apropiados para uso personal y en documentos que tengan poco valor comercial o bien cuyo tiempo de caducidad del secreto sea pequeño. Una empresa hoy en día no puede aceptar este nivel tan bajo de seguridad en las claves simétrica y asimétrica. Lo normal son 128 bits mínimo de clave simétrica y 1.024 bits mínimo de clave asimétrica.

c) Puestos a elegir, se usaría SHA-1 pues con 160 bits de resumen ofrece mejor nivel de seguridad que MD5 que sólo tiene 128. Las probabilidades de

S1 S2 S3

Page 57: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 1999

Departamento de Lenguajes, Proyectos y Sistemas Informáticos pág. 3

colisiones son menores y además en MD5 se han detectado últimamente ciertas anomalías y debilidades.

Cuestiones de Práctica nº 1 (0.5 pts. Tiempo recomendado 10 minutos) En un ataque a un sistema de mochila de Merkle-Hellman (que no tiene parámetros M-H o proporcionales) a través del método propuesto por Shamir-Zippel, no se encuentra la mochila fácil en el conjunto de múltiplos CM con espacio 2

m+1 por lo que se intenta encontrarla en el espacio 2

m+i con i>1. En este empeño,

logramos romper la mochila de 10 elementos y módulo 3.295 en el tercer intento. ¿Ha sido el método utilizado el más apropiado para este criptoanálisis y porqué?

SOLUCIÓN: Si no se encuentra el candidato a S’1 dentro del conjunto de múltiplos CM en el espacio 2

m+1, continuar la búsqueda en Cm+1 con i>1 sólo tiene sentido si se

puede encontrar este valor rápidamente en el próximo conjunto CM en función del

tamaño de módulo y los elementos de la mochila. Por ejemplo, para este caso

de mochila con 10 elementos y módulo = 3.295, el valor máximo de S’1 que

cumple con esta condición si es el mínimo valor de módulo ( i + 1), saldrá de la siguiente mochila supercreciente: {i, (i+1), (2i+2), (4i+4), (8i+8), (16i+16), (32i+32), (64i+64), (128i+128), (256i+256)}

Por lo tanto sumando ( i +1) = 512i + 511 + 1 = = 3.295 i < 5.4. Si la mochila fácil fuese generada de esta forma, el valor máximo de i para este resultado es igual a 5. Para este valor es más fácil realizar un ataque por fuerza bruta preguntado si S’1 = 1, 2, 3, 4, 5... y en cada caso generando una mochila fácil a partir de la difícil con los mismos cálculos de Shamir-Zippel, es decir, encontrando w

-1 en caso de que exista. Haríamos un máximo de 5 cálculos de

inversos y generación de mochila fácil en vez de 2m+3

=213

= 8.192 multiplicaciones y reducción módulo en búsqueda del candidato a S’1. No obstante, podrían darse otras situaciones, pero siempre bajo la condición de

que = 3.295 sea mayor que i. Por ejemplo, una mochila del módulo en cuestión es {3, 5, 10, 20, 80, 215, 390,

800, 1.730}. La suma de todos sus elementos es igual a 3.294, luego mín = 3.295.

Cuestiones de Práctica nº 2 (0.5 pts. Tiempo recomendado 10 minutos) Adelaida va a generar su par de claves RSA en PGP. Elige como longitud 1.024 bits y como frase de paso “Soy yo, Adelaida, ¿qué pasa?” a) ¿Qué significa para las claves pública eA y privada dA la longitud elegida? b) ¿Cómo se almacena la clave privada en el disco duro y cómo se accede a

ella? c) Si en vez de elegir 1.024 nuestra amiga opta por 2.048 bits, comente y

justifique qué sucede con el tiempo de generación de claves. d) Si Adelaida cree que su clave privada está comprometida, ¿qué debe hacer?

SOLUCIÓN: a) Significa que PGP generará dos valores primos p y q de una longitud

aproximada a 512 bits cada uno de forma que el producto tenga 1.024 bits.

Page 58: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 1999

Departamento de Lenguajes, Proyectos y Sistemas Informáticos pág. 4

b) Se almacena cifrada con el algoritmo IDEA y la clave son los 128 bits del resumen MD5 de su frase de paso. Para usarla, el programa solicita la frase de paso, obtiene el resumen de 128 bits de la misma y con dicha clave la descifra.

c) Al tener ahora que generar dos primos de unos de 1000 bits cada uno, el proceso de generación de claves tarda algo más (puede tardar algunos segundos o más de un minuto en función de la velocidad del ordenador). No obstante, esta operación no es crítica pues se hace una sola vez, cuando se crean las claves del usuario.

d) Debe usar un comando para revocar su clave, crear un nuevo par de claves y comunicarlo a todos los usuarios con los que mantiene correspondencia. En PGP es el usuario afectado quien debe tomar la iniciativa de revocación en este sistema de gestión de claves algo caótico y no jerarquizado.

PARTE PRÁCTICA

Ejercicio Nº 1: (2.5 pts. Tiempo recomendado 45 minutos) Si se conoce que el criptograma C = MKD GZO ZUI LDS PBA pertenece a una cifra trigrámica de Hill del texto M = TU Y YO LO SABIAMOS en módulo 27, se pide: a) Encontrar la matriz de clave K. ¿Cuál es la matriz simbólica? b) Comprobar la cifra del primer trigrama del texto en claro. c) Calcular la matriz inversa K

-1.

NOTA: Aplicando Gauss-Jordan se llega a una matriz [M | C] intermedia igual a:

1519191900

26511140

14825230

261211010

19311081

SOLUCIÓN: a) El segundo vector unitario 010 = ABA se encuentra en la fila segunda. Para el primer vector unitario 100 = BAA, restamos 8 veces la fila 2ª a la fila 1ª:

1ª Fila = (1ª Fila – 8 2ª Fila) mod 27 Columnas de Mensaje Columnas de Criptograma

(1 – 8 0) mod 27 = 1 (11 – 8 11) mod 27 = 4

(8 – 8 1) mod 27 = 0 (3 – 8 12) mod 27 = 15

(0 – 8 0) mod 27 = 0 (19 – 8 26) mod 27 = 0 Para obtener el tercer vector unitario 001 = AAB, multiplicamos la 5ª fila por el inverso de 19, es decir inv (19, 27) = 10:

5ª Fila = 5ª Fila inv (19, 27) mod 27 Columnas de Mensaje Columnas de Criptograma

(0 10) mod 27 = 0 (19 10) mod 27 = 1

(0 10) mod 27 = 0 (19 10) mod 27 = 1

(19 10) mod 27 = 1 (15 10) mod 27 = 15 Luego, los tres vectores unitarios de la matriz de Gauss-Jordan son:

1511100

261211010

0154001 Luego:

15260

11215

1114

K

En este caso, la clave será la traspuesta de la matriz de los vectores unitarios.

Page 59: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 1999

Departamento de Lenguajes, Proyectos y Sistemas Informáticos pág. 5

La clave simbólica es K = EL BOMBAZO.

b)

3

2

1

3

2

1

M

M

M

15260

11215

1114

C

C

C

Como M1 = T = 20; M2 = U = 21; M3 = Y = 25 entonces:

C1 = (4 20 + 11 21 + 1 25) mod 27 = 336 mod 27 = 12 = M

C2 = (15 20 + 12 21 + 1 25) mod 27 = 577 mod 27 = 10 = K

C3 = (0 20 + 26 21 + 15 25) mod 27 = 921 mod 27 = 3 = D. Luego C1C2C3 = MKD

c) K -1 = (TAdj (K) / |K|) mod 27 = TAdj (K) inv (|K|, 27) mod 27

181126

4623

121819

27mod

)11x1512x4()1x151x4()1x121x11(

)11x026x4()1x015x4()1x2615x11(

)12x026x15()1x015x15()1x2615x12(

)K(Adj

Luego:

18412

11618

262319

T )K(Adj

El determinante |K| será igual a:

|K| = 4(12 15-26 1)–11(15 15-0 1)+1(15 26-0 12) mod 27 = 1.469 mod 27 = 16. Como inv (16, 27 ) = 22, la matriz inversa será:

18721

262418

52013

27mod

22182242212

22112262218

222622232219

)K(inv

Y se comprueba que K K -1 mod 27 = I, la matiz de identidad.

Ejercicio Nº 2: (2.0 pts. Tiempo recomendado 30 minutos) Para el polinomio primitivo f(x) = (x

5 + x

2 + 1) se pide:

a) Dibujar el registro de desplazamiento LFSR si la semilla es S1S2S3S4S5 = 10011.

b) Terminar la secuencia cifrante Si y mostrar los estados del registro a partir de la última posición que se indica: 10101. Si = 11001 10100 10000 10101 ...

c) ¿Qué tipo de secuencia se obtiene y cuál es su período? d) Independientemente de la longitud del registro que en este caso (n = 5) es

muy pequeña, ¿es segura este secuencia para una cifra? Justifíquelo.

SOLUCIÓN: a) Si

b) Como los últimos 5 bits transmitidos son 10101 esos serán los bits de la semilla en ese este orden, el primero S5 = 1, luego S4 = 0, luego S3 = 1, luego S2 = 0 y finalmente S1 = 1. Esa será la semilla con la que partimos en la continuación de la secuencia, que se escribe en bloques de 4 y de arriba hacia abajo. Semilla Bit Si Semilla Bit Si Semilla Bit Si Semilla Bit Si 10101 1 10111 1 00011 1 11110 0

S1 S2 S3 S4 S5

Page 60: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 1999

Departamento de Lenguajes, Proyectos y Sistemas Informáticos pág. 6

11010 0 11011 1 10001 1 11111 1 11101 1 01101 1 11000 0 01111 1 01110 0 00110 0 11100 0 00111 1 Después de 00111 el registro queda cargado como 10011 que es la semilla

inicial. Luego Si = 11001 10100 10000 10101 11011 00011 1

c) Es una m-secuencia al ser generada por un polinomio primitivo y su período es T = 2

n – 1 = 2

5 – 1 = 32 – 1 = 31. El período es el máximo posible para este

número de celdas pues todas las semillas son válidas excepto 00000. d) No es seguro, no importa cuántas celdas tenga el registro, porque se puede

atacar con el algoritmo de Berlekamp-Massey. Con sólo 2n bits de la secuencia (en este caso 10) podemos plantear un sistema de n ecuaciones independientes y encontrar la conexión de las celdas con la función XOR y de esta forma generar la secuencia completa de 2

n – 1 bits.

Ejercicio Nº 3: (2.5 pts. Tiempo recomendado 45 minutos) Adelaida desea firmar digitalmente un mensaje usando el algoritmo de

ElGamal. Usa el generador = 21 dentro del módulo primo 70.001 y su clave privada es a = 10. Para la firma se define antes una función hash muy singular:

Se enumeran los primeros caracteres del mensaje desde la posición inicial 0 hasta el valor 16.

Se hace un Or Exclusivo de los tres valores binarios de los caracteres ASCII en las posiciones 2, 6 y 8 del mensaje, obteniendo los primeros 8 bits (B1).

Se repite la operación Or Exclusivo con los caracteres en las posiciones 4, 12 y 16 del mensaje para obtener el segundo bloque de 8 bits (B2).

Si el texto tiene k caracteres, con k < 17, esta operación de búsqueda se realiza de forma modular mod k.

El resumen será la concatenación de ambos bloques, es decir B1B2 de 16 bits.

a) Encuentre la función resumen del algoritmo propuesto por Adelaida para el mensaje de 9 caracteres M = HE VOTADO. Represéntelo en binario y en decimal.

b) Adelaida duda entre usar el valor h = 55 o h = 27 para la generar firma digital. ¿Cuál de ellos usará y porqué?

c) Calcule la firma digital de este mensaje. Para el cálculo de inversos debe utilizar obligatoriamente el método de restos del algoritmo extendido de Euclides.

d) ¿Es apropiado el grupo de trabajo elegido para este tipo de firma y porqué? e) ¿Es segura esta firma y porqué? Datos de interés: 21

5 mod 70.001 = 24.043 21

13 mod 70.001 = 20.570

A2 = 0100 0001 (ASCII) V2 = 0101 0110 (ASCII)

SOLUCIÓN: a) 0 1 2 3 4 5 6 7 8

H E V O T A D O

Primer bloque de firma: 2º 6º 8º mod 9

Page 61: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 1999

Departamento de Lenguajes, Proyectos y Sistemas Informáticos pág. 7

0 0 1 0 0 0 0 0 (espacio) 0 1 0 0 0 0 0 1 (A)

0 1 0 0 1 1 1 1 (O)

0 0 1 0 1 1 1 0 B1 = 0010 1110

Segundo bloque de firma: 4º 12º 16º = 4º 3º 7º mod 9 0 1 0 0 1 1 1 1 (O) 0 1 0 1 0 1 1 0 (V)

0 1 0 0 0 1 0 0 (D)

0 1 0 1 1 1 0 1 B2 = 0101 1101 Luego: HASH(M)2 = 0010 1110 0101 1101 HASH(M)10 = 11.869

b) El valor de h debe cumplir con: mcd (h, (p)) = 1

(p) = p – 1 = 70.001 – 1 = 70.000 = 24 x 5

4 x 7

Luego h no debe tener estos factores primos Como h1 = 55 = 5 x 11 (no es válido) y h2 = 27 = 3

3 (sí es válido)

Elegirá h = 27 para generar la firma.

c) r = h mod p = 21

27 mod 70.001 = [(21

13 mod 70.001)]

2(21) mod 70.001

Como 2113

mod 70.001 = 20.570 (entregado como dato)

r = (20.570)2

21 mod 70.001 = 45.965

S = [M - a r] inv (h, (p)) mod (p) = [11.869 – 10 45.965] inv (27, 70.000) mod 70.000 Cálculo del inverso de 27 en módulo 70.000 (Teorema Extendido de Euclides)

70.000 = 2.592 27 + 16 Ordenando por restos

27 = 1 16 + 11 16 = 70.000 – 2.592 27

16 = 1 11 + 5 11 = 27 – 1 16

11 = 2 5 + 1 11 = 27 – 1 (70.000 – 2.592 27)

5 = 5 1 + 0 11 = -1 70.000 + 2.593 27

5 = 16 – 1 11

5 = (70.000 – 2.592 27) – 1 (-1 70.000 + 2.593 27)

5 = 2 70.000 – 5.185 27

1 = 11 – 2 5

1 = (-1 70.000 + 2.593 27) – 2 (2 70.000 – 5.185 27)

1 = -5 70.000 + 12.963 27 Luego inv (27, 7000) = 12.963. Entonces:

S = [11.869 – 10 45.965] 12.963 mod 70.000 = 24.897 Por lo tanto la firma de Adelaida será: r, s = (45.965, 24.897) d) Sí es apropiado porque el resumen será como máximo una cadena de 16 unos

cuyo valor decimal es igual a 65.535, un valor ligeramente menor que p = 70.001. Por lo tanto, todas las firmas posibles serán elementos del cuerpo.

e) No es segura en absoluto porque con 16 bits la resistencia fuerte a colisiones es tan sólo de 2

8 (un valor muy bajo) y la resistencia débil implica un esfuerzo

de 216

intentos = 65.536 operaciones, que sigue siendo un valor bajo.

Comprobación de la firma (no se pide en el examen) Pasos a seguir según la explicación de los apuntes de clase y libro de la asignatura:

Page 62: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 1999

Departamento de Lenguajes, Proyectos y Sistemas Informáticos pág. 8

1º r

s mod p = 45.965

24.897 mod 70.001 = 59.072

2º (a) mod p = 21

1100 mod 70.001 = 67.592 (clave pública de Adelaida)

3º (a)r mod p = 67.592

45.965 mod 70.001 = 22.097

4º k = [(a)r] [r

s] mod p = 22.097 59.072 mod 70.001 = 5.337

5º M mod p = 21

11.869 mod 70.001 = 5.337

6º Como k = M mod p se comprueba la firma digital, siendo es una raíz de p

ya que 70.000 = 24

54

7 y entonces 70.000/2 = 35.000; 70.000/5 = 14.000 y 70.000/7 = 10 obteniendo los valores:

2135.000

mod 70.001 = 70.000 21

14.000 mod 70.001 = 16.743

2110.000

mod 70.001 = 969 Nota: Estos valores pueden comprobarse con el software denominado Fortaleza.

Page 63: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 1999

Departamento de Lenguajes, Proyectos y Sistemas Informáticos pág. 1

SEGURIDAD INFORMÁTICA 9 de Septiembre de 1999

SOLUCIÓN

PARTE TEÓRICO/PRÁCTICA

Cuestiones de Teoría nº 1 (0.5 pts. Tiempo recomendado 10 minutos) Un nuevo algoritmo de cifra se presenta como un criptosistema con una Distancia de Unicidad N igual a 23,5 en el cuerpo n = 27. a) ¿Cuál es el espacio de claves para un alfabeto de 27 caracteres? b) ¿Qué significa ese valor de Distancia de Unicidad si se cifra texto que contiene

sólo las letras en mayúsculas? c) ¿Es válido este valor de N si la cifra se hace sobre un documento en claro que

contiene todos los caracteres ASCII?

SOLUCIÓN: a) Si el alfabeto es de 27 caracteres entonces el espacio de claves viene dado por

la expresión N = H(K)/D en donde H(K) es la entropía (el espacio de claves es 2

H(K)) y D la redundancia del lenguaje para 27 caracteres e igual a 3,4. Luego

H(K) = N D = 23,5 3,4 = 79,9 que podemos aproximar a 80 y el espacio 280

. b) Significa que para estas condiciones se deberá tener como mínimo 24

caracteres para intentar un ataque y no nos encontremos con soluciones falsas o bien, a lo más, éstas sean igual a la unidad. No quiere decir que se pueda romper la cifra.

c) No es válido este valor si se cifran caracteres ASCII ya que en este caso el alfabeto es de 256 caracteres y deberíamos volver a calcular la redundancia del lenguaje D para este caso en particular, obteniéndose una nueva Distancia de Unicidad.

Cuestiones de Teoría nº 2 (0.5 pts. Tiempo recomendado 10 minutos) Estamos comparando dos sistemas de cifra por desplazamiento y adición (sustitución afín) que cifra en el cuerpo n = 70 (letras mayúsculas, minúsculas, minúsculas con acentos, los 10 dígitos y el espacio). Uno de ellos usa una clave propiamente dicha para formar el alfabeto de cifrado, siendo todas las claves equiprobables, y el otro no posee clave alguna. ¿Cuál tendrá una mayor Distancia de Unicidad y porqué?

SOLUCIÓN: En este caso, una vez hayamos encontrado el nuevo valor de la redundancia dentro de este alfabeto de 70 caracteres, tendrá mayor Distancia de Unicidad el que usa una clave propiamente dicha puesto que la entropía de la clave será mucho mayor. Aunque no se pide su cálculo, se tiene el siguiente escenario: Para el sistema con clave, su entropía será H(K) = log2 (n!) = log2 (70!) por lo que usando la

aproximación de Sterling se obtiene H(K) 70 log2 (70/e) 328, en tanto que para

el sistema sin clave H(K) = log2 (n (n)) = log2 (70 (70)) = log2 (70 24) = 10.7.

Cuestiones de Teoría nº 3 (0.5 pts. Tiempo recomendado 10 minutos)

Page 64: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 1999

Departamento de Lenguajes, Proyectos y Sistemas Informáticos pág. 2

A través de un servidor de Internet, la empresa MuchaFirma (socio latino de ‘VerySign’) nos entrega –previo pago de una cantidad de dinero- una clave para firma digital. Se nos informa que esta clave está certificada por dicha empresa. a) ¿Cómo certifica MuchaFirma nuestra clave pública? b) ¿Por qué MuchaFirma hace esta certificación de nuestra clave pública?

SOLUCIÓN: a) La empresa MuchaFirma firmará nuestra clave pública con su clave privada.

Como los demás navegadores tendrán a esta empresa incorporada (o pueden incorporarla posteriormente) en las preferencias de seguridad del mismo y por lo tanto tienen la clave pública de MuchaFirma, los usuarios pueden estar seguros que somos quienes decimos ser puesto que sólo MuchaFirma puede firmar nuestra clave pública. Las dos claves de MuchaFirma –pública y privada- se cancelan y así nos autentifican.

b) Porque es una Autoridad de Certificación. Esa es la única manera de asegurar que nuestra clave pública corresponde solamente a nosotros. Hace el papel de Notario.

Cuestiones de Teoría nº 4 (0.5 pts. Tiempo recomendado 10 minutos) Recibimos dentro de un correo electrónico un documento anexo (attach) con la siguiente indicación: Name: INFORME.doc Type: Winword Archivo (application/msword) Encoding: Base 64 a) ¿Por qué viene el archivo codificado de esa forma? b) Adelaida dice que esa codificación es una cifra propiamente dicha y Benito dice

que no. ¿Quién de los dos tiene razón y porqué?

SOLUCIÓN: a) En este sistema de codificación se convierte cada 3 caracteres ASCII de 8 bits

(24 bits) en 4 caracteres de código Base 64 de 6 bits cada uno (24 bits) en este caso todos son imprimibles: letras mayúsculas, minúsculas, 10 dígitos, los signos + , / y el signo = como relleno. Con ello se permite la transmisión por Internet y posterior recepción por cualquier servidor de correo electrónico.

b) Tiene razón Benito porque el código Base 64 como su nombre indica, no se trata de una cifra sino de una codificación. Además, el algoritmo de conversión es público por lo que resulta extremadamente sencillo descodificar –que no descifrar- ese mensaje y convertirlo nuevamente a código ASCII.

Cuestiones de Práctica nº 1 (0.5 pts. Tiempo recomendado 10 minutos) Adelaida y Benito usan PGP para cifrar y/o firmar sus mensajes de email. La clave pública de Adelaida está firmada por 5 amigos y la de Benito viene firmada por 10 amigos. a) ¿Es más segura la clave de Benito que la de Adelaida en cuanto a

autenticidad? b) ¿Es adecuado este tipo de gestión de claves que usa PGP en un entorno

abierto como podría ser el comercio electrónico? ¿Por qué?

SOLUCIÓN:

Page 65: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 1999

Departamento de Lenguajes, Proyectos y Sistemas Informáticos pág. 3

a) Ni mucho menos. Significa solamente que Benito tiene más amigos que dicen conocerle y han firmado su clave pública, pero esto no puede asociarse con un mayor nivel de seguridad o autenticidad de dicha clave. No obstante, puede ser un factor más de confianza si entre los firmantes de ambos usuarios hay coincidencias de personas, pero nada más.

b) El sistema de Gestión de Claves propuesto por PGP sólo es válido en entornos cerrados (empresas, organizaciones, asociaciones, grupos, amigos, etc.). Para entornos abiertos, como podrían ser todas las aplicaciones asociadas con Internet en donde se requiera un cierto grado de confianza, la única solución está en la aceptación de Autoridades de Certificación ACs usando, por ejemplo, el estándar SET en el comercio electrónico.

Cuestiones de Práctica nº 2 (0.5 pts. Tiempo recomendado 10 minutos) Procedemos a criptoanalizar un archivo cifrado con el método de Beaufort usando un programa adecuado. Este software rompe parcialmente la cifra dando como resultado un texto en claro que puede entenderse con cierta dificultad al detectarse errores en letras separadas cada cinco caracteres siendo la clave K = MXSVALYTARDJQUENINCA. a) Explique qué ha sucedido. b) A la vista del resultado (bastante satisfactorio), ¿cuántos caracteres tendrá

como mínimo y de forma aproximada el criptograma original?

SOLUCIÓN: a) Se ha roto parcialmente la cifra porque no se contaba con la cantidad

adecuada de caracteres al aplicar las estadísticas del lenguaje. Como la clave tiene una longitud de 20 caracteres, será necesario romper el criptograma en 20 subcriptogramas de cifra monoalfabética en los que aplicar dichas estadísticas con cierta probabilidad de éxito en función del número de datos con que se cuenta. No obstante, en este caso sólo han fallado 4 letras entre 20 lo que equivale a una tasa de error del 5%, un valor verdaderamente bajo que dejará entrever el contenido del texto en claro. Resulta obvio que la clave verdadera es K = MASVALETARDEQUENUNCA.

b) Como sólo han fallado 4 letras entre 20, podemos suponer que la longitud del texto cifrado era bastante aceptable para aplicar cálculos estadísticos fiables. Dado que es necesario contar entre 50 y 100 caracteres para estos menesteres en una cifra monoalfabética y aquí tendremos 20 subcriptogramas

de este tipo, la longitud del texto cifrado estará entre 20 50 = 1.000 y 20 100 = 2.000 caracteres. Con menos de 1.000 caracteres seguramente la tasa de error sería mayor que la que se ha obtenido y con más de 2.000 este valor tendería a cero y se encontraría la clave completa.

PARTE EJERCICIOS

Ejercicios: 7.0 puntos

Ejercicio Nº 1: (2.5 pts. Tiempo recomendado 45 minutos) Se recibe el criptograma que se indica:

Page 66: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 1999

Departamento de Lenguajes, Proyectos y Sistemas Informáticos pág. 4

UV IW GZ VC DF ZN QV PD VN FZ CQ WD WP VB CS QO FC QW NI VN QW VP ZN EO DS QV PC KW FC QW GZ VP ON BO XM CQ VC BL VN PO WN CB LW EV MK WZ NC WM CP OW NG ZV VD ML VS WB LW BO MO CS WH EO CS BC FW CM OV LU WH CL WN MW NC DK CT CP QV PZ NW EO CS IV CN ZD WS IV CU LO HZ DW SI OK WN WL NW QO PO IZ DW BZ VP CZ NG ZV VD NW IH LV UV CP WI HL VG ZO VN WH LC CP OU OV NV ZN NW IH LV SV PV NW IH LV VP VD QV MK ZD WD CE VN FC NX CQ VQ WN IV NQ WB VQ LW IZ RW XP VM CT WL NC QC BL OI VL C Sabemos que ha sido cifrado mediante una sustitución monoalfabeto afín trabajando en módulo 27, es decir, sólo letras mayúsculas. a) Encuentre el algoritmo de cifra: valores de las constantes a y b. (Vea la

Ayuda). b) Complete el alfabeto de cifrado (faltan 10 caracteres).

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 _ _ _ _ _ _ F K O T Y D I N R W B G L P U Z E _ _ _ _

c) Descifre los primeros 23 caracteres del criptograma (cuatro palabras). AYUDA: Las letras más frecuentes en el criptograma y su frecuencia relativa son: C = 10,345%, V = 12,853%, W = 11,599%.

SOLUCIÓN: a) Supondremos que dos de las tres letras más frecuentes en el criptograma C, V

y W se corresponden con las letras A y E del alfabeto, siendo la E la más frecuente. Por lo tanto podemos plantear las siguientes ecuaciones:

Texto en claro E Texto cifrado V

Texto en claro A Texto cifrado C

(a E + b) mod 27 = V (a 4 + b) mod 27 = 22

(a A + b) mod 27 = C (a 0 + b) mod 27 = 2 Por lo tanto, b = 2

Reemplazando: (a 4 + 2) mod 27 = 22 a 4 = 20

Como inv (4, 27) = 7 a = 20 7 mod 27 = 140 mod 27 = 5 Como a y b son valores válidos para cifrar en el cuerpo, la función de cifra sería:

C = (5 M + 2) mod 27 siendo M el carácter del mensaje Como el primer elemento del texto en claro debe ser la letra T según apartado b):

C = (5 T + 2) mod 27 = (5 20 + 2) mod 27 = 102 mod 27 = 21 = U. Coincide en este carácter y en los demás, entregando un texto con sentido. Por lo

tanto el algoritmo de cifra es C = (5 M + 2) mod 27. Si hubiésemos supuesto que la letra V de mayor frecuencia del criptograma corresponde con la letra A del texto en claro y que la letra C se corresponde ahora con la letra E del texto en claro, tenemos:

(a E + b) mod 27 = C (a 4 + b) mod 27 = 2

(a A + b) mod 27 = V (a 0 + b) mod 27 = 22 Por lo tanto, b = 22

Reemplazando: (a 4 + 22) mod 27 = 2 a 4 = -20 mod 27 = 7

Como inv (4, 27) = 7 a = 7 7 mod 27 = 49 mod 27 = 22 Como a y b son valores válidos para cifrar en el cuerpo n = 27, la función de

cifra podría ser C = (22 M + 22) mod 27: No obstante, para el primer elemento

del texto que es la letra T se tiene C = (22 T + 22) mod 27 = (22 20 + 22) mod

Page 67: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 1999

Departamento de Lenguajes, Proyectos y Sistemas Informáticos pág. 5

27 = 462 mod 27 = 3 = D, que no corresponde con el criptograma. Luego, aunque la función de cifra es válida dentro del cuerpo 27, no es la que buscamos. Algo similar sucede con otras combinaciones. A igual resultado se puede llegar planteando ecuaciones de relación entre el alfabeto en claro y el cifrado que se entrega. b) Aplicando bien la fórmula directamente o, más fácilmente, al conocer que el

factor de decimación es igual a 5 y el desplazamiento igual a 2, el valor de cifra de la letra A será 0+2 = C y de aquí en adelante se recorre el alfabeto saltando de cinco en cinco: 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 C H M Q V A F K O T Y D I N R W B G L P U Z E J Ñ S X

c) Leyendo en la tabla anterior se obtiene el mensaje M: UV IW GZ VC DF ZN QV PD VN FZ CQ WD TE MO QU EA LG UN DE SL EN GU AD O

El mensaje completo con signos de puntuación es el siguiente: Temo que algún deslenguado lo sepa, y diga: don Mendo es un vil y desahogado, que sin pizca de aprensión aprovecho una ocasión que el creyó propicia y obvia y pagó a cierto Barón con alhajas de su novia.

Y me anulo y me atribulo y mi honor no disimulo, pues aunque el nombre te asombre quien obra así tiene un nombre, y ese nombre es el de ... chulo. La Venganza de Don Mendo. Pedro Muñoz Seca Jornada Primera

Ejercicio Nº 2: (2.5 pts. Tiempo recomendado 45 minutos) Se cifra un texto en claro con la mochila S = {120, 160, 360, 720, 1.480, 2.920,

6.980, 2.001, 3.962, 8.004, 6.049, 20} usando módulo = 9.999 y factor w = 40, obteniendo el criptograma C = 9.644, 16.246, 8.210, 4.941, 13.805, 6.960, 11.804, 15.606. a) Complete la mochila S’ = { _, _, _, _, 37, 73, 152, 300, 599, 1.200, 2.401,

5.000} b) Descifre los tres primeros elementos del criptograma. c) ¿Es S una buena mochila para cifrar? ¿Por qué?

SOLUCIÓN:

a) Para encontrar la mochila fácil S’ debemos usar la fórmula Si’ = Si w-1 mod

luego hay que calcular w-1 = inv (w, ) = inv (40, 9.999). Usando el teorema

extendido de Euclides de restos o bien de forma directa es fácil encontrar que w

-1 = 250, luego:

S1’ = S1 w-1 mod = 120 250 mod 9.999 = 30.000 mod 9.999 = 3

S2’ = S2 w-1 mod = 160 250 mod 9.999 = 40.000 mod 9.999 = 4

S3’ = S3 w-1 mod = 360 250 mod 9.999 = 90.000 mod 9.999 = 9

S4’ = S4 w-1 mod = 720 250 mod 9.999 = 180.000 mod 9.999 = 18

Luego S’ = { 3, 4, 9, 18, 37, 73, 152, 300, 599, 1.200, 2.401, 5.000}

b) Para descifrar hay que aplicar la ecuación Ci w-1 mod y pasar este valor

por la mochila fácil S’:

C1 w-1 mod = 9.644 250 mod 9.999 = 2.411.000 mod 9.999 = 1.241

Pasando este valor por S’: 1.241 = 1.200+37+4 0100 1000 0100

C2 w-1 mod = 16.246 250 mod 9.999 = 4.061.500 mod 9.999 = 1.906

Page 68: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 1999

Departamento de Lenguajes, Proyectos y Sistemas Informáticos pág. 6

Pasando por S’: 1.906 = 1.200+599+73+18+9+4+3 1111 0100 1100

C3 w-1 mod = 8.210 250 mod 9.999 = 2.052.500 mod 9.999 = 2.705

Pasando por S’: 2.705 = 2.401+300+4 0100 0001 0010 Agrupando en bloques de 8 bits o bytes se tiene: 0100 1000 = H 0100 1111 = O 0100 1100 = L 0100 0001 = A El mensaje completo es: HOLA QUE TAL.

c) Podría ser en principio una buena mochila porque su tamaño es igual a 12 y este número no es múltiplo de 8 (un byte) por lo que dificulta el ataque por

coincidencias y redundancia del lenguaje. S’1 y tienen como factor común 3 y entonces no es posible un ataque por el método de Shamir-Zippel. No obstante, el número de elementos de la mochila (12) sigue siendo muy bajo por lo que no resulta tan difícil un ataque por fuerza bruta buscando la suma en S que dé el valor de Ci, por ejemplo para C1 = 9.644 = 160 + 1.480 + 8.004 que entrega el mismo vector que el encontrado para C1, en este caso en la mochila difícil. Si se cuenta con un programa, este ataque resulta trivial para estos valores. Además, w tiene factor común con un elemento de S’ (4) y por diseño esto no es recomendable.

Ejercicio Nº 3: (2.0 pts. Tiempo recomendado 30 minutos) Adelaida y Benito se envían los siguientes mensajes en claro usando sólo la parte baja del ASCII (128 bits). En cada mensaje incluyen su firma digital según el algoritmo RSA y la función hash de 16 bits (dos bloques de 8 bits) que se indica. Adelaida: pA = 17; qA = 11; eA = 3 Mensaje M = TE AMO BENI Benito: pB = 7; qB = 19; eB = 5 Mensaje M = Y YO A TI Función hash: 8 bits (izquierda): Suma mod 256 de valores decimales de caracteres del mensaje. 8 bits (derecha): Número de caracteres del mensaje reducido mod 256. a) Encuentre el resumen en binario y decimal para cada mensaje. b) ¿Pueden cifrar con su grupo de trabajo en el entorno que han elegido? c) Exprese la firma digital de cada mensaje. NO la calcule. ¿Tiene sentido

esta firma con 16 bits dentro de los grupos de trabajo elegidos por nuestros amigos?

SOLUCIÓN: a) Con los valores ASCII en decimal (tabla entregada junto al enunciado del

examen) se tiene para el primer mensaje de 11 caracteres: MA = TE AMO BENI

fHA = 84+69+32+65+77+79+32+66+69+78+73 = 724 mod 256 = 212 1101 0100

Tamaño del mensaje en caracteres = 11 0000 1011

Resumen Adelaida: MHA = 1101 0100 0000 1011 = 54.283

Para el segundo mensaje de 9 caracteres se tiene: MB = Y YO A TI

fHB = 89+32+89+79+32+65+32+84+73 = 575 mod 256 = 63 0011 1111

Tamaño del mensaje en caracteres = 9 0000 1001 Resumen Benito MHB = 0011 1111 0000 1001 = 16.137

Page 69: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 1999

Departamento de Lenguajes, Proyectos y Sistemas Informáticos pág. 7

b) Sí pueden cifrar en sus grupos pues la parte baja del ASCII tiene 128 caracteres (restos del 0 al 127) y Adelaida elige nA = 187 y Benito nB = 133, ambos mayores que el máximo carácter ASCII a cifrar, en este caso el 127. La cifra se realizará en bloques de un carácter. Además, ambos grupos

cumplen con la condición de que mcd ( (n), e) = 1. c) Los valores de cada usuario serán:

Adelaida: Benito: pA = 17 pB = 7 qA = 11 qB = 19

nA = 17 11 = 187 nB = 7 19 = 133

(nA) = 16 10 = 160 (nB) = 6 18 = 108 eA = 3 eB = 5

Luego se calcula dA = inv (eA, (nA)) Luego se calcula dB = inv (eB, (nB)) dA = inv (3, 160) = 107 dB = inv (5, 108) = 65 Firma de Adelaida: Firma de Benito: rA = MHA

dA mod nA rB = MHB

dB mod nB

rA = 54.283107

mod 187 = 59 rB = 16.13765

mod 133 = 74 No tiene sentido una firma con 16 bits en un sistema (el elegido por Adelaida y Benito) con sólo 3 dígitos como módulo. De hecho, en la firma de Adelaida el valor 59 se obtiene tanto para 54.283

107 mod 187 como para el equivalente

dentro del cuerpo que es 53 ya que 54.283 mod 187 = 53. Es decir 53107

mod 183 = 59 y todas las restantes 290 = (54.283 – 53)/187 equivalencias hasta llegar, en este caso al valor 54.283, darán el mismo resultado: 53

107+k*183 mod

183 = 59. Esto es debido a que la función hash tiene un tamaño mayor que el módulo de trabajo y por lo tanto, aunque la firma máxima posible sería una cadena de 16 unos, es decir 65.535, esto sólo se representa luego en valores dentro del cuerpo al reducir mod n; de hecho, para Adelaida 65.535 mod 187 = 85. Lo mismo ocurre para Benito, aún peor ya que su módulo 133 es más pequeño y por tanto podría haber más equivalencias en función del resumen MHB. La firma 16.137

65 mod 133 = 74 también se obtiene con 44

65 mod 133 ya

que 16.137 mod 133 = 44.

Page 70: Solución Exa Jun 95_002 (1)

SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2000

Departamento de Lenguajes, Proyectos y Sistemas Informáticos - UPM pág. 1

SEGURIDAD INFORMÁTICA 4 de Julio de 2000

PARTE TEÓRICA

Cuestiones de Teoría: 2.0 pts

Cuestiones de Prácticas: 1.0 pto.

Cuestiones de Teoría nº 1 (0.5 pts. Tiempo recomendado 10 minutos) Un sistema de cifra por sustitución presenta una distancia de unicidad igual a 32 caracteres. El algoritmo DES tiene una distancia de unicidad igual a 15,6 caracteres. a) ¿Cuál de los dos sistemas tiene una seguridad más alta? b) Justifique su respuesta.

SOLUCIÓN: a) Aunque la distancia mayor corresponda al sistema clásico y la entropía de la

clave también es mayor (se trata de un Vigenère con clave de 20 caracteres aleatorios de la A a la Z) esto no quiere decir que sea más seguro que el DES. En absoluto.

b) En el primer sistema se puede hacer un ataque estadístico elemental (Kasiski) y ante el DES esto es imposible. Luego, aunque el espacio de claves es menor en el DES, su seguridad es muchísimo mayor que la de un Vigenère con una clave muy larga.

Cuestiones de Teoría nº 2 (0.5 pts. Tiempo recomendado 10 minutos) ¿Qué le incluiría a un sistema de cifra con matrices para que no tuviese la vulnerabilidad del ataque de Gauss-Jordan? ¿Tiene relación el espacio de claves con su seguridad?

SOLUCIÓN: a) Se le introduciría cualquier procedimiento que le añadiese no linealidad a la

cifra. b) Si bien el espacio de claves que se generan en un sistema de cifra con

matrices (por ejemplo cifrado de Hill) es inmenso y el ataque por fuerza bruta prácticamente imposible, el criptosistema es débil debido a la linealidad de estas matrices. Esto permite plantear un sistema lineal de ecuaciones y, mediante el método de Gauss-Jordan, dejar la diagonal principal de la matriz n-grámica de clave con “unos”, dando lugar a los denominados vectores unitarios que permiten romper fácilmente la clave.

Cuestiones de Teoría nº 3 (0.5 pts. Tiempo recomendado 10 minutos) En el diseño de un sistema de firma y cifra de ElGamal que no comprueba los

datos de entrada se nos permite usar cualquier valor del generador : a) ¿Qué sucede con la cifra del mensaje? b) ¿Qué sucede con la firma digital?

SOLUCIÓN:

Page 71: Solución Exa Jun 95_002 (1)

SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2000

Departamento de Lenguajes, Proyectos y Sistemas Informáticos - UPM pág. 2

a) Como el algoritmo es ElGamal, se podrá cifrar y firmar con ligeras modificaciones. Si no se usa un generador dentro del cuerpo, el sistema de cifra, basado en el problema del logaritmo discreto, se resiente en su fortaleza. Si bien para cada uno de los restos del módulo p (bloques del mensaje a cifrar) se obtiene un criptograma único y distinto lo que permite cifrar y descifrar, la clave privada está en entredicho porque se reducen mucho los cálculos necesarios para romper la clave privada. Es decir, si la clave privada es b y la

clave pública b

mod p, entonces el valor de k = b

mod p se obtiene para

distintos valores de b si no es raíz, con lo que dicha clave privada deja de ser única en este sentido. Se reduce la fortaleza de la función con Problema del Logaritmo Discreto afectando la seguridad de la probable cifra y/o del intercambio de claves.

b) No se debe realizar la firma digital. Los algoritmos de firma de ElGamal y DSS fuerzan a que la firma se pueda comprobar si se cumple una igualdad en la

que interviene M mod p, siendo M el mensaje a firmar. Si no se comprueba

que es una raíz, habrá al menos más de un mensaje distinto al original que

entregue el mismo resultado de M mod p, ya que aproximadamente más de la

mitad de los restos de p no serán generadores en su cuerpo. En este sentido la firma no será única por lo que es más crítica la elección de este valor en la firma que en la cifra.

Cuestiones de Teoría nº 4 (0.5 pts. Tiempo recomendado 10 minutos) Adelaida envía un archivo a Benito con la versión 2.63ix de PGP mediante el

comando c:\pgp>pgp archivo.doc –esa Benito. a) Indique qué hace dicho comando. b) ¿Puede comprobar Benito la integridad del mensaje? ¿Por qué y cómo? c) ¿Puede comprobar Benito la autenticidad del emisor? ¿Por qué? d) ¿Alguien más que Benito puede leer ese mensaje? ¿Por qué?

SOLUCIÓN: a) El comando indica que siendo el usuario de destino Benito, el usuario que está

por defecto en PGP, Adelaida, cifrará el archivo archivo.doc con la clave pública del destino (e), luego lo firmará con la clave privada del emisor (s) y le añadirá armadura (a), dejando todo el mensaje en codificación base-64 para que el mensaje sea compatible con todos los clientes de correo en Internet.

b) Sí puede comprobar la integridad porque en recepción recuperará el mensaje en claro, descifrará con la clave pública de Adelaida la función hash aplicada en emisión y la comparará con la que haga en destino. Si no son iguales puede ser debido a que el mensaje ha sido modificado en el camino.

c) Sí puede comprobar la autenticidad de Adelaida. Sólo ella tiene la clave privada con la que ha firmado. En este caso, si al comparar los resultados de las dos funciones hash en destino como en el punto anterior éstas no coinciden, es muy posible que alguien haya intentado falsificar la firma de Adelaida.

d) Sólo Benito puede leerlo porque todo viene cifrado con su clave pública y es el único que posee la clave privada, inversa a la anterior. Es más, esta clave

Page 72: Solución Exa Jun 95_002 (1)

SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2000

Departamento de Lenguajes, Proyectos y Sistemas Informáticos - UPM pág. 3

privada está cifrada en su ordenador con un sistema simétrico a través de una frase de paso.

Cuestiones de Práctica nº 1 (0.5 pts. Tiempo recomendado 10 minutos) Nos piden que usemos el algoritmo DES en modo ECB para cifrar un documento en Word: a) ¿Es una buena elección? ¿Por qué? Si ahora nos dicen que usemos un cifrado DES múltiple: b) ¿Se puede hacer? ¿Qué opción elegiría, dos o tres etapas? ¿Por qué?

SOLUCIÓN: a) Es muy mala elección porque al cifrar en modo Libro Electrónico de Códigos,

un mensaje con muchos bloques de 64 bits iguales da origen a bloques de 64 bits de criptograma también iguales. Los archivos con formato (aplicaciones, programas, etc.) poseen muchas y largas cadenas de caracteres ANSI repetidas que dan pistas al criptoanalista al aparecer también en el criptograma. Permite el ataque por repetición de bloque. Debe usarse un modo de cifra con encadenamiento o realimentación.

b) Sí se puede hacer DES múltiple porque, al no formar un grupo, cada cifrado en cascada con una nueva clave no es igual a un cifrado de una sola etapa con una clave resultado de las dos anteriores como sucede, por ejemplo, en Vigenère. En este caso se elige tres etapas, TripleDES, con una clave real de tamaño 2xK.= 112 bits. No se usa el “doble DES” porque permite el ataque denominado “Encuentro a Medio Camino” cuyo efecto es reducir la clave de longitud supuesta 2

2n bits a sólo 2

n+1 bits, es decir una mejora de sólo un bit en

la fortaleza de la clave, lo que no tiene sentido.

Cuestiones de Práctica nº 2 (0.5 pts. Tiempo recomendado 10 minutos) Un sistema de cifra de mochilas de Merkle-Hellman entrega la siguiente mochila difícil S = {4321, 2737, 3890, 3459, 2166, 2748, 5065, 335, 3267, 1200, 838, 1083}. El criptograma que genera es C = 11317 25149 7011 13890 10548 10186 6962. Intentamos atacarla en busca de un mensaje con sentido. a) Si no conocemos el módulo ni la mochila fácil, ¿cómo podríamos recuperar

el mensaje en claro? Observación: No se pide hacer el criptoanálisis. b) ¿Es fácil o difícil el ataque? ¿Por qué?

SOLUCIÓN: a) La única forma de recuperar el mensaje es atacando la mochila con algún

algoritmo de “backtracking” y buscar para cada objetivo (primero para el valor 11317, luego para 25149, etc.) el vector de ceros y unos que selecciona en la mochila difícil los números cuya suma da lugar a ese valor. Agrupando de 8 bits, dará el ANSI binario del texto.

b) Aunque la mochila tiene un tamaño muy pequeño (n = 12), los números son casi todos del mismo orden, lo que dificulta en parte el criptoanálisis.

No obstante, con un ordenador personal y un algoritmo sencillo, esta cifra se rompe en muy pocos segundos en el peor de los casos. Aunque no se pide, el mensaje en claro es M = “Uno que va” y los valores de cifra son: S’ = {1, 2, 5, 9, 21, 43, 90, 175, 367, 715, 1.513, 2.963};

Page 73: Solución Exa Jun 95_002 (1)

SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2000

Departamento de Lenguajes, Proyectos y Sistemas Informáticos - UPM pág. 4

= 5.905; = 4.321.

PARTE PRÁCTICA

Ejercicios: 7.0 pts.

Ejercicio Nº 1: (2.0 pts. Tiempo recomendado 30 minutos) Se sospecha que el siguiente criptograma ha sido cifrado con un sistema de cifra clásica elemental muy conocido, entregando un Indice de Coincidencia IC = 0.035. Algunos n-gramas repetidos en el criptograma se muestran subrayados o en negrita. a) ¿De qué sistema estamos posiblemente hablando? b) ¿Cuál de estas cinco claves habrá cifrado el mensaje M?

K1 = CARMELE, K2 = MARIA, K3 = BEGOÑA, K4 = JOAQUIN, K5 = PEDRO? Justifique su respuesta.

c) Descifre sólo los 9 primeros elementos del criptograma.

HSSFL CQHDP QMIZX OGFVP NAQOD ZSBAS SQGIE QOPQM IZXOS

UXPNA ZASJU YQONK JSBOW ATYAN KONQN NEQOS OUSOX PAJPI OQOSG UZNVD CFGXE JGLQW WZKWS LÑMEQ ONYNM ENZFQ HBBLV

EHOMI JSNIJ TQAWA SJUXJ QOVMI PQODU FANVI OIYXE XQHUÑ IZCDL QLCQA WAHOM GJGDU YUNYG EDXME JDLMC LNAZA TCMOQ BUUPM PQOSO WCNAS NKUUB LVEJX PVXVO BUGNM WOJSM XYDRK UHBBD NFWWY XJNJC ÑZXRE YHBQA GOWUK UXBSF NXQLV OHOMN BWSUV CETOB QUBEJ KEJXM XXZVY XWODE ITJLQ UWNFH WCQRO GYZPX

BPQMI DDSMU PINYS RTJUN AEOIL CQVOD QFMUU EOIÑI FQSMG MMGDK OBUNE NBTUG CLJZT QFIXN BGLUT HHZAI AILTO FQFLN UJYSJ ZGJ Distancias: 28, 42, 98, 112, 154, 329. Indique a qué n-gramas corresponden.

SOLUCIÓN: Repeticiones: 28 y 329 corresponden al n-grama PQMI 28 corresponde al n-grama PQMIZXO 42 corresponde al n-grama QAWA 98 corresponde al n-grama ASJU 112 corresponde al n-grama BLVE 154 corresponde al n-grama QOSO a) Como el Indice de Coincidencia IC = 0.035, mucho más bajo que el típico de

una cifra monoalfabética (0.072) y existen varias repeticiones, es muy probable que se trate de un sistema de sustitución/desplazamiento polialfabético como, por ejemplo, Vigenère.

b) Como 28 = 22x7; 42 = 2x3x7; 98 = 2x7

2; 112 = 2

4x7; 154 = 2x7x11y 329 =

7x47, el mcd será 7. Luego sólo son claves candidatas K1 = CARMELE y K4 = JOAQUIN.

c) Usando la Tabla de Vigenère o restando el valor de la clave al criptograma se obtiene:

Clave K1 = CARMELE M1 = FSBTH RNFDY (esto no tiene sentido).

Clave K4 = JOAQUIN M4 = YESOQ UEYO que es castellano “Y eso que yo ...”

El mensaje es un estribillo de la Canción de Joaquín Sabina “19 días y 40 noches”:

Page 74: Solución Exa Jun 95_002 (1)

SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2000

Departamento de Lenguajes, Proyectos y Sistemas Informáticos - UPM pág. 5

Y eso que yo para no agobiar con flores a María para no asediarla con mi antología de sábanas frías y alcobas vacías Para no comprarla con bisutería ni ser el fantoche que va en romería con la cofradía del santo reproche Tanto la quería que tardé en aprender a olvidarla diecinueve días y cuarenta noches Dijo hola y adiós y el portazo sonó como un signo de interrogación sospecho que así se burlaba a través del olvido cupido de mí no, no pido perdón para que me va a perdonar porque nada le importa siempre tuvo la frente muy alta la lengua muy larga y la falda muy corta.

Ejercicio Nº 2: (2.5 pts. Tiempo recomendado 45 minutos) Se nos pide que diseñemos un algoritmo con la misma filosofía y funciones básicas del cifrador IDEA. No obstante, por limitaciones del sistema y del lenguaje usado, deberemos trabajar en un cuerpo menor. a) ¿Cuál de estos tres valores elegiría como cuerpo de trabajo y por qué?

26, 2

8, 2

10. Sólo uno de ellos es válido.

b) ¿Cuál es el espacio de claves de este cifrador? (*) Ver Nota al Final del examen

c) ¿Qué puede decir de su seguridad con respecto al verdadero IDEA?

SOLUCIÓN: a) Hablar de la filosofía y funciones básicas de IDEA significa usar tres

operaciones algebraicas en un cuerpo finito: suma mod 2n, multiplicación

mod 2n+1 y XOR o suma mod 2 sobre bloques o palabras de n bits. Para

calcular las claves de descifrado, es necesario que estas tres operaciones dentro del cuerpo tengan un inverso. La suma mod n y el XOR siempre lo tienen pero para la multiplicación es necesario que el módulo de esa operación sea un número primo. IDEA usa n = 16 pues 2

16+1 = 65537 es un

número primo. Luego, en este escenario hay que preguntarse sobre la primalidad de 2

n+1 para los tres valores dados:

26+1 = 64+1 = 65 (no es primo pues 65 = 5 13)

28+1 = 256+1 = 257 (es un número primo, puede ser candidato)

210

+1 = 1024+1 = 1025 (no es primo pues 1025 = 52

41) La única posibilidad es trabajar con palabras de n = 8 bits y cuerpo 2

8 = 256.

b) Para esta pregunta, podemos tener distintas respuestas. Una de ellas

puede ser: El cuerpo de trabajo de las operaciones básicas (n) no tiene necesariamente una relación directa con el espacio de claves en IDEA, aunque sí con el bloque de mensaje a cifrar. No obstante, si mantenemos el mismo tamaño de clave de 128 bits del sistema original, habrá que modificar el algoritmo de cálculo de subclaves a partir de la clave principal. Al trabajar todo con palabras de 8 bits, se deben generar subclaves del

Page 75: Solución Exa Jun 95_002 (1)

SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2000

Departamento de Lenguajes, Proyectos y Sistemas Informáticos - UPM pág. 6

mismo tamaño: en cada vuelta se generarían 16 subclaves en vez de las 8 características de IDEA, usándose como siempre sólo 6 de esas claves en cada vuelta. El algoritmo debería controlar la generación de sólo 52 claves, todas independientes, a partir de la clave principal. En principio el espacio

de claves debería ser 2128

. Otra forma de abordar esta cuestión es: Si en vez de 128 bits usamos 64 bits para la clave principal, la distribución de las subclaves será muy similar al del IDEA original pero el espacio de claves sería ahora 2

64. Haciendo un paralelismo con el sistema original, este

operaba con palabras de 16 bits y un bloque de texto de 16x4 = 64 bits, generando a partir de 128 bits de claves 52 subclaves de 16 bits cada una ya que se operaba en el cuerpo 2

16. En este nuevo sistema el cuerpo será

28 y las operaciones serán con palabras de 8 bits. Se cifrarán bloques de 32

bits de texto y generaremos 8 subclaves de 8 bits cada una en cada una de las 8 vueltas del algoritmo a partir de una clave de 64 bits: k1 - k6 = [1...48], k7 - k12 = [49...64][26...57], k13 - k18 = [58...64]...etc. Con esto se obtienen las 52 claves con las mismas propiedades que en el sistema original.

c) La fortaleza del algoritmo no dependerá solamente de la longitud de la

clave sino, también, del número de vueltas del mismo. Respuesta uno: Si el nuevo sistema tiene 8 vueltas en las que se generan claves independientes y se sigue cifrando con bloques de 64 bits y una clave principal de 128 bits, es probable que la fortaleza sea inferior o similar al

IDEA original. Respuesta dos: No obstante, si escalamos todos los valores del sistema original y trabajamos con una clave de 64 bits, con un bloque de texto de 32 bits y palabras de 8 bits, evidentemente el nuevo sistema será mucho más vulnerable.

Ejercicio Nº 3: (2.5 pts. Tiempo recomendado 45 minutos) Adelaida desea enviar un mensaje en claro incluyendo su firma digital al amigo Benito. Para ello, usa el freeware PGP 6.51 i. Si este programa tiene por defecto el algoritmo de firma de ElGamal, se nos pide: a) Demostrarle a través de un ejemplo con “números pequeños” (véanse los

datos más abajo) cómo se firmaría un supuesto resumen H(M) del mensaje M.

b) Demostrarle cómo comprobaría ahora Benito la firma y autenticidad del mensaje de Adelaida. Calcule su clave pública.

c) ¿Es apropiado para este caso el generador elegido = 5? Justifíquelo. d) Convenza a Adelaida sobre la seguridad de esta función hash SHA-1 (la

que usa PGP) en cuanto a su resistencia fuerte y débil ante colisiones.

NOTA: Es obligatorio usar el algoritmo de exponenciación rápida cuando se haga este tipo de operaciones y la propiedad de reducibilidad, cuando sea necesario. Para el cálculo de inversos, deberá usar siempre el Algoritmo Extendido de Euclides. DATOS: H(M)16 = 3F0AB5; p = 65.537; = 5; a = 114; h = 33;

62.9402 mod 65.537 = 59.635 59.635

2 mod 65.537 = 33.457 33.457

2 mod 65.537 = 64.426

36.21155711

mod 65537 = 7.806 48.94936.211

mod 65.537 = 30.665 532.768

mod 65.537 = 65.536

54.131.509

mod 65.537 = 29.866 114 = 1110010 0011 1111 0000 1010 1011 0101 = 4.131.509

SOLUCIÓN: a) Para generar la firma (r, s) el emisor hace los siguientes cálculos:

Page 76: Solución Exa Jun 95_002 (1)

SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2000

Departamento de Lenguajes, Proyectos y Sistemas Informáticos - UPM pág. 7

Cálculo r = h mod p = 5

33 mod 65.537 h10 = 33 h2 = 100001 =

b5b4b3b2b1b0 Usando el algoritmo de exponenciación rápida tenemos: j 0 1 2 3 4 5 j 5

2 5 25 625 62.940 59.635 33.457

(los dos últimos cálculos con números grandes están dados en los datos)

Luego 533

mod 65.537 = 5 33.457 mod 65.537 = 36.211. (r = 36.211)

Cálculo de s = {[H(M) - a r] inv [h, (p)]} mod (p) donde (p) = p-1 = 65.536

H(M)16 = 3F0AB5 H(M)2 = 0011 1111 0000 1010 1011 0101

H(M)10 = 4.131.509 (dado en los datos)

inv[h, (p)] = inv (33, 65.536)

65.536 = 1.985x33 + 31 31 = 65.536 – 1.985x33

33 = 1x31 + 2 2 = 33 – 1x31

31 = 15x2 + 1 2 = 33 – (65.536 – 1.985x33)

2 = 2x1 + 0 2 = -65.536 + 1.986x33 1 = 31 – 15x2

1 = (65.536 – 1.985x33) – 15x(-65.536 + 1.986x33)

Luego (16x65.536 – 31.775x33) mod 65.536 = 1 inv (33, 65.536) = - 31.775

h-1

= (-31.775 + 65.536) = 33.761 (h-1

= 33.761)

s = [(4.131.509 - 114 36.211) 33.761] mod 65.536

s = [3.455 33.761] mod 65.536 = 55.711 (s = 55.711) Firma: (r, s) = (36.211, 55.711) (Valores que aparecen en los datos: r

s mod p).

b) Para comprobar la firma se realizan los siguientes pasos:

rs mod p = 36.211

55.711 mod 65.537 = 7.806 (dado en los datos)

(a)r mod 65.537 = (5

114)36.211

mod 65.537

Clave pública de Benito (a) mod 65.537 = (5

114) mod 65.537

Como a = 114 = 1110010 = b6b5b4b3b2b1b0, (dado en los datos) usamos otra vez el algoritmo de exponenciación rápida: j 0 1 2 3 4 5 6 j 5

2 5 25 625 62.940 59.635 33.457 64.426

(los tres últimos cálculos con números grandes están dados en los datos)

Luego 5114

mod 65.537 = (25 59.635 33.457 64.426) mod 65.537 = 48.949

Clave pública de Benito (a) mod 65.537 = 48.949.

Luego (a)r mod 65.537 = 48.949

36.211 mod 65.537 = 30.665 (dado en los

datos)

Luego se calcula k=(rs) (

a)r mod 65.537 = 7.806 30.665 mod 65.537 = 29.866

Como H(M)

mod 65.537 = 54.131509

mod 65.537 = 29.866 (dado en los datos) y los valores coinciden, la firma es correcta y válida.

c) El generador = 5 debe ser correcto porque la firma se comprueba y esto

no puede ser debido a la casualidad. Para que un valor sea generador

dentro de un cuerpo deberá cumplirse que p-1/q

mod p 1 para todos los factores q de dicho número (p-1). En nuestro caso p-1 = 65.536 = 2

16 es

decir hay un único factor igual a 2. Calculamos 65.536/2

mod 65.537 = 532.768

mod 65.537 = 65.536 (dado en los datos) y como es distinto a la unidad,

comprobamos que = 5 es un generador en 65.537. Si no fuese un

Page 77: Solución Exa Jun 95_002 (1)

SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2000

Departamento de Lenguajes, Proyectos y Sistemas Informáticos - UPM pág. 8

generador, la firma podría comprobarse pero podría darse el caso de que distintos mensajes diesen igual firma, no por efecto de colisiones de posibles funciones hash, sino por defecto del propio algoritmo de firma.

d) La función hash por defecto de este programa PGP es SHA-1 con un resumen de 160 bits. La resistencia débil ante colisiones (un mensaje distinto que entregue un resumen igual que el dado por otro mensaje ya conocido) implica una complejidad de cálculo del orden de 2

160, un valor

astronómico. La resistencia fuerte ante colisiones (dos mensajes distintos elegidos al azar y que entregan un mismo resumen) por la paradoja del cumpleaños significa una complejidad de cálculo del orden de 2

80, un valor

muy alto en la actualidad y computacionalmente imposible de afrontar por fuerza bruta. Luego es muy segura la firma, bastante más que con el algoritmo MD5 cuyo resumen es de 128 bits. Evidentemente, la fortaleza de la función hash supuesta que se ha usado como ejemplo en este problema, dando un resumen H(M)16 = 3F0AB5 de sólo 24 bits, es extremadamente débil pero ya se decía en el enunciado que era sólo un ejemplo con números pequeños.

Todos los resultados y valores de este examen puede comprobarlos con el software de prácticas de la asignatura al que se accede desde la página Web de la misma. En particular: CripClas, CripMod, Fortaleza, Mochilas, CryptoIdea y Tutorial PGP. (*) Los apartados b) y c) del Ejercicio 2 son preguntas del tipo “abiertas”, en el sentido de que

cabe más de una respuesta correcta. En el examen se comentan un par. Lo que aquí se pretende es evaluar el conocimiento adquirido por el alumno sobre el algoritmo de cifra IDEA, su gestión de claves, las operaciones que realiza y el tamaño de palabra usado, vueltas que hace el algoritmo, etc.

Page 78: Solución Exa Jun 95_002 (1)

SOLUCIÓN AL EXAMEN DE SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2000

Departamento de Lenguajes, Proyectos y Sistemas Informáticos - UPM pág. 1

SEGURIDAD INFORMÁTICA 11 de Septiembre de 2000

PARTE TEÓRICA

Cuestiones de Teoría : 2.0 puntos

Cuestiones de Prácticas: 1.0 punto

Cuestión de Teoría nº 1 (1.0 punto. Tiempo recomendado 20 minutos) Se desea elegir un generador de secuencia cifrante que cumpla con los Postulados de Golomb. Los 4 polinomios generadores propuestos para sistemas del tipo LFSR son los siguientes: (1) x

2 + 1; (2) x

3 + x + 1; (3) x

4 + x

3 +

x2 + 1; (4) x

4 + x

3 + 1.

a) Encuentre la secuencia cifrante para cada uno de estos polinomios si la semilla, en cualquier caso, es la secuencia de "todos unos".

b) ¿Cuál o cuáles de estos polinomios entregará una secuencia que podría cumplir con los Postulados de Golomb? NO se pide comprobar estos postulados.

SOLUCIÓN: a) (1) p(x) = x

2 + 1 (número de etapas n = 2)

No corresponde a un generador ya que no existe una realimentación al XOR, salvo la de salida de x

2.

No genera secuencia y no es un polinomio válido. S (2) p(x) = x

3 + x + 1 (número de etapas n = 3)

Semilla (111) y secuencia cifrante:

S1 S2 S3 S 1 1 1 1 S 0 1 1 1 1 0 1 1 0 1 0 0 0 0 1 1 1 0 0 0 1 1 0 0 1 1 1 Ciclo S = {1 1 1 0 1 0 0}

Período T = 7 = 2n – 1 = 2

3 – 1 (máximo)

(3) p(x) = x4 + x

3 + x

2 + 1 (número de etapas n = 4)

Semilla (111) y secuencia cifrante:

S1 S2 S3 S4 S 1 1 1 1 1 S 1 1 1 1 1 ...

Como hay un número impar de celdas (tres) que alimentan a la puerta XOR, no es válida la cadena de todos unos (además de la cadena de todos ceros) ya que no genera una

S1 S2

+

S1 S2

+

S3

S1 S2

+

S3 S4

Page 79: Solución Exa Jun 95_002 (1)

SOLUCIÓN AL EXAMEN DE SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2000

Departamento de Lenguajes, Proyectos y Sistemas Informáticos - UPM pág. 2

secuencia cifrante. Luego, no es un polinomio válido.

(4) p(x) = x4 + x

3 + 1 (número de etapas n = 4)

Semilla (111) y secuencia cifrante:

S1 S2 S3 S4 S 1 1 1 1 1 S 0 1 1 1 1 0 0 1 1 1 0 0 0 1 1 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 1 1 1 1 0 0 0 0 1 1 0 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 0 1 1 0 1 1 1 1 1 0 0 1 1 1 1 Ciclo S = {1 1 1 1 0 0 0 1 0 0 1 1 0 1 0}

Período T = 15 = 2n – 1 = 2

4 – 1 (máximo)

b) Como los únicos dos sistemas que entregan una secuencia máxima T = 2n

– 1, excluida la cadena de todos ceros y que, por lo tanto, el registro pasa por todos los estados (restos) posibles son el polinomio segundo p(x) = x

3 +

x + 1 y el cuarto p(x) = x4 + x

3 + 1, éstos dos serán los candidatos que

puedan cumplir con los Postulados de Golomb. De hecho, ambos son primitivos y generan m-secuencias para cualquier semilla, excepto la cadena de ceros como ya se sabe.

Cuestión de Teoría nº 2 (1.0 punto. Tiempo recomendado 20 minutos) Un criptosistema binario se utiliza para cifrar mensajes de texto enviados por correo electrónico. Se nos dice que con un criptograma de 18 caracteres el número de Soluciones Falsas SF es aproximadamente 7 para lenguaje castellano. a) ¿Cuál es la longitud de la clave usada? b) ¿Cuál es la Distancia de Unicidad N? c) Compare la Distancia de Unicidad con el dato entregado para SF = 7 y

saque conclusiones. Datos: SF = 2

H(K) – DN; log2 7 = 2,8.

SOLUCIÓN:

a) Como SF = 2H(K) – DN

(entregado como dato) entonces log2 SF = H(K) – DN. Luego H(K) = log2 SF + DN.

Como nos dicen que el texto es castellano, podemos suponer que trabajamos con 27 caracteres pues el documento serán todas mayúsculas o todas

S1 S2

+

S3 S4

Page 80: Solución Exa Jun 95_002 (1)

SOLUCIÓN AL EXAMEN DE SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2000

Departamento de Lenguajes, Proyectos y Sistemas Informáticos - UPM pág. 3

minúsculas aproximadamente. Esto quiere decir que la redundancia D del lenguaje será cercana a 3,4 según apuntes de clase. Luego:

H(K) = log2 7 + 3,418 = 2,8 + 61,2 (log2 7 entregado como dato) H(K) = 64. La clave tiene 64 bits. b) Cuando SF = 1 se obtiene N la Distancia de Unicidad. En este caso

tendremos: N=H(K)/D = 64/3,4 = 18,8. La Distancia de Unicidad será de 19 caracteres.

c) Tanto para SF = 7 como para SF = 1 (Distancia de Unicidad) se observa que los valores de N son prácticamente iguales. La diferencia es sólo de un 5%. Entonces se puede concluir que en la ecuación de H(K) el término más

importante, y con diferencia, es DN, siendo log2 SF casi despreciable.

Cuestión de Práctica nº 1 (1.0 punto. Tiempo recomendado 20 minutos) Segismundo envía a Pepi el siguiente texto en claro, incluyendo su firma digital con PGP: "Hola Pepi. Nos vemos en el cine a las nueve". Si a continuación se da cuenta de un error y le envía ahora el mensaje, "Hola Pepi. Nos vemos en el cine a las diez", también firmado, comente: a) ¿Son ambas firmas iguales o diferentes? ¿Por qué? b) Y si Segismundo vuelve a enviar exactamente el mismo primer mensaje,

¿qué sucede ahora con las firmas? c) ¿Podrían leer el mensaje enviado y firmado por Segismundo otras

personas? ¿Es necesario que tengan instalado para ello el PGP?

SOLUCIÓN:

a) Las firmas no iguales puesto que al cambiar el mensaje, también se modificará la función hash. La firma digital depende, entre otras cosas, de este resumen.

b) Aunque el mensaje en este escenario sea exactamente el mismo, las firmas no coincidirán porque en ella se añade una indicación del tiempo (time stamp) y éste ha cambiado con el nuevo mensaje.

c) Podrá leer el mensaje cualquier usuario que lo intercepte (no va dirigido a ellos) ya que éste va en claro, no cifrado. Para leer el mensaje no es necesario que tengan instalado el PGP; esto sólo les serviría en este caso para comprobar la firma, siempre que tuviesen la clave pública de Segismundo en su anillo de claves públicas, en tanto que dicha firma se añade al texto enviado, y ellos fuesen los destinatarios del mensaje.

PARTE PRÁCTICA

Ejercicios: 7.0 puntos

Ejercicio nº 1: (2.0 puntos. Tiempo recomendado 30 minutos) Se cifra el mensaje en claro M = LO VOY A SUPERAR con un criptosistema de Hill digrámico en el cuerpo n = 27, dando como resultado el criptograma de catorce elementos C = ZSYF KFNW BDRJ RX. a) Mediante el ataque de Gauss-Jordan encuentre la matriz de cifrado

simbólica K. b) A partir de la matriz encontrada, encuentre la matriz de descifrado o inversa

K-1

.

c) Compruebe que el producto [K][K-1

] mod n es la matriz de identidad [I].

Page 81: Solución Exa Jun 95_002 (1)

SOLUCIÓN AL EXAMEN DE SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2000

Departamento de Lenguajes, Proyectos y Sistemas Informáticos - UPM pág. 4

Datos: Puede usar los digramas YA y PE de texto en claro para el ataque. inv(2,27) = 14; inv(4,27) = 7; inv(5,27) = 11; inv(8,27) = 17; inv(10,27) = 19; inv(13,27) = 25; inv(16,27) = 22; inv(20,27) = 23; inv(26,27) = 26.

SOLUCIÓN:

a) Según el método de Gauss-Jordan, escribimos el texto en claro y el criptograma en una matriz digrámica [M | C] como se indica:

L O Z S 11 15 26 19

V O Y F 22 15 25 5 Y A K F (*) 25 0 10 5 S U N W = 19 21 13 23 P E B D (**) 16 4 1 3 R A R J 18 0 18 9 R X R X 18 24 18 24 (*) Como inv (25,27) = 13, multiplicamos por 13 toda esa fila (*) y obtenemos:

(25 0 | 10 5) 13 mod 27 = (1 0 | 22 11) (A) (1 0 | 22 11) (tenemos el primer vector unitario) Buscamos ahora un valor unitario (1) en la segunda columna de texto en claro: (**) Como inv (4,27) = 7, multiplicamos la fila (**) por 7 obteniendo:

(16 4 | 1 3) 7 mod 27 = (4 1 | 7 21) (B) (4 1 | 7 21) Tenemos: 1 0 22 11 (A) 4 1 7 21 (B) Para tener un cero en la primera columna de (B) hacemos (B) = (B) – 4(A). Así: (B) (0 1 | 0 4). Luego: 1 0 22 11 Como ésta es la traspuesta 0 1 0 4 de la matriz K, entonces:

K = 22 0 Como 22 = V, 0 = A, 11 = L y 4 = E, 11 4 la clave simbólica es K = VALE.

b) K-1

= T[Adj(K)] / |K| = T[Adj(K)] (inv |K|, 27) mod 27 Adj (K) = 4 - 11 T[Adj(K)] = 4 0 = 4 0 mod 27 0 22 -11 22 16 22

|K| = (224 - 110) mod 27 = 88 mod 27 = 7. Como inv (7, 27) = 4 entonces:

K-1

= T[Adj(K)] (inv |K|, 27) mod 27 = 4 0 4 mod 27 = 16 0 16 22 10 7

c) Multiplicando las dos matrices [K] [K-1

] mod 27 se obtiene:

22 0 16 0 mod 27 = I1 I2 11 4 10 7 I3 I4

Page 82: Solución Exa Jun 95_002 (1)

SOLUCIÓN AL EXAMEN DE SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2000

Departamento de Lenguajes, Proyectos y Sistemas Informáticos - UPM pág. 5

I1 = (2216 + 010) mod 27 = 352 mod 27 = 1

I2 = (220 + 07) mod 27 = 0 mod 27 = 0

I3 = (1116 + 410) mod 27 = 216 mod 27 = 0

I1 = (110 + 47) mod 27 = 28 mod 27 = 1. Que son los vectores unitarios de [I].

Ejercicio nº 2: (2.0 puntos. Tiempo recomendado 30 minutos) Se usa parte del algoritmo DES como función resumen de la siguiente manera:

i) El mensaje se divide en bloques de 48 bits (6 bytes). ii) Se añade al final tantos ceros como sea necesario para alcanzar

congruencia módulo 48. iii) Cada bloque de 48 bits constituye la entrada a un sistema estándar

de Cajas S del DES. iv) Las salidas de dichas cajas (32 bits) se van sumando OR exclusivo

hasta el final, entregando por la tanto un resumen de 32 bits. a) Si el mensaje es M = PARA BAILAR ESTO ES UNA BOMBA, encuentre el

resumen de la función.(Continúe la solución entregada en hoja aparte). b) ¿Cumple este algoritmo con la característica de función de un solo sentido

necesaria para el hash? Justifique su respuesta. c) Analice el comportamiento de esta función hash en cuanto a su resistencia

fuerte y débil ante colisiones.

SOLUCIÓN: a) Teníamos un resumen Ri con tres bloques de texto igual a: Ri = 1111 1011 1011 1100 0000 0000 1111 1000. Siguiendo el método: M4 = 010100 110010 000001 010101 010011 100100 000100 100000 (dato dado) M5 = 010000 100100 111101 001101 010000 100100 000100 000000 (dato dado)

Salida de las Cajas S para cada bloque de 6 bits de Mi: Fila (F) y Columna (C)

M4 = 010100 110010 000001 010101 010011 100100 000100 100000 M4 010100 S1(F=0, C=10) = 6 = 0110 (8 bloques de 6 bits) 110010 S2(F=2, C= 9) = 8 = 1000 000001 S3(F=1, C= 0) =13 = 1101 010101 S4(F=1, C=10) = 2 = 0010 010011 S5(F=1, C= 9) = 0 = 0000 100100 S6(F=2, C= 2) =15 = 1111 000100 S7(F=0, C= 2) = 2 = 0010 100000 S8(F=2, C= 0) = 7 = 0111 R4 = 0110 1000 1101 0010 0000 1111 0010 0111 (8x4 = 32 bits de resumen) M5 = 010000 100100 111101 001101 010000 100100 000100 000000 M5 010000 S1(F=0, C= 8) = 3 = 0011 (8 bloques de 6 bits) 100100 S2(F=2, C= 2) = 7 = 0111 111101 S3(F=3, C=14) = 2 = 0010 001101 S4(F=1, C= 6) = 0 = 0000 010000 S5(F=0, C= 8) = 8 = 1000 100100 S6(F=2, C= 2) =15 = 1111 000100 S7(F=0, C= 2) = 2 = 0010 000000 S8(F=0, C= 0) =13 = 1101

Page 83: Solución Exa Jun 95_002 (1)

SOLUCIÓN AL EXAMEN DE SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2000

Departamento de Lenguajes, Proyectos y Sistemas Informáticos - UPM pág. 6

R5 = 0011 0111 0010 0000 1000 1111 0010 1101 (8x4 = 32 bits de resumen) Para obtener el Resumen final R aplicamos XOR a Ri, R4 y R5:

Ri = 1111 1011 1011 1100 0000 0000 1111 1000 R4 = 0110 1000 1101 0010 0000 1111 0010 0111 R5 = 0011 0111 0010 0000 1000 1111 0010 1101 R = 1010 0100 0100 1110 1000 0000 1111 0010

b) Sí cumple con la unidireccionalidad pedida a las funciones hash. La no linealidad de las Cajas S hace que la salida de una de ellas (S i) pueda ser debido a cuatro posibles entradas. Por ejemplo, la salida decimal seis (0110) de la caja S1 puede ser resultado de cualquiera de estas cuatro entradas:

010100 Fila 0, Columna 10 010011 Fila 1, Columna 9 101010 Fila 2, Columna 5 111101 Fila 3, Columna 14 Luego, para la salida de 8 cajas S concatenadas, el número de iteraciones para una única salida correcta será 4

8 = 65.536. Aunque entran 5 bloques de

48 bits a las cajas S para formar el resumen –que podría inducir a pensar que el total de estados posibles sería en este caso (4

8)5 = 4

40 = 2

80 lo que es falso–

hay que recordar que el resumen tiene sólo 32 bits por lo que el sistema sucumbe ante un ataque por fuerza bruta de sólo 2

32.

c) El peor inconveniente de esta propuesta es su baja representación en bits por lo que habrá muchos mensajes distintos que tengan igual resumen. La resistencia débil ante colisiones, conocido un mensaje encontrar otro con igual resumen, será de 2

32 y la resistencia fuerte ante colisiones (en este

caso la coincidencia de resúmenes de dos mensajes distintos elegidos al azar) será solamente de 2

16, valores extremadamente bajos. No obstante,

no resulta tan sencillo invertir el algoritmo por fuerza bruta.

Ejercicio nº 3: (3.0 puntos. Tiempo recomendado 60 minutos) Adelaida (A) y Benito (B) se intercambian mensajes de correo firmado usando para ello el algoritmo RSA. Trabajan con los siguientes primos y clave pública:

Adelaida: pA = 223; qA = 503, eA = 41 Benito: pB = 211; qB = 509; eB = 73. Aplicando una función hash particular (que no es del caso analizar aquí) el mensaje de Adelaida MA presenta un resumen HMA = 38.793 y la respuesta MB de Benito un resumen HMB = 7.815. a) Encuentre las claves privadas de Adelaida dA y Benito dB. Es obligatorio el

uso del Algoritmo Extendido de Euclides para el cálculo de inversos. b) Encuentre las firmas digitales de Adelaida rA y Benito rB. Para el cálculo de

firma es obligatorio usar la propiedad de reducibilidad según los datos entregados.

c) Si todo funciona como es debido y entonces rA = 39.656 y rB = 50.035, ¿cuál es el mensaje en claro numérico enviado por Adelaida y por Benito? Para este cálculo es obligatorio usar el algoritmo de exponenciación rápida.

Datos: 732 = 1001001; 412 = 101001 38.793

92.314 mod 112.169 = 37.394 38.793

103 mod 112.169 = 523 (92.417 = 92.314+103)

7.81513.000

mod 107.399 = 3.153 7.815457

mod 107.399 = 32.219 (39.457 = 3x13.000 + 457) Operaciones de exponenciación rápida en módulo 107.399:

Page 84: Solución Exa Jun 95_002 (1)

SOLUCIÓN AL EXAMEN DE SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2000

Departamento de Lenguajes, Proyectos y Sistemas Informáticos - UPM pág. 7

50.0352 = 30.535; 50.035

4 = 55.506; 50.035

8 = 68.322; 50.035

16 = 12.947; 50.035

32 = 82.369;

50.03564

= 42.533 Operaciones de exponenciación rápida en módulo 112.169: 39.656

2 = 101.125; 39.656

4 = 42.233; 39.656

8 = 27.020; 39.656

16 = 84.548; 39.656

32 = 58.272.

SOLUCIÓN:

a) Adelaida: nA = pA x qA = 223 x 503 = 112.169

(nA) = (pA –1)(qA –1) = 222 x 502 = 111.444

eA = 41 dA = inv [41, (nA)] = inv (41, 111.444) Algoritmo Extendido de Euclides:

111.444 = 2.718 41 + 6 Restos: 6 = 111.444 – 2.718 41

41 = 6 6 + 5 5 = 41 – 6 6

6 = 1 5 + 1 1 = 6 – 1 5

5 = 5 1 + 0 Ordenando por restos:

5 = 41 – 6(111.444 – 2.71841) = – 6111.444 + 16.30941

1 = 6 - 15 = (111.444 – 2.71841 ) – 1(– 6111.444 + 16.30941)

= 7111.444 – 19.02741

inv (41, 111.444) = - 19.027 mod 111.444 = 92.417 dA = 92.417

Benito: nB = pB x qB = 211 x 509 = 107.399

(nB) = (pB –1)(qB –1) = 210 x 508 = 106.680

eB = 73 dB = inv [73, (nB)] = inv (73, 106.680) Algoritmo Extendido de Euclides:

106.680 = 1.461 73 + 27 Restos: 27 = 106.680 - 1.461 73

73 = 2 27 + 19 19 = 73 – 2 27

27 = 1 19 + 8 8 = 27 – 1 19

19 = 2 8 + 3 3 = 19 – 2 8

8 = 2 3 + 2 2 = 8 – 2 3

3 = 1 2 + 1 1 = 3 – 1 2

2 = 2 1 + 0 Ordenando por restos:

19 = 73 - 2(106.680 – 1.46173)

= - 2106.680 + 2.92373

8 = 27 - 119 = (106.680 – 1.461 73) – 1(- 2106.680 + 2.92373)

= 3106.680 – 4.38473

3 = 19 – 28 = (– 2106.680 + 2.92373) – 2(3106.680 – 4.38473)

= – 8106.680 + 11.69173

2 = 8 – 23 = (3106.680 – 4.38473) – 2(- 8106.680 + 11.69173)

= 19106.680 – 27.76673

1 = 3 – 12 = (– 8106.680 + 11.69173) – 1(19106.680 – 27.76673)

= 27106.680 + 39.45773

inv (73, 106.680) = 39.457 mod 106.680 = 39.457 dB = 39.457

b) Firma de Adelaida: rA = HMA

dA mod nA = 38.793

92.417 mod 112.169

Según los datos del examen y usando la propiedad de reducibilidad:

rA = (38.79392.314

mod 112.169)(38.793103

mod 112.169) mod 112.169

rA = 37.394 523 mod 112.169 = 39.656 (valor dado en el examen) Firma de Benito:

RB = HMBdB

mod nB = 7.81539.457

mod 107.399

Page 85: Solución Exa Jun 95_002 (1)

SOLUCIÓN AL EXAMEN DE SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2000

Departamento de Lenguajes, Proyectos y Sistemas Informáticos - UPM pág. 8

Según los datos del examen y usando la propiedad de reducibilidad:

rB = (7.81513.000

mod 107.399)3(7.815

457 mod 107.399) mod 107.399

rB = 3.153 3.153 3.153 32. 219 mod 107.399. Si seguimos aplicando reducibilidad se obtiene:

rB = 50.035 (valor dado en el examen) c) Para comprobar las firmas en destino Adelaida usando la clave pública de

Benito calcula rBeB

mod nB y Benito calcula rAeA

mod nA, con la clave pública de Adelaida.

Comprobación de Adelaida con los datos del examen:

rBeB

mod nB = 50.03573

mod 107.399 732 = 1001001 (dado en el examen) j 0 1 2 3 4 5 6 j 50.035

2 50.035 30.535 55.506 68.322 12.947 82.369 42.533

rBeB

mod nB = 50.03568.32242.533 mod 107.399

Aplicando reducibilidad: rBeB

mod nB = 7.815 Este valor coincide con HMB por lo que la firma es correcta

Comprobación de Benito con los datos del examen: rA

eA mod nA = 39.656

41 mod 112.169 412 = 101001 (dado en el examen)

j 0 1 2 3 4 5 j 39.656

2 39.656 101.125 42.233 27.020 84.548 58.272

rAeA

mod nA = 39.65627.02058.272 mod 112.169

Aplicando reducibilidad: rAeA

mod nA = 38.793 Este valor coincide con HMA por lo que la firma es correcta.

NOTA: Todos los resultados y valores de este examen puede comprobarlos con el software de prácticas de la asignatura al que se accede desde la página Web de la misma. http://www.lpsi.eui.upm.es/Sinformatica/Sinformatica.htm

Page 86: Solución Exa Jun 95_002 (1)

SOLUCIÓN AL EXAMEN DE SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2000

Departamento de Lenguajes, Proyectos y Sistemas Informáticos - UPM pág. 9

HOJA ANEXA AL EXAMEN (Cajas S del DES en el anverso)

Comienzo de la solución del Ejercicio nº 2 M = PARA_ B AILAR_ ESTO_E S_UNA_ BOMBA ( es el relleno = 00000000)

M = M1 M2 M3 M4 M5 M1 = PARA_B: 01010000 01000001 01010010 01000001 00100000 01000010 M2 = AILAR_: 01000001 01001001 01001100 01000001 01010010 00100000 M3 = ESTO_E: 01000101 01010011 01010100 01001111 00100000 01000101 M4 = S_UNA_: 01010011 00100000 01010101 01001110 01000001 00100000

M5 = BOMBA: 01000010 01001111 01001101 01000010 01000001 00000000

Salida de las Cajas S para cada bloque de 6 bits de Mi: Fila (F) y Columna (C) M1 = 010100 000100 000101 010010 010000 010010 000001 000010 M1 010100 S1(F=0, C=10) = 6 = 0110 (8 bloques de 6 bits) 000100 S2(F=0, C= 2) = 8 = 1000 000101 S3(F=1, C= 2) = 0 = 0000 010010 S4(F=0, C= 9) = 2 = 0010 010000 S5(F=0, C= 8) = 8 = 1000 010010 S6(F=0, C= 9) = 13 = 1101 000001 S7(F=1, C= 0) = 13 = 1101 000010 S8(F=0, C= 1) = 2 = 0010 R1 = 0110 1000 0000 0010 1000 1101 1101 0010 (8x4 = 32 bits de resumen) M2 = 010000 010100 100101 001100 010000 010101 001000 100000 M2 010000 S1(F=0, C= 8) = 3 = 0011 (8 bloques de 6 bits) 010100 S2(F=0, C=10) = 2 = 0010 100101 S3(F=3, C= 2) = 13 = 1101 001100 S4(F=0, C= 6) = 6 = 0110 010000 S5(F=0, C= 8) = 8 = 1000 010101 S6(F=1, C=10) = 13 = 1101 001000 S7(F=0, C= 4) = 15 = 1111 100000 S8(F=2, C= 0) = 7 = 0111 R2 = 0011 0010 1101 0110 1000 1101 1111 0111 (8x4 = 32 bits de resumen) M3 = 010001 010101 001101 010100 010011 110010 000001 000101 M3 010001 S1(F=1, C= 8) = 10 = 1010 (8 bloques de 6 bits) 010101 S2(F=1, C=10) = 1 = 0001 001101 S3(F=1, C= 6) = 6 = 0110 010100 S4(F=0, C=10) = 8 = 1000 010011 S5(F=1, C= 9) = 0 = 0000 110010 S6(F=2, C= 9) = 0 = 0000 000001 S7(F=1, C= 0) = 13 = 1101 000101 S8(F=1, C= 2) = 13 = 1101 R3 = 1010 0001 0110 1000 0000 0000 1101 1101 (8x4 = 32 bits de resumen) Luego, hasta este momento el “resumen intermedio” Ri de la función hash será:

Ri = R1 R2 R3 0110 1000 0000 0010 1000 1101 1101 0010 (R1)

0011 0010 1101 0110 1000 1101 1111 0111 (R2) 1010 0001 0110 1000 0000 0000 1101 1101 (R3)

Ri = 1111 1011 1011 1100 0000 0000 1111 1000 M4 = 010100 110010 000001 010101 010011 100100 000100 100000 (8x6 bits) M5 = 010000 100100 111101 001101 010000 100100 000100 000000 (8x6 bits)

CONTINÚE EL EJERCICIO CALCULANDO LOS VALORES DE SALIDA DE LAS

CAJAS S DE LOS MENSAJES M4 Y M5 Y ENCUENTRE EL RESUMEN R FINAL

Page 87: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2001

Departamento de Lenguajes, Proyectos y Sistemas Informáticos - UPM pág. 1

SEGURIDAD INFORMÁTICA Viernes 21 de Septiembre de 2001

1ª PARTE: TEORÍA Y PRÁCTICAS (3 puntos: 60 minutos)

2 cuestiones de Teoría: 1.0 punto c/u; 1 cuestión de Prácticas: 1.0 punto

ESTA HOJA SE RECOGERÁ TRANSCURRIDOS LOS 60 PRIMEROS MINUTOS DEL

EXAMEN

Cuestión de Teoría Nº 1 (1.0 punto. Tiempo recomendado: 30 minutos) En las siguientes 10 frases, escriba las palabras que faltan:

La solución está escrita en MAYÚSCULAS: (0,1 puntos c/u) a) La máquina de cifrar Enigma usada por el ejército alemán en la 2ª Guerra Mundial,

utilizaba la técnica de cifra por SUSTITUCIÓN POLIALFABÉTICA que se conseguía a

través de un conjunto de ROTORES cuyos engranajes generaban los alfabetos de cifra.

b) La escítala con la que cifraba un antiguo pueblo griego con la ayuda de un bastón, es

una cifra por TRANSPOSICIÓN (PERMUTACIÓN) ya que el criptograma tiene EL

MISMO CONJUNTO DE caracteres que el texto en claro. La clave de cifra es el

DIÁMETRO DEL BASTÓN. c) El Indice de Coincidencia IC y el método de Kasiski son herramientas que permiten un

ataque a los cifradores por SUSTITUCIÓN POLIALFABÉTICA PERIÓDICA usando

las CARACTERÍSTICAS (REDUNDANCIA) del lenguaje. d) Siguiendo los estudios de Shannon sobre H(x), si una clave K1 tiene más estados que

una clave K2 (estados equiprobables) decimos que la ENTROPÍA de K1 es MAYOR

que la de K2 y, por lo tanto, K1 es MÁS segura que K2 ante un ataque por fuerza bruta.

e) El ataque de Berlekamp-Massey requiere conocer sólo 2N elementos de una

secuencia cifrante de un generador LFSR de N etapas para poder encontrar la

secuencia completa resolviendo un SISTEMA DE ECUACIONES lineales módulo 2.

f) El sistema RSA usa como módulo el valor n = PxQ, CON P y Q primos grandes. La

clave privada d deberá ser INVERSA de la clave pública e dentro del cuerpo (N).

Está basado en el problema DE LA FACTORIZACIÓN DE NÚMEROS GRANDES.

g) En el sistema DES, la clave original de 64 bits de convierte en una clave real de 56

bits al eliminarse EL BIT DE PARIDAD de cada octeto. El algoritmo tiene 16 vueltas.

h) Los cuatro elementos básicos de la seguridad informática son CONFIDENCIALIDAD,

INTEGRIDAD, DISPONIBILIDAD y NO REPUDIO. Este último deberá cumplirse en la

mayoría de los casos tanto en el extremo EMISOR como en el extremo RECEPTOR.

Esto se conoce como NO REPUDIO DE ORIGEN y NO REPUDIO DE DESTINO.

i) PGP consiste en un sistema de cifra HÍBRIDO (DUAL) porque el intercambio de clave

y la firma digital se logra con CRIPTOGRAFÍA DE CLAVE PÚBLICA y el cifrado de la

información se obtiene a través de CRIPTOGRAFÍA DE CLAVE SECRETA.

j) El sistema de firma digital DSS, que es una variante del algoritmo de ELGAMAL, se

basa en el problema DEL LOGARITMO DISCRETO. Trabaja en módulo P, UN PRIMO grande. Para que la clave privada a sea segura y se certifique correctamente la firma,

el valor deberá ser GENERADOR O RAÍZ DE P. La clave pública es A mod P.

Cuestión de Teoría Nº 2 (1.0 punto. Tiempo recomendado: 15 minutos) Un dado ha sido manipulado de forma que el número 3 sale en media cuatro veces más que los cinco restantes números. Para este sistema decimos entonces que:

a) El dado tiene una entropía mayor que H(X) = log2 6 = 2,58. b) El dado tiene una entropía menor que H(X) = log2 6 = 2,58. c) El dado tiene una entropía H(X) = 0.

1. La afirmación correcta es la SEGUNDA (b). (0.2 puntos)

Page 88: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2001

Departamento de Lenguajes, Proyectos y Sistemas Informáticos - UPM pág. 2

2. Justifique la respuesta anterior sin usar ecuaciones, sólo conceptos. (0.5 puntos)

SOLUCIÓN: Para un dado normal la entropía valdrá H(X) = H(X)máx = log2 6 = 2,58, puesto que pi = 1/n = 1/6. En este caso al haber un estado (el 3) con más probabilidad que los otros cinco, la entropía será obviamente menor y se descarta así la afirmación a). Además, la entropía nunca es negativa y se anula sí y sólo si uno de los estados de la variable tiene probabilidad 1 y los demás probabilidad 0, por lo que se descarta ahora la afirmación c) .

3. Queremos usar este dado para generar passwords numéricas de 8 dígitos. ¿Es ésta una

fuente apropiada? ¿Por qué sí o por qué no? (0.3 puntos)

SOLUCIÓN: Este sistema no es una fuente apropiada para generación de passwords porque ésta debería ser aleatoria y, como tal, con estados equiprobables. Al lanzar el dado 8 veces para obtener la password, el estado 3 aparecerá en media cuatro veces más que los demás y, por lo tanto, la seguridad de esa clave será menor al ser más predecibles sus elementos.

Cuestión de Práctica Nº 1 (1.0 punto. Tiempo recomendado: 15 minutos) Para evaluar el comportamiento de una función hash de n bits destinada a su uso en firma digital, establecemos el siguiente algoritmo en dos fases sobre un conjunto de mensajes: Fase A: Se elige al azar uno de los resúmenes de los mensajes y se compara con todos los demás hasta encontrar una colisión. Encontrada esta colisión, se anota el número de iteraciones que ha dado el algoritmo y se calcula la media después de varios éxitos de colisiones. Fase B: Se establecen dos subconjuntos disjuntos de 2

r y 2

s resúmenes cada uno. Partiendo de

un resumen al azar de cualquiera de ellos, se compara con cada uno de los elementos del otro hasta encontrar una colisión. En caso de no hallarla, se escoge otro elemento y se repite la comparación, así hasta agotar todos los elementos del primer subconjunto. Si r = s = n/2, se obtiene un resultado muy interesante puesto que la probabilidad de éxito se hace mayor que 0.5.

1. ¿Qué busca el algoritmo en su Fase A y cuál es el resultado esperado? (0.4 puntos)

SOLUCIÓN: En esta fase el algoritmo busca el cálculo de la resistencia débil de la función hash a colisiones. Así, dada una función hash prefijada, para encontrar otra igual, esto es una colisión de n bits, habrá que buscar en media en todo el espacio de 2

n–1 resúmenes.

Es decir, habrá como media una colisión cada 2n resúmenes analizados.

2. ¿Qué busca el algoritmo en su Fase B y cuál es el resultado esperado? (0.4 puntos)

SOLUCIÓN: En este caso el algoritmo evalúa la resistencia fuerte a colisiones de esta función hash. Así, para encontrar al menos dos resúmenes al azar cuyas funciones hash coincidan (que los conjuntos NO sean disjuntos) sólo habrá que buscar en media en el espacio 2

n/2. Es decir, habrá como media una colisión cada 2

n/2 resúmenes analizados,

valor muy bajo. Esto es conocido como el ataque basado en la paradoja del cumpleaños.

3. ¿Qué deberá cumplir una función hash para que sea considerada apropiada y segura

como resumen en una firma digital? Indique al menos 3 características. (0.2 puntos)

SOLUCIÓN: 1) Ser unidireccional; 2) Fácil de generar; 3) Resistente a colisiones débiles; 4) Resistente a colisiones fuertes; 5) Comprimir el mensaje; 6) Difusión de los bits.

2ª PARTE: EJERCICIOS (7 puntos: 120 minutos)

Page 89: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2001

Departamento de Lenguajes, Proyectos y Sistemas Informáticos - UPM pág. 3

Un ejercicio de 2.0 puntos y dos ejercicios de 2.5 puntos

Alfabeto de cifrado mod 27, tabla ASCII y la tabla Base 64 (entregados con el examen)

Ejercicio Nº 1 (2.0 puntos. Tiempo recomendado: 30 minutos) En la tumba del querido, recordado y enamoradizo vaquero Luckie Luck se lee como epitafio el texto cifrado C que se indica más abajo. El Indice de Coincidencia del criptograma IC = 0.035 es muy bajo lo que hace sospechar una cifra por sustitución polialfabética; además hay una cadena de 10 caracteres repetida. Intentamos así un ataque por Kasiski pero no obtenemos resultado alguno. Suponemos entonces que el cifrado es del tipo autoclave (segundo cifrado de Vigenère) y probando con la clave VAQUERO logramos romper la cifra. a) Descifre los primeros 21 caracteres (3 bloques de 7) usando aritmética modular, no la

Tabla de Vigenère. Por ejemplo: I – V = (8 – 22) mod 27 = -14 mod 27 = 13 = N. b) ¿Por qué no se ha podido romper el criptograma mediante Kasiski si la cifra es

polialfabética? C = IOIJP HOFAR HXXPH NRWÑW HOAGQ GHLAR EQKSG DHYYY TBHBC CWGRI XIAMD

XMOPK IJKWG PDALB WRDNR WÑWHO AGQÑS YAQOF XMRPV DSLWD GYLEQ SDF

SOLUCIÓN: a) C = IOIJP HOFAR HXXPH NRWÑW H C = IOIJP HO (primer bloque de 7 caracteres)

K = VAQUE RO (clave primaria)

M = (C - K) mod 27

I - V = 8 - 22 = -14 mod 27 = 13 = N

O - A = 15 - 0 = 15 mod 27 = 15 = O

I - Q = 8 - 17 = -9 mod 27 = 18 = R

J - U = 9 - 21 = -12 mod 27 = 15 = O

P - E = 16 - 4 = 12 mod 27 = 12 = M

H - R = 7 - 18 = -11 mod 27 = 16 = P

O - O = 15 - 15 = 0 mod 27 = 0 = A (0.4 puntos) C = FAR HXXP (segundo bloque de 7 caracteres)

K = NOR OMPA (autoclave deducida en paso anterior)

M = (C - K) mod 27

F - N = 5 - 13 = -8 mod 27 = 19 = S

A - O = O - 15 = -15 mod 27 = 12 = M

R - R = 18 - 18 = 0 mod 27 = 0 = A

H - O = 7 - 15 = -8 mod 27 = 19 = S

X - M = 24 - 12 = 12 mod 27 = 12 = M

X - P = 24 - 16 = 8 mod 27 = 8 = I

P - A = 16 - 0 = 16 mod 27 = 16 = P (0.4 puntos) C = H NRWÑW H (tercer bloque de 7 caracteres)

K = S MASMI P (autoclave deducida en paso anterior)

M = (C - K) mod 27

H - S = 7 - 19 = -12 mod 27 = 15 = O

N - M = 13 - 12 = 1 mod 27 = 1 = B

R - A = 18 - 0 = 18 mod 27 = 18 = R

W - S = 23 - 19 = 4 mod 27 = 4 = E

Ñ - M = 14 - 12 = 2 mod 27 = 2 = C

W - I = 23 - 8 = 15 mod 27 = 15 = 0

H - P = 7 - 16 = -9 mod 27 = 18 = R (0.4 puntos)

Si desciframos el criptograma completo obtenemos M = NO ROMPAS MÁS MI POBRE CORAZÓN, ESTÁS PEGANDO JUSTO ENTIÉNDELO, SI QUIEBRAS POCO MÁS MI POBRE CORAZÓN, ME HARÁS MIL PEDAZOS QUIÉRELO. Puede comprobar que la cadena NRWÑW HOAGQ que se repite es fortuita y se obtiene al cifrar dos veces el mensaje M = BRE CORAZON con la clave K = MAS MI POBRE.

Page 90: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2001

Departamento de Lenguajes, Proyectos y Sistemas Informáticos - UPM pág. 4

c) El ataque por Kasiski falla puesto que el cifrador no es periódico y, por lo tanto, la clave no tiene una longitud fija. Es imposible encontrarla con este método aunque existan en el criptograma varios bloques repetidos de dos caracteres y uno de 10 caracteres (indicados en criptograma). Esta última repetición tan larga es sólo una casualidad al repetirse un conjunto de letras del texto en claro con un conjunto de

letras de la clave como ya se ha comentado. (0.8 puntos)

Ejercicio Nº 2 (2.5 puntos. Tiempo recomendado: 45 minutos) En un sistema de cifra por flujo con un generador LFSR nos dicen que usemos como polinomio del Registro de Desplazamiento p(x) = x

5 + x + 1.

a) Obtenga el período y la cadena binaria completa de la secuencia cifrante Si para la semilla 01110.

b) Obtenga el período y la cadena binaria completa de la secuencia cifrante Si para la semilla 10001.

c) Según lo obtenido en los apartados anteriores, ¿puede decirse que el polinomio sugerido es el adecuado para generar la secuencia cifrante Si? Justifique su respuesta.

d) Con la clave que genera la primera semilla (01110) descifre el criptograma C que se indica y diga a qué texto ASCII corresponde. Ayuda: Se ha agrupado C en 7 bits y la frase está en inglés. C = 0010011 0101011 0110001 1101011 0111011 0101100 0100101 1111101.

SOLUCIÓN: a) Para la semilla 01110 se tiene:

Estado Bit de Salida Semilla 01110 0 Si = 01110 01 00111 1 El período es T = 7 10011 1 01001 1 10100 0 11010 0 11101 1

01110 semilla (0.5 puntos)

b) Para la semilla 10001 se tiene: Estado Bit de Salida

Semilla 10001 1 Si = 10001 00001 11110 10100 1 01000 0 El período es T = 21 00100 0 00010 0 00001 1 10000 0 11000 0

0 1 1 1 0

+

1 0 0 0 1

+

Page 91: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2001

Departamento de Lenguajes, Proyectos y Sistemas Informáticos - UPM pág. 5

11100 0 11110 0 11111 1 01111 1 10111 1 01011 1 10101 1 01010 0 00101 1 10010 0 11001 1 01100 0 00110 0 00011 1

10001 semilla (0.5 puntos) d) El polinomio no es adecuado porque para semillas distintas se obtienen períodos

distintos. Para que esto no suceda y tengamos el período máximo, deberíamos elegir un polinomio primitivo para obtener una m-secuencia de 2

5-1 = 31 bits. Aunque

algunas condiciones de Golomb se cumplen, este polinomio no sirve. (1.0 punto) El polinomio p(x) = x

5 + x + 1 es factorizable, de hecho:

x5 + x + 1 mod 2 = (x

3 + x

2 + 1)(x

2 + x + 1) mod 2

x5 + x + 1 mod 2 = (x

5 + x

4 + x

3) + (x

4 + x

3 + x

2) + (x

2 + x + 1) mod 2

x5 + x + 1 mod 2 = x

5 + 2x

4 + 2x

3 + 2x

2 + x + 1 mod 2 (reduciendo ahora mod 2)

x5 + x + 1 mod 2 = x

5 + x + 1 mod 2 (esto último no se pide en el examen)

e) Si la secuencia es la del apartado a) es decir Si = 01110 01, tenemos: (0.5 puntos) C = 0010011 0101011 0110001 1101011 0111011 0101100 0100101 1111101

Si = 0111001 0111001 0111001 0111001 0111001 0111001 0111001 0111001

M = 0101010 0010010 0001000 1010010 0000010 0010101 0011100 1000100

Agrupando en 8 bits (bytes) y viendo la tabla ASCII del Anexo tenemos: M = 01010100 01001000 01000101 00100000 01000101 01001110 01000100 M = T H E E N D

Ejercicio Nº 3 (2.5 puntos. Tiempo recomendado: 45 minutos) Adelaida (A) envía a Benito (B) por email un mensaje en claro al que le añade su firma codificada en Base 64 (obtenida con una función hash particular de 24 bits) usando como algoritmo RSA. M = Hola Beni. Te espero a las ocho como siempre ;-) ... Besitos Ade. Datos de Adelaida: pA = 3.001; qA = 6.011; dA = 14.428.903. H(M)2 = 1011 0111 0011 0001 1101 1100. Firma ya convertida a Base 64: rB64 = dTw6. Firma antes B64: r = H(M)

dA mod nA = 12.005.852

14.428.903 mod 18.039.011 = 7.683.130.

7.683.130 = 0111 0101 0011 1100 0011 1010; 34.567 = 1000 0111 0000 0111. Se pide: a) Calcule la clave pública de Adelaida eA (debe usar el algoritmo extendido de Euclides). b) Convierta la firma rB64 en los octetos originales de r, previos a dicha codificación. c) Según los datos que se dan en el Anexo (calculados aplicando algoritmo de

exponenciación rápida), indique y justifique cómo se comprueba la firma digital r en destino.

SOLUCIÓN:

Page 92: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2001

Departamento de Lenguajes, Proyectos y Sistemas Informáticos - UPM pág. 6

a) Usando el algoritmo extendido de Euclides visto en clase y en los apuntes, buscamos

inv (14.428.903, 18.030.000) ya que (n) = (p-1)(q-1) = 3.0006.010 = 18.030.000. i yi gi ui vi Algoritmo: (apuntes de clase) 0 - 18.030.000 1 0 x = inv (A, B) 1 - 14.428.903 0 1 (g0,g1,u0,u1,v0,v1,i) = (B,A,1,0,0,1,1)

2 1 3.601.097 1 -1 Mientras gi 0 hacer 3 4 24.515 -4 5 yi+1 = parte entera (gi-1/gi)

4 146 21.907 585 -731 gi+1 = gi-1 - yi+1 gi

5 1 2.608 -589 736 ui+1 = ui-1 - yi+1 ui

6 8 1.043 5.297 -6.619 vi+1 = vi-1 - yi+1 vi 7 2 522 -11.183 13.974 i = i+1 8 1 521 16.480 20.593 Hacer x = vi-1

9 1 1 -5.297 34.567 (1.0 punto) 10 521 0 Clave pública eA = inv (14.428.903, 18.030.000) = 34.567 (dada en los datos)

b) rB64 = dTw6. Según la tabla Base 64 del Anexo: (0.5 puntos) d = 011101; T = 010011; w = 110000; 6 = 111010, luego agrupando en 8 bits: r = 01110101 00111100 00111010 = u<: (en ASCII)

que obviamente es igual al valor dado en los datos del enunciado: 7.683.130. Se supone que rB64 = dTw6 todavía no se ha convertido a ASCII para su transmisión. En caso contrario, sólo se trataría de un paso intermedio en su emisión/recepción.

c) La comprobación de la firma será r

eA mod nA = 7.683.130

34.567 mod 18.039.011. Como

sabemos que 34.567 = 1000 0111 0000 0111 = b15b14b13b12b11b10b9b8b7b6b5b4b3b2b1b0 se usa el algoritmo de exponenciación rápida como se indica: (apuntes de clase)

j 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 j 7.683.130

2 (los valores están dados en la hoja Anexa)

(1.0 punto) Multiplicamos sólo los bits con valor 1 es decir: b15b10b9b8b2b1b0 mod 18.039.011. Según los datos que se entregan en el Anexo, esta multiplicación será: (7.683.130)(5.819.731)(15.575.245)(12.448.189)(13.935.324)(430.963)(2.688.794) mod 18.039.011 = 12.005.852 Es decir se obtiene el mismo valor entregado en el enunciado H(M) = 12.005.852. Se comprueba así la validez de la firma ya que se obtendrá H(M‟) = H(M) en destino.

NOTA: Todos estos valores pueden comprobarse con el software de prácticas de la asignatura, en particular “CriptoClásicos” para el Ejercicio nº 1 y “Fortaleza” para el Ejercicio nº 3, que encontrará en la página Web de la asignatura y en la Red Temática Iberoamericana CriptoRed: http://www.lpsi.eui.upm.es/Sinformatica/Sinformatica.htm http://www.criptored.upm.es

Madrid, septiembre de 2001

Page 93: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2001

Departamento de Lenguajes, Proyectos y Sistemas Informáticos - UPM pág. 7

ANEXO: Cálculo de 7.683.130

X mod 18.039.011 (x = 1, 2, 4, 8, 16, etc.) de izda. a dcha. y de arriba hacia abajo:

7.683.130 5.819.731 15.575.245 15.701.256 17.706.476 388.795

12.678.856 5.673.006 12.448.189 13.935.324 430.963 17.489.124

5.810.387 10.754.917 8.619.613 2.688.794 (16 bits de clave pública) (7.683.130)(5.819.731)(15.575.245)(12.448.189)(13.935.324)(430.963)(2.688.794) mod 18.039.011 = 12.005.852

Alfabeto Base: 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

Alfabeto Cifra: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

Byte Carácter Byte Carácter Byte Carácter

0010 0000 Espacio 0100 0000 @ 0110 0000 `

0010 0001 ! 0100 0001 A 0110 0001 A

0010 0010 “ 0100 0010 B 0110 0010 B

0010 0011 # 0100 0011 C 0110 0011 C

0010 0100 $ 0100 0100 D 0110 0100 d

0010 0101 % 0100 0101 E 0110 0101 e

0010 0110 & 0100 0110 F 0110 0110 f

0010 0111 „ 0100 0111 G 0110 0111 g

0010 1000 ( 0100 1000 H 0110 1000 h

0010 1001 ) 0100 1001 I 0110 1001 i

0010 1010 * 0100 1010 J 0110 1010 j

0010 1011 + 0100 1011 K 0110 1011 k

0010 1100 , 0100 1100 L 0110 1100 l

0010 1101 - 0100 1101 M 0110 1101 m

0010 1110 . 0100 1110 N 0110 1110 n

0010 1111 / 0100 1111 O 0110 1111 o

0011 0000 0 0101 0000 P 0111 0000 p

0011 0001 1 0101 0001 Q 0111 0001 q

0011 0010 2 0011 0010 R 0111 0010 r

0011 0011 3 0101 0011 S 0111 0011 s

0011 0100 4 0101 0100 T 0111 0100 t

0011 0101 5 0101 0101 U 0111 0101 u

0011 0110 6 0101 0110 V 0111 0110 v

0011 0111 7 0101 0111 W 0111 0111 w

0011 1000 8 0101 1000 X 0111 1000 x

0011 1001 9 0101 1001 Y 0111 1001 y

0011 1010 : 0101 1010 Z 0111 1010 z

0011 1011 ; 0101 1011 [ 0111 1011 {

0011 1100 < 0101 1100 \ 0111 1100 |

0011 1101 = 0101 1101 ] 0111 1101 }

0011 1110 > 0101 1110 ^ 0111 1110 ~

0011 1111 ? 0101 1111 _ 0111 1111

Códigos ASCII / ANSI de nivel bajo (128 bits) más utilizados

Valor Carácter 6 bits codificado

Valor Carácter 6 bits codificado

Valor Carácter 6 bits codificado

Valor Carácter 6 bits codificado

0 000000 A 16 010000 Q 32 100000 g 48 110000 w

1 000001 B 17 010001 R 33 100001 h 49 110001 x

2 000010 C 18 010010 S 34 100010 i 50 110010 y

3 000011 D 19 010011 T 35 100011 j 51 110011 z

4 000100 E 20 010100 U 36 100100 k 52 110100 0

5 000101 F 21 010101 V 37 100101 l 53 110101 1

6 000110 G 22 010110 W 38 100110 m 54 110110 2

7 000111 H 23 010111 X 39 100111 n 55 110111 3

8 001000 I 24 011000 Y 40 101000 o 56 111000 4

9 001001 J 25 011001 Z 41 101001 p 57 111001 5

10 001010 K 26 011010 a 42 101010 q 58 111010 6

11 001011 L 27 011011 b 43 101011 r 59 111011 7

12 001100 M 28 011100 c 44 101100 s 60 111100 8

13 001101 N 29 011101 d 45 101101 t 61 111101 9

14 001110 O 30 011110 e 46 101110 u 62 111110 +

15 001111 P 31 011111 f 47 101111 v 63 111111 /

(Relleno) =

Codificación del algoritmo Base-64

Page 94: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2001

Departamento de Lenguajes, Proyectos y Sistemas Informáticos - UPM pág. 1

SEGURIDAD INFORMÁTICA Sábado 30 de Junio de 2001

PARTE DE TEORÍA Y PRÁCTICAS (3 puntos)

4 cuestiones de Teoría: 2.0 puntos (0.5 c/u)

2 cuestiones de Prácticas: 1.0 punto (0.5 c/u)

Cuestión de Teoría Nº 1 (0.5 pts. Tiempo recomendado 10 minutos) Shannon explica en su teoría de la información el concepto de un sistema con secreto perfecto. Si no se cumplen las condiciones de tamaño de los espacios de mensajes, claves y criptogramas por él indicados: a) ¿En qué caso podemos decir que, incluso para sistemas de cifra muy elementales, se

logra este secreto perfecto? Presente o comente un ejemplo. b) ¿Por qué podríamos decir que en este caso se produce una paradoja?

Solución: a) Para que un sistema tenga secreto perfecto deberá cumplirse que el espacio de

claves sea igual o superior al espacio de los mensajes, situación teórica que no se da en la práctica. No obstante si el tamaño del mensaje es muy pequeño (pocas letras por ejemplo) puede darse el caso de lograr este secreto perfecto incluso en sistemas de cifra muy rudimentarios como podrían ser los de tipo César. Por ejemplo, si el resultado de una cifra monoalfabética mod 27 es C = XPKÑGF, esto bien podría ser debido a mensajes como : HOLA TU; PEDAZO, MI CASO; MONEDA; TU CAFÉ; DULCES; HUESCA; EL ROCK; BOLETA; SOLDAR; CAMINO; GUAPOS; PIEDRA; FONEMA; PETALO; FLORES; etc., todos mensajes de 6 caracteres distintos.

b) Se produce una paradoja porque cabe esperar que una cifra tan elemental como ésta sea muy vulnerable a ataques de tipo estadístico. En este caso, tras el criptoanálisis por fuerza bruta nos podemos encontrar con un gran número de soluciones probables y verdaderas. Si no tenemos idea de qué va el mensaje, no habremos logrado nada.

Cuestión de Teoría Nº 2 (0.5 pts. Tiempo recomendado 10 minutos) Decidimos utilizar un sistema de cifra de matrices (cifrador de Hill) para enviar por e-mail diversos documentos. Conociendo que por temas de compatibilidad de clientes de correo todo lo que no sea texto va codificado en Base 64, proponemos diseñar el cifrador para que cifre bloques de 5 caracteres en módulo 64. a) ¿Es adecuada la elección del módulo de cara a la elección de la matriz clave de cifra?

¿Por qué? b) Si decidimos cifrar cualquier documento (tenga o no formato) con este criptosistema, ¿qué

habría que hacer antes de proceder a la cifra de los bloques? ¿Y para descifrar el criptograma?

c) Para aumentar la seguridad del cifrador, nos dicen que el módulo debe ser mayor. ¿Podríamos trabajar, por ejemplo, en el módulo 2.357? ¿Por qué?

Solución: a) No es adecuada porque, sin contar aquellas matrices clave de tipo singular (determinante

igual a cero), habrá un gran número de matrices K candidatas a clave con determinante par y como 64 = 2

6 no podrá usarse al tener factores comunes y no existir la inversa K

-1.

Esto, además de reducir el espacio de claves posibles, dificulta su generación. b) Al mensaje le aplicaríamos antes el algoritmo de codificación Base 64 de forma que todos

los elementos de M’ tendrán esos 64 símbolos imprimibles. Para descifrar se procede como siempre y, luego, se aplicaría el código Base 64 para recuperar el ASCII o ANSI.

Page 95: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2001

Departamento de Lenguajes, Proyectos y Sistemas Informáticos - UPM pág. 2

c) El módulo 2.357 no puede utilizarse porque en estos sistemas de cifra el cuerpo de trabajo debe coincidir con el alfabeto utilizado y este valor está muy por encima de cualquier codificación para texto que se nos pueda ocurrir.

Cuestión de Teoría Nº 3 (0.5 pts. Tiempo recomendado 10 minutos) Durante el intercambio de la clave de sesión en una plataforma segura de Internet un “indeseable” ha pinchado la línea y ha leído esa clave cifrada y el mensaje posterior cifrado. Como el sistema para el intercambio de clave es el de Diffie y Hellman con una clave muy baja, éste logra romper por fuerza bruta dicha clave de sesión en 3 meses. Si la sesión en cuestión duró sólo doce minutos: a) ¿Tenemos que estar preocupados por el tema de la seguridad? Justifíquelo. b) ¿A qué tipo de problema se ha enfrentado y cómo ha conseguido obtener la clave?

Solución: a) El atacante no podrá descubrir nuevos mensajes puesto que la clave de sesión cambia

cada vez. No obstante, debemos preocuparnos si en esos 3 meses de tiempo transcurrido la información que habíamos protegido sigue siendo confidencial en cualquier sentido. Esto es conocido como el problema de la caducidad del secreto de la información

b) Como el intercambio de claves se hace con el algoritmo de D-H, se habrá enfrentado al problema del logaritmo discreto. La clave la ha obtenido por fuerza bruta (para cuerpos pequeños) calculando b = a

x mod p para todos los valores posibles de x en el cuerpo p

conocidos a, b y p, bien aplicando diversos algoritmos existentes o por acierto fortuito.

Cuestión de Teoría Nº 4 (0.5 pts. Tiempo recomendado 10 minutos) La Autoridad de Certificación LoFirmoTodo nos entrega, previo pago claro, un certificado digital personal de 1.024 bits y validez un año. a) ¿Qué clave nos guarda la empresa, qué hace con ella y para qué sirve eso? b) Si creemos que la clave privada está en entredicho, ¿qué debemos hacer? c) Si ha caducado el certificado, ¿podemos seguir enviando e-mails firmados?

¿Podemos seguir recibiendo e-mails firmados por sus emisores?

Solución: a) La empresa o Autoridad de Certificación guarda nuestra clave pública firmada con su

clave privada. Esto nos autentica la clave ante esa autoridad por lo que cualquiera puede comprobar que nuestra clave es auténtica, ya que tendrá en su cliente de correo la clave publica de esa AC (la ha dado de alta como autoridad en el cliente).

b) Habrá que pedir un certificado de revocación de clave y solicitar una nueva. c) Caducado el certificado, el cliente de correo avisará de la caducidad del certificado. Si

se envía, aparece un mensaje de firma incorrecta. Sí podemos seguir recibiendo e-mails de otros usuarios firmados con su clave (de la misma AC o de otras) ya que ésta y las demás se encontrarán dadas de alta (o lo haremos) en nuestro cliente de correo.

Cuestión de Práctica Nº 1 (0.5 pts. Tiempo recomendado 10 minutos) Hemos descargado e instalado en nuestro ordenador una versión de PGP, da igual que sea una actual en entorno Windows que antigua o nueva en MS-DOS o UNIX. Si deseamos hacer una demostración de cifrado y firma de un archivo llamado carta1_2001.doc que envía el Usuario A (Adelaida) al usuario B (Benito) de forma local, esto es, sin tener conexión a Internet ni a ningún otro tipo de red y, por tanto, sin direcciones reales de correo electrónico, se pide: a) ¿Qué es lo primero que tenemos que hacer con PGP para que esto sea posible?

Page 96: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2001

Departamento de Lenguajes, Proyectos y Sistemas Informáticos - UPM pág. 3

b) ¿Cómo hacemos para que Adelaida envíe (cifre y firme) el archivo carta1_2001.doc y Benito lo reciba (descifre y autentique) en el mismo ordenador, simulando un envío por Internet? No se piden los comandos o movimientos del ratón, tan sólo el tipo de operaciones.

Solución: a) Para poder hacer esta demostración, lo primero que hay que hacer con PGP es crear

el par de claves para cada uno de ellos, con las características que deseemos. b) Todo puede hacerse bien desde teclado MS-DOS o UNIX o bien con los menús y el

ratón en versiones Windows. Dejamos como usuario por defecto a Adelaida, elegimos cifrar y firmar el archivo carta1_2001.doc y se elige como destinatario a Benito. Para la firma del documento nos pedirá la frase de paso de Adelaida para operar con su clave privada. Se guardará el archivo como carta1_2001.pgp. Para descifrar se cambia de usuario por defecto a Benito y se abre el archivo carta1_2001.pgp. Como éste iba dirigido a Benito (cifrado con su clave pública), pregunta por su clave privada, éste introduce su frase de paso y puede ver el mensaje en claro. Por último PGP comprueba la firma de Adelaida pues su clave pública está en el anillo de claves públicas del ordenador. NOTA: Hecho y explicado en la clase de PGP.

Cuestión de Práctica Nº 2 (0.5 pts. Tiempo recomendado 10 minutos) Analizamos el comportamiento de una función hash que entrega un resumen de 80 bits. En una parte del trabajo, usando una base de datos de n mensajes distintos hacemos un estudio de la fortaleza débil v/s la fortaleza fuerte ante colisiones: a) ¿Qué tamaño mínimo debe tener esa base de datos? ¿Por qué? b) En un caso, conocido el mensaje, buscamos el número de intentos hasta encontrar

una colisión y, en el otro, elegimos al azar dos mensajes y luego contamos los intentos hasta que los hash coincidan. ¿A qué resultados y conclusiones deberíamos llegar?

Solución: a) Para tener unos datos relativamente aceptables y hacer estadísticas (que es de lo que

se trata) la base de datos o espacio de mensajes debería ser mucho mayor que el espacio de resúmenes posibles. Como hablamos de 80 bits, el espacio equiprobable de hash será 2

80 (1.208.925.819.614.629.174.706.176) por lo que deberíamos contar

al menos con 283

mensajes distintos en una relación de 1 a 8. Es preferible aumentar esta relación por lo que sería aconsejable aproximadamente 2

85 mensajes.

b) Deberíamos tener como resultado que hace falta muchos menos intentos para encontrar colisiones de dos mensajes al azar que en el otro caso, a partir de un mensaje encontrar otro con igual función. Esto es conocido como el problema de la paradoja del cumpleaños. Como conclusión diremos que una función hash de n bits en realidad tiene una seguridad de 2

n/2; es la llamada resistencia fuerte a colisiones.

NOTA: Es el tema de la práctica obligatoria de este año y además explicado en clase.

PARTE DE EJERCICIOS (7 puntos)

3 ejercicios: 2.0, 2.5 y 2.5 puntos respectivamente

NOTA: En los ejercicios es obligatorio usar el Algoritmo Extendido de Euclides para el cálculo de inversos, salvo que su valor sea obvio dentro del cuerpo.

Todos los datos de interés y cálculos intermedios están en la Hoja Anexa.

Ejercicio Nº 1: (2.0 pts. Tiempo recomendado 30 minutos)

Page 97: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2001

Departamento de Lenguajes, Proyectos y Sistemas Informáticos - UPM pág. 4

El criptograma recibido y cifrado con una mochila de M-H es el que se indica. Si conocemos los datos de la mochila difícil S que se muestra más abajo y se usa el ASCII, se pide: a) Comprobar que el factor de multiplicación necesario para el descifrado es 4.722. b) Descifrar el criptograma C siguiendo los datos y cálculos de la hoja Anexa. c) ¿Es vulnerable esta mochila ante ataques del tipo Shamir-Zippel? ¿Por qué?

S = {11.172, 49.809, 8.674, 44.813, 64.215, 24.829, 24.247} u = 65.533, w = 61.772.

C 74.056 53.487 183.084 97.718 110.057 88.462 125.196 49.809

82.730 53.487 183.084 97.718 110.057 88.462 125.196 94.484

Solución: a) Resolviendo mediante el Algoritmo Extendido de Euclides para inv (61.772, 65.533):

i yi gi ui vi Algoritmo: 0 - 65.533 1 0 x = inv (A, B) 1 - 61.772 0 1 (g0,g1,u0,u1,v0,v1,i) =

(B,A,1,0,0,1,1)

2 1 3.761 1 -1 Mientras gi 0 hacer 3 16 1.596 -16 17 yi+1 = parte entera (gi-1/gi)

4 2 569 33 -35 gi+1 = gi-1 - yi+1 gi

5 2 458 -82 87 ui+1 = ui-1 - yi+1 ui

6 1 111 115 -122 vi+1 = vi-1 - yi+1 vi 7 4 14 -542 575 i = i+1 8 7 13 3.909 -4.147 Hacer x = vi-1 9 1 1 -4.451 4.722 Luego inv (61.772, 65.533) = 4.722

b) La mochila fácil se da en la hoja anexa: S’ = {119, 161, 503, 929, 2.039, 4.001, 8.183}

Los resultados de multiplicar C w-1

mod u se dan en la hoja anexa, es decir tenemos: (8.344; 1.432; 11.312; 6.543; 12.464; 10.222; 2.319; 161; 8.847; 1.432; 11.312; 6.543; 12.464; 10.222; 2.319; 4.784) Se ha subrayado lo repetido. Pasando estos valores por la mochila fácil S’ de derecha a izquierda tenemos: 0100001 0011000 0101101 0010110 1100011 0000101 1100100 0100000 0110001 0011000 0101101 0010110 1100011 0000101 1100100 1110010 Agrupando cada 8 bits e indicando abajo el código ASCII (hoja de datos) se tiene: 01000010 01100001 01101001 01101100 01100001 01110010 00100000 B a i l a r 01100010 01100001 01101001 01101100 01100001 01110010 01110010 b a i l a r r El mensaje es M = Bailar bailarr.

c) Esta mochila podrá criptoanalizarse por el método de Shamir-Zippel porque, además de conocer el módulo u, se cumple que mcd (S1’, u) = 1 y mcd (S2’, u) = 1 como se indica:

mcd (S1’, u) = mcd (119, 65.533) = 1 porque 119 = 7 17 y 65.533 = 13 712 (datos

dados)

mcd (S2’, u) = mcd (161, 65.533) = 1 porque 161 = 7 23 y 65.533 = 13 712 (datos

dados) NOTA: con el software de prácticas se logra romper la mochila en el intento nº 96.

Ejercicio Nº 2: (2.5 pts. Tiempo recomendado 45 minutos) Adelaida (A) y Benito (B) se intercambian una clave de sesión TripleDES de 128 bits mediante el algoritmo RSA y un protocolo compartido de forma que A genera los primeros 64 bits que envía cifrados a B y B genera los 64 bits restantes que envía cifrados a A, ambos números aleatorios. Para demostrarle a su amiga Clarisa cómo funciona esto, lo

Page 98: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2001

Departamento de Lenguajes, Proyectos y Sistemas Informáticos - UPM pág. 5

hace con números pequeños. La clave DES simulada (5 + 5 bits) es K = 921 = 11100 11001 y los datos simulados de A y B son:

pA = 7; qA = 11; eA = 7 pB = 3; qB = 13; eB = 5 a) Realice el intercambio de clave mediante algoritmo RSA de A hacia B y viceversa.

Debe usar la propiedad de reducibilidad o el algoritmo de exponenciación rápida según la hoja de datos.

b) Si ahora desean intercambiar la clave K = 3.435 = 110101 101011 ¿Qué sucede?

Solución: a) El algoritmo puede usarse en este entorno simulado puesto que el grupo de trabajo de

Adelaida es nA = 7 11 = 77 y el de Benito nB = 3 13 = 39, ambos mayores que la clave de 5 bits que van a intercambiar y cuyo valor máximo 11111 es igual a 31. Claves de Adelaida: pA = 7; qA = 11; eA = 7

nA = 77; nA = 6 10 = 60; dA = inv (eA, nA); dA = inv (7, 60) = 43 i yi gi ui vi Algoritmo: 0 - 60 1 0 x = inv (A, B) 1 - 7 0 1 (g0,g1,u0,u1,v0,v1,i) = (B,A,1,0,0,1,1)

2 8 4 1 -8 Mientras gi 0 hacer 3 1 3 -1 9 yi+1 = parte entera (gi-1/gi)

4 1 1 2 -17 gi+1 = gi-1 - yi+1 gi

ui+1 = ui-1 - yi+1 ui

vi+1 = vi-1 - yi+1 vi i = i+1 Hacer x = vi-1 Como vi = -17, obtenemos (-17 + 60) mod 60 = 43. Luego dA = inv (7, 60) = 43. Claves de Benito: pB = 3; qB = 13; eB = 5

NB = 39; nB = 2 12 = 24; dB = inv (eB, nB); dB = inv (5, 24) = 5

Este inverso dB es obvio porque 5 5 mod 24 = 25 mod 24 = 1. Adelaida cifra su parte de clave 11100 = 28 con las claves públicas de Benito:

KA = 285 mod 39 = (28

2) (28

2) 28 mod 39 = 4 4 28 mod 39 = 19 que envía a B.

Benito descifra el criptograma recibido con su clave privada dB = 5:

Kizq. = 195 mod 39 = (19

2) (19

2) 19 mod 39 = 10 10 19 mod 39 = 28 = 11100 (5 bits)

Ahora Benito cifra su parte de clave 11001 = 25 con las claves públicas de Adelaida:

KB = 257 mod 77 = (25

2) (25

2) (25

2) 25 mod 77 = 9 9 9 25 mod 77 = (9

3) 25 mod 77

= 36 25 mod 77 = 53 que envía a A. Adelaida descifra el criptograma recibido con su clave privada dA = 43: X = 53

43 mod 77

Usamos en este caso el algoritmo de exponenciación rápida con datos de hoja anexa. j 0 1 2 3 4 5 43 = 101011 = b5b4b3b2b1b0 j 53

2 53 37 60 58 53 37

X = 5343

mod 77 = b9b1b3b5 mod 77 = 53 37 58 37 mod 77 = (372) 53 58 mod 77

X = 60 53 58 mod 77 = 25 Kder = 53

43 mod 77 = 25 = 11001 (5 bits)

Ahora ambos tienen las dos mitades de la clave de sesión K = 11100 11001 de 10 bits. b) Si cada uno mantiene el mismo grupo de trabajo, Adelaida debería enviar el valor

110101 (en decimal 53) cifrado en el grupo de Bernardo que es 39; no debe hacerse porque está fuera del cuerpo. Benito sí podría enviar su parte 101011 (43 en decimal) pues el grupo de Adelaida es 77 y éste sí es un elemento de él. Como una parte de algoritmo no puede realizarse, no es posible el intercambio de esta clave de 12 bits en este escenario.

Page 99: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2001

Departamento de Lenguajes, Proyectos y Sistemas Informáticos - UPM pág. 6

Ejercicio Nº 3: (2.5 pts. Tiempo recomendado 45 minutos) Artemisa desea enviar a Venancio el mensaje M = “Cómo cambian los tiempos Venancio” firmado con ElGamal. Para demostrarle a Venancio que es necesario usar un generador

en el cuerpo p, hace un sencillo desarrollo con números más pequeños: supone p = 11;

clave privada a = 4, un generador = 2 y parámetro de firma h = 3. Demostración: realiza todas las firmas posibles de funciones hash de 3 bits (desde 000 hasta 111) que están en el cuerpo p y luego sus correspondientes comprobaciones en destino. Conclusión: después de los cálculos y valores encontrados, saca sus conclusiones. Se pide: a) Calcular y comprobar todas las posibles firmas digitales: desde H(M) = 0 a H(M) = 7.

b) Repita el apartado a) para = 3, que no es un generador de p = 11. Conclusiones.

c) De lo observado, ¿por qué se dice que es necesario que sea un generador?

Solución: Las firmas, todas de 3 bits, podrán ser 000, 001, 010, 011, 101, 110, 111. Es decir, en decimal podemos encontrarnos con los valores: 0, 1, 2, 3, 4, 5, 6, ó 7.

Generación de Firma: (r, s) r = h mod p; s = [H(M) - a r] h

-1 mod (p)

Comprobación de Firma: ¿ k = {(rs mod p) [(

a) r mod p]} =

H(M) mod p ?

a = 4 (clave privada) a mod p = 2

4 mod 11 = 5 (clave pública)

h = 3 h-1 = inv [h, (p)] = inv (3, 10) = 7 (este valor es obvio porque 3 7 mod 10 = 1.

Todos los valores, excepto la resta en el cálculo de s, están en la hoja de datos anexa.

a) Para = 2:

Cálculos para H(M) = 0

r = 23 mod 11 = 8 s = [0 - 4 8] 7 mod 10 = 6 k = [8

6 mod 11 5

8 mod 11]

mod 11

k = 3 4 mod 11 = 1 -- comprobación -- H(M)

mod p = 20 mod 11 = 1 (SÍ)

Cálculos para H(M) = 1

r = 23 mod 11 = 8 s = [1 - 4 8] 7 mod 10 = 3 k = [8

3 mod 11 5

8 mod 11]

mod 11

k = 6 4 mod 11 = 2 -- comprobación -- H(M)

mod p = 21 mod 11 = 2 (SÍ)

Cálculos para H(M) = 2

r = 23 mod 11 = 8 s = [2 - 4 8] 7 mod 10 = 0 k = [8

0 mod 11 5

8 mod 11]

mod 11

k = 1 4 mod 11 = 4 -- comprobación -- H(M)

mod p = 22 mod 11 = 4 (SÍ)

Cálculos para H(M) = 3

r = 23 mod 11 = 8 s = [3 - 4 8] 7 mod 10 = 7 k = [8

7 mod 11 5

8 mod 11]

mod 11

k = 2 4 mod 11 = 8 -- comprobación -- H(M)

mod p = 23 mod 11 = 8 (SÍ)

Cálculos para H(M) = 4

r = 23 mod 11 = 8 s = [4 - 4 8] 7 mod 10 = 4 k = [8

4 mod 11 5

8 mod 11]

mod 11

k = 4 4 mod 11 = 5 -- comprobación -- H(M)

mod p = 24 mod 11 = 5 (SÍ)

Cálculos para H(M) = 5

r = 23 mod 11 = 8 s = [5 - 4 8] 7 mod 10 = 1 k = [8

1 mod 11 5

8 mod 11]

mod 11

k = 8 4 mod 11 = 10 -- comprobación -- H(M)

mod p = 25 mod 11 = 10

(SÍ)

Cálculos para H(M) = 6

Page 100: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2001

Departamento de Lenguajes, Proyectos y Sistemas Informáticos - UPM pág. 7

r = 23 mod 11 = 8 s = [6 - 4 8] 7 mod 10 = 8 k = [8

8 mod 11 5

8 mod 11]

mod 11

k = 5 4 mod 11 = 9 -- comprobación -- H(M)

mod p = 26 mod 11 = 9 (SÍ)

Cálculos para H(M) = 7

r = 23 mod 11 = 8 s = [7 - 4 8] 7 mod 10 = 5 k = [8

5 mod 11 5

8 mod 11]

mod 11

k = 10 4 mod 11 = 7 -- comprobación -- H(M)

mod p = 27 mod 11 = 7

(SÍ)

Se comprueba que cuando es un generador se cumple que para cada resumen posible del mensaje se obtienen valores de k distintos y se puede comprobar siempre la firma.

b) Si ahora usamos = 3 que no es generador se tiene:

a = 4 (clave privada) a mod p = 3

4 mod 11 = 4 (clave pública)

Cálculos para H(M) = 0

r = 33 mod 11 = 5 s = [0 - 4 5] 7 mod 10 = 0 k = [5

0 mod 11 4

5 mod 11]

mod 11

k = 1 1 mod 11 = 1 -- comprobación -- H(M)

mod p = 30 mod 11 = 1 (SÍ)

Cálculos para H(M) = 1

r = 33 mod 11 = 5 s = [1 - 4 5] 7 mod 10 = 7 k = [5

7 mod 11 4

5 mod 11]

mod 11

k = 3 1 mod 11 = 3 -- comprobación -- H(M)

mod p = 31 mod 11 = 3 (SÍ)

Cálculos para H(M) = 2

r = 33 mod 11 = 5 s = [2 - 4 5] 7 mod 10 = 4 k = [5

4 mod 11 4

5 mod 11]

mod 11

k = 9 1 mod 11 = 9 -- comprobación -- H(M)

mod p = 32 mod 11 = 9 (SÍ)

Cálculos para H(M) = 3

r = 33 mod 11 = 5 s = [3 - 4 5] 7 mod 10 = 1 k = [5

1 mod 11 4

5 mod 11]

mod 11

k = 5 1 mod 11 = 5 -- comprobación -- H(M)

mod p = 33 mod 11 = 5 (SÍ)

Cálculos para H(M) = 4

r = 33 mod 11 = 5 s = [4 - 4 5] 7 mod 10 = 8 k = [5

8 mod 11 4

5 mod 11]

mod 11

k = 4 1 mod 11 = 4 -- comprobación -- H(M)

mod p = 34 mod 11 = 4 (SÍ)

Cálculos para H(M) = 5

r = 33 mod 11 = 5 s = [5 - 4 5] 7 mod 10 = 5 k = [5

5 mod 11 4

5 mod 11]

mod 11

k = 1 1 mod 11 = 1 -- comprobación -- H(M)

mod p = 35 mod 11 = 1 (SÍ)

Cálculos para H(M) = 6

r = 33 mod 11 = 5 s = [6 - 4 5] 7 mod 10 = 2 k = [5

2 mod 11 4

5 mod 11]

mod 11

k = 3 1 mod 11 = 3 -- comprobación -- H(M)

mod p = 36 mod 11 = 3 (SÍ)

Cálculos para H(M) = 7

r = 33 mod 11 = 5 s = [7 - 4 5] 7 mod 10 = 9 k = [5

9 mod 11 4

5 mod 11]

mod 11

k = 9 1 mod 11 = 9 -- comprobación -- H(M)

mod p = 37 mod 11 = 9 (SÍ)

Se ve que para todos los valores de H(M) se cumple la comprobación de firma pero existen

valores de k = H(M)

mod p repetidos. Esto es inaceptable en un algoritmo de firma porque, aunque todas las firmas (r, s) son distintas, en recepción se podría dar por buena una función hash que no correspondiese a la verdadera que se generó en emisión.

c) Es condición necesaria que sea un generador en el cuerpo porque sino, aunque parece cumplirse la firma y su comprobación en destino, el algoritmo falla por lo indicado en el

Page 101: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2001

Departamento de Lenguajes, Proyectos y Sistemas Informáticos - UPM pág. 8

apartado anterior. En este caso, por ejemplo a partir de un valor hash H(M) = 0102 = 210

con una firma (r, s) igual a (5, 4), dando un valor k = H(M)

mod p = 32 mod 11 = 9,

podríamos aceptar en recepción como valor de firma comprobada el resultado de una función hash alterada durante la transmisión igual a H(M) = 1112 = 710 ya que al calcular

H(M) mod p = 3

7 mod 11 obtendríamos el mismo valor k = 9 que en el caso anterior. Es

decir, estamos aceptando como firmas iguales la primera de ellas (5, 4) para H(M) = 0102 y esta otra (5, 9) para H(M) = 1112 lo cual no es cierto. Para que esto no suceda, a cada resumen le debe corresponder un número de comprobación k único y en este escenario

con = 3 no se cumple. Por el contrario, si es un generador en p (por ejemplo el 2 entre otros números) se podrá siempre comprobar la firma y, además, el parámetro que se usa

para la comprobación k = H(M)

mod p será siempre distinto para cada uno de los valores H(M) posibles -por definición propia de raíz primitiva de un número- lo que no ocurre en el

otro caso. De hecho, en H(M)

mod p para = 3 se repiten en este ejemplo los resultados de k igual a 1, 3 y 9, y se repetirían también el 5 y 4 si se firmasen los valores H(M) = 8 y H(M) = 9. Existe, además, un problema añadido y es la debilidad en la fortaleza de la clave

privada ya que la clave pública a mod p tendrá valores repetidos para distintos valores de

clave privada a, al no ser un generador en p, facilitando así el ataque por fuerza bruta. Esto reduce en muchos casos el espacio de claves de forma espectacular.

Page 102: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2002

Departamento de Lenguajes, Proyectos y Sistemas Informáticos - UPM pág. 1

SEGURIDAD INFORMÁTICA Miércoles 26 de Junio de 2002

1ª PARTE: TEORÍA Y PRÁCTICAS (3 puntos: 60 minutos)

2 cuestiones de Teoría: 1,0 punto c/u; 1 cuestión de Prácticas: 1,0 punto ESTA HOJA SE RECOGERÁ TRANSCURRIDOS LOS 60 PRIMEROS MINUTOS DEL EXAMEN

Cuestión de Teoría Nº 1 (0,1 punto c/u. Tiempo recomendado: 30 minutos) En las siguientes 10 afirmaciones elija una de las opciones (entre paréntesis) que faltan: a) Si la entropía de una clave es máxima, esto quiere decir que la probabilidad de un estado es

(alta / baja / igual / nula) igual comparado con la de los demás. En una clave binaria de 40 bits

se dirá entonces que el espacio de claves es (402 / 2

40 / 10

40 / 2 10

40) 2

40.

b) En un cifrador de ElGamal elegimos (alfa) que no es generador del grupo de trabajo p. Luego, (el sistema no funciona / se tarda más en realizar la operación / el criptograma va en

claro / el cifrado pierde fortaleza) el cifrado pierde fortaleza. c) Trabajamos con PGP y queremos revocar nuestra clave. Una vez que lo hemos hecho, con

esa clave no podremos (recibir mensajes cifrados de otros usuarios / recuperar archivos antiguos cifrados con esa clave / generar una nueva clave / comprobar las propiedades de

ésta en su anillo) recibir mensajes cifrados de otros usuarios. d) En un sistema RSA con n = 143, se nos ocurre elegir e = 61 como clave pública y d = 61 como

clave privada. Por lo tanto (el sistema funciona más rápido al ser las claves iguales / no es

posible cifrar porque e y d son iguales en el cuerpo (n) / la cifra no será correcta porque e no es un generador en cuerpo n / recibiremos como criptograma el mismo mensaje en claro)

recibiremos como criptograma el mismo mensaje en claro. e) Ciframos en forma local un documento con PGP y obtenemos un texto cifrado. Si volvemos a

cifrar el mismo documento con la misma clave, (los dos criptogramas serán iguales / los dos criptogramas serán distintos / no se puede hacer porque no acepta cifrar con la misma clave)

los dos criptogramas serán distintos. f) Para comprobar la validez de una firma digital, comparamos en destino dos funciones hash, la

enviada por el emisor y la obtenida en destino a partir del documento recibido. Si ambos valores son iguales, (los mensajes son iguales / los mensajes son distintos / los mensajes son iguales con una probabilidad dada por el tamaño del hash / la función hash no es la correcta)

los mensajes son iguales con una probabilidad dada por el tamaño del hash. g) Usamos el cifrador IDEA y al generar la clave de 128 bits, obtenemos un valor hexadecimal 0x

A9DF 10BD 84C2 6EA1 0000 0000 0000 0000. Luego, (la clave es débil y por ello la rechazamos / la clave puede ser usada pues no está comprometida la seguridad / no usamos

la clave porque el criptograma iría en claro / podríamos cifrar sólo los primeros 64 bits de M) la

clave puede ser usada pues no está comprometida la seguridad. h) En un sistema de comunicación segura estándar como puede ser SSL, se usa (la criptografía

simétrica para el intercambio de claves / la criptografía asimétrica para la cifra de datos / un sistema de clave secreta para la gestión y obtención de los certificados digitales / un cifrado asimétrico para intercambio de claves y firma digital y uno simétrico para el cifrado de datos)

un cifrado asimétrico en intercambio de claves y firma y simétrico en cifrado de datos. i) Un cifrador de flujo implementado con registros de desplazamiento es seguro si (cumple con

Golomb / tiene más de 3 registros con polinomios primitivos / cumple con Golomb y tiene una complejidad lineal alta / cumple con Golomb y no soporta un ataque de Berlekamp–Massey)

cumple con Golomb y tiene una complejidad lineal alta.

j) Las cajas S del DES son no lineales porque (una salida de n bits puede ser debido a varias entradas de m bits / a cada salida le corresponderá una única entrada / los 64 bits de entrada

se reducen a 32 bits de salida / los 32 bits de entrada se convierten en 48 bits de salida) una

salida de n bits puede ser debido a varias entradas de m bits.

Cuestión de Teoría Nº 2 (1,0 punto. Tiempo recomendado: 15 minutos) Se desea cifrar y firmar digitalmente con RSA un mensaje cuya función hash de 16 bits es 0x A3FE. Los valores de p y q son 101 y 701. Diga y justifique, si es verdadero o falso lo siguiente:

a) Se puede cifrar bloques de valor decimal ASCII igual a uno o dos caracteres concatenados.

Page 103: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2002

Departamento de Lenguajes, Proyectos y Sistemas Informáticos - UPM pág. 2

(Verdadero / Falso) El producto p q = 101 701 = 70.801 y dos bloques ASCII concatenados podrían llegar a valer en su expresión máxima 255.255, mayor que 70.801. Es Falso porque este cuerpo y de esta forma sólo se podrá cifrar bloques de un carácter ASCII, máximo valor decimal igual a 255. No obstante, si se concatena en bits, dos bytes serán 16 bits y como 2

16 es menor que 70.801 se podría

así cifrar hasta dos caracteres siendo en este caso la respuesta es Verdadero. 0,4 Puntos

b) Se puede firmar digitalmente ese hash dentro del cuerpo.

(Verdadero / Falso) El hash indicado es de 16 bits y como 216

es igual a 65.536 y esto es menor que el

cuerpo de cifra 70.801, sí se puede hacer la firma de ese hash. 0,2 Puntos

c) Si pudiéramos cifrar un mensaje M y el criptograma resultante fuese 0110 1101 1001 1110, no podríamos representarlo en código Base 64.

(Verdadero / Falso) Independientemente del mensaje y del cuerpo de cifra, con la condición de que este cuerpo sea mayor o igual que un byte (255), podremos representar siempre cualquier mensaje o criptograma en su formato base 64. En este caso C64 = 011011 011001 111000 en donde los últimos

dos ceros corresponden a un relleno. El resultado (no se pide aquí) será bZ4=. 0,4 Puntos

Cuestión de Práctica Nº 1 (1,0 punto. Tiempo recomendado: 15 minutos) Usamos un cifrador de Vigenère. Ciframos un mensaje M con clave de 10 caracteres y logramos romper la clave y la cifra completa mediante un ataque de Kasiski. Repetimos ahora el cifrado usando una clave de 7 caracteres y con el mismo ataque de Kasiski no se logra romper de forma completa la clave ni la cifra. ¿Es esto posible? ¿En qué se basa el ataque? ¿Por qué ha fallado?

Sí es posible, aunque pueda parecer extraño y paradójico. 0,2 Puntos El ataque de Kasiski se basa en la búsqueda de patrones de caracteres que se repiten en el criptograma. Si estas repeticiones son frecuentes (dos veces o más) y además involucran a más de tres caracteres, existe una alta probabilidad de que trigramas, cuatrigramas, etc. del texto en claro (estructura característica del lenguaje) se han cifrado con una misma porción de la clave. El mcd entre estas repeticiones dará la longitud L de la clave. Se divide el criptograma en L subcriptogramas; cada uno de ellos se habrá cifrado con una sola letra. La clave se encuentra ahora mediante estadísticas

encontrando posiciones relativas por frecuencia de aparición de las letras A, E y O. 0,4 Puntos El ataque falla en la segunda cifra porque aunque la clave sea menor, no se han encontrado en el

criptograma repeticiones que sí aparecieron en el primero. 0,4 Puntos

2ª PARTE: EJERCICIOS (7 puntos: 120 minutos)

Un ejercicio de 2,0 puntos y dos ejercicios de 2,5 puntos

Ejercicio Nº 1 (2,0 puntos. Tiempo recomendado: 30 minutos) Usando un criptosistema matricial de Hill trigrámico obtenemos el siguiente cifrado:

M = ESPAÑA EN COREA QUISO SERLO Ayuda: Use los tres primeros bloques C = LCA ACC FLH XUS JFI HXG LWL KFV para buscar los vectores unitarios.

a) Mediante el método de Gauss-Jordan, compruebe que la clave simbólica es CAMPEONES. b) Compruebe con esta clave la cifra del primer bloque trigrámico (LCA) del mensaje M. c) Represente los 3 primeros bytes de C en Base 64, ¿tendría sentido aquí esa codificación?

SOLUCIÓN: a) M = ESP AÑA ENC ORE AQU ISO SER LOZ 1,0 Punto C = LCA ACC FLH XUS JFI HXG LWL KFV

MATRIZ AMPLIADA (M | C) de los tres primeros trigramas

4 19 16 | 11 2 0 (Según alfabeto mod 27 entregado en Anexo)

0 14 0 | 0 2 2

4 13 2 | 5 11 7 1) Multiplicamos fila 1 por inv (4, 27) = 7 1 a) Luego convertimos la columna 1 en ceros:

1 25 4 23 14 0 Fila 3 = Fila 3 - 4 fila 1 mod 27

0 14 0 0 2 2 1 25 4 23 14 0

4 13 2 5 11 7 0 14 0 0 2 2

0 21 13 21 9 7 2) Multiplicamos fila 2 por inv (14, 27) = 2 2 a) Luego convertimos la columna 2 en ceros:

1 25 4 23 14 0 Fila 1 = Fila 1 - 25 fila 2 mod 27

Page 104: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2002

Departamento de Lenguajes, Proyectos y Sistemas Informáticos - UPM pág. 3

0 1 0 0 4 4 1 0 4 23 22 8 0 21 13 21 9 7 0 1 0 0 4 4 0 21 13 21 9 7

2 b) Fila 3 = Fila 3 - 21 fila 2 mod 27

1 0 4 23 22 8

0 1 0 0 4 4

0 0 13 21 6 4 3) Multiplicamos fila 3 por inv (13, 27) = 25 3 a) Luego convertimos la columna 3 en ceros:

1 0 4 23 22 8 Fila 1 = Fila 1 - 4 fila 3 mod 27

0 1 0 0 4 4 1 0 0 2 16 13

0 0 1 12 15 19 0 1 0 0 4 4

0 0 1 12 15 19 La matriz de cifra K será la 2 0 12 C A M traspuesta de la entregada 16 4 15 = P E O por los vectores unitarios: 13 4 19 N E S

b) C1 2 0 12 E (4) 0,7 Puntos C2 = 16 4 15 X S (19) mod 27 C3 13 4 19 P (16)

C1 = (2 4 + 0 19 + 12 16) mod 27 = 200 mod 27 = 11 = L

C2 = (16 4 + 4 19 + 15 16) mod 27 = 380 mod 27 = 2 = C

C3 = (13 4 + 4 19 + 19 16) mod 27 = 432 mod 27 = 0 = A El primer trigrama de C. c) C = LCA = 0100 1100 0100 0011 0100 0001 (según Código ASCII entregado en Anexo) C = 010011 000100 001101 000001 = TENB (según Código Base 64 entregado en Anexo) No tiene sentido codificar el criptograma en base 64 puesto que, al ser el módulo de trabajo 27, todos sus elementos estarán entre la A y la Z, y son imprimibles. El código Base 64 se usa para

representar los 256 elementos ASCII a través de caracteres imprimibles. 0,3 Puntos

Ejercicio Nº 2 (2,5 puntos. Tiempo recomendado: 45 minutos) Se usa como clave la cadena de 16 caracteres UnaClaveFavorita en el algoritmo IDEA. Si los 64 bits de entrada al comienzo de la segunda vuelta son 0x F01E 945B 3BD8 C321, se pide: a) Encontrar las claves Z1, Z2, Z3, Z4, Z5, Z6, Z7, Z8, Z9, y Z10 y expresarlas en hexadecimal. b) Indicar en binario las palabras de 16 bits que actuarán con las claves Z7, Z8, Z9, y Z10. c) Indicar en hexadecimal (no calcular) las cuatro primeras operaciones de la segunda vuelta. Datos del examen: 2

16 = 0x 10000; 2

16 + 1 = 0x 10001

SOLUCIÓN: a) Z1 = Un = 0101 0101 0110 1110 = 0x 556E Z2 = aC = 0110 0001 0100 0011 = 0x 6143

Z3 = la = 0110 1100 0110 0001 = 0x 6C61 Z4 = ve = 0111 0110 0110 0101 = 0x 7665

Z5 = Fa = 0100 0110 0110 0001 = 0x 4661 Z6 = vo = 0111 0110 0110 1111 = 0x 766F

Z7 = ri = 0111 0010 0110 1001 = 0x 7269 Z8 = ta = 0111 0100 0110 0001 = 0x 7461

Las claves Z9 y Z10 se calcularán después del primer desplazamiento de 25 bits a la izquierda, es

decir comenzarán en el bit número 26 (negrita en Z2) y 42 (negrita en Z3). Así: 1,0 Puntos Z9 = 1000 0110 1101 1000 = 0x 86D8 Z10 = 1100 0010 1110 1100 = 0x C2EC

b) Las claves Z7, Z8, Z9 y Z10 intervienen precisamente con el primer bloque de 64 bits de la

segunda vuelta, es decir el entregado como dato en el ejercicio. 0,8 Puntos

Bloque 7 Z7 = F01E = 1111 0000 0001 1110 (operación multiplicación mod 216

+ 1)

Bloque 8 Z8 = 945B = 1001 0100 0101 1011 (operación suma mod 216

) +m

Bloque 9 Z9 = 3BD8 = 0011 1011 1101 1000 (operación suma mod 216

) +m

Bloque 10 Z10 = C312 = 1100 0011 0001 0010 (operación multiplicación mod 216

+ 1)

c) Primera operación 2ª vuelta: B7 Z7 = 0x F01E 7269 mod 10001 resultado: 0x 6CFF Segunda operación 2ª vuelta: B8 +m Z8 = 0x 945B +m 7461 mod 10000 resultado: 0x 08BC Tercera operación 2ª vuelta: B9 +m Z9 = 0x 3BD8 +m 86D8 mod 10000 resultado: 0x C2B0

Cuarta operación 2ª vuelta: B10 Z10 = 0x C312 C2EC mod 10001 resultado: 0x E412

Nota: aunque aquí aparecen, no se pide calcular estos resultados. 0,7 Puntos

Ejercicio Nº 3 (2.5 puntos. Tiempo recomendado: 45 minutos) Tenemos dos usuarios, A: pA = 563, qA = 991, eA = 31 y B: pB = 401, qB = 677, (dB = 105.497).

Page 105: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2002

Departamento de Lenguajes, Proyectos y Sistemas Informáticos - UPM pág. 4

Usarán RSA para intercambiarse una clave de sesión del DES. Para ello el usuario A genera una clave 0x 10BD FA8C 9022 DE83 que envía a B. La cifra se hace en cuatro bloques de 16 bits.

NOTA: Deberá usar obligatoriamente el algoritmo extendido de Euclides para el cálculo de inversos y el algoritmo de exponenciación rápida para el cálculo de la cifra.

a) Exprese en valores (sin calcularla) la ecuación del primer bloque de clave K1 que A envía a B. b) Calcule el valor del primer bloque (K1) de clave cifrada que A envía a B. c) ¿Qué tamaño máximo de bloque de clave Ki en bits podrían intercambiarse A y B? Datos del examen: Operaciones en mod 271.477:

4.2852 = 172.266 172.266

2 = 152.409 152.409

2 = 116.730

116.7302 = 190.793 190.793

2 = 160.873 160.873

2 = 219.719

219.7192 = 227.005 227.005

2 = 48.839 48.839

2 = 50.999

50.9992 = 148.341 148.341

2 = 212.569 212.569

2 = 133.450

133.4502 = 11.300 11.300

2 = 95.810 95.810

2 = 104.299

(104.299) (148.341) (160.873) (116.730) = 160.873 Otros datos de interés: 33.833 = 1000010000101001; 10BD = 1000010111101 = 4.285 2

15 = 32.768; 2

16 = 65.536; 2

17 = 131.072; 2

18 = 262.144; 2

19 = 524.288; 2

20 = 1.048.576

SOLUCIÓN: a) La ecuación de envío del bloque 1 de la clave K desde A hacia B será: K1

eB mod nB

Conocemos el valor de K1 en hexadecimal = 10BD = 1000010111101 = 4.285

nB = pB qB = 401 677 = 271.447. Nos falta conocer la clave pública de B, eB = inv [dB, (nB)].

Como (nB) = (pB -1) (qB -1) = 400 676 = 270.400 eB = inv [dB, (nB)] = inv (105.497, 270.400) Usando el algoritmo extendido de Euclides: i yi gi ui vi Algoritmo: (apuntes de clase) 0 - 270.400 1 0 x = inv (A, B) 1 - 105.497 0 1 (g0,g1,u0,u1,v0,v1,i) = (B,A,1,0,0,1,1)

2 2 59.406 1 -2 Mientras gi 0 hacer 3 1 46.091 -1 3 yi+1 = parte entera (gi-1/gi)

4 1 13.315 2 -5 gi+1 = gi-1 - yi+1 gi

5 3 6.146 -7 18 ui+1 = ui-1 - yi+1 ui

6 2 1.023 14 -41 vi+1 = vi-1 - yi+1 vi 7 6 8 -91 264 i = i+1 8 127 7 11.571 –33.569 Hacer x = vi-1

9 1 1 -11.662 33.833 1,0 Punto 10 7 0 Clave pública eB = inv (105.497, 270.400) = 33.833 (aparece en los datos) La ecuación del primer bloque de clave con valores será: K1

eB mod nB = 4.285

33.833 mod 271.477.

b) Como dato tenemos 33.833 = 1000010000101001 = b15b14b13b12b11b10b9b8b7b6b5b4b3b2b1b0,

j 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 j 4.285

2 (los valores desde j = 1 hasta j = 15 están en los datos)

Multiplicamos sólo los bits con valor 1 (en negrita) es decir: b15b10b5b3b0 mod 271.477. Según los datos que se entregan en el examen, esta multiplicación será:

K1 = (104.299) (148.341) (160.873) (116.730) 4.285 = 160.873 4.285 mod 271.477

K1 = 160.873 4.285 mod 271.477 = 60.702. 1,0 Punto

c) Como nA = pA qA = 653 991 = 557.933 y nB = pB qB = 401 677 = 271.477, viendo los datos entregados en el examen, A puede enviar a B un bloque máximo de 18 bits (2

18 < 271.477 < 219

), en cambio B puede enviar a A un bloque máximo de 19 bits (2

19 < 557.933 < 220

). Por lo tanto la

clave de B fuerza a que el intercambio de bloques de clave sea como máximo de 18 bits. 0,5

Puntos

ANEXO (TABLAS) Módulo 27 Alfabeto Base: 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

Alfabeto Cifra: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

Page 106: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2002

Departamento de Lenguajes, Proyectos y Sistemas Informáticos - UPM pág. 5

Códigos ASCII / ANSI de nivel bajo (128 bits) más utilizados

0 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111

8 1000 9 1001 A 1010 B 1011 C 1100 D 1101 E 1110 F 1111

Codificación en hexadecimal / binario

Valor Carácter 6 bits codificado

Valor Carácter 6 bits codificado

Valor Carácter 6 bits codificado

Valor Carácter 6 bits codificado

0 000000 A 16 010000 Q 32 100000 g 48 110000 w

1 000001 B 17 010001 R 33 100001 h 49 110001 x

2 000010 C 18 010010 S 34 100010 i 50 110010 y

3 000011 D 19 010011 T 35 100011 j 51 110011 z

4 000100 E 20 010100 U 36 100100 k 52 110100 0

5 000101 F 21 010101 V 37 100101 l 53 110101 1

6 000110 G 22 010110 W 38 100110 m 54 110110 2

7 000111 H 23 010111 X 39 100111 n 55 110111 3

8 001000 I 24 011000 Y 40 101000 o 56 111000 4

9 001001 J 25 011001 Z 41 101001 p 57 111001 5

10 001010 K 26 011010 a 42 101010 q 58 111010 6

11 001011 L 27 011011 b 43 101011 r 59 111011 7

12 001100 M 28 011100 c 44 101100 s 60 111100 8

13 001101 N 29 011101 d 45 101101 t 61 111101 9

14 001110 O 30 011110 e 46 101110 u 62 111110 +

15 001111 P 31 011111 f 47 101111 v 63 111111 /

(Relleno) =

Código Base-64

Byte Carácter Byte Carácter Byte Carácter

0010 0000 Espacio 0100 0000 @ 0110 0000 `

0010 0001 ! 0100 0001 A 0110 0001 a

0010 0010 “ 0100 0010 B 0110 0010 b

0010 0011 # 0100 0011 C 0110 0011 c

0010 0100 $ 0100 0100 D 0110 0100 d

0010 0101 % 0100 0101 E 0110 0101 e

0010 0110 & 0100 0110 F 0110 0110 f

0010 0111 ‘ 0100 0111 G 0110 0111 g

0010 1000 ( 0100 1000 H 0110 1000 h

0010 1001 ) 0100 1001 I 0110 1001 i

0010 1010 * 0100 1010 J 0110 1010 j

0010 1011 + 0100 1011 K 0110 1011 k

0010 1100 , 0100 1100 L 0110 1100 l

0010 1101 - 0100 1101 M 0110 1101 m

0010 1110 . 0100 1110 N 0110 1110 n

0010 1111 / 0100 1111 O 0110 1111 o

0011 0000 0 0101 0000 P 0111 0000 p

0011 0001 1 0101 0001 Q 0111 0001 q

0011 0010 2 0101 0010 R 0111 0010 r

0011 0011 3 0101 0011 S 0111 0011 s

0011 0100 4 0101 0100 T 0111 0100 t

0011 0101 5 0101 0101 U 0111 0101 u

0011 0110 6 0101 0110 V 0111 0110 v

0011 0111 7 0101 0111 W 0111 0111 w

0011 1000 8 0101 1000 X 0111 1000 x

0011 1001 9 0101 1001 Y 0111 1001 y

0011 1010 : 0101 1010 Z 0111 1010 z

0011 1011 ; 0101 1011 [ 0111 1011 {

0011 1100 < 0101 1100 \ 0111 1100 |

0011 1101 = 0101 1101 ] 0111 1101 }

0011 1110 > 0101 1110 ^ 0111 1110 ~

0011 1111 ? 0101 1111 _ 0111 1111

Page 107: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2002

Departamento de Lenguajes, Proyectos y Sistemas Informáticos - UPM pág. 1

SEGURIDAD INFORMÁTICA Lunes 23 de Septiembre de 2002

1ª PARTE: TEORÍA Y PRÁCTICAS (3 puntos: 60 minutos; sin apuntes)

2 cuestiones de Teoría: 1,0 punto c/u; 1 cuestión de Prácticas: 1,0 punto ESTA HOJA SE RECOGERÁ TRANSCURRIDOS LOS 60 PRIMEROS MINUTOS DEL EXAMEN

Cuestión de Teoría Nº 1 (1,0 punto. Tiempo recomendado: 30 minutos) 0,1 Puntos c/u

En las siguientes 10 afirmaciones, elija de entre las opciones separadas por / la más adecuada: a) Para elegir una clave numérica, lanzamos repetidas veces un dado no trucado. Si la clave

tiene 4 dígitos, la entropía será: log2(2 46) / log2(4

6) / log2(6

4) / log2(6 4). log2(6

4).

b) Elegimos un número primo p como módulo para una operación de cifra, luego: esto nos

asegura la firma digital / no se acepta un hash como entrada / será poco fiable / asegura la

existencia de claves asimétricas. Asegura la existencia de claves asimétricas. c) Ciframos en forma local con PGP un archivo. Si se le añade armadura esto significa que:

nadie excepto nosotros podremos descifrarlo / se muestra en Base 64 / no puede imprimirse

el archivo cifrado / es incompatible con Windows. Se muestra en Base 64.

d) El cifrador IDEA usa una clave maestra y el siguiente número de vueltas: 64 bits y 8 vueltas /

128 bits y 16 vueltas / 128 bits y 4 vueltas / 128 bits y 8 vueltas. 128 bits y 8 vueltas.

e) Si se cifra con un sistema simétrico en modo ECB: el criptograma es impredecible / se cifran

todos los bloques igual con la clave K / se cifra el mensaje byte a byte / se cifra el texto como

si se tratase de un sistema de flujo: Se cifran todos los bloques igual con la clave K.

f) El sistema de autenticación Kerberos usa: un sistema de ticket cifrando con clave secreta / un

sistema de clave pública / un primo grande para autenticar a los usuarios / una plataforma

basada en el algoritmo RSA. Un sistema de ticket cifrando con clave secreta. g) Realizamos dos veces una función hash SHA-1 sobre un documento: ambos resultados son

distintos / el segundo resultado es más largo / no pueden compararse los resultados entre sí /

ambos resultados son iguales. Ambos resultados son iguales.

h) En un sistema RSA debemos elegir los primos p y q: muy grandes y cercanos / un primo muy

grande y otro muy pequeño / muy grandes y que difieran algunos bits / sin importar el tamaño

si ambos son mayores que 100 bits. Muy grandes y que difieran algunos bits.

i) En DES se dice que una clave es débil si: la cifra sale en claro pero con los bits al revés / el

algoritmo cifra con esa clave aleatoriamente / con la misma clave se cifra y se descifra / al

cifrar dos veces con la clave se obtiene M. Al cifrar dos veces con la clave se obtiene M. j) El segundo postulado de Golomb, que habla sobre las rachas en las secuencias binarias,

viene a indicar que: la secuencia pasa por todos sus estados posibles / cada bit de forma

independiente tiene una probabilidad ½ / la mitad de bits son 1 y la otra mitad 0 / el cifrador es

inmune a ataques estadísticos. La secuencia pasa por todos sus estados posibles.

Cuestión de Teoría Nº 2 (1,0 punto. Tiempo recomendado: 15 minutos) Para explicar a alguien el funcionamiento del sistema de cifra RSA y a modo de ejemplo, creamos un par de claves asimétricas con números primos muy pequeños. Para ello elegimos p = 7 y q = 11. a) ¿Podemos elegir como clave pública e = 5? ¿Y el valor e = 3? ¿Por qué sí o por qué no?

Como p = 7 y q = 11, luego n = p q = 7 11 = 77 y (n) = (p-1)(q-1) = 6 10 = 60. Como 60 = 22

3 5, las

dos claves públicas propuestas e = 3 y e = 5 tienen factores con (n) luego no son válidas. Al tener

factores en común con (n), no existirá la clave privada d, inversa de e en el cuerpo (n). 0,3 Puntos

b) ¿Es el par de claves e = 7, d = 43 válida para la cifra? ¿Por qué sí o por qué no?

La clave e = 7 es válida porque no tiene factores en común con (n). Para saber ahora si la clave d es

efectivamente la inversa de e, debe cumplirse que e d mod (n) = 1 que en este caso se cumple ya

que 7 43 mod 60 = 301 mod 60 = 5 60 + 1 mod 60 = 1. 0,4 Puntos

c) ¿Podríamos cifrar en ese cuerpo caracteres ASCII? ¿Por qué sí o por qué no?

Page 108: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2002

Departamento de Lenguajes, Proyectos y Sistemas Informáticos - UPM pág. 2

No, porque el cuerpo de cifra será 77 y los caracteres ASCII van desde el 0 al 255. Podríamos cifrar como mucho un alfabeto codificado de 77 elementos con letras mayúsculas, minúsculas, números,

signos etc. o bien si transformamos antes el código ASCII a Base 64. 0,3 Puntos

Cuestión de Práctica Nº 1 (1,0 punto. Tiempo recomendado: 15 minutos) Instalamos una versión Windows de PGP (por ejemplo 6.5 o superior) en nuestro ordenador.

a) ¿Qué es lo primero que nos sugiere el programa una vez terminada la instalación?

Terminada la instalación de PGP, aunque no es obligatorio en ese momento pero sí recomendable, el

programa nos invita a crear un par de claves asimétricas: clave pública y clave privada. 0,3 Puntos

b) ¿Qué tipos de claves asimétricas podemos elegir? ¿De qué tamaños aproximadamente?

Podemos elegir entre claves asimétricas clásicas RSA o del tipo Diffie y Hellman (DH/DSS). Valores

típicos de tamaño de clave pueden ser 512 bits, 1024 bits (recomendado) y 2.048 bits. 0,3 Puntos

c) ¿Debemos crear ahora una clave simétrica de cifrado? ¿Por qué sí o no?

No hay que crear ninguna clave simétrica. Ésta se crea mediante una frase de paso sólo en el caso de querer realizar cifrados locales o bien de forma automática por el programa para una operación de cifra

con un segundo usuario para el intercambio de una clave simétrica de sesión. 0,4 Puntos

2ª PARTE: EJERCICIOS (7 puntos: 120 minutos; se puede usar apuntes)

Un ejercicio de 2,0 puntos y dos ejercicios de 2,5 puntos

Ejercicio Nº 1 (2,0 puntos. Tiempo recomendado: 30 minutos) Sospechamos que el siguiente criptograma C = AETSBIO DTWKHMY QYYV se debe a una cifra con el algoritmo Autoclave (segundo cifrado de Vigenère) usando como clave inicial PEREJIL. a) Encuentre el texto en claro. b) ¿Podría atacarse este cifrado usando el método de Kasiski? ¿Por qué sí o no?

SOLUCIÓN: 1,5 Puntos a) C = AETSBIO DTWKHMY QYYV = C1C2C3 (cifra de tipo autoclave) C = (0 4 20 19 1 8 15) (3 20 23 10 7 12 25) (17 25 25 22) -según tabla mod 27- K = PEREJIL (16 4 18 4 9 8 11) -según tabla mod 27-

M1 = C1 – K (descifrado con la clave inicial K) M2 = C2 – M1 (descifrado con el primer bloque de texto en claro) M3 = C3 – M2 (descifrado con el segundo bloque de texto en claro). Luego:

M1 = 0 – 16 mod 27 = 11 = L 4 – 4 mod 27 = 0 = A 20 – 18 mod 27 = 2 = C 19 – 4 mod 27 = 15 = O 1 – 9 mod 27 = 19 = S 8 – 8 mod 27 = 0 = A 15 – 11 mod 27 = 4 = E (clave primer bloque texto claro: 11 0 2 15 19 0 4)

M2 = 3 – 11 mod 27 = 19 = S 20 – 0 mod 27 = 20 = T 23 – 2 mod 27 = 21 = U 10 – 15 mod 27 = 22 = V 7 – 19 mod 27 = 15 = O 12 – 0 mod 27 = 12 = M 25 – 4 mod 27 = 21 = U (clave segundo bloque texto claro: 19 20 21 22 15 12 21)

M3 = 17 – 19 mod 27 = 25 = Y 25 – 20 mod 27 = 5 = F 25 – 21 mod 27 = 4 = E 22 – 22 mod 27 = 0 = A

El mensaje final descifrado en castellano es: M = M1M2M3 = LA COSA ESTUVO MUY FEA b) No puede atacarse este cifrado según el método de Kasiski. Esto se debe a que el método de

Kasiski se basa en buscar repeticiones de caracteres en el texto cifrado en una cifra cuya

Page 109: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2002

Departamento de Lenguajes, Proyectos y Sistemas Informáticos - UPM pág. 3

clave es constante y periódica como sería un cifrado de Vigenère, que no es el caso de los cifrados tipo autoclave como en este problema donde la clave no es periódica, y hacer luego coincidir estas repeticiones con el texto en claro de forma que quede reflejada la redundancia del lenguaje. Tras este ataque, se puede encontrar la longitud de la clave y luego se intenta por métodos estadísticos encontrar cada uno de los caracteres de ésta. Este sistema sólo

podría atacarse mediante el método de Friedman para cifradores no periódicos. 0,5 Puntos 0,3 Puntos

Ejercicio Nº 2 (2,5 puntos. Tiempo recomendado: 45 minutos) Se usa como generador de secuencia cifrante el esquema que se muestra a continuación: a) ¿Cuál es el polinomio asociado y la semilla? b) ¿Cuál es la secuencia de salida Si? c) Cifre el mensaje de cuatro caracteres ASCII: M = Hola. d) Codifique la salida del criptograma C en Base 64. e) ¿Es un buen generador? Justifique su respuesta.

S1 S2 S3 S4 S5 Si

SOLUCIÓN: a) El polinomio asociado es p(x) = x

5 + x

4 + x

2 + 1. La semilla es S1S2S3S4S5 = 10011 si bien hay

que recordar que se trasmite S5S4S3S2S1. 0,2 Puntos

b) Si = S5 S4 S2 Registro bit Si Registro bit Si 10011 1 01111 1 01001 1 10111 1 00100 0 01011 1 00010 0 10101 1 10001 1 11010 0 11000 0 01101 1 Luego: 11100 0 00110 0 Si = 1100 1000 1111 010

11110 0 10011 se repite la semilla 0,8 Puntos c) Hola = 0100 1000 0110 1111 0110 1100 0110 0001 –según la tabla ASCII-

C = M Si M 0100 1000 0110 1111 0110 1100 0110 0001 Si 1100 1000 1111 0101 1001 0001 1110 1011 (clave Si subrayada)

C 1000 0000 1001 1010 1111 1101 1000 1010 0,7 Puntos d) Agrupamos los bits del criptograma C en bloques de 6 bits con lo que se obtiene: C = 100000 001001 101011 111101 100010 100000 (dos rellenos con 00)

Según la tabla de codificación Base 64 entregada, C = gJr9ig== 0,3 Puntos e) No es un buen generador de clave porque el polinomio no es primitivo y por ello su período 15

es menor que el máximo posible para esta configuración: 25 – 1 = 31. Luego no cumple el

postulado de Golomb G2 (rachas de bits) y no cumple con G3, aunque sí con G1. 0,5 Puntos

Ejercicio Nº 3 (2,5 puntos. Tiempo recomendado: 45 minutos) Para firmar digitalmente un mensaje M con el método de ElGamal o con el método RSA, usamos primeramente una función resumen especial H(M) basada en las cajas S del DES. Esta función consiste en agrupar el mensaje M en bloques de 6 bytes (48 bits) que entran en las cajas S estándar, dando como salida un primer resumen de 32 bits. El segundo bloque de 48 bits de texto en claro produce un segundo resumen de 32 bits que se suma or exclusivo al primer resumen y así sucesivamente hasta llegar al final del texto, dando un resumen final H(M) de 32 bits. Si hay que usar relleno en el último bloque, esto se hace con un conjunto de ceros. Para M = “AQUI NO HAY PLAYA” (texto de 17 caracteres) los dos primeros resúmenes son: r1 = 0011 0001 0000 0010 0101 1101 1101 0001 r2 = 0110 1000 1101 0000 1000 1101 1011 0111 a) Calcule el resumen del tercer bloque de texto r3 y el resumen final H(M). b) En este entorno de resumen H(M) deseamos firmar con RSA siendo p = 25.621; q = 187.163; e

= 770.011 y d = 2.658.042.571. ¿Son válidos este cuerpo de trabajo y esas claves? c) ¿Podría firmar con ElGamal en este entorno con p = 2.147.483.647? Justifique su respuesta.

1 0 0 1 1

+

Page 110: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2002

Departamento de Lenguajes, Proyectos y Sistemas Informáticos - UPM pág. 4

Datos: 232

= 4.294.967.296; p y q son primos; 770.011 = 11 70.001 (ambos primos)

770.011 2.658.042.571 = 2.046.722.018.138.281 = 426.837 4.795.090.440 + 1.

SOLUCIÓN: M = AQUÍ_NO_HAY_PLAYA (usamos el carácter _ como espacio en blanco)

A = 0100 0001 N = 0100 1110 H = 0100 1000 P = 0101 0000

Q = 0101 0001 O = 0100 1111 A = 0100 0001 L = 0100 1100

U = 0101 0101 _ = 0010 0000 Y = 0101 1001 A = 0100 0001

I = 0100 1001 _ = 0010 0000 Y = 0101 1001

_ = 0010 0000 A = 0100 0001 Primer bloque de resumen (primeros 48 bits: AQUÍ_N)

Caja S1 Caja S2 Caja S3 Caja S4 Entrada: 010000 Entrada: 010101 Entrada: 000101 Entrada: 010101 Fila: 0 Fila: 1 Fila: 1 Fila: 1 Columna: 8 Columna: 10 Columna: 2 Columna: 10 Salida: 3 Salida: 1 Salida: 0 Salida: 2

Bits: 0011 Bits: 0001 Bits: 0000 Bits: 0010 Caja S5 Caja S6 Caja S7 Caja S8 Entrada: 010010 Entrada: 010010 Entrada: 000001 Entrada: 001110 Fila: 0 Fila: 0 Fila: 1 Fila: 0 Columna: 9 Columna: 9 Columna: 0 Columna: 7 Salida: 5 Salida: 13 Salida: 13 Salida: 1

Bits: 0101 Bits: 1101 Bits: 1101 Bits: 0001 Resumen r1 = 0011 0001 0000 0010 0101 1101 1101 0001 Segundo bloque de resumen (próximos 48 bits: O_HAY_)

Caja S1 Caja S2 Caja S3 Caja S4 Entrada: 010011 Entrada: 110010 Entrada: 000001 Entrada: 001000 Fila: 1 Fila: 2 Fila: 1 Fila: 0 Columna: 9 Columna: 9 Columna: 0 Columna: 4 Salida: 6 Salida: 8 Salida: 13 Salida: 0

Bits: 0110 Bits: 1000 Bits: 1101 Bits: 0000 Caja S5 Caja S6 Caja S7 Caja S8 Entrada: 010000 Entrada: 010101 Entrada: 100100 Entrada: 100000 Fila: 0 Fila: 1 Fila: 2 Fila: 2 Columna: 8 Columna: 10 Columna: 2 Columna: 0 Salida: 8 Salida: 13 Salida: 11 Salida: 7

Bits: 1000 Bits: 1101 Bits: 1011 Bits: 0111 Resumen r2 = 0110 1000 1101 0000 1000 1101 1011 0111

a) El tercer bloque de 48 bits que es el que se pide es PLAYA ( es un relleno de 8 ceros) Caja S1 Caja S2 Caja S3 Caja S4 Entrada: 010100 Entrada: 000100 Entrada: 110001 Entrada: 000001 Fila: 0 Fila: 0 Fila: 3 Fila: 1 Columna: 10 Columna: 2 Columna: 8 Columna: 0 Salida: 6 Salida: 8 Salida: 4 Salida: 13

Bits: 0110 Bits: 1000 Bits: 0100 Bits: 1101 Caja S5 Caja S6 Caja S7 Caja S8 Entrada: 010110 Entrada: 010100 Entrada: 000100 Entrada: 000000 Fila: 0 Fila: 0 Fila: 0 Fila: 0 Columna: 11 Columna: 10 Columna: 2 Columna: 0 Salida: 15 Salida: 3 Salida: 2 Salida: 13

Bits: 1111 Bits: 0011 Bits: 0010 Bits: 1101 Resumen r3 = 0110 1000 0100 1101 1111 0011 0010 1101

El resumen final H(M) será r1 r2 r3 es decir: Resumen r1 = 0011 0001 0000 0010 0101 1101 1101 0001 Resumen r2 = 0110 1000 1101 0000 1000 1101 1011 0111

Resumen r3 = 0110 1000 0100 1101 1111 0011 0010 1101 H(M) = 0011 0001 1001 1111 0010 0011 0100 1011

Page 111: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2002

Departamento de Lenguajes, Proyectos y Sistemas Informáticos - UPM pág. 5

H(M)16 = 31 9F 23 4B 1,5 Puntos

b) Para un sistema de firma RSA tenemos que n = p q = 25.621 187.163 = 4.795.303.223, valor que es ligeramente superior a 2

32 = 4.294.967.296 dado como dato, luego el cuerpo de trabajo

es correcto ya que podrán cifrarse (firmarse) todos los resúmenes posibles. En este sistema,

(n) = (p-1)(q-1) = (25.620)(187.162) = 4.795.090.440. La clave pública e se elige de forma

que no tenga factores en común con (n) y se cumple puesto que 4.795.090.440 no es divisible por 11 ni por 70.001 dados como dato. La clave privada d debe ser la inversa de la

clave pública e en (n) de forma que se cumpla que e d mod (n) = 1. Según los datos dados

en el examen se ve que esto se cumple. Luego el sistema es correcto. 0,5 Puntos c) En este entorno no puede usarse la firma de ElGamal con un valor primo p = 2.147.483.647

puesto que, aunque cumple con la condición de ser primo, es menor que el valor máximo del resumen que podemos obtener que sería una cadena de 32 unos (2

32 – 1) y el valor dado aquí

es justo un bit menos (231

– 1). La única solución en este caso sería dividir la función hash H(M) en, por ejemplo, dos bloques de 16 bits cada uno y hacer la firma del documento por

partes. 0,5 Puntos

ANEXO A LA SOLUCIÓN DEL EXAMEN: Cálculo de la clave privada d en el sistema RSA mediante el algoritmo extendido de Euclides.

No pedido en el examen.

d = inv [e, (n)] = inv (770.011, 4.795.090.440)

i yi gi ui (*) vi Algoritmo: (apuntes de clase) 0 - 4.795.090.440 * 0 x = inv (A, B) 1 - 770.011 * 1 (g0,g1,u0,u1,v0,v1,i)=(B,A,1,0,0,1,1)

2 6.227 231.943 * -6.227 Mientras gi 0 hacer 3 3 74.182 * 18.682 yi+1 = parte entera (gi-1/gi)

4 3 9.397 * -62.273 gi+1 = gi-1 - yi+1 gi

5 7 8.403 * 454.593 ui+1 = ui-1 - yi+1 ui

6 1 994 * -516.866 vi+1 = vi-1 - yi+1 vi 7 8 451 * 4.589.521 i = i+1 8 2 92 * -9.695.908 Hacer x = vi-1 9 4 83 * 43.373.153 10 1 9 * -53.069.061 11 9 2 * 520.994.702 12 4 1 * -2.137.047.869 d = -2.137.047.869 + 4.795.090.440 13 2 0 d = 2.658.042.751 (*) El valor de ui se incluye en la ecuación y en algoritmo por razones de formalismo matemático,

sin embargo no influye en el cálculo del inverso por lo que no hace falta hacer esta operación, optimizando así el trabajo. Observe el constante cambio de signo en los valores de vi.

NOTA: Para una mayor facilidad en la comprobación de los resultados del examen, se incluye en esta solución la tabla con los valores de las cajas S del DES. Además, las encontrará en los apuntes, notas y libro de clase o bien en otras soluciones de exámenes de la asignatura.

Page 112: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2002

Departamento de Lenguajes, Proyectos y Sistemas Informáticos - UPM pág. 6

ANEXO (TABLAS) Módulo 27 Alfabeto Base: 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

Alfabeto Cifra: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

Códigos ASCII / ANSI de nivel bajo (128 bits) más utilizados

0 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111

8 1000 9 1001 A 1010 B 1011 C 1100 D 1101 E 1110 F 1111

Codificación en hexadecimal / binario

Valor Carácter 6 bits codificado

Valor Carácter 6 bits codificado

Valor Carácter 6 bits codificado

Valor Carácter 6 bits codificado

0 000000 A 16 010000 Q 32 100000 g 48 110000 w

1 000001 B 17 010001 R 33 100001 h 49 110001 x

2 000010 C 18 010010 S 34 100010 i 50 110010 y

3 000011 D 19 010011 T 35 100011 j 51 110011 z

4 000100 E 20 010100 U 36 100100 k 52 110100 0

5 000101 F 21 010101 V 37 100101 l 53 110101 1

6 000110 G 22 010110 W 38 100110 m 54 110110 2

7 000111 H 23 010111 X 39 100111 n 55 110111 3

8 001000 I 24 011000 Y 40 101000 o 56 111000 4

9 001001 J 25 011001 Z 41 101001 p 57 111001 5

10 001010 K 26 011010 a 42 101010 q 58 111010 6

11 001011 L 27 011011 b 43 101011 r 59 111011 7

12 001100 M 28 011100 c 44 101100 s 60 111100 8

13 001101 N 29 011101 d 45 101101 t 61 111101 9

14 001110 O 30 011110 e 46 101110 u 62 111110 +

15 001111 P 31 011111 f 47 101111 v 63 111111 /

(Relleno) =

Código Base-64

Byte Carácter Byte Carácter Byte Carácter

0010 0000 Espacio 0100 0000 @ 0110 0000 `

0010 0001 ! 0100 0001 A 0110 0001 a

0010 0010 “ 0100 0010 B 0110 0010 b

0010 0011 # 0100 0011 C 0110 0011 c

0010 0100 $ 0100 0100 D 0110 0100 d

0010 0101 % 0100 0101 E 0110 0101 e

0010 0110 & 0100 0110 F 0110 0110 f

0010 0111 „ 0100 0111 G 0110 0111 g

0010 1000 ( 0100 1000 H 0110 1000 h

0010 1001 ) 0100 1001 I 0110 1001 i

0010 1010 * 0100 1010 J 0110 1010 j

0010 1011 + 0100 1011 K 0110 1011 k

0010 1100 , 0100 1100 L 0110 1100 l

0010 1101 - 0100 1101 M 0110 1101 m

0010 1110 . 0100 1110 N 0110 1110 n

0010 1111 / 0100 1111 O 0110 1111 o

0011 0000 0 0101 0000 P 0111 0000 p

0011 0001 1 0101 0001 Q 0111 0001 q

0011 0010 2 0101 0010 R 0111 0010 r

0011 0011 3 0101 0011 S 0111 0011 s

0011 0100 4 0101 0100 T 0111 0100 t

0011 0101 5 0101 0101 U 0111 0101 u

0011 0110 6 0101 0110 V 0111 0110 v

0011 0111 7 0101 0111 W 0111 0111 w

0011 1000 8 0101 1000 X 0111 1000 x

0011 1001 9 0101 1001 Y 0111 1001 y

0011 1010 : 0101 1010 Z 0111 1010 z

0011 1011 ; 0101 1011 [ 0111 1011 {

0011 1100 < 0101 1100 \ 0111 1100 |

0011 1101 = 0101 1101 ] 0111 1101 }

0011 1110 > 0101 1110 ^ 0111 1110 ~

0011 1111 ? 0101 1111 _ 0111 1111

Page 113: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2002

Departamento de Lenguajes, Proyectos y Sistemas Informáticos - UPM pág. 7

CAJA S1 C O L U M N A

FILA 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

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

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

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

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

CAJA S2 C O L U M N A

FILA 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

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

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

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

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

CAJA S3 C O L U M N A

FILA 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

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

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

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

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

CAJA S4 C O L U M N A

FILA 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

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

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

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

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

CAJA S5 C O L U M N A

FILA 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

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

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

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

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

CAJA S6 C O L U M N A

FILA 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

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

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

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

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

CAJA S7 C O L U M N A

FILA 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

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

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

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

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

CAJA S8

S8

C O L U M N A

FILA 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

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

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

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

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

Tablas S: algoritmo DES

Page 114: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2003

Departamento de Lenguajes, Proyectos y Sistemas Informáticos - UPM pág. 1

SEGURIDAD INFORMÁTICA Miércoles 25 de Junio de 2003

1ª PARTE: TEORÍA Y PRÁCTICAS (3 puntos: 60 minutos)

2 cuestiones de Teoría: 1,0 punto c/u; 1 cuestión de Prácticas: 1,0 punto ESTA HOJA SE RECOGERÁ TRANSCURRIDOS LOS 60 PRIMEROS MINUTOS DEL EXAMEN

Cuestión de Teoría Nº 1 (1,0 punto. Tiempo recomendado: 30 minutos) En las siguientes 10 afirmaciones separadas por el signo | escriba la respuesta verdadera:

a) En el modelo de Hellman, una solución falsa es aquella que: entrega mensajes sin sentido |

mensaje y cifra asociados a la clave no son únicos | el cifrado no está en ANSI | las claves son débiles o falsas. MENSAJE Y CIFRA ASOCIADOS A UNA CLAVE NO SON ÚNICOS.

b) El cifrado de matrices es vulnerable porque: el número de claves es limitado | codificamos el

texto en módulo 27 | no existen inversos para la matriz clave | no soporta un ataque con texto claro conocido. NO SOPORTA UN ATAQUE CON TEXTO CLARO CONOCIDO.

c) Si elegimos un valor x en un cuerpo n de forma que no tienen factores comunes, entonces:

existe un y tal que x y mod (n) = 1 | habrá un y que divida a x en n | no podremos cifrar con

el valor x | el valor x es una raíz de n. HABRÁ UN Y QUE DIVIDA A X EN N.

d) Encontramos que la clave K1 es débil en DES. Esto significa que: Ek1(EK1(M)) = M | no se

puede cifrar M | Dk1(EK1(M)) = M | Ek1(DK1(C)) = C. Ek1(EK1(M)) = M. e) Agregamos la clave pública PGP de un amigo al anillo de claves. Sólo ahora podremos

enviarle: mensajes firmados | nuestra clave pública en formato base 64 | mensajes cifrados

confidenciales | archivos con descifrado sda. MENSAJES CIFRADOS CONFIDENCIALES.

f) En un sistema RSA el número de mensajes no cifrables será: dos | al menos dos | siempre

nueve | en el mejor de los casos nueve. EN EL MEJOR DE LOS CASOS NUEVE. g) Ciframos en forma local con PGP y con armadura y el criptograma es: qANQR1DDDQQJAw

ItfAS+L6Z20WDJITRWZDhnG6ref8NU5F08fb5JhsNlg5aOW5ARgdinIGUmAA==. En Base64

habrá un relleno de: dos bits | cuatro bits | seis bits | ocho bits. CUATRO BITS.

h) La cadena E7BA ECB5 2A9F DDEB 9BC8 CEA8 8B0A 1A68 podría ser un: hash MD5 | hash

SHA-1 | bloque de cifra IDEA | bloque de cifra DES. HASH MD5.

i) El protocolo de firma ciega significa: firmar un sobre pero no el documento | firmar con más

de una clave privada | firmar un documento sin violar su confidencialidad | usar una firma DSS de 2048 bits. FIRMAR UN DOCUMENTO SIN VIOLAR SU CONFIDENCIALIDAD.

j) La esteganografía permite: firmar una imagen | cifrar una imagen | cifrar la imagen por píxel | transmitir información por canal subliminal. TRANSMITIR INFOR. POR CANAL SUBLIMINAL.

Cuestión de Teoría Nº 2 (1,0 punto. Tiempo recomendado: 15 minutos) Queremos firmar con RSA el hash F6DC 0905 7225 A2B1 3EC2 E9EE 94B4 BEB4 C148 C7E9. Si el cuerpo de cifra n sólo tiene 512 bits, conteste si cada afirmación es verdadera o falsa y justifíquelo:

a) No podemos realizar la firma porque el cuerpo n es muy pequeño y vulnerable.

Verdadero / Falso: ¿Por qué? Sí puede hacerse ya que el hash de 160 bits (podría ser resultado de SHA-1) es menor que el cuerpo de cifra RSA de 512 bits. Aunque este último valor sea muy bajo y poco aconsejable hoy en

día, no hay impedimento alguno para que se realice la firma. 0,4 Puntos

b) Sí podemos firmar digitalmente ese hash.

Verdadero / Falso: ¿Por qué? Puede firmarse porque tanto el valor del hash como el del cuerpo de cifra RSA son valores

adecuados y en el caso de RSA, en su tiempo un estándar. 0,4 Puntos

c) Para firmar ese valor hash deberíamos previamente convertirlo a código Base 64.

Verdadero / Falso: ¿Por qué? La conversión en código base 64 se hace sólo por razones de compatibilidad entre los

clientes de correo y no tiene nada que ver con el algoritmo de firma digital. 0,2 Puntos

Cuestión de Práctica Nº 1 (1,0 punto. Tiempo recomendado: 15 minutos)

Page 115: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2003

Departamento de Lenguajes, Proyectos y Sistemas Informáticos - UPM pág. 2

Un amigo que tiene nuestra clave pública exporta su par de claves de PGP 8.0, nos envía por correo el archivo y lo añadimos a nuestros anillos de claves. Responda y justifique.

¿Podemos enviarle sólo a partir de ahora mensajes cifrados confidencialmente? ¿Por qué? Solución: Sí, porque antes al no tener su clave pública, no podíamos enviarle junto al correo la clave de

cifrado simétrico de forma segura, cifrada con su clave pública. 0,2 Puntos ¿Podemos enviarle sólo a partir de ahora mensajes firmados digitalmente? ¿Por qué? Solución: No, porque no es necesario que los mensajes además de firmados vayan cifrados.

Podíamos enviarle mensajes en claro firmados pues ya tenía nuestra clave pública. 0,2 Puntos ¿Podemos suplantar su identidad usando su clave privada? ¿Por qué? Solución: No, porque aunque tengamos su clave privada, no tenemos la frase de paso que la

habilita y por tanto no podemos utilizarla. 0,3 Puntos ¿Nos indica algo especial PGP al importar las claves de este amigo? ¿Por qué? Solución: Sí, nos advierte que la clave no tiene confianza porque no es nuestra y además no se

trata de un backup de ese anillo de claves sino de una importación. 0,3 Puntos

2ª PARTE: EJERCICIOS (7 puntos: 120 minutos) - Un ejercicio de 1,5 puntos, un ejercicio de 2,5 puntos y un ejercicio de 3,0 puntos -

En el anverso: alfabeto módulo 27, tabla ASCII, tabla hexadecimal, codificación Base 64

Ejercicio Nº 1 (1,5 puntos - 0,5 c/u. Tiempo recomendado: 30 minutos) Ciframos un mensaje M con mochilas de Merkle-Hellman y nos entrega el siguiente criptograma C = [5.507; 843; 8.567; 7.724; 4.099; 9.132; 3.429; 7.863; 5.277; 4.468; 8.567; 3.625]. Si se ha usado una mochila pública S = {3.625, 2.921, 1.513, 2.586, 843}, el cuerpo de cifra es m = 3.889, el factor de multiplicación es w = 3.801 y la codificación de caracteres es ANSI, se pide: a) Encuentre la mochila fácil S’. Datos: inv (3.801, 3.889) = 2.519. b) Descifre los dos primeros elementos del criptograma. ¿Con qué letra comienza el mensaje? c) ¿Es segura esta mochila? Si pudiera usar una mochila de 15 ó 16 elementos, ¿cuál usaría?

Solución:

a) S = {3.625, 2.921, 1.513, 2.586, 843}; w = 3.801; m = 3.889; w-1 = inv (3.801, 3.889) = 2.519

S’ = S w-1mod m = {3.625, 2.921, 1.513, 2.586, 843} 2.519 mod 3.889. Usando calculadora:

S’ = {3, 11, 27, 59, 123}

b) C1 = 5.507 M1 = C1 w-1mod m = 5.507 2.519 mod 3.889 = 70 [01010]

C2 = 843 M2 = C2 w-1mod m = 843 2.519 mod 3.889 = 123 [00001]

Los 10 primeros bits son 0101 0000 01, luego la primera letra es P. La solución completa del descifrado (no pedido en el examen) es M = Pocholo.

c) Esta mochila es muy insegura por ser muy pequeño el número de elementos; de hecho es posible recuperar el texto en claro directamente desde la mochila pública, incluso mentalmente lo cual es inaceptable. Entre 15 y 16 elementos es preferible usar una mochila de tamaño 15 pues, aunque sigue siendo un valor muy bajo, al menos no permite hacer un ataque por estadísticas del lenguaje como sucedería con 16, al ser precisamente el tamaño de dos bytes, un digrama.

Ejercicio Nº 2 (2,5 puntos - 0,5 c/u. Tiempo recomendado: 45 minutos) Usamos un sistema de cifra en flujo como el que se muestra en la figura, con generadores de dos polinomios primitivos de n = 4 y n = 3 celdas. Las semillas son 0110 y 101. Conteste y justifique. a) Encuentre los 20 primeros bits de Si. b) Cifre el mensaje M = Sol (codificado en ANSI) c) ¿Cuál es el periodo de f(x1) y el de f(x2)? d) ¿El periodo de Si es mayor o menor que estos dos? e) ¿Qué efecto produce la puerta XOR a la salida?

Solución:

a) Realizando la obtención de las secuencias cifrantes como se indica en apuntes y en clases:

f(x1) = x4 + x

3 + 1

f(x2) = x3 + x

2 + 1

Si

Page 116: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2003

Departamento de Lenguajes, Proyectos y Sistemas Informáticos - UPM pág. 3

Sf(x1) = 0110 1011 1100 010; Sf(x2) = 101 110 0. Haciendo ahora Si = Sf(x1) Sf(x2) con 20 bits:

01101011110001001101 10111001011100101110 = 11010010101101100011

b) C = Sol Si = 01010011 01101111 01101100 11010010 10110110 00110010 (4 bits nuevos) C = 10000001 11011001 01011110 = 81 B9 5E.

c) El periodo de Sf(x1) es 15, m-secuencia de 4 celdas y el de Sf(x2) 7, m-secuencia de 3 celdas.

d) El periodo de Si será mayor que ambos. Su valor será mcm (T1,T2) = 15 7 = 105.

e) Rompe la linealidad de las dos m-secuencias por lo que se aumenta la complejidad lineal del cifrador y se anula así la posibilidad de un ataque por el método de Berlekamp-Massey.

Ejercicio Nº 3 (3,0 puntos - 0,5 c/u. Tiempo recomendado: 45 minutos) En una conexión SSL simulada con cifra asimétrica de sólo 32 bits, la clave de sesión KS = 25 la

genera el cliente B y se la envía cifrada con RSA al servidor A que presenta un certificado X509.

Datos A: nA = 3.152.520.713; eA = 17 (CPAREJAS = 1; MNOCIFRABLES = 9).

Datos B: nB = 3.574.194.791, eB = 11; dB = 2.599.299.491 (CPAREJAS = 9, MNOCIFRABLES = 121).

a) Conocido (nA) calcule la clave privada de A usando el algoritmo extendido de Euclides.

b) Cifre la clave de sesión KS que B envía a A usando el algoritmo de exponenciación rápida.

c) Codifique en Base 64 la clave de sesión B90C35C8 que el cliente B envía al servidor A.

d) Comente y justifique cada uno de los valores relacionados con las claves asimétricas de A y

de B que se dan como datos en este ejemplo y compárelos con los de un sistema real. e) Comente la relación entre KS y las claves asimétricas y compárelo con un sistema real.

f) ¿Cambia alguno de estos datos en una nueva conexión SSL entre A y B? ¿Por qué? Datos de interés para la resolución del ejercicio:

(nA) = 3.152.391.060 = 185.434.768 17 + 4 nA = 32 bits; pA = 15 bits; qA = 17 bits nB = 32 bits; pB = 15 bits; qB = 17 bits 25

4 mod nA = 390.625; 25

8 mod nA = 1.266.896.401; 25

16 mod nA = 754.687.549

18.867.188.725 mod nA = 3.104.585.160 = 10111001 00001100 00110101 11001000

Solución:

a) dA = inv [(eA, (nA)] = inv [17, 3.152.391.060]. Desarrollando algoritmo extendido de Euclides: i yi gi ui vi 0 - 3.152.391.060 1 0 1 - 17 0 1 2 185.434.768 4 1 -185.434.768 (entregado como dato) 3 4 1 -4 741.739.073 4 4 0 Luego: dA = 741.739.073 (30 bits)

b) C = KSeA

mod nA = 2517

mod 3.152.520.713. Como 17 = 10001 = b0b1b2b3b4 j 0 1 2 3 4 j 25

2 25 625 390.625 1.266.896.401 754.687.549 (entregados como datos)

Luego C = 25 754.687.549 mod 3.152.520.713 = 3.104.585.160 = B90C35C8. (Dato entregado)

c) C16 = B90C35C8 = 1011 1001 0000 1100 0011 0101 1100 1000 (00 00). Luego, C64= uQw1yA==. Si la clave C fuera texto ANSI, entonces C64= QjkwQzM1Qzg=.

d) Resumiendo, para el servidor A y el cliente B tenemos: A: n = 32 bits, p = 15 bits, q = 17 bits, e = 5 bits, d = 30 bits, CP = 1, MNC = 9. B: n = 32 bits, p = 15 bits, q = 17 bits, e = 4 bits, d = 32 bits, CP = 9, MNC = 121. En este escenario de 32 bits (10 dígitos) podemos decir que: Ambas claves tienen valores correctos de p y q ya que difieren sólo en unos pocos bits. Las claves públicas son valores pequeños, de pocos bits, y por contrapartida las claves privadas son valores del orden de los n bits del cuerpo, lo cual indica que también son valores acertados. La clave del servidor A es más robusta que la del cliente B puesto que tiene los valores mínimos por diseño de claves parejas CP y mensajes no cifrables MNC. Estos datos de cifra asimétrica reflejan en cierta medida los de un sistema real simulado.

e) KS tiene 5 bits y la cifra RSA 32; una relación de 6,4 veces. En un sistema real, KS es de 128 bits y la clave asimétrica de 1024 bits, una relación igual a 8. Luego también en este escenario en el ejercicio se cumple aproximadamente la relación de tamaño entre ambas.

Page 117: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2003

Departamento de Lenguajes, Proyectos y Sistemas Informáticos - UPM pág. 4

f) Sí, siempre cambiará la clave de sesión KS que se generará de forma aleatoria. Se cambia por razones de seguridad para evitar ataques por repetición de clave o, lo que es lo mismo, seguir la filosofía del cifrado de uso único, one time pad. Las claves asimétricas cambiarán sólo si caduca un certificado digital, termina la vida de la clave o dicha clave se revoca.

Tablas usadas en el examen

Códigos ASCII / ANSI de nivel bajo (128 bits) más utilizados

0 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111

8 1000 9 1001 A 1010 B 1011 C 1100 D 1101 E 1110 F 1111

Codificación en hexadecimal / binario

Valor Carácter 6 bits codificado

Valor Carácter 6 bits codificado

Valor Carácter 6 bits codificado

Valor Carácter 6 bits codificado

0 000000 A 16 010000 Q 32 100000 g 48 110000 w

1 000001 B 17 010001 R 33 100001 h 49 110001 x

2 000010 C 18 010010 S 34 100010 i 50 110010 y

3 000011 D 19 010011 T 35 100011 j 51 110011 z

4 000100 E 20 010100 U 36 100100 k 52 110100 0

5 000101 F 21 010101 V 37 100101 l 53 110101 1

6 000110 G 22 010110 W 38 100110 m 54 110110 2

7 000111 H 23 010111 X 39 100111 n 55 110111 3

8 001000 I 24 011000 Y 40 101000 o 56 111000 4

9 001001 J 25 011001 Z 41 101001 p 57 111001 5

10 001010 K 26 011010 a 42 101010 q 58 111010 6

11 001011 L 27 011011 b 43 101011 r 59 111011 7

12 001100 M 28 011100 c 44 101100 s 60 111100 8

13 001101 N 29 011101 d 45 101101 t 61 111101 9

14 001110 O 30 011110 e 46 101110 u 62 111110 +

15 001111 P 31 011111 f 47 101111 v 63 111111 /

(Relleno) =

Código Base-64

Byte Carácter Byte Carácter Byte Carácter

0010 0000 Espacio 0100 0000 @ 0110 0000 `

0010 0001 ! 0100 0001 A 0110 0001 a

0010 0010 “ 0100 0010 B 0110 0010 b

0010 0011 # 0100 0011 C 0110 0011 c

0010 0100 $ 0100 0100 D 0110 0100 d

0010 0101 % 0100 0101 E 0110 0101 e

0010 0110 & 0100 0110 F 0110 0110 f

0010 0111 ‘ 0100 0111 G 0110 0111 g

0010 1000 ( 0100 1000 H 0110 1000 h

0010 1001 ) 0100 1001 I 0110 1001 i

0010 1010 * 0100 1010 J 0110 1010 j

0010 1011 + 0100 1011 K 0110 1011 k

0010 1100 , 0100 1100 L 0110 1100 l

0010 1101 - 0100 1101 M 0110 1101 m

0010 1110 . 0100 1110 N 0110 1110 n

0010 1111 / 0100 1111 O 0110 1111 o

0011 0000 0 0101 0000 P 0111 0000 p

0011 0001 1 0101 0001 Q 0111 0001 q

0011 0010 2 0101 0010 R 0111 0010 r

0011 0011 3 0101 0011 S 0111 0011 s

0011 0100 4 0101 0100 T 0111 0100 t

0011 0101 5 0101 0101 U 0111 0101 u

0011 0110 6 0101 0110 V 0111 0110 v

0011 0111 7 0101 0111 W 0111 0111 w

0011 1000 8 0101 1000 X 0111 1000 x

0011 1001 9 0101 1001 Y 0111 1001 y

0011 1010 : 0101 1010 Z 0111 1010 z

0011 1011 ; 0101 1011 [ 0111 1011 {

0011 1100 < 0101 1100 \ 0111 1100 |

0011 1101 = 0101 1101 ] 0111 1101 }

0011 1110 > 0101 1110 ^ 0111 1110 ~

0011 1111 ? 0101 1111 _ 0111 1111

Page 118: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2003

Departamento de Lenguajes, Proyectos y Sistemas Informáticos - UPM pág. 1

SEGURIDAD INFORMÁTICA Lunes 22 de septiembre de 2003

En esta primera parte del examen (Teoría y Prácticas) que se entrega en una hoja aparte y se recogerá transcurridos 60

minutos del comienzo del examen, NO está permitido el uso de apuntes ni libros. En la segunda parte (Ejercicios) con una

duración de 120 minutos, podrá utilizar los libros de la asignatura, apuntes y una calculadora. Duración del examen: 3 horas.

Datos de la convocatoria: Publicación de notas: lunes 29 de septiembre de 2003 en el tablón de la asignatura.

Revisión del examen: miércoles 1 de octubre de 2003: mañana de 11:00 a 13:00 horas y tarde de 16:00 a 18:00 horas.

Nota: Si lo desea o bien si ha terminado antes de los 60 minutos esta primera parte, puede comenzar la segunda. No

obstante, recuerde que sólo estará permitido usar apuntes, libros y calculadora transcurridos los primeros 60 minutos.

1ª PARTE: TEORÍA Y PRÁCTICAS (3 puntos: 60 minutos)

2 cuestiones de Teoría: 1,0 punto c/u; 1 cuestión de Prácticas: 1,0 punto

NOTA: Las calificaciones de esta primera parte y la segunda se compensan ESTA HOJA SE RECOGERÁ TRANSCURRIDOS LOS 60 PRIMEROS MINUTOS DEL EXAMEN

- CONTESTE SÓLO EN LOS ESPACIOS RESERVADOS PARA ELLO -

Cuestión de Teoría Nº 1 (1,0 punto. Tiempo recomendado: 30 minutos) Para cada frase, elija una opción (separadas por el signo |) y escriba la respuesta verdadera:

a) Se dice que una clave es débil si, entre otras cosas, su entropía es : alta | baja | menor que la

unidad | mayor que la unidad. baja.

b) La cifra del César corresponde a una: sustitución monoalfabética | sustitución polialfabética |

permutación simple | transposición sin clave. sustitución monoalfabética.

c) Un inverso en el cuerpo n significa que: existen p y q primos | éste será la raíz del módulo |

las sumas se anulan | podemos dividir mod p. podemos dividir mod p.

d) Si al cifrar en DES Ek1(EK1(M)) = M, entonces: la cifra será parcial | la clave es débil | la clave

es semidébil | la clave será binaria. la clave es débil.

e) En un sistema RSA real se cumple que: e y d son del mismo orden | e y d son valores de

pocos bits | e son decenas de bits y d sobre los mil bits | e son miles de bits y d son decenas

de bits. e son decenas de bits y d sobre los mil bits.

f) Un sistema RSA tendrá al menos: 2 claves parejas y 9 mensajes no cifrables | 1 mensaje no

cifrable y 1 clave pareja | 9 claves parejas y 2 mensajes no cifrables | 1 clave pareja y 9

mensajes no cifrables. 1 clave pareja y 9 mensajes no cifrables.

g) El cifrador IDEA trabaja con: bloques de 64 bits y clave de 64 bits | clave de 64 bits y cifra tipo

flujo | bloques de 64 bits y clave de 128 bits | bloques de 128 bits y clave de 128 bits.

bloques de 64 bits y clave de 128 bits. h) Si una cifra muestra: qANQR1DDDQQJAwItfAS+L6Z20WDJITRWZDhnG6ref8NU5F08fb5Jh

sNlg5aOW5ARgdinIGUmAA== decimos que es: Base 64 relleno de 4 bits | Base 64 relleno

de 2 bits | cifra mod 64 | cifra mod 27. Base 64 relleno de 4 bits.

i) Podemos implementar el protocolo del juego de póker mental usando: | sólo cifra simétrica |

sólo cifra asimétrica | cifra simétrica y una función hash | cifra simétrica o cifra asimétrica.

cifra simétrica o cifra asimétrica.

j) Si se firma un documento sin conocer su contenido se trata de: | una firma ciega | una firma

oculta | un canal subliminal | una firma DSS. una firma ciega.

Cuestión de Teoría Nº 2 (1,0 punto. Tiempo recomendado: 15 minutos) Tenemos el siguiente valor hash 1EB2 8830 D803 715C B006 222C 840E B9B5 que se pretende usar para firmar digitalmente el documento que lo ha generado. Conteste y justifique cada pregunta:

a) No podemos firmar sobre ese hash ya que no es ningún valor estándar.

Verdadero / Falso: ¿Por qué? Se trata de un valor de 8x16 = 128 bits que bien puede ser el resultado de un hash MD5. Se trata de un valor estándar que se sigue usado en aplicaciones de Internet y SSL.

b) Ese hash es estándar y además el más seguro actualmente.

Page 119: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2003

Departamento de Lenguajes, Proyectos y Sistemas Informáticos - UPM pág. 2

Verdadero / Falso: ¿Por qué? Porque aunque se trata de un valor estándar que puede ser MD5, no es el más seguro ya que 128 bits tienen poca fortaleza. En la actualidad es más recomendable usar otras funciones hash como SHA-1 de 160 bits.

c) Podemos firmar sobre ese hash pero primero lo convertimos a Base 64.

Verdadero / Falso: ¿Por qué? La conversión de un texto ASCII a Base 64 se usa sólo por motivos de compatibilidad entre clientes de correo. Ese hash de 128 bits se firma directamente con el algoritmo que se desee, por ejemplo RSA o DSS.

Cuestión de Práctica Nº 1 (1,0 punto. Tiempo recomendado: 15 minutos) Manolito consigue de malas formas un disquete de respaldo que contiene el par de claves PGP 8.0 de Rosaura. Responda y justifique cada pregunta.

¿Puede incluir Manolito la clave correspondiente a su anillo pubring.pkr? ¿Por qué? Solución: Sí. Puede hacerlo con cualquiera de las opciones que entrega PGP 8.0 y añadirla a su anillo de claves públicas. ¿Puede incluir Manolito la clave correspondiente a su anillo secring.skr? ¿Por qué? Solución: Sí. Puede hacerlo sin problema, si bien PGP 8.0 le dará un mensaje diciendo que esa clave no tiene confianza porque no es la suya. Para poder usarla deberá abrirla con la frase de paso y cambiar ese nivel de confianza como si fuese la suya propia. ¿Puede suplantar Manolito la identidad de Rosaura? ¿Por qué? Solución: No. Porque no puede usar la clave privada ya ésta está cifrada en su ordenador y desconoce la frase de paso que la descifra. No podrá firmar por Rosaura. ¿Puede exportar Manolito este par de claves a otros amigos? ¿Por qué? Solución: Sí. Puede enviar o exportar ese par de claves a sus amigos si bien sólo tendrá validez para esos amigos la clave pública de Rosaura, no la privada pues desconocen la frase de paso. ¿Puede enviar Manolito sus mensajes personales firmados a Rosaura? ¿Por qué? Solución: Sí. No obstante Rosaura sólo podrá comprobar la firma si tiene la clave pública de Manolito. Éste sólo necesita tener su clave privada (la de Manolito) en condiciones (válida) y abrirla con su frase de paso para firmar. Si, además, quisiera enviar esos mensajes de forma confidencial, también puede hacerlo porque tiene la clave pública de Rosaura que es válida.

2ª PARTE: EJERCICIOS (7 puntos: 120 minutos)

- Un ejercicio de 1,5 puntos, un ejercicio de 2,5 puntos y un ejercicio de 3,0 puntos -

Ejercicio Nº 1 (1,5 puntos. Tiempo recomendado: 30 minutos) Atacaremos un sistema de cifra de matrices de Hill en módulo 27 con el método de Gauss-Jordan. Conocemos el mensaje M = TODA CIFRA SIEMPRE ES UN ENIGMA y también su criptograma C = ÑPCX ZPXN WUXS XDNM STCA ZQVE EDFS. Casi al final de este ataque obtenemos una matriz 2n-grámica (Texto en Claro | Texto Cifrado) como la que se indica:

1 0 0 15 | 10 8 19 0 0 1 0 2 | 10 6 4 18 0 0 1 16 | 23 12 7 17 0 0 0 17 | 5 0 0 12 Se pide: terminar el ataque y encontrar la matriz clave [K] numérica y su matriz simbólica.

Solución: Como sólo falta un 1 en la cuarta columna de la cuarta fila para tener todos los vectores unitarios, multiplicamos la 4ª Fila por inv (17, 27) = 8 y nos queda: 4ª FILA x 8 mod 27: [ 0 0 0 1 | 13 0 0 15]

Page 120: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2003

Departamento de Lenguajes, Proyectos y Sistemas Informáticos - UPM pág. 3

Con este vector deberemos ahora lograr que toda la cuarta columna, excepto el último elemento sean cero, por lo tanto usando vector de 4ª fila hacemos: 1ª FILA (convertir el 15 en 0) 1ª fila = 1ª fila – 15 x 4ª fila mod 27 1ª FILA: [ 1 0 0 0 | 4 8 19 18] 2ª FILA (convertir el 2 en 0) 2ª fila = 2ª fila – 2 x 4ª fila mod 27 2ª FILA: [ 0 1 0 0 | 11 6 4 15] 3ª FILA (convertir el 16 en 0) 3ª fila = 3ª fila – 16 x 4ª fila mod 27 3ª FILA: [ 0 0 1 0 | 4 12 7 20] Obtenemos así los cuatro vectores unitarios y la matriz 2n-grámica se muestra a la izquierda. Como ésta es la traspuesta de clave la [K], la clave [K] y su simbólica se muestran a la derecha. 1 0 0 0 | 4 8 19 18 1 0 0 0 | 4 11 4 13 E L E N 0 1 0 1 | 11 6 4 15 0 1 0 1 | 8 6 12 0 I G M A 0 0 1 0 | 4 12 7 20 0 0 1 0 | 19 4 7 0 S E H A 0 0 0 1 | 13 0 0 15 0 0 0 1 | 18 15 20 15 R O T O La clave simbólica es K = EL ENIGMA SE HA ROTO

Ejercicio Nº 2 (2,5 puntos - 0,5 c/u. Tiempo recomendado: 45 minutos) Usamos el algoritmo de las cajas S del DES para generar claves. Si la entrada a esas cajas S1-S8 es la cadena de bits indicada 101011 010010 111010 001011 011111 110100 110111 100001: a) Encuentre la salida en hexadecimal de cada una de las cajas S. b) ¿Podríamos usar el valor de salida anterior como una clave DES? ¿Por qué? c) ¿Podríamos usar el valor de salida anterior como una clave IDEA? ¿Por qué? d) ¿Sucede algo especial si la entrada en ASCII es UUUUUU? ¿Cuál es la salida hexadecimal? e) ¿Con qué esfuerzo podríamos reconstruir la entrada a partir de la salida por fuerza bruta?

Solución: a) Salida cajas S si entrada = 101011 010010 111010 001011 011111 110100 110111 100001:

S1 1010112: Fila = 112 = 3; Columna = 01012 = 5 Salida celda = 9 = 11012 = 916

S2 0100102: Fila = 002 = 0; Columna = 10012 = 9 Salida celda = 7 = 01112 = 716

S3 1110102: Fila = 102 = 2; Columna = 11012 = 13 Salida celda = 10 = 10102 = A16

S4 0010112: Fila = 012 = 1; Columna = 01012 = 5 Salida celda = 15 = 11112 = F16

S5 0111112: Fila = 012 = 1; Columna = 11112 = 15 Salida celda = 6 = 01102 = 616

S6 1101002: Fila = 102 = 2; Columna = 10102 = 10 Salida celda = 4 = 01002 = 416

S7 1101112: Fila = 112 = 3; Columna = 10112 = 11 Salida celda = 15 = 11112 = F16

S8 1000012: Fila = 112 = 3; Columna = 00002 = 0 Salida celda = 2 = 00102 = 216 La salida en hexadecimal de las cajas S será: 97AF 64F2 b) No, porque DES usa una clave de 64 bits con paridad o 56 bits sin paridad y la salida de estas

cajas S son sólo 32 bits. c) Menos aún porque IDEA usa una clave de 128 bits. d) Como el valor ASCII de la letra U = 8510 = 010101012, esta cadena de ceros y unos se repetirá

desde el bit primero hasta el último en la entrada, por lo que todas las entradas a las cajas Si serán iguales, el valor 010101. Luego, en todas las cajas Si deberá leerse en las celdas de la fila 012 = 1 y columna 10102 = 10. La salida hexadecimal será ahora C152 FD56.

e) En DES, para cada valor de salida de cada caja Si hay cuatro valores de entrada posibles. Por ejemplo, en la caja S1 la salida 11112 = F se obtiene independientemente para entradas 001010, 000011, 110000 y 100001. Por lo tanto, para una salida cualesquiera de 32 bits, habrá 4

8 = 262.144 posibles entradas, un valor bajo que permitiría hacer un ataque por fuerza

bruta. Nota: recuerde que el algoritmo DES entrega un bloque de texto cifrado después de 16 vueltas por lo que este tipo de ataque (aunque haya otras operaciones en dicho algoritmo y con tamaños de cadenas de bits distintas) se vuelve computacionalmente imposible.

Ejercicio Nº 3 (3,0 puntos - 0,5 c/u. Tiempo recomendado: 45 minutos) Nota: Para el cálculo de inversos debe usar obligatoriamente el algoritmo del Teorema Extendido de Euclides y para todos los cálculos de potencia el algoritmo de exponenciación rápida.

Adela (A) y Benito (B) desean intercambiar una clave KS = 36 usando el algoritmo RSA. Los

parámetros del sistema son (A: pA = 7, qA = 13, eA = 11) y (B: pB = 5, qB = 19, eB = 7).

Page 121: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2003

Departamento de Lenguajes, Proyectos y Sistemas Informáticos - UPM pág. 4

a) ¿Qué valor numérico de KS cifrada E1(KS) envía Adela (A) a Benito (B), es decir A B?

b) ¿Qué valor numérico de KS cifrada E2(KS) envía Benito (B) a Adela (A), es decir B A?

c) Encuentre la clave privada dA de Adela (A).

d) Encuentre la clave privada dB de Benito (B).

e) Descifre en el extremo de Adela (A) la clave KS cifrada E2(Ks) que ha enviado Benito (B).

f) Descifre en el extremo de Benito (B) la clave KS cifrada E1(Ks) que ha enviado Adela (A). Valores binarios para la exponenciación rápida: 72 = 111; 112 = 1011; 312 = 11111; 592 = 111011.

Solución:

a) Puesto que nB = pB x qB = 5 x 19 = 95, (A) envía a (B) el valor E1(KS) = EeB(KS) = KseB

mod nB = 36

7 mod 95. Y dado que 7 = 1112 = b2b1b0 entonces:

j 0 1 2 j 36

2 36 61 16

EeB(KS) = 36x61x16 mod 95 = 81 (A B el valor 81)

b) Puesto que nA = pA x qA = 7 x 13 = 91, (B) envía a (A) el valor E2(KS) = EeA(KS) = KseA

mod nA = 36

11 mod 91. Y dado que 11 = 10112 = b3b2b1b0 entonces:

j 0 1 2 3 j 36

2 36 22 29 22

EeA(KS) = 36x22x22 mod 91 = 43 (B A el valor 43)

c) El indicador de Euler de (A) será (nA) = (pA –1)(qA –1) = (7–1)(13–1) = 6x12 = 72, luego su

clave privada será dA = inv [eA, (nA)] = inv (11, 72): i yi gi ui vi 0 -- 72 1 0 1 -- 11 0 1 2 6 6 1 -6 3 1 5 -1 7 4 1 1 2 -13 La clave privada será dA = -13 mod 72 5 5 0 -- -- dA = 59

d) El indicador de Euler de (B) será (nB) = (pB –1)(qB –1) = (5–1)(19–1) = 4x18 = 72, luego su

clave privada será dB = inv [eB, (nB)] = inv (7, 72): i yi gi ui vi 0 -- 72 1 0 1 -- 7 0 1 2 10 2 1 -10 3 3 1 -3 31 La clave privada será dB = 31 mod 72 4 2 0 -- -- dB = 31

e) (A) recibe E2(KS) = EeA(KS) = 43. Como su clave privada es dA = 59, calculará 4359

mod 91 y dado que 59 = 1110112 = b5b4b3b2b1b0 entonces:

j 0 1 2 3 4 5 j 43

2 43 29 22 29 22 29

DdA[EeA(KS)] = 43x29x29x22x29 mod 91 = 36 Esta era la clave KS a intercambiar.

f) (B) recibe E1(KS) = EeB(KS) = 81. Como su clave privada es dB = 31, calculará 8131

mod 95 y dado que 31 = 111112 = b4b3b2b1b0 entonces:

j 0 1 2 3 4 j 81

2 81 6 36 61 16

DdB[EeB(KS)] = 81x6x36x61x16 mod 95 = 36 Esta era la clave KS a intercambiar. Curiosidad: observe la distribución interesante de los restos (29 .. 22 .. 29 ..) para el módulo 91.

Page 122: Solución Exa Jun 95_002 (1)

SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2004

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 1

SEGURIDAD INFORMÁTICA Lunes 14 de junio de 2004

En esta primera parte del examen (Teoría y Prácticas) que se entrega en una hoja aparte y se recogerá transcurridos 60

minutos del comienzo del examen, NO está permitido el uso de apuntes ni libros. En la segunda parte (Ejercicios) con una

duración de 120 minutos, SÍ podrás utilizar libros de la asignatura, apuntes y calculadora. La duración del examen es. 3 horas.

Nota: Si lo deseas o bien si has terminado antes de los 60 minutos esta primera parte, puede comenzar la segunda. Recuerda

no obstante que sólo podrás usar apuntes, libros y una calculadora transcurridos los primeros 60 minutos del examen.

Observación: el formato está ajustado para impresión óptima en DIN A4 con un total de 4 páginas

1ª PARTE: TEORÍA Y PRÁCTICAS (3 puntos: 60 minutos)

Cuestión de Teoría Nº 1 1,0 punto (0,1 c/u). Tiempo recomendado: 30 minutos Para cada frase, elige una opción (separadas por el signo |) y escribe la respuesta más acertada:

a) Una clave será buena para cifrar si, entre otras cosas, su entropía es: | muy baja | muy alta |

relativamente alta | relativamente baja | R: muy alta.

b) La cifra de Vigenère consiste en una: | sustitución monoalfabética | transposición con clave |

sustitución polialfabética | permutación simple | R: sustitución polialfabética.

c) El DES no es recomendable porque: | tiene claves débiles | genera bloques repetidos | es un

algoritmo débil | el espacio de claves es bajo | R: el espacio de claves es bajo.

d) Si ciframos con IDEA: | la clave será de 128 bits | la clave será de 80 bits | la clave será de

160 bits | la clave será de 124 bits | R: la clave será de 128 bits.

e) El AES no es tipo Feistel porque cifra texto como: | bloques de 128 bits | bloque completos |

bloques por mitades | texto en binario | R: bloque completos.

f) Si una clave pareja d’ en RSA es igual a 1, habrá: | n mensajes no cifrables | 9 mensajes no

cifrables | 9 claves parejas | n claves parejas | R: n mensajes no cifrables.

g) Al importar una clave PGP completa, el programa nos pedirá: | convertirla a tipo DH/DSS |

modificar el nivel de confianza | confirmar la passphrase | firmarla por el usuario que esté en

el sistema por defecto | R: modificar el nivel de confianza. h) Si una clave pública PGP termina con los siguientes caracteres 1HgORgdinIGUmAA==

decimos que: | tiene un relleno de 8 bits | tiene un relleno de 2 bits | tiene un relleno de 4 bits

| tiene un relleno de 6 bits | R: tiene un relleno de 4 bits.

i) Si ciframos un documento con PGP en momentos distintos: | el criptograma es el mismo | el

criptograma es totalmente distinto | el criptograma es más largo | el criptograma cambia la

mayoría de sus bits | R: el criptograma cambia la mayoría de sus bits.

j) Si usamos esteganografía podemos: | ocultar una firma digital | ocultar un mensaje y cifrarlo |

cifrar una clave pública | ocultar un texto | R: ocultar un mensaje y cifrarlo.

Cuestión de Teoría Nº 2 1,0 punto (0,25 c/u). Tiempo recomendado: 15 minutos Confirma o rebate (verdadero/falso) estas cuatro afirmaciones, justificando en cada caso tu respuesta: a) El único ataque posible a un sistema de cifra con matrices de Hill es la fuerza bruta.

FALSO. Dado que el sistema matricial de Hill es lineal, existe un ataque con texto en claro conocido a través del esquema de Gauss-Jordan. Se forma una matiz 2n-grámica con el texto en claro y su correspondiente criptograma y mediante ecuaciones lineales e independientes se fuerza a que la diagonal principal de la matiz izquierda sean todos valores unitarios, y los demás cero. Aparecen así los denominados vectores unitarios que permiten romper fácilmente la clave con muy pocos pares de texto en claro y texto cifrado. Esta aparece como traspuesta en la segunda matriz 2n-grámica.

b) La longitud en bits de una clave asimétrica es menor que la de una simétrica.

FALSO. Debido al sistema de cifra y al problema matemático al cual está asociado la vulnerabilidad de las claves, los sistemas simétricos necesitan una longitud de clave del orden de 10 o más veces el tamaño de la clave de un sistema simétrico. Los sistemas simétricos deben atacarse (por lo general) a través de la fuerza bruta, intentado cada uno de los posibles valores de dicha clave; en cambio los sistemas asimétricos por su naturaleza tienen varios tipos de ataques posibles y no es necesario recorrer todos los valores posibles del espacio de claves.

c) La firma de ElGamal es más eficiente en bits que la firma DSS, Digital Signature Standard.

Page 123: Solución Exa Jun 95_002 (1)

SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2004

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 2

FALSO. La firma de ElGamal entrega dos valores dentro del cuerpo de firma, es decir del orden que tenga el primo p, por lo general sobre 1.024 bits. En cambio la firma DSS, basada en el algoritmo de ElGamal, usa dos primos –p y q- de forma que q es bastante menor que p y todas las operaciones se hacen dentro de ese cuerpo más pequeño. Luego DSS entrega dos valores pero de tamaño menor sin que ello signifique que la seguridad de dicha firma sea menor a la de ElGamal.

d) Al convertir un documento en Base 64, éste mantiene su tamaño en bits al transmitirlo.

FALSO. Puesto que se convierten (en general) 3 bytes (24 bits) en 4 bloques del código Base64 de 6 bits cada uno, todos caracteres imprimibles, y luego esos cuatro caracteres Base64 se vuelven a convertir en ANSI de 8 bits, esta conversión aumenta el tamaño del fichero en un 33%.

Cuestión de Práctica 1,0 punto (0,25 c/u). Tiempo recomendado: 15 minutos Responde estas cuestiones de las prácticas y justifica cada una de tus respuestas. a) ¿Es más rápido saber si un número de 50 bits es primo que factorizar un producto de 50 bits?

Sí. El test de primalidad de un número, independientemente del algoritmo que se utilice, tiene un comportamiento exponencial suave que podría asemejarse a un tiempo polinomial. Sin embargo, el problema de la factorización entera de un número compuesto es un problema de tipo NP, no polinomial, por lo que el tiempo depende fuertemente de forma exponencial del tamaño de la entrada.

b) ¿Por qué al buscar log5 7 mod 13 no hay solución y en cambio sí para log5 12 mod 13?

Porque la base del logaritmo (5) no es una raíz primitiva del primo 13 y, por lo tanto, no se generan todos los restos del cuerpo. De hecho, si hacemos 5

i mod 13 para 0 < i < 13 se obtienen la siguiente

cadena: 5, 12, 8, 1, 5, 12, 8, 1, 5, 12, 8, 1. Se repite la cadena y sí aparece el 12 (el logaritmo tiene solución) y no aparece el 7 (el logaritmo no tiene solución).

c) ¿Lo que se cifra en RSA con la clave pública e sólo se descifra con la clave privada d?

No. En RSA existe en el mejor de los casos una clave pareja de la clave privada de forma que con esa segunda clave también puede descifrarse lo que se ha cifrado con la clave pública.

d) ¿Cuáles son los dos mensajes no cifrables más obvios que hay en RSA?

Son 0 y 1. Para los valores 0 y 1 se cumplirá siempre que Ae mod n = A. Además de estos dos valores

obvios, existirán siempre como mínimo otros 7 más; es decir un total de 9 como mínimo.

2ª PARTE: EJERCICIOS (7 puntos: 120 minutos)

Ejercicio Nº 1 2,0 puntos (1,0 c/u). Tiempo recomendado: 30 minutos

Si en una de las vueltas del DES la entrada a las cajas S es la secuencia hexadecimal que se indica Mhex = A06F 8626 9C52, se pide: a) Encuentra la salida en binario y en hexadecimal de cada una de las cajas S. b) ¿Cuántos cálculos habría que hacer para romper por fuerza bruta esta parte de 8 valores de

cajas S, de forma que podamos volver desde esta salida de las cajas a la entrada original Mhex = A06F 8626 9C52?

SOLUCIÓN: Apartado a) A06F86269C52 = 1010 0000 0110 1111 1000 0110 0010 0110 1001 1100 0101 0010 Entrada Cajas Si: 101000 000110 111110 000110 001001 101001 110001 010010 En hoja anexa al examen se han entregado las tablas S del DES. Entradas Fila/Columna Caja Si: S1 S2 S3 S4 S5 S6 S7 S8 2/4 0/3 2/15 0/3 1/4 3/4 3/8 0/9 Salida decimal de Cajas Si: 13 14 7 3 4 9 9 9 Salida binario de Cajas Si: 1101 1110 0111 0011 0100 1001 1001 1001 Salida hexadecimal de Cajas Si: DE73 4999 Apartado b) Cada salida (valores de 0 a 15) de una caja Si tiene cuatro posible entradas. Por ejemplo, para la caja S1 la salida 15 se obtiene para estas cuatro entradas de Filas/Columnas: 0/5, 1/1, 2/8 y 3/0. Por lo tanto, para 8 cajas Si concatenadas, deberemos realizar 4

8 = 65.536 intentos en el pero de

los casos por fuerza bruta para volver de la salida DE734999 a la entrada A06F86269C52. Para una vuelta completa del DES serían (4

8)16

= 1,16 x 1077

intentos, un valor ya desmesurado.

Ejercicio Nº 2 2,5 puntos (0,5 c/u). Tiempo recomendado: 45 minutos

Page 124: Solución Exa Jun 95_002 (1)

SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2004

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 3

Adela (A) y Benito (B) desean intercambiar una clave KS usando el método de Diffie y Hellman.

Eligen el primo p = 43 y comienzan a buscar un generador en el cuerpo p.

a) Encuentra el primer generador (el número más pequeño que lo sea) dentro del cuerpo p.

b) Con ese , Adela (A) elige a = 7 y Benito (B) elige b = 8. Calcula qué clave se intercambian.

c) Cristina (C) que conoce y p, intercepta la comunicación anterior y elige c = 10. Demuestra con un ejemplo numérico cómo engaña a Adela y a Benito al interceptar dicho intercambio.

d) ¿Qué sucede si Adela (A) y Benito (B) no eligen un generador en el cuerpo p?

e) ¿Es el primo elegido por Adela (A) y Benito (B) un primo seguro? ¿Importa eso?

SOLUCIÓN: Apartado a)

Buscamos un generador desde 1 < g < 42. Para ello utilizamos la ecuación de los apuntes de

clase en donde dice que un número g es un generador si g(p-1)/qi

mod p 1. Tenemos p = 43; p-1 = 42 = 2x3x7; luego:

q1 = 2 (p-1)/ q1 = 42/2 = 21; q2 = 3 (p-1)/ q2 = 42/3 = 14; q3 = 7 (p-1)/ q3 = 42/7 = 7 Sea g = 2: 2

21 mod 43 = 42; 2

14 mod 43 = 1; 2

7 mod 43 = 42 No es generador

Sea g = 3: 321

mod 43 = 42; 314

mod 43 = 36; 37 mod 43 = 37 Sí es generador

Luego elegimos = 3. Apartado b)

Adela envía a Benito: a mod p = 3

7 mod 43 = 37

Benito envía a Adela: b mod p = 3

8 mod 43 = 25

Benito calcula: 37b mod p = 37

8 mod 43 = 36

Adela calcula: 25a mod p = 25

7 mod 43 = 36. Esta (36) es la clave que se intercambian A y B.

Apartado c)

Adela envía a Benito: a mod p = 3

7 mod 43 = 37

Cristina intercepta el 37, elige c = 10 y envía a Benito c mod p = 3

10 mod 43 = 10

Benito envía a Adela: b mod p = 3

8 mod 43 = 25

Cristina intercepta el 25, elige c = 10 y envía a Adela c mod p = 3

10 mod 43 = 10

Benito calcula su clave de comunicación con Adela: 10b mod p = 10

8 mod 43 = 17

Adela calcula su clave de comunicación con Benito: 10a mod p = 10

7 mod 43 = 6

Cristina calcula su clave con Benito: (b)c mod p = 25

10 mod 43 = 17 (la misma que Benito)

Cristina calcula su clave con Adela: (a)c mod p = 37

10 mod 43 = 6 (la misma que Adela)

Y con ello podría hacer un ataque del tipo “men in the middle”. Apartado d) Si Adela y Benito no eligen un generador en el primo p, pueden seguir utilizando el protocolo, sólo que en este caso será mucho más fácil un ataque por fuerza bruta pues el problema del logaritmo discreto pierde fuerza al no generarse todos los restos del primo p. En principio no tiene mayor importancia elegir un primo de los llamados seguros o fuertes en este escenario. Apartado e) El primo 43 no es un primo seguro porque no proviene de 2p+1 (p sería 21, no es primo). Esto no tiene ninguna importancia en la seguridad del intercambio de clave, salvo que hay más raíces en los primos seguros (sobre el 50% de los números) y entonces es más fácil encontrarlos.

En el siguiente ejercicio es obligatorio usar el Teorema Extendido de Euclides para los cálculos de inversos y el algoritmo de exponenciación rápida para los cálculos de potencia.

Ejercicio Nº 3 2,5 puntos (0,5 c/u). Tiempo recomendado: 45 minutos Adela (A) ha enviado a Benito (B) su clave pública PGP si bien no tiene ningún dato de él. Si esta clave es de tipo RSA con los valores que se indican (p = 131, q = 197, e = 31), se pide:

a) Encontrar la clave privada d de Adela (A).

b) Cifrar el mensaje numérico M = 13.620 que Benito (B) envía confidencialmente a Adela (A).

c) ¿Puede en este escenario enviar Adela (A) un mensaje confidencial a Benito (B)? ¿Por qué?

d) ¿Puede en este escenario enviar Adela (A) un mensaje firmado a Benito (B)? ¿Por qué?

e) ¿Cuántas operaciones de multiplicación y su reducción a módulo n debe hacer Adela (A) con el algoritmo de exponenciación rápida para recuperar el mensaje original? ¿Cuántas debería hacer si esa exponenciación si tratase como si fuesen multiplicaciones sucesivas? Datos de interés para el problema: 13.15110 = 110011010111112 824.464 mod n = 24.447 13.102.440 mod n = 18.291 38.763.076 mod n = 962

Page 125: Solución Exa Jun 95_002 (1)

SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2004

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 4

46.866.420 mod n = 908 50.176.080 mod n = 7.272 52.881.984 mod n = 3.441 185.504.400 mod n = 3.684 332.968.140 mod n = 6.226

SOLUCIÓN: Apartado a)

p = 131; q = 197 nA = pxq = 25.807 y (n) = (p-1)(q-1) = 25.480; eA = 31

d A = inv [e A, ( nA)] = inv (31, 25,480) = 13.151 i yi gi ui vi 0 -- 25.480 1 0 1 -- 31 0 1 2 821 29 1 -821 3 1 2 -1 822 4 14 1 15 -12.329 5 2 0 La clave privada será dA = -12.329 + 25.480 = 13.151 (valor entregado en los datos del examen) Apartado b)

Como M = 13.620 C = MeA

mod nA = 13.62031

mod 25.807. Dado que 3110 = 111112, siguiendo el algoritmo de exponenciación rápida, se multiplicarán todos los valores de X

2 por M = 13.620.

i = 4 12 x 13.620 mod 25.807 x = 13.260

i = 3 X =13.6202 x 13.620 mod 25.807 = 185.504.400 x 13.620 mod 25.807

X = 3.684 x 13.620 mod 25.807 = 50.176.080 mod 25.807 X = 7.272

i = 2 X = 7.2722 x 13.620 mod 25.807 = 52.881.984 x 13.620 mod 25.807

X = 3.441 x 13.620 mod 25.807 = 46.866.420 mod 25.807 X = 908

i = 1 X = 9082 x 13.620 mod 25.807 = 824.464 x 13.620 mod 25.807

X = 24.447 x 13.620 mod 25.807 = 332.968.140 mod 25.807 X = 6.226

i = 0 X = 6.2262 x 13.620 mod 25.807 = 38.763.076 x 13.620 mod 25.807

X = 962 x 13.620 mod 25.807 = 13.102.440 mod 25.807 X = 18.291 El criptograma que Benito envía a Adela será C = 18.291. Nota: todos los resultados parciales de las multiplicaciones y potencias modulares en el cuerpo 25.807 de cada dos operandos se han entregado como datos en el enunciado. Observe que Benito ha realizado sólo 17 operaciones, contando como operaciones todas las multiplicaciones, las potencias al cuadrado y las reducciones a módulo. En i = 4 no se hecho ninguna operación y desde en i = 3 hasta i = 0, hay cuatro operaciones en cada iteración. Por lo tanto ha hecho 4x4 = 16 operaciones con datos reducidos mod 25.807. En otra representación del algoritmo, podemos decir que como hay 5 bits a uno, en este caso serían 4 multiplicaciones (el primero no) y sus 4 reducciones a módulo, más 4 multiplicaciones de resultados finales y sus correspondientes reducciones a módulo, que en suma son 16. Apartado c) En este escenario Adela no puede enviar un mensaje confidencial a Benito porque no conoce la clave pública de él. Según el enunciado, no tiene ningún dato de claves de Benito. Apartado d) En este escenario Adela sí puede enviar un mensaje firmado a Benito cuyo texto iría en claro pues al tener su par de claves asimétricas, Adela usa su clave privada para ello y Benito tiene la clave pública de Adela para comprobar que la firma es correcta. Apartado e) Para recuperar el mensaje original, Adela debe hacer la operación M = C

dA mod n, es decir el

cálculo 18.29113.151

mod 25.807. Como 13.15110 = 110011010111112 (valor dado) y ese número tiene 14 bits (10 unos) habrá inicialmente 13 operaciones de cuadrado más su correspondiente reducción a módulo (26) -en el primer paso no hay operación ya que tenemos 1

2x13.151-, más 9

operaciones de producto por M cuando el bit es uno y su correspondiente reducción a módulo (18), es decir 26 + 18 = 44. A igual resultado (44) se llega con la representación del algoritmo que recorre nuevamente los resultados parciales buscando posiciones con bit a uno. Si Adela, en vez de usar este algoritmo rápido hace multiplicaciones sucesivas y reducciones sistemáticas a módulo, el número de operaciones sería 13.150 multiplicaciones (el exponente menos 1) y sus correspondientes reducciones a módulo, es decir 26.300: esto es un ahorro muy importante.

Page 126: Solución Exa Jun 95_002 (1)

SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2004

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 1

SEGURIDAD INFORMÁTICA Jueves 23 de septiembre de 2004

En esta primera parte del examen (Teoría y Prácticas) que se entrega en una hoja aparte y se recogerá transcurridos 60

minutos del comienzo del examen, no está permitido el uso de apuntes ni libros. En la segunda parte (Ejercicios) con una

duración de 120 minutos, sí podrás utilizar libros de la asignatura, apuntes y calculadora. La duración del examen es. 3 horas.

Nota: Si lo deseas o bien si has terminado antes de los 60 minutos esta primera parte, puede comenzar la segunda. Recuerda

no obstante que sólo podrás usar apuntes, libros y calculadora transcurridos los primeros 60 minutos del examen.

Formato ajustado para impresión óptima en DIN A4: 5 páginas

1ª PARTE: TEORÍA Y PRÁCTICAS (3 puntos: 60 minutos)

Cuestión de Teoría Nº 1 1,0 punto (0,1 c/u). Tiempo recomendado: 30 minutos Para cada frase, elige una opción (separadas por el signo |) y escribe la respuesta más acertada:

a) La cifra clásica es débil porque: | su clave es pequeña | es un sistema lineal | la entropía de

los mensajes es baja | no cifra por bloques | R: es un sistema lineal.

b) Decimos que una clave para cifrar no es recomendable si su entropía es: | alta | muy alta |

baja | muy baja | R: muy baja.

c) En los sistemas asimétricos, la confidencialidad y autenticidad se logran: | por separado | rara

vez | conjuntamente | una después de la otra | R: por separado.

d) La tripleta tamaño del bloque / tamaño de la clave / número de vueltas del algoritmo DES es: |

64/64/8 | 64/56/12 | 64/64/16 | 56/64/16 | R: 64/64/16. e) En cada caja Si del DES entrarán b1 bits y saldrán b2 bits, y la relación b1/b2 vendrá dada por:

| 48/32 | 6/4 | 4/6 | 8/4 | R: 6/4.

f) En el cifrador IDEA la relación entre número de subclaves / número de vueltas será: | 64/8 |

56/12 | 52/6 | 52/8 | R: 52/8. g) Si en el protocolo de intercambio de clave de Diffie y Hellman no se usa un generador del

primo: | éste será vulnerable | éste no funciona | éste sucumbirá ante un meet in the middle |

éste es más seguro | R: éste será vulnerable.

h) En un sistema de cifra asimétrica RSA tendremos como mínimo: | 2 claves parejas | 9 claves

parejas | 64 claves parejas | 1 clave pareja | R: 1 clave pareja. i) Como una clave pública PGP termina con los siguientes caracteres 1HgknHRgdi8IGUmAA=

ésta tiene: | un relleno de 1 bit | un relleno de 2 bits | un relleno de 4 bits | un relleno de 8 bits

| R: 2 bits de relleno.

j) Si firmamos un documento con PGP en dos momentos distintos, el criptograma: | será igual

en ambos casos | será totalmente distinto | cambiará los primeros bits | cambiarán los bits

después de cabecera constante | R: cambiarán los bits después de cabecera constante.

Cuestión de Teoría Nº 2 1,0 punto (0,5 c/u). Tiempo recomendado: 15 minutos Es común que quienes no han estudiado temas de criptografía confundan los términos en inglés “meet in the middle” con “man in the middle”. Como esto es un error, define y explica qué hace cada uno de ellos. Comenta además en qué entorno se usa cada uno de dichos términos. a) “Meet in the middle”

Se refiere a un ataque por “encuentro a medio camino”. Consiste en atacar una cifra doble por fuerza bruta desde el criptograma hacia un “criptograma intermedio” y luego desde el texto en claro hasta ese “criptograma intermedio”, de forma que los dos criptogramas intermedios deberán coincidir al ser una solución. Este tipo de ataque rompe con facilidad un cifrado DES doble, en el sentido de que hay una doble cifra pero el valor real de la clave efectiva sólo se ve aumentada en la práctica en un bit. De ahí que el sistema doble DES no se use y sí el Triple DES, inmune a este tipo de ataque.

b) “Man in the middle”

Page 127: Solución Exa Jun 95_002 (1)

SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2004

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 2

Se refiere a un ataque de interceptación activa por parte de un tercero de la información que se están enviando un emisor y un receptor, como puede ser una fase del protocolo de intercambio de clave. El “hombre en el medio”, lee la información cifrada que envía un extremo al otro, la modifica para su beneficio y tras ello la reenvía al verdadero destinatario. Realiza esta operación en ambos sentidos y de prosperar el ataque, domina la situación y es capaz de leer en claro toda la información que pasa por la línea que tiene interceptada, sin que los usuarios se percaten de ello. El entorno típico de este ataque, que tiene diversas soluciones, es un intercambio de clave asimétrica tipo Diffie y Hellman.

Cuestión de Práctica 1,0 punto (0,5 c/u). Tiempo recomendado: 15 minutos Al realizar un ataque por búsqueda exhaustiva (en un espacio de clave reducido) de una clave ASCII en un sistema de cifra DES ECB con el programa safeDES suceden ciertas cosas. Se pide contestar: a) ¿Cuántas claves aparecen?

Aparecen 256 claves válidas, la clave ASCII introducida y otras 255 con las que se obtiene el mismo cifrado, como si fuesen claves parejas de la verdadera.

b) Justifique el número de claves que ha indicado en el apartado anterior.

DES usa una clave de 64 bits numérica (8 bytes) y para generar las 16 subclaves de sus vueltas quita de la clave inicial los bits de paridad (el octavo de cada byte) si bien sabemos que el ASCII no tiene paridad. Por lo tanto, al dar lo mismo de cara a la clave que el bit octavo de cada byte sea un 1 o un 0, tendremos 2

8 = 256 variaciones posibles de claves válidas. Por ejemplo las clave K1 = CBBBBBBC y

K2 = BCCCCCCB serán iguales ya que en ASCII la letra B es 01000010 y la letra C es 01000011. Al quitar el último bit, los primeros 7 bits 0100001 son iguales y la clave efectiva resultante es la misma.

2ª PARTE: EJERCICIOS (7 puntos: 120 minutos)

Ejercicio Nº 1 2,0 puntos (1,0 c/u). Tiempo recomendado: 30 minutos Creamos una función hash de 16 bits (bastante mala por lo demás) que consiste en sumar or exclusivo bloques ASCII de 2 bytes del mensaje, partiendo del vector inicial A7 de 16 bits, de una forma similar a como lo hacen los algoritmos MD5, SHA-1, etc. Si la longitud del mensaje no fuese congruente con ese bloque de 16 bits, se rellena con un 1 seguido de siete 0 a la derecha. a) Encuentra el hash que nos entregaría esta función para el mensaje 7 bytes M = Mi casa. b) Para esta función hash, ¿cuántos mensajes distintos deberíamos tener para que prosperase

en media un ataque por resistencia débil a colisiones y cuántos para que prosperase en media un ataque por la paradoja del cumpleaños? Justifica y razona tu respuesta.

SOLUCIÓN: Apartado a) Si la clave es K, como M tiene siete bytes y sea el relleno byteR, entonces: H(M) = byte1byte2 XOR K XOR byte3byte4 XOR byte5byte6 XOR byte7byteR En este caso la operación XOR se puede ejecutar simultáneamente por lo que habrá un 1 si en la fila correspondiente hay un número impar de 1s y 0 en caso contrario.

K 0100 0001 0011 0111 (A7) Mi 0100 1101 0110 1001 _c 0010 0000 0110 0011 as 0110 0001 0111 0011 abR 0110 0001 1000 0000

XOR 0010 1100 1100 1110 H(M)16 = 2CCE Apartado b) El hash es de 16 bits, luego la media de intentos para la comprobar la resistencia débil a colisiones será 2

n = 2

16 = 65.536 intentos.

En cambio, para comprobar la resistencia fuerte a colisiones será necesario realizar en este caso tan sólo 2

n/2 = 2

16/2 = 2

8 = 256 intentos, basado en la paradoja del cumpleaños.

Page 128: Solución Exa Jun 95_002 (1)

SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2004

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 3

Ejercicio Nº 2 2,5 puntos (0,5 c/u). Tiempo recomendado: 45 minutos Adela (A), Benito (B) y Cristina (C) desean intercambiar una clave usando el algoritmo de Diffie y Hellman, y para ello eligen trabajar en el cuerpo p = 23.

a) Encuentra el primer generador superior a 3 dentro del cuerpo p = 23.

b) Con ese encontrado, Adela (A) elige a = 2, Benito (B) elige b = 4 y Cristina (C) elige c = 6. Calcula la clave que se intercambian Adela, Benito y Cristina.

c) En vez de trabajar con el número 23, ¿sería más seguro o fiable hacerlo con el número 49?

d) Comente la posibilidad y factibilidad de que un intruso (I) pinche las líneas de comunicación

entre (A), (B) y (C) e intente un ataque basado en el método “man in the middle”. e) Explique, sólo a nivel de ecuaciones y basado en el apartado b), cómo cambiaría el protocolo

de intercambio de clave si Demetrio (D) desea participar en él como un cuarto usuario.

SOLUCIÓN: Apartado a)

Buscamos el generador más pequeño desde g = 4. Para ello utilizamos la ecuación de los

apuntes de clase en donde dice que un número g es un generador si g(p-1)/qi

mod p 1. Tenemos p = 23; p-1 = 22 = 2x11; luego:

q1 = 2 (p-1)/ q1 = 22/2 = 11; q2 = 11 (p-1)/ q2 = 22/11 = 2 Sea g = 4: 4

11 mod 23 = 1; 4

2 mod 23 = 16 El 4 no es un generador

Sea g = 5: 511

mod 23 = 22; 52 mod 23 = 2 El 5 sí es un generador ( = 5)

Apartado b)

Primer paso: (A) envía a (B): a mod p = 5

2 mod 23 = 2

(B) envía a (C): b mod p = 5

4 mod 23 = 4

(C) envía a (A): c mod p = 5

6 mod 23 = 8

Segundo paso: (B) envía a (C): (a)b mod p = (2)

4 mod 23 = 16

(C) envía a (A): (b)c mod p = (4)

6 mod 23 = 2

(A) envía a (B): (c)a mod p = (8)

2 mod 23 = 18

Tercer paso: (C) envía a (A): (ab

)c mod p = (16)

6 mod 23 = 4

(A) envía a (B): (bc

)a mod p = (2)

2 mod 23 = 4.

(B) envía a (C): (ca

)b mod p = (18)

4 mod 23 = 4. La clave es 4.

Apartado c) No se puede trabajar en el cuerpo 49 porque no es un primo y la condición necesaria de este protocolo es que el cuerpo sea un primo. No obstante siempre que elijamos un primo mayor, el algoritmo será computacionalmente más seguro por el problema del logaritmo discreto. Apartado d) El intruso puede interceptar todas las comunicaciones entre (A), (B) y (C) pero como la clave que se intercambian los usuarios no se encuentra exactamente en “el medio” de una transferencia de datos como sucedía en el intercambio de clave entre dos usuarios, el ataque por el método “man in the middle” aquí no es posible en los mismos términos que sucedía con (A) y (B). No obstante, sí podría darse un ataque -entre otros escenarios posibles- en este sentido que se indica a continuación:

Paso 1: (A) envía a (B): a mod p

(B) envía a (C): b mod p

(C) envía a (A): c mod p el intruso I sólo lee y guarda estos valores (pasivo)

Paso 2: (A) envía a (B): (c)a mod p el intruso lo intercepta y envía a (B)

i mod p

(B) envía a (C): (a)b mod p el intruso lo intercepta y envía a (C)

i mod p

(C) envía a (A): (b)c mod p el intruso lo intercepta y envía a (C)

i mod p

Paso 3: (A) envía a (B): (i)a mod p el intruso tiene la clave de A calculando (

a) i mod p

(B) envía a (C): (i)b mod p el intruso tiene la clave de B calculando (

b) i mod p

(C) envía a (A): (i)c mod p el intruso tiene la clave de C calculando (

c) i mod p

Apartado e)

Paso 1: (A) envía a (B): a mod p Paso 3: (C) envía a (D): (

ab)c mod p

(B) envía a (C): b mod p (D) envía a (A): (

bc)d mod p

Page 129: Solución Exa Jun 95_002 (1)

SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2004

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 4

(C) envía a (D): c mod p (A) envía a (B): (

cd)a mod p

(D) envía a (A): d mod p (B) envía a (C): (

da)b mod p

Paso 2: (B) envía a (C): (a)b mod p Paso 4: (D) envía a (A): (

abc)d mod p

(C) envía a (D): (b)c mod p (A) envía a (B): (

bcd)a mod p

(D) envía a (A): (c)d mod p (B) envía a (C): (

cda)b mod p

(A) envía a (B): (d)a mod p (C) envía a (D): (

dab)c mod p

La clave que se intercambian (A), (B), (C) y (D) será abcd

mod p.

Ejercicio Nº 3 2,5 puntos (0,5 c/u). Tiempo recomendado: 45 minutos Nota importante: Es obligatorio que uses el Teorema Extendido de Euclides para los cálculos de inversos y el algoritmo de exponenciación rápida para los cálculos de potencia o exponenciación.

Adela (A) y Benito (B) tienen como clave pública RSA: nA = 91, eA = 5; nB = 85, eB = 7.

a) Encuentra la clave privada dA de Adela (A).

b) Encuentra la clave privada dB de Benito (B).

c) Cifra el mensaje numérico M = 24 que Adela (A) envía confidencialmente a Benito (B).

d) Firma el hash numérico h(M) = 10 que Benito (B) envía a Adela (A).

e) Encuentra el número (sólo la cantidad) de claves privadas parejas dpA de Adela (A) y el

número de claves privadas parejas dpB de Benito (B).

SOLUCIÓN: Apartado a)

NA = 91 pA = 7; qA = 13; eA = 5

(nA) = (pA-1)(qA-1) = (7-1)(13-1) = 6x12 = 72

dA = inv [e A, (nA)] = inv (5, 72). Aplicando el Algoritmo Extendido de Euclides: i yi gi ui vi 0 -- 72 1 0 1 -- 5 0 1 2 14 2 1 -14 3 2 1 -2 29 4 2 0 --- --- La clave privada será dA = 29. Apartado b)

NB = 85 pB = 5; qB = 17; eB = 7

(nB) = (pB-1)(qB-1) = (5-1)(17-1) = 4x16 = 64

dB = inv [e B, (nB)] = inv (7, 64). Aplicando el Algoritmo Extendido de Euclides: i yi gi ui vi 0 -- 64 1 0 1 -- 7 0 1 2 9 1 1 -9 3 7 0 --- --- La clave privada será dB = -9 + 64 = 55. Apartado c)

M = 24 C = MeB

mod nB = 247 mod 85.

Como 710 = 1112 = b2b1b0 entonces: j 0 1 2 mod 85 j 24

2 24 66 21

Luego: C = 24x66x21 mod 85 = 29 O bien usando el algoritmo exponenciación rápida:

i = 2 b2 = 1 x = 1x24 mod 85 = 24

i = 1 b1 = 1 x = 242 x 24 mod 85 = 54

i = 0 b0 = 1 x = 542 x 24 mod 85 = 29

C = 29.

Page 130: Solución Exa Jun 95_002 (1)

SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2004

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 5

Apartado d)

h(M) = 10 C = h(M)dB

mod nB = 1055

mod 85. Como 5510 = 1101112 = b5b4b3b2b1b0 entonces: j 0 1 2 3 4 5 mod 85 j 10

2 10 15 55 50 35 35

Luego: C = 10x15x55x35x35 mod 85 = 5. O bien usando el algoritmo exponenciación rápida:

i = 5 b5 = 1 x = 1x10 mod 85 = 10

i = 4 b4 = 1 x = 102 x 10 mod 85 = 65

i = 3 b3 = 0 x = 652 mod 85 = 60

i = 2 b2 = 1 x = 602x10 mod 85 = 45

i = 1 b1 = 1 x = 452 x 10 mod 85 = 20

i = 0 b0 = 1 x = 202 x 10 mod 85 = 5

C = 5. Apartado e)

Adela: A = mcm [(pA-1), (qA-1)] = mcm [(7-1), (13-1)] = mcm (6, 12) = 12.

d A = inv (eA, A) = inv (5, 12) Aplicando el Algoritmo Extendido de Euclides: i yi gi ui vi 0 -- 12 1 0 1 -- 5 0 1 2 2 2 1 -2 3 2 1 -2 5 4 2 0 --- ---

La clave d A = 5

Luego: A = (n - d A)/ A = (91 - 5)/12 = 86/12 = 7,166 = 7. Efectivamente, las claves parejas de Adela serán:

dpA = d A + i A = 5 + i 12 (con i = 0, 1 ... hasta que dpA sea superior a nA) dpA = 5, 17, 29, 41, 53, 65, 77 y 89. El 29 era la clave privada, luego el número de claves parejas es 7. Nota: estos datos no se piden en el examen y no inciden en la puntuación del ejercicio.

Benito: B = mcm [(pB-1), (qB-1)] = mcm [(5-1), (17-1)] = mcm (4, 16) = 16

d B = inv (eB, B) = inv (7, 16) Aplicando el Algoritmo Extendido de Euclides: i yi gi ui vi 0 -- 16 1 0 1 -- 7 0 1 2 2 2 1 -2 3 3 1 -3 7 4 2 0 --- ---

La clave d B = 7

Luego: B = (n - d B)/ B = (85 - 7)/16 = 78/16 = 4,875 = 4. Efectivamente, las claves parejas de Benito serán:

dpB = d B + i B = 7 + i 16 (con i = 0, 1 ... hasta que dpB sea superior a nB) dpB = 7, 23, 39, 55, 71. El 55 era la clave privada, luego el número de claves parejas es 4. Nota: estos datos no se piden en el examen y no inciden en la puntuación del ejercicio.

Page 131: Solución Exa Jun 95_002 (1)

SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2005

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 1

SEGURIDAD INFORMÁTICA Jueves 23 de junio de 2005

En esta primera parte del examen (Teoría y Prácticas) que se entrega en una hoja aparte y se recogerá transcurridos 60 minutos

del comienzo del examen, NO está permitido el uso de apuntes ni libros. En la segunda parte (Ejercicios) con una duración de

120 minutos, SÍ podrás utilizar libros de la asignatura, apuntes y calculadora. La duración del examen es. 3 horas.

Nota: Si lo deseas o bien si has terminado antes de los 60 minutos esta primera parte, puede comenzar la segunda. Recuerda no

obstante que sólo podrás usar apuntes, libros y una calculadora transcurridos los primeros 60 minutos del examen.

Observación: el formato está ajustado para impresión óptima en DIN A4 con un total de 4 páginas

1ª PARTE: TEORÍA Y PRÁCTICAS (3 puntos: 60 minutos)

Cuestión de Teoría Nº 1 1,0 punto (0,1 c/u). Tiempo recomendado: 20 minutos Para cada frase, elige una opción (separadas por el signo |) y escribe la respuesta más acertada:

a) La entropía de una clave de 128 bits será igual a: | 64 | 8 | 128 | 1024 | | R: 128

b) La cifra tipo Vigenère puede atacarse con cierta facilidad usando técnicas de: | fuerza bruta |

Kasiski | índice de coincidencia | criptoanálisis diferencial | | R: Kasiski

c) La seguridad verdadera del doble DES sería equivalente a un cifrado con: | clave de 64 bits |

clave de 56 bits | clave de 112 bits | clave de 57 bits | | R: 57 bits

d) El AES es un algoritmo de cifra: | asimétrica | simétrica tipo Feistel | simétrica no tipo Feistel |

simétrica con clave de 64 bits | | R: simétrica no tipo Feistel

e) El DES Challenge III rompió la clave tras un ataque: | distribuido en red | por frecuencias |

criptoanálisis diferencial | texto en claro conocido | | R: distribuido en red

f) Una clave real RSA de 1024 bits en un certificado digital X.509 tiene una clave pública igual a: |

17 bits | 128 bits | 1024 bits | 2048 bits | | R: 17 bits

g) La firma DSS usa dos primos: | y calcula su producto | de 1024 y 160 bits | de 1024 bits cada

uno | más de 1000 bits y tamaños similares | | R: de 1024 y 160 bits

h) La relación bloque de texto / tamaño del hash en SHA-1 será: | 512/128 bits | 512/148 bits |

512/160 bits | 1024/160 bits | | R: 512/160

i) Si ciframos un documento con PGP modo SDA: | la firma se incluye por defecto | se cifra con

armadura | el criptograma será más largo pero más seguro | el criptograma se guarda en un

archivo ejecutable | | R: el criptograma se guarda en un archivo ejecutable j) Exportamos nuestro par de claves PGP a un archivo y luego borramos la clave del anillo. Para

importar nuestra clave: | nos pide la contraseña | no nos pide nada | debemos antes firmarla |

debemos crear un nuevo par de claves | | R: nos pide la contraseña

Cuestión de Teoría Nº 2 1,0 punto (0,25 c/u). Tiempo recomendado: 20 minutos Confirma o rebate (Verdadero o Falso) estas afirmaciones, justificando en cada caso tu respuesta: a) Criptoanalizar la clave de IDEA por fuerza bruta requiere recorrer todo el espacio de claves.

FALSO. Dado que IDEA usa una clave de 128 bits, el espacio de claves será igual a 2128

. No obstante, no se deberá recorrer exactamente todo ese espacio de claves. Por ejemplo, si recorriendo sólo el 50% del espacio de claves rompemos la cifra, se habrá utilizado sólo 2

127 valores de claves posibles. En el mejor

de los casos podríamos romper la clave en un único intento y en el peor de los casos en 2128

– 1 intentos.

b) La seguridad del intercambio de clave de DH se basa en el problema de la factorización entera.

FALSO. El algoritmo de Diifie y Hellman basa su seguridad en el problema del logaritmo discreto y consiste en que resulta computacionalmente difícil encontrar el exponente de una expresión A

B mod C

conocidos A, C y el resultado de la expresión cuando se trabaja en un cuerpo C grande. Presenta la misma dificultad computacional que el problema de la factorización entera en el que se basa RSA .

c) El ataque a RSA basado en la paradoja del cumpleaños siempre desvela la clave privada.

FALSO: El ataque basado en la paradoja del cumpleaños es no determinista y encuentra a veces la clave privada, otras veces una clave privada pareja y otras veces una clave que sólo descifra el valor M que nos hemos dado para realizar el ataque pero no otros. En este último caso, no es una solución genérica ni tampoco válida por lo que podría considerarse en términos informáticos como un falso positivo.

d) Todo cifrado con PGP produce un archivo o documento con armadura o codificación Base 64.

FALSO: Sólo se obtiene una salida cifrada con armadura o base 64 si se le especifica a PGP que el resultado de la cifra se represente en modo texto. Caso contrario, la salida es ASCII con 256 caracteres.

Page 132: Solución Exa Jun 95_002 (1)

SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2005

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 2

Cuestión de Práctica 1,0 punto (0,25 c/u). Tiempo recomendado: 20 minutos Responde estas cuestiones de las prácticas y justifica cada una de tus respuestas. a) ¿Por qué es interesante descifrar RSA mediante el Teorema del Resto Chino?

Descifrar una cifra de un tamaño típico de1024 bits con una clave privada, que también estará en ese orden de bits, es una tarea que requiere un único cálculo con muchas operaciones bit y esto resulta lento. No obstante, si usamos el Teorema del Resto Chino, al ser dueños de la clave haremos más cálculos pero dentro de los primos p y q, de 512 bits cada uno, y no en el módulo n de 1024 bits, lo que disminuye el número de operaciones bit y aumenta la velocidad del proceso.

b) ¿Cómo podríamos revocar nuestra clave PGP si hemos olvidado la contraseña?

La única solución es que antes de esta situación hubiésemos designado a alguien como único revocador de nuestra clave y él lo haga por nosotros. Si no tenemos esta figura de revocador, bien personal o bien una Autoridad de Certificación, no podremos revocar la clave.

c) Ciframos con PGP el mismo documento en dos momentos distintos. ¿Cómo son los criptogramas?

Dado que PGP usa en su formato de cifra y firma una estampación o sellado de tiempo, cada operación de cifra entregará un criptograma distinto aunque el documento y la clave sean la misma.

d) Generamos con OpenSSL una clave RSA de 1024 bits ¿Es esa clave óptima? ¿Por qué?

Por lo general, en el 90% de los casos casi siempre se obtiene una clave de las denominadas óptimas con números mínimos de claves privadas parejas (1) y valores de mensajes no cifrables (9). Sin embargo el programa no comprueba este hecho, por lo que podríamos encontrarnos con la generación de claves poco seguras que tengan un número muy elevado de claves privadas parejas y/o mensajes no cifrables.

2ª PARTE: EJERCICIOS (7 puntos: 120 minutos)

Ejercicio Nº 1 2,0 puntos (1,0 c/u). Tiempo recomendado: 30 minutos La salida de las cajas S (SCS) de la primera vuelta del DES es SCS = AF32 7B13 Se pide: a) Calcula la entrada (en binario) a cada una de las 8 cajas S a partir de esa salida, suponiendo que

ha coincidido en este caso que en cada caja se ha activado siempre la fila 0. b) En una sola vuelta, ¿cuántas combinaciones de entrada (sólo el número) darían esta salida?

SOLUCIÓN: Apartado a) SCS = AF32 7B13 = 1010 1111 0011 0010 0111 1011 0001 0011

Salida caja S1 = A = 10102 = 10 Fila 0; Columna 9 Entrada caja S1 = 0 1001 0

Salida caja S2 = F = 11112 = 15 Fila 0; Columna 0 Entrada caja S2 = 0 0000 0

Salida caja S3 = 3 = 00112 = 3 Fila 0; Columna 5 Entrada caja S3 = 0 0101 0

Salida caja S4 = 2 = 00102 = 2 Fila 0; Columna 9 Entrada caja S4 = 0 1001 0

Salida caja S5 = 7 = 01112 = 7 Fila 0; Columna 4 Entrada caja S5 = 0 0100 0

Salida caja S6 = B = 10112 = 11 Fila 0; Columna 15 Entrada caja S6 = 0 1111 0

Salida caja S7 = 1 = 00012 = 1 Fila 0; Columna 15 Entrada caja S7 = 0 1111 0

Salida caja S8 = 3 = 00112 = 3 Fila 0; Columna 10 Entrada caja S8 = 0 1010 0 Apartado b) Como hay cuatro entradas posibles para cada salida de las cajas S -una para cada fila- existirán 4

8

posibles combinaciones, es decir 65.536 en cada vuelta. FUERA DEL EXAMEN (no se considera ni se evalúa): Las cuatro combinaciones de cada caja Si que entregarían el valor indicado de AF32 7B13 serán las siguientes (F = fila; C = columna):

Caja S1 = A = 10102 = 10 (F0, C9); (F1, C8); (F2, C13); (F3, C12)

Caja S2 = F = 11112 = 15 (F0, C0); (F1, C4); (F2, C15); (F3, C5)

Caja S3 = 3 = 00112 = 3 (F0, C5); (F1, C4); (F2, C6); (F3, C11)

Caja S4 = 2 = 00102 = 2 (F0, C9); (F1, C10); (F2, C13); (F3, C14)

Caja S5 = 7 = 01112 = 7 (F0, C4); (F1, C5); (F2, C6); (F3, C3)

Caja S6 = B = 10112 = 11 (F0, C15); (F1, C13); (F2, C14); (F3, C8)

Caja S7 = 1 = 00012 = 1 (F0, C15); (F1, C6); (F2, C0); (F3, C4)

Caja S8 = 3 = 00112 = 3 (F0, C10); (F1, C5); (F2, C13); (F3, C12)

Page 133: Solución Exa Jun 95_002 (1)

SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2005

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 3

Ejercicio Nº 2 2,5 puntos (0,5 c/u). Tiempo recomendado: 45 minutos Para generar una clave en un cifrado en flujo, vamos a usar dos LFSR primitivos de 2 y 3 celdas,

caracterizados por los polinomios p1 = x2 + x + 1 (con semilla 11) y p2 = x

3 + x + 1 (con semilla 101).

La salida de estos LFRS se conecta a una puerta XOR que entrega la secuencia cifrante S. a) Encuentra las secuencias de S1 y S2. b) ¿Cuál es el período de S1 y S2? ¿Cuál será el periodo de S? c) Encuentra la secuencia de clave S. d) Con esa secuencia S cifra el mensaje M = OK. e) ¿Cumple la cifra anterior la condición estipulada por Vernam para estos cifradores? ¿Por qué?

SOLUCIÓN: Apartado a) Generador S1 con polinomio p1 = x

2 + x + 1 (semilla 11):

Semilla 11 1

01 1

10 0

11 semilla ... luego S1 = 110. Generador S2 con polinomio p1 = x

3 + x + 1 (semilla 101):

Semilla 101 1

010 0

001 1

100 0

110 0

111 1

011 1

101 semilla ... luego S1 = 1010011. Apartado b) El período de S1 es igual a 3, el período de S2 es igual a 7 y el período de S será el mcm (S1, S2) es decir mcm (3, 7) = 21. Apartado c) Como el período de S1 = 110 es el más pequeño (3) haremos la suma xor de tres en tres de S1 con la secuencia S2 = 1010011 hasta que se repitan los operandos y por tanto la secuencia de salida:

110 101 = 011

110 001 = 111

110 110 = 000

110 100 = 010

110 111 = 001

110 010 = 100

110 011 = 101

110 101 = se repiten los operandos. Luego S = 011 111 000 010 001 100 101 (período 21) Apartado d) M = OK = 0100 1111 0100 1011

C = M S M 0 1 0 0 1 1 1 1 0 1 0 0 1 0 1 1

S 0 1 1 1 1 1 0 0 0 0 1 0 0 0 1 1 C = 0 0 1 1 0 0 1 1 0 1 1 0 1 0 0 0 Apartado e) Se puede cifrar el mensaje M de 16 bits pues la clave S de 21 bits es mayor que el mensaje, una condición que debería cumplirse para que este cifrado verificase el diseño de Vernam. Si ciframos un texto mayor, ya no debería usarse esta clave en tanto sería de longitud menor que el mensaje y por tanto estaríamos ante un cifrado con clave periódica, algo no recomendable en estos sistemas.

Ejercicio Nº 3 2,5 puntos (0,5 c/u). Tiempo recomendado: 45 minutos

Page 134: Solución Exa Jun 95_002 (1)

SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2005

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 4

Bartolo (B) ha creado un programa similar a PGP que permite generar claves de cualquier tipo y

tamaño así como operaciones típicas de PGP y que comparte con Amparo (A). Amparo tiene una clave RSA con las siguientes características: p = 17; q = 5 (clave pública e = 3). Bartolo recibe la clave de Amparo y va a firmarla con el algoritmo DSS y los siguientes valores de

firma: p = 31; q = 5; = 16; k = 3 (clave privada b = 2). a) Encuentra la clave pública de la firma de Bartolo y la clave privada de Amparo, usando en este

último caso el algoritmo extendido de Euclides. b) Muestra ecuaciones y valores de la firma de Bartolo sobre la clave pública (e = 3) de Amparo. c) Muestra ecuaciones y valores de la comprobación de esta firma por parte de Amparo.

d) Comprueba que Bartolo ha elegido g = 3 para encontrar la raíz de orden q en el primo p para la firma DSS.

e) ¿Es el valor anterior una raíz primitiva del primo p = 31?

SOLUCIÓN: Apartado a)

La clave pública de la firma de Bartolo será y = b mod p = 16

2 mod 31 = 8.

Como n = p x q = 17 x 5 = 85; (n) = (p-1)(q-1) = 16 x 4 = 64

d A = inv [e A, (nA)] = inv (3, 64) i yi gi ui vi 0 -- 64 1 0 1 -- 3 0 1 2 21 1 1 -21 3 3 0 La clave privada de A será d A = = -21 + 64 = 43. Apartado b) Valor a firmar M = 3.

r = (k mod p) mod q = (16

3 mod 31) mod 5 = 4 mod 5 = 4

inv (k, q) = inv (3, 5) = 2 s = [(M + br) inv (k, q)] mod q = [(3 + 2x4) 2] mod 5 = 22 mod 5 = 2 (r, s) = (4, 2) Apartado c) w = inv (s, q) = inv (2, 5) = 3 u = M w mod q = 3 x 3 mod 5 = 9 mod 5 = 4 v = r w mod q = 4 x 3 mod 5 = 12 mod 5 = 2

Amparo comprueba si (u y

v mod p) mod q es igual a r

El valor y es la clave pública de Bartolo ya calculada, 8

(u y

v mod p) mod q = (16

4 8

2 mod 31) mod 5 = (2 2) mod 5 = 4 = r (se comprueba la firma)

Apartado d)

Usa g = 3 porque se cumple que g(p-1)/q

mod p 1

3(31-1)/5

mod 31 = 36 mod 31 = 16 y es distinto de la unidad por lo que = 16, será el generador de

orden q (5) en el primo p (31). Apartado e) No obstante, el valor 16 no es una raíz primitiva del primo 31 puesto que hacemos el siguiente cálculo usando las ecuaciones de comprobación de raíces primitivas de los apuntes: Sabemos que p - 1 = 31 - 1 = 30 = 2 x 3 x 5 16

30/2 mod 31 = 16

15 mod 31 = 1; 16

30/3 mod 31 = 16

10 mod 31 = 1; 16

30/5 mod 31 = 16

6 mod 31 = 16.

Como hay al menos un resultado igual a la unidad, 16 no es una raíz primitiva de p = 31.

Page 135: Solución Exa Jun 95_002 (1)

SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre de 2005

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 1

SEGURIDAD INFORMÁTICA Jueves 22 de septiembre de 2005

En esta primera parte del examen (Teoría y Prácticas) que se entrega en una hoja aparte y se recogerá transcurridos 60 minutos del

comienzo del examen, No está permitido el uso de apuntes ni libros. En la segunda parte (Ejercicios) con una duración de 120

minutos, Sí podrás utilizar libros de la asignatura, apuntes y calculadora. La duración del examen es de 3 horas.

Nota: Si lo deseas o bien si has terminado antes de los 60 minutos esta primera parte, puede comenzar la segunda. Recuerda no

obstante que sólo podrás usar apuntes, libros y una calculadora transcurridos los primeros 60 minutos del examen.

Observación: el formato está ajustado para impresión óptima en DIN A4 con un total de 5 páginas

1ª PARTE: TEORÍA Y PRÁCTICAS (3 puntos: 60 minutos)

Cuestión de Teoría Nº 1 1,0 punto (0,1 c/u). Tiempo recomendado: 30 minutos Para cada frase, elige una opción (separadas por el signo |) y escribe la respuesta más acertada:

a) La segunda condición de Golomb (distribución de rachas) significa que: | la secuencia S pasa por

todos sus restos posibles | S es una secuencia binaria | la secuencia S no es predecible | la

secuencia S tiene período impar | R: la secuencia S pasa por todos sus restos posibles

b) Si usando PGP el criptograma se guarda en un archivo ejecutable: | hemos usado cifra local |

hemos incluido armadura a la cifra | hemos cifrado con la clave privada | hemos cifrado en modo

SDA | R: hemos cifrado en modo SDA

c) Si H(K) = 256, el número de bits de esa clave binaria K será: | 128 | 256 | 8 | 64 | R: 256

d) Triple DES tipo EDE significa: | compatibilidad con DES | cifrar tres veces con igual clave | usar

claves de 128 bits | cifrar-descifrar-cifrar con 3 claves distintas | R: compatibilidad con DES

e) A5 es un algoritmo: | asimétrico | de mochilas | simétrico Feistel | de flujo | R: de flujo f) La relación en bits (clave pública / clave privada) de una clave RSA típica en un certificado digital

X.509 es: | 17/1024 | 16/1024 | 1024/1024 | 1024/2048 | R: 17/1024

g) Para fortalecer una firma tipo ElGamal debemos: | elegir p como primo | elegir p como un primo

relativo | elegir como generador | codificar en base64 | R: elegir como generador

h) Para firmar un documento con PGP: | nos pide siempre la contraseña | nos pide la contraseña si

no está activado ya el SSO | nos pide la contraseña dos veces | nos pide la contraseña si el

documento no va cifrado | R: nos pide la contraseña si no está activado ya el SSO

i) El algoritmo que reemplaza a DES es: | RC5 | RC4 | RIJNDAEL | IDEA | R: RIJNDAEL

j) Para la cifra de tipo Vernam se usan funciones: | de un solo sentido | no lineales | basadas en

cajas S | lógicas de puertas XOR | R: lógicas de puertas XOR

Cuestión de Teoría Nº 2 1,0 punto (0,25 c/u). Tiempo recomendado: 15 minutos Pon Verdadero o Falso en estas afirmaciones, justificando en cada caso tu respuesta: a) La entropía de la clave en cifrador Hill con matrices será siempre menor que la del DES o Triple DES.

FALSO. Si bien la seguridad del cifrador de matrices de Hill es muy baja dada su vulnerabilidad ante el ataque con texto en claro conocido mediante técnica de Guass-Jordan, este sistema puede alcanzar una entropía de la clave superior a la del DES usando bloques de tan sólo 8 caracteres. Si el bloque de cifra es mayor y se usa un alfabeto amplio cercano al tamaño del código ASCII la entropía de la clave puede superar a Triple DES, si bien el sistema es muy débil y su seguridad no tiene comparación con éste.

b) La seguridad de una firma DSS se basa en el problema del logaritmo discreto.

VERDADERO. La firma DSS, Digital Signature Standard, es una variante del sistema de firma de ElGamal que usa dos primos de tamaños diferentes, y que está basado en el problema del logaritmo discreto. Por lo tanto, su seguridad está relacionada con la dificultad computacional de tratar y resolver el problema del logaritmo discreto cuando el primo del cuerpo de trabajo es un valor grande.

c) El ataque cíclico a RSA permite desvelar la clave privada.

FALSO. El ataque por cifrado cíclico, basado en la cifra repetitiva del criptograma con la clave pública del atacado, en caso de prosperar revela el mensaje en claro pero no la clave privada. Rompe, por tanto, la confidencialidad del mensaje.

d) En el protocolo del póquer mental con RSA se mantienen ambas claves de los usuarios en secreto.

Page 136: Solución Exa Jun 95_002 (1)

SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre de 2005

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 2

VERDADERO. En el juego de póquer mental con RSA, las claves pública e y privada d de todos los jugadores deben mantenerse en secreto. Ello les permitirá realizar el reparto de cartas de forma secreta mediante un protocolo en que las cartas de una mano las elige a ciegas otro jugador mediante una cifra.

Cuestión de Práctica 1,0 punto (0,25 c/u). Tiempo recomendado: 15 minutos Responde estas cuestiones de las prácticas y justifica cada una de tus respuestas. a) ¿Qué condiciones debe cumplirse para atacar una mochila mediante método de Shamir y Zippel?

El ataque del método Shamir y Zippel podría prosperar si se cumplen algunas condiciones: a) que se conozca el valor del módulo de trabajo; b) que los dos primeros elementos de la mochila pública se correspondan a los dos primeros elementos de la mochila simple o privada; c) que el primer y el segundo elementos de la mochila pública sean primos relativos con el módulo de trabajo.

b) Creamos una clave RSA con OpenSSL, ¿qué valor de clave pública nos da por defecto?

Si es una clave típica a fecha de hoy (año 2005) la clave pública por defecto es el número 010001 en hexadecimal, es decir el valor 65.537 en decimal; un número primo de 17 bits (1 000000000 00000001. Los primos p y q son valores de 512 bits por lo que el módulo de trabajo será de 1.024 bits y la clave privada d será un valor muy cercano a este último,es decir del orden de 1.024 bits.

c) Creamos una clave pública por defecto (todo aceptar) con PGP 8.0, ¿qué tipo de clave nos genera?

PGP nos crea una clave de tipo DH/DDS, Diffie y Hellman con firma Digital Signature Estándar, con 2.048/1.204 bits y sin caducidad. Los 2.048 bits son para intercambio de clave DH y los 1.024 para la firma digital DSS.

d) Obtenemos el hash MD5 del mensaje 1234. ¿Qué valor aparece al final del bloque de 512 bits?

Como el mensaje tiene sólo 4 bytes (32 bits) en los 512 bits de texto de ese único bloque las dos últimas palabras de 32 bits (64 bits) nos indicarán el tamaño del archivo. En este caso 32 en decimal o bien el valor 20 en hexadecimal.

2ª PARTE: EJERCICIOS (7 puntos: 120 minutos)

Ejercicio Nº 1 2,0 puntos (1,0 c/u). Tiempo recomendado: 30 minutos Se tiene: Criptograma: C = 116, 136, 107, 80, 174, 56, 136, 150.

Mochila difícil S = {27, 36, 72, 20, 58, 80}, módulo M = 160, w = 9 Se pide: a) Encuentra la mochila fácil. Deberás usar el Algoritmo Extendido de Euclides para los inversos. b) Descifra ese criptograma si el texto en claro corresponde a ASCII. Ayuda: 1.780 mod 160 = 20; 4.984 mod 160 = 24; 5.162 mod 160 = 42; 7.120 mod 160 = 80; 9.523 mod 160 = 83; 10.324

mod 160 = 84; 12.104 mod 160 = 104; 13.350 mod 160 = 70; 15.486 mod 160 = 126.

SOLUCIÓN: Apartado a) S = {27, 36, 72, 20, 58, 80}, módulo M = 160, w = 9 La mochila fácil será S’ = S x w

-1 = S x inv (w, M) = S x inv (9, 160)

inv [w, M] = inv (9, 160) = - 71 + 160 = 89 i yi gi ui vi 0 -- 160 1 0 1 -- 9 0 1 2 17 7 1 -17 3 1 2 -1 18 4 3 1 4 -71 S’1 = S1 x w

-1 mod 160 = 27x89 mod 160 = 2.403 mod 160 = 3

S’2 = S2 x w-1 mod 160 = 36x89 mod 160 = 3.204 mod 160 = 4

S’3 = S3 x w-1 mod 160 = 72x89 mod 160 = 6.408 mod 160 = 8

S’4 = S4 x w-1 mod 160 = 20x89 mod 160 = 1.780 mod 160 = 20 (valor dado en el examen)

S’5 = S5 x w-1 mod 160 = 58x89 mod 160 = 5.162 mod 160 = 42 (valor dado en el examen)

S’6 = S6 x w-1 mod 160 = 80x89 mod 160 = 7.120 mod 160 = 80 (valor dado en el examen)

S’ = {3, 4, 8, 20, 42, 80} Que es una mochila simple o supercreciente. Apartado b)

Page 137: Solución Exa Jun 95_002 (1)

SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre de 2005

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 3

Criptograma: C = 116, 136, 107, 80, 174, 56, 136, 150 Mi = Ci x w

-1 mod M

C1 = 116 M1 = 116 x 89 mod 160 = 10.324 mod 160 M1 = 84 (valor dado en el examen)

C2 = 136 M2 = 136 x 89 mod 160 = 12.104 mod 160 M2 = 104 (valor dado en el examen)

C3 = 107 M3 = 107 x 89 mod 160 = 9.523 mod 160 M3 = 83 (valor dado en el examen)

C4 = 80 M4 = 80 x 89 mod 160 = 7.120 mod 160 M4 = 80 (valor dado en el examen)

C5 = 174 M5 = 174 x 89 mod 160 = 15.486 mod 160 M5 = 126 (valor dado en el examen)

C6 = 56 M6 = 56 x 89 mod 160 = 4.984 mod 160 M6 = 24 (valor dado en el examen)

C7 = 136 M7 = 136 x 89 mod 160 = 12.104 mod 160 M7 = 104 (valor dado en el examen)

C8 = 150 M8 = 150 x 89 mod 160 = 13.350 mod 160 M8 = 70 (valor dado en el examen) Pasando los valores encontrados M1, M2, M3,M4, M5, M6 por la mochila fácil S’ = {3, 4, 8, 20, 42, 80} se obtienen los siguientes vectores: 010001 010101 100001 000001 010011 010100 010101 001110 Agrupando en bloques de ocho bits (bytes) se tiene: 01000101 01011000 01000001 01001101 01000101 01001110 E X A M E N (Código ASCII)

Ejercicio Nº 2 2,5 puntos (0,5 c/u). Tiempo recomendado: 45 minutos Creamos una función hash que agrupa bloques de 6 bytes, los pasa por las cajas S del DES y a esa salida le aplica un XOR con el vector inicial ABCD de valor hexadecimal FFFF0000. El mensaje en ASCII es M = AMIGOS. Se pide: a) Encuentra la función hash h(M). b) Sólo indica –sin calcularlo- qué habría que hacer para obtener h(M) si ahora M = COLEGAS. c) ¿Cuál sería el vector ABCD de la segunda vuelta si el mensaje M tuviese más de 6 bytes? d) Si el vector ABCD fuese otro, por ejemplo D5F95AB3, ¿sería más seguro el hash? e) Aceptando que el valor de bloque a tratar es bajo, ¿sería adecuada y segura esta función?

SOLUCIÓN: Apartado a) AMIGOS = 01000001 01001101 01001001 01000111 01001111 01010011 Estos 48 bits entrarán en bloques de 6 bits a las 8 cajas S del DES agrupados así: Entrada cajas S1-S8: 010000 010100 110101 001001 010001 110100 111101 010011

Entrada caja S1 = 0 1000 0 Fila 0; Columna 8 Salida caja S1 = 3 = 0011

Entrada caja S2 = 0 1010 0 Fila 0; Columna 10 Salida caja S2 = 2 = 0010

Entrada caja S3 = 1 1010 1 Fila 3; Columna 10 Salida caja S3 = 14 = 1110

Entrada caja S4 = 0 0100 1 Fila 1; Columna 4 Salida caja S4 = 6 = 0110

Entrada caja S5 = 0 1000 1 Fila 1; Columna 8 Salida caja S5 = 5 = 0101

Entrada caja S6 = 1 1010 0 Fila 2; Columna 10 Salida caja S6 = 4 = 0100

Entrada caja S7 = 1 1110 1 Fila 3; Columna 14 Salida caja S7 = 3 = 0011

Entrada caja S8 = 0 1001 1 Fila 1; Columna 9 Salida caja S8 = 5 = 0101 Haciendo el XOR con el vector ABCD se obtiene: Cajas S 0011 0010 1110 0110 0101 0100 0011 0101 ABCD 1111 1111 1111 1111 0000 0000 0000 0000 Resumen 1100 1101 0001 1001 0101 0100 0011 0101 h(M) C D 1 9 5 4 3 5 Apartado b) Como el mensaje COLEGAS tiene 7 bytes, habrá que usar dos bloques para calcular el hash, un primer bloque con los caracteres COLEGA y un segundo bloque con los caracteres S###### en donde # significa un relleno de 8 ceros. Apartado c) El vector ABCD de la segunda vuelta será precisamente la salida o hash encontrado en el apartado primero,. es decir, ABCD = 11001101 00011001 01010100 00110101 Apartado d)

Page 138: Solución Exa Jun 95_002 (1)

SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre de 2005

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 4

No sería más seguro porque la seguridad de las funciones hash, y de esta función hash en particular, deberá residir en la no linealidad de las operaciones que se realizan (en este caso en las cajas S) y no en la aleatoriedad del valor del vector inicial. Apartado e) En principio sí; porque está basada en una función no lineal (cajas S) al igual que las operaciones que usan por ejemplo MD5 y SHA-1. No obstante, tiene en su contra que las operaciones son pocas y muy sencillas y no hay tanta mezcla de bits como en estas funciones por lo que cabría esperar que su efecto de avalancha (cambio de un bit en la entrada significa un cambio de más de la mitad de los bits de salida) no fuera tan significativo como en estas últimas. Resulta entonces un algoritmo muy elemental y además propenso a demasiadas colisiones por su pequeño resumen.

Ejercicio Nº 3 2,5 puntos (0,5 c/u). Tiempo recomendado: 45 minutos Claves RSA del sistema:

Amparo (A) = nA = 187; eA = 3; Bartolo (B) son: nB = 91; eB = 11. Deberás usar el algoritmo extendido de Euclides y el algoritmo de exponenciación rápida. Se pide: a) Encuentra la clave privada de Amparo dA. b) Encuentra la clave privada Bartolo dB.

c) Amparo envía confidencialmente el valor 41 a Bartolo. Calcula el criptograma recibido por B.

d) Bartolo envía la firma de un hash 77 a Amparo. ¿Qué criptograma recibe A. ¿Qué sucede?

e) Encuentra sólo la cantidad de claves privadas parejas de A y B no sus valores.

SOLUCIÓN: Apartado a) Como nA = 187 = p x q, entonces es fácil ver que p = 11 y q = 17.

Luego (nA) = (p-1)(q-1) = 10 x 16 = 160. La clave privada de Amparo será:

dA = inv [eA, (nA)] = inv (3, 160) = -53 + 160 = 107 i yi gi ui vi 0 -- 160 1 0 1 -- 3 0 1 2 53 1 1 -53 3 3 0 La clave privada de A será dA = 107. Apartado b) Como nB = 91 = p x q, entonces es fácil ver que p = 7 y q = 13.

Luego (nB) = (p-1)(q-1) = 6 x 12 = 72. La clave privada de Bartolo será:

DB = inv [eB, (nB)] = inv (11, 72) = -13 + 72 = 59 i yi gi ui vi 0 -- 72 1 0 1 -- 11 0 1 2 6 6 1 -6 3 1 5 -1 7 4 1 1 2 -13 La clave privada de B será dB = 59. Apartado c) Cifra: C = 41

11 mod 91. El exponente 11 en binario es 1011 = b3b2b1b0

x = 1

i = 3 b3 = 1 x = x2

41 mod 91 = 12

41 mod 91 = 41 x = 41 i = 2 b2 = 0 x = x

2 mod 91 = 41

2 mod 91 = 43 x = 43

i = 1 b1 = 1 x = x2 mod 91 = 43

2 41 mod 91 = 6 x = 6

i = 0 b0 = 1 x = x2

41 mod 91 = 62

41 mod 91 = 20 x = 20 Luego 41

11 mod 91 = 20

Apartado d) La firma será 77

59 mod 91. El exponente 59 en binario es 111011 = b5b4b3b2b1b0

x = 1

i = 5 b5 = 1 x = x2

77 mod 91 = 12

77 mod 91 = 77 x = 77

i = 4 b4 = 1 x = x2

77 mod 91 = 772

77 mod 91 = 77 x = 77

Page 139: Solución Exa Jun 95_002 (1)

SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre de 2005

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 5

i = 3 b3 = 1 x = x2

77 mod 91 = 772

77 mod 91 = 77 x = 77 i = 2 b2 = 0 x = x

2 mod 91 = 77

2 mod 91 = 14 x = 14

i = 1 b1 = 1 x = x2 mod 91 = 14

2 77 mod 91 = 77 x = 77

i = 0 b0 = 1 x = x2

77 mod 91 = 772

77 mod 91 = 77 x = 77 Luego 77

59 mod 91 = 77.

La firma va en claro porque 77 es uno de los valores no cifrables ese cuerpo. Apartado e)

A = mcm [(p-1), (q-1)] = mcm [(11-1), (17-1)] = mcm (10, 16) = 80

d A = inv (eA, A) = inv (3, 80) = 27

A = (nA - d A) / A = (187 - 27) / 80 = 160 / 80 = 2 (Número de claves parejas de Amparo)

B = mcm [(p-1), (q-1)] = mcm [(7-1), (13-1)] = mcm (6, 12) = 12

d B = inv (eB, B) = inv (11, 12) = 11

B = (nB - d B) / B = (91 - 11) / 12 = 80 / 12 = 6 (Número de claves parejas de Bartolo) =========================== Fuera de la evaluación del examen: De hecho las claves privadas parejas y los valores no cifrables serán: Amparo: 2 claves privadas parejas: {27, 187} 9 valores no cifrables: {0, 1, 33, 34, 67, 120, 153, 154, 186} Bartolo: 6 claves privadas parejas: {11, 23, 35, 47, 71, 83} 9 valores no cifrables: {0, 1, 13, 14, 27, 64, 77, 78, 90}

Puede comprobar estos valores y los del problema de la mochila usando el software de prácticas de la asignatura que encontrará en la página web de la misma: mochilas, genRSA, ExpoCrip.

Page 140: Solución Exa Jun 95_002 (1)

SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2006

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 1

SEGURIDAD INFORMÁTICA Jueves 14 de junio de 2006

En esta primera parte del examen (Teoría y Prácticas) que se entrega en una hoja aparte y se recogerá transcurridos 60 minutos

del comienzo del examen, NO está permitido el uso de apuntes ni libros. En la segunda parte (Ejercicios) con una duración de 120

minutos, SÍ podrás utilizar libros de la asignatura, apuntes y calculadora. La duración máxima del examen es de 3 horas.

Nota: Si lo deseas o bien si has terminado antes de los 60 minutos esta primera parte, puede comenzar la segunda. Recuerda no

obstante que sólo podrás usar apuntes, libros y una calculadora transcurridos los primeros 60 minutos del examen.

1ª PARTE: TEORÍA Y PRÁCTICAS (3 puntos: 60 minutos)

Cuestión de Teoría Nº 1 1,0 punto (0,1 c/u). Tiempo recomendado: 30 minutos Para cada frase, elige una opción (separadas por el signo |) y escribe la respuesta más acertada:

a) Un tipo de ataque en red puede ser | openssl | winmax | phising | PKCS | | phising | b) Si la ratio de un lenguaje con 27 caracteres es 4,75 y la ratio verdadera es 1,5 entonces se

podría codificar todos los mensajes usando códigos de : | 8 bits | 4 bits | 2 bits | 5 bits | | 5 bits |

c) Si las cifras Ek1(M2) = C1 y Ek3(M5) = C1 se dice que el criptograma C1 será: | una solución falsa |

una solución verdadera | una solución extraña | una solución débil | | una solución falsa | d) A medida que los números son más grandes, la probabilidad de encontrar números primos en

ese intervalo será: | menor | constante | mayor | aleatoria | | menor |

e) Relación % raíces primitivas (primo / primo seguro): | 50/50 | 30/50 | 30/75l | 50/30 | | 30/50 |

f) El código Atbash que aparece en el libro El Código Da Vinci cifra la letra A como z, la letra B

como y, la letra C como x, … la letra Y como b, la letra Z como a. Luego, se trata de un cifrador:

| por permutación | por transposición | del César | por sustitución | | por sustitución | g) La relación (clave de sesión / clave asimétrica) de un certificado X.509 en bits en una conexión

típica actual SSL es: | 128/512 | 64/1024 | 1024/128 | 128/1024 | | 128/1024 | h) Un ataque mediante el método de Berlekamp-Massey a la clave de un cifrado en flujo obtenida

con un generador primitivo de n etapas requiere: | n bits | n/2 bits | 2n bits | 2n bits | | 2n bits |

i) El TripleDES EDE Encrypt-Decrypt-Encrypt usa: | dos claves de 64 bits | una clave de 64 bits |

tres claves de 64 bits | una clave de 128 bits | | dos claves de 64 bits |

j) Si un ataque a RSA basado en la paradoja de cumpleaños prospera, el atacante obtendrá: | la

clave privada | el mensaje en claro | una clave privada pareja | la clave privada o una clave

privada pareja | | la clave privada o una clave privada pareja |

Cuestión de Teoría Nº 2 1,0 punto (0,25 c/u). Tiempo recomendado: 15 minutos Indica Verdadero o Falso en estas afirmaciones, justificando siempre y en cada caso tu respuesta. a) La clave pública de RSA es el valor 65.537 porque, entre otras cosas, acelera la operación de cifra.

VERDADERO: Ese número (conocido como nº 4 de Fermat) es 216

+ 1 = 100000000000000012, por lo que la operación de cifra o exponenciación a esa clave pública del destinatario (caso de intercambio de clave) es muy rápida al afectar en la multiplicación sólo los dos dígitos iguales a 1. Además ese número, siendo bajo, es lo suficientemente alto para como evitar otros tipos de ataques basados en claves públicas muy pequeñas.

b) Si la clave pública e RSA es pequeña y el módulo n muy grande, la clave privada d será muy grande.

VERDADERO: Por el concepto de inverso entre la clave pública e y la clave privada d en (n), se cumple

que e d mod (n) = 1 y como (n) = (p-1)(q-1) tiene la misma cantidad de bits que el cuerpo de cifra n (típico 1024) entonces se fuerza a que la clave privada d sea un valor muy alto, en torno a los n bits, para que se cumpla esa igualdad.

c) Sin conocer la clave privada, es imposible descifrar o atacar el criptograma y obtener el texto en claro.

FALSO: En un sistema como RSA, el ataque por cifrado cíclico, en el que se cifra el criptograma con la clave pública del destinatario y los subsiguientes criptogramas con la misma clave pública de forma iterativa hasta que se encuentre nuevamente el criptograma original, en caso de prosperar entrega en el penúltimo paso el mensaje o número cifrado en claro. También es posible romper la cifra descifrando el

Page 141: Solución Exa Jun 95_002 (1)

SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2006

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 2

criptograma con una de las claves privadas parejas (al menos hay una) que se obtienen si prospera un ataque basado en la paradoja del cumpleaños.

d) Si sus dos hash coinciden, entonces los archivos a los que se les ha aplicado ese hash son iguales.

FALSO: Pueden darse colisiones de forma que aunque los archivos sean distintos sus hahs son iguales. En sentido contrario sí es verdad: dos mensajes iguales generarán hash iguales.

Cuestión de Práctica 1,0 punto (0,25 c/u). Tiempo recomendado: 15 minutos Responde estas cuestiones de las prácticas y justifica cada una de tus respuestas. a) Primalidad y factorización entera usados en RSA, ¿son problemas tipo NP exactamente iguales?

Ambos son problemas de tipo NP pero el de primalidad tiene un comportamiento que podríamos calificar como suave en el entorno típico de trabajo, en tanto la curva exponencial del tiempo en función del tamaño de entrada tiene una pendiente muy baja. Así, saber si un número de 1.000 bits es o no primo significa solo un par de segundos. En cambio la factorización entera es un problema mucho más difícil, en tanto la pendiente de esa curva exponencial (y por tanto el tiempo de cómputo) crece extremadamente rápido..

b) ¿Por qué se vuelve difícil encontrar los números no cifrables a medida que aumenta n en RSA?

Encontrar dichos números significa resolver una ecuación en la que hay que encontrar los números N que confirman que N

e mod p = N para N = 2,3,4... p-1 y N

e mod q = N para N = 2,3,4,… q-1.Si los valores de p

y q son altos (típico 512 bits) esta tarea se vuelve computacionalmente imposible al convertirse en un ataque por fuerza bruta.

c) Una clave RSA de 2.048 bits tiene 783 claves privadas parejas. ¿Podría tener una de ellas 200 bits?

No. En la ecuación del cálculo de las claves privadas di = d + i , siendo = mcm[(p-1)(q-1)] y d = inv (e, ).

Como será del orden de los n bits, entonces la primera clave privada pareja d0 será d = inv (e, ) y como

ya se ha comentado en una cuestión anterior, al ser e pequeño y un valor alto, esto forzará que d0 sea también alto y las demás claves privadas aún más.

d) ¿Qué hace el comando openssl genrsa –out MiClave 1024? ¿Cómo se puede conocer p y q?

Genera una clave RSA de 1024 bits a partir de dos primos p y q de 512 bits cada uno y la guarda en un archivo de nombre MiClave. Si el archivo MiClave se convierte con otro comando el mismo programa openssl en un archivo texto con valores en hexadecimal donde se puede ver los valores de p y q.

2ª PARTE: EJERCICIOS (7 puntos: 120 minutos)

Ejercicio Nº 1 2,0 puntos (0,5 c/u). Tiempo recomendado: 30 minutos En un intercambio de clave de Diffie y Hellman entre Adela (A) y Benito (B) se interpone Claudia (C)

en un ataque del tipo “woman in the middle”. Se usa p = 41 con un generador = 6. Los otros datos de cada usuario son:

Clave privada de A (a = 3); clave privada de B (b = 4); clave privada de C (c = 5). Se pide:

a) Comprobar que el valor elegido de es efectivamente un generador del primo p = 41.

b) Calcular los valores que intercepta Claudia de Adela y de Benito y el valor de clave sesión que

Claudia le envía a Adela y a Benito.

c) Calcular la clave falsa que comparte Claudia con Adela y la que comparte Claudia con Benito.

d) Comentar qué sucedería si A y B eligen = 5 en vez de = 6? Datos de interés: 5

5 mod 41 = 9; 6

5 mod 41 = 27 (Use la propiedad de reducibilidad).

SOLUCIÓN: Apartado a)

A a = 3; B b = 3; C c = 3, p = 41, = 6.

p-1 = 40 = 23 x 5 q1 = 2; q2 = 5.

p/q1 mod p = 6

40/2 mod 41 = 6

20 mod 41 = 40 (usando reducibilidad y ayuda entregada en examen)

p/q2 mod p = 6

40/5 mod 41 = 6

8 mod 41 = 10 (usando reducibilidad y ayuda entregada en examen)

Page 142: Solución Exa Jun 95_002 (1)

SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2006

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 3

Ambos son distintos de 1 por lo que 6 es efectivamente un generador del primo 41. Apartado b)

A B: a mod p = 6

3 mod 41 = 11 (Claudia captura el 11 enviado por Adela)

B A: b mod p = 6

4 mod 41 = 25 (Claudia captura el 25 enviado por Benito)

C A: c mod p = 6

5 mod 41 = 27; C B:

c mod p = 6

5 mod 41 = 27 (entregado en el examen)

Apartado c) Adela calcula 27

a mod p = 27

3 mod 41 = 3

Benito calcula 27b mod p = 27

4 mod 41 = 40

Claudia calcula 11c mod p = 11

5 mod 41 = 3 (clave que comparte con Adela)

25c mod p = 25

5 mod 41 = 40 (clave que comparte con Benito)

A partir de este momento toda la comunicación secreta tras este intercambio de clave entre Adela y Benito pasa antes por Claudia como texto en claro. Apartado d)

Si ahora = 5: p/q1

mod p = 540/2

mod 41 = 520

mod 41 = 1 (usando reducibilidad y ayuda entregada en examen) p/q2

mod p = 540/5

mod 41 = 58 mod 41 = 18 (usando reducibilidad y ayuda entregada en examen)

Como uno de los resultados es igual a la unidad, 5 no será un generador del primo 41. Esto significa que el protocolo de intercambio de clave sigue funcionando como tal pero es más inseguro

Ejercicio Nº 2 2,5 puntos (0,5 c/u). Tiempo recomendado: 45 minutos Una función hash MD5 usa DES al final de su cálculo sobre un mensaje M de forma que el hash calculado h(M) se divide en dos trozos de 64 bits cada uno que luego se cifran con DES en modo CBC, usando una clave K y un vector inicial IV, es decir C = EK[h(M)]. Las dos cifras se encadenan al final para formar una salida nuevamente de 128 bts.

El mensaje de 94 caracteres es M = VAMOS A PROBAR AHORA SI ESTE HASH ES ALGO

MEJOR AL HACER EN SU ULTIMO BLOQUE UNA CIFRA CON DES. El hash MD5 sobre M es

h(M) = D04EF9B3751020EBC3BB1B2283934306 (valor real) Se pide: a) Dibujar en bloques el sistema completo con todos sus datos. b) ¿Se hace o no relleno en el último bloque? En caso afirmativo, ¿de qué tamaño? c) ¿Cuál es el valor en decimal de las dos últimas palabras de 32 bits del último bloque de M? (*) d) Si los valores de las claves K e IV que usa el algoritmo DES han sido previamente enviados

mediante un protocolo de intercambio de clave entre el cliente y el servidor, ¿serviría este sistema para comprobar autenticación además de la integridad? ¿Por qué?

Teniendo en cuenta que se cifra el hash al final, ¿sería este hash más o menos seguro ante colisiones que el hash inicial h(M)? ¿Por qué?

SOLUCIÓN: Apartado a)

MD5 MD5

+

+

DES

DES

CONCATENAR ABCD A’B’C’D’

512 bits M1 512 bits M2

Bloque h(M)1

Bloque h(M)2

IV

IV K

K

128 bits Resumen Cifrado

64 bits

64 bits

h(M)

Page 143: Solución Exa Jun 95_002 (1)

SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2006

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 4

El mensaje tiene 94 bytes = 752 bits se tratarán dos bloques M1 y M2; h(M)1 = D04EF9B3751020EB,

h(M)2 = C3BB1B2283934306. ABCD es el vector característico en MD5 y A’B’C’D’ será el resultado

del hash del primer bloque de 512 bits. Las claves IV y K del algoritmo DES serán de 64 bits dando como resultado dos criptogramas de 64 bits que se concatenan al final para recuperar los 128 bits. Apartado b) El texto tiene 94x8 = 752 bits. Se tratan entonces dos bloques de 512 bits. Como siempre hay relleno, en el segundo bloque (M2) quedan 240 bits de texto en claro a lo que hay que añadir el relleno y los 64 bits finales (2 palabras de 32 bits) que indicarán el tamaño del archivo. Luego el relleno será igual a 512 - 240 - 64 = 208 bits, un uno seguido de 207 ceros Apartado c) Las dos últimas palabras de 32 bits indican la longitud del mensaje que en este caso será de 94 caracteres, es decir 752 bits. El valor decimal será 752. (*) NOTA: Se ha corregido el enunciado según lo indicado y comentado en el mismo examen. En el documento original ponía “¿… 32 bits del hash h(M)?” por lo que en la revisión se ha tenido en cuenta que las dos respuestas eran válidas. Apartado d) Sí porque en este caso la función hash daría integridad al mensaje (cualquier modificación al mensaje se vería reflejada en el hash) y la clave secreta del algoritmo simétrico permitirá la autenticación del usuario porque sólo cliente y servidor compartirán dicha clave mediante algún protocolo de intercambio de clave. Nota: guardando las distancias de este simple ejemplo, algo similar aunque mucho más complejo se usará en el sistema de autenticación conocido como HMAC en una conexión SSL. Apartado e) No es más seguro. Las colisiones podrían darse con igual probabilidad que si usamos el hash de 128 bits que nos entrega MD5. Esto porque la cifra con DES sólo añade una difusión de los bits de cada mitad del hash. Ante colisiones, se comportaría de igual manera pues su tamaño final no cambia y la distribución de bits sigue siendo aleatoria. Sólo será más difícil encontrar el mensaje original tras un ataque porque hay que resolver antes una cifra con DES.

Ejercicio Nº 3 2,5 puntos (0,5 c/u). Tiempo recomendado: 45 minutos

En un ejemplo de laboratorio, un cliente (C) y un servidor (S) que trabajan con RSA y un módulo de 9 bits, intercambiarán una clave de sesión KS siempre de 6 bits para una comunicación en la que se autentica sólo el servidor, similar a un protocolo SSL. Los datos de cada extremo son:

Cliente C: p = 13; q = 31; e = 13

Servidor S: p = 19; q = 23; e = 5 Nota: todos los cálculos de inversos deben hacerse obligatoriamente con el Algoritmo Extendido de Euclides. Se pide:

a) Encontrar la clave privada del cliente C y del servidor S.

b) Encontrar las claves privadas parejas del cliente C.

c) Encontrar las claves privadas parejas del servidor S.

d) Si la clave de sesión KS que la genera el cliente C y se la envia al servidor S es KS = 61, envíe la clave cifrada y luego descífrela en recepción. Es obligatorio aquí el uso de Algoritmo de Exponenciación Rápida.

e) Si se cambian los propietarios de las claves RSA del ejercicio, de forma que los valores de p, q y e del cliente pasan al servidor y los del servidor al cliente, ¿el intercambio de clave para este nuevo escenario sería mejor o peor que el anterior? Justifique su respuesta.

Datos de interés: Mínimo Común Múltiplo: mcm (12, 30) = 60 y mcm (18, 22) = 198. 61

2 mod 437 = 225; 225

2 mod 437 = 370.

31710 = 1001111012 43

2 mod 437 = 101; 101

2 mod 437 = 150; 118

2 mod 437 = 377; 153

2 mod 437 = 248;

2642 mod 437 = 213; 283

2 mod 437 = 118; 377

2 mod 437 = 104; 410

2 mod 437 = 292.

- Números no cifrables del la clave RSA del cliente C: Total 91 0, 1, 5, 6, 25, 26, 30, 31, 32, 36, 37, 56, 57, 61, 62, 63, 67, 68, 87, 88, 92, 93, 94, 98, 99, 118, 119, 123, 124, 125, 129, 130, 149, 150, 154, 155, 156, 160, 161, 180, 181, 185, 186, 187, 191, 192, 211,

Page 144: Solución Exa Jun 95_002 (1)

SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2006

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 5

212, 216, 217, 218, 222, 223, 242, 243, 247, 248, 249, 253, 254, 273, 274, 278, 279, 280, 284, 285, 304, 305, 309, 310, 311, 315, 316, 335, 336, 340, 341, 342, 346, 347, 366, 367, 371, 372, 373, 377, 378, 397, 398, 402.

- Números no cifrables de la clave RSA del servidor S: Total 9 0, 1, 114, 115, 208, 229, 322, 323, 436.

SOLUCIÓN: Apartado a)

Cliente C: p = 13, q = 31, e = 13. Luego n = p x q = 13 x 31 = 403; (n) = (p-1)(q-1) = 12 x 30 = 360.

dC = inv [eC, (nC)] = inv (13, 360) = 277

i yi gi ui vi

0 -- 360 1 0

1 -- 13 0 1

2 27 9 1 -27

3 1 4 -1 28

4 2 1 3 -83

5 4 1 - - La clave privada de C será dC = -83 + 360 = 277.

Servidor: p = 19, q = 23, e = 5. Luego n = p x q = 19 x 23 = 437; (n) = (p-1)(q-1) = 18 x 22 = 396.

dS = inv [eS, (nS)] = inv (5, 396) = 317

i yi gi ui vi

0 -- 396 1 0

1 -- 5 0 1

2 79 1 1 -79

3 5 0 - - La clave privada de S será dS = -79 + 396 = 317.

Apartado b)

Cliente: = mcm[(p-1),(q-1)] = mcm (12, 30) = 60 (Valor dado en el enunciado)

d = inv (e, ) = inv (13, 60)

i yi gi ui vi

0 -- 60 1 0

1 -- 13 0 1

2 3 8 1 -4

3 1 5 -1 5

4 1 3 2 -9

5 1 2 -3 14

6 1 1 5 -23

7 2 0 La clave d = -23 + 60 = 37.

Las claves privadas parejas serán 6. = (n - d )/ = (403 - 37)/ 60 = 6.

Luego di = d + i = 37 + i60 = 37, 97, 157, 217, 277, 337, 397 (Subrayada la clave privada) Apartado c)

Servidor: = mcm[(p-1),(q-1)] = mcm (18, 22) = 198 (Valor dado en el enunciado)

d = inv (e, ) = inv (5, 198)

i yi gi ui vi

0 -- 198 1 0

Page 145: Solución Exa Jun 95_002 (1)

SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2006

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 6

1 -- 5 0 1

2 39 3 1 -39

3 1 2 -1 40

4 1 1 2 -79

5 2 0 La clave d = -79 + 198 = 119.

Las claves privadas parejas serán 1. = (n - d )/ = (437 - 119)/ 198 = 1.

La clave privada pareja será 1: di = d + i = 119 + i198 = 119, 317 (Subrayada la clave privada)

Apartado d) KS = 61. Cifra de cliente a servidor: C = KS

eS mod nS = 61

5 mod 396

5 = 1012 (b2b1b0); x = 1 i = 2 b2 = 1 x = 1

2 x 61 mod 437 x = 61

i = 1 b1 = 0 x = 612 mod 437 x = 225

i = 0 b1 = 1 x = 2252 x 61 mod 437 x = 283 (valores entregados en el enunciado)

C = 283 Descifrado en el servidor; KS = C

dS mod nS = 283

317 mod 437

317 = 1001111012 (b8b7b6b5b4b3b2b1b0); x = 1 (entregado como dato) i = 8 b8 = 1 x = 1

2 x 283 mod 437 x = 283

i = 7 b7 = 0 x = 2832 mod 437 x = 118

i = 6 b6 = 0 x = 1182 mod 437 x = 377

i = 5 b5 = 1 x = 2772 x 283 mod 437 x = 153

i = 4 b4 = 1 x = 1532 x 283 mod 437 x = 264

i = 3 b3 = 1 x = 2642 x 283 mod 437 x = 410

i = 2 b2 = 1 x = 4102 x 283 mod 437 x = 43

i = 1 b1 = 0 x = 432 mod 437 x = 101

i = 0 b0 = 1 x = 1012 x 283 mod 437 x = 61 (valores entregados en el enunciado)

Apartado d) Si se cambian las claves se observa que el sistema es bastante peor puesto que la clave RSA del cliente era de peor calidad que la del servidor. En este último, es la mejor posible con sólo una clave privada pareja y 9 números no cifrables como se muestra en el enunciado, en tanto que la del cliente tiene 6 claves privadas parejas y 91 números no cifrables. Esto porque la autenticación proviene del cliente y es el cliente quien envía la clave al servidor. Si fuera al revés (o lo mismo, intercambiando las claves RSA entre los dos) se observa que el valor KS = 61 es uno de los números no cifrables. Como las claves de sesión serán siempre de 6 bits, habría 8 valores de 6 bits que irían en claro (32, 36, 37, 56, 57, 61, 62 y 63). Es decir de 32 valores posibles de claves de 6 bits, 8 valores irían en claro, lo que significa un 25% y es totalmente inaceptable. Para la verdadera clave del servidor, ningún valor entre 32 y 63 (de 6 bits) está entre sus números no cifrables Comentario fuera del examen: en la práctica y con los valores típicos en una comunicación SSL (128 bits de clave de sesión y 1.024 bits de clave asimétrica), no se puede dar una situación como ésta en que un 25% de las posibles claves vayan en claro porque, aunque la clave del servidor no sea la óptima, es prácticamente imposible que exista un valor de 128 bits (clave de sesión) que sea uno de los valores no cifrables del servidor. Además, si la clave fuese tan mala como la de este ejemplo en el apartado d), todas esas claves privadas parejas estarían muy cerca de los 1.024 bits y no con una distribución como la vista en este ejercicio, en tanto e es un valor de sólo 17 bits y mcm[(p-1),(q-1)] es un valor muy grande, por lo que

d también será grande y así también la distribución de las claves privadas parejas.

Page 146: Solución Exa Jun 95_002 (1)

SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2006

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 1

SEGURIDAD INFORMÁTICA Lunes 18 de septiembre de 2006

En esta primera parte del examen (Teoría y Prácticas) que se entrega en una hoja aparte y se recogerá transcurridos 60 minutos

del comienzo del examen, NO está permitido el uso de apuntes ni libros. En la segunda parte (Ejercicios) con una duración de 120

minutos, SÍ podrás utilizar libros de la asignatura, apuntes y calculadora. La duración máxima del examen es de 3 horas.

Publicación de notas: martes 26 de septiembre de 2006 en el tablón de la asignatura.

Revisión del examen: jueves 28 de septiembre de 2006: mañana de 11:00 a 13:00 horas.

Nota: Si lo deseas o bien si has terminado antes de los 60 minutos esta primera parte, puedes comenzar la segunda. Recuerda no

obstante que sólo podrás usar apuntes, libros y una calculadora transcurridos los primeros 60 minutos del examen.

1ª PARTE: TEORÍA Y PRÁCTICAS (3 puntos: 60 minutos)

Cuestión de Teoría Nº 1 1,0 punto (0,1 c/u). Tiempo recomendado: 30 minutos

Para cada frase, elige una opción (separadas por signos | |) y escribe la respuesta más acertada:

a) Si la entropía de una clave es alta, la clave será | mala | regular | buena | elemental | Buena

b) La cifra clásica por sustitución polialfabética permite difuminar: | las estadísticas del lenguaje | la

ratio absoluta | la ratio verdadera | la relación señal/ruido del canal | Las estadísticas del lenguaje

c) La cifra en RSA se hace en el cuerpo n y las claves se calculan en: | el mismo cuerpo n | el

cuerpo n del emisor | el cuerpo n del receptor | el cuerpo (n) | El cuerpo (n)

d) Para romper la clave privada del sistema de ElGamal, se deberá resolver: | una ecuación de 2º

grado | el problema del logaritmo discreto | el problema de la factorización entera | el problema de

las raíces en cuerpos finitos | El problema del logaritmo discreto e) La fortaleza ante ataques de una clave asimétrica tipo RSA de 1.024 bits será equivalente a la de

una clave de cifra simétrica de | 56 bits | 64 bits | 128 bits | 256 bits | 128 bits

f) Un ataque por denegación de servicio es una amenaza que nos vulneraría | la confidencialidad |

la integridad | la disponibilidad | el no repudio | La disponibilidad

g) Un ataque por Encuentro a Medio Camino sería efectivo ante | doble DES | triple DES | IDEA |

Intercambio de clave de Diffie y Hellman | Doble DES h) Un certificado digital X.509 que nos presenta un sitio Web para una conexión SSL tiene una

validez estándar de | 6 meses | 12 meses | 18 meses | 24 meses | 12 meses i) Para que un archivo cifrado de forma local con PGP pueda abrirlo cualquiera que tenga la clave,

aunque no tenga instalado PGP, la cifra se habrá hecho como | PGP | PKR | SKR | SDA | SDA j) Las funciones resumen hash MD5 y SHA-1 cifrarán bloques de “texto en claro”, cada uno de ellos

con un tamaño igual a | 128 bits | 256 bits | 512 bits | 1.024 bits | 512 bits

Cuestión de Teoría Nº 2 1,0 punto (0,25 c/u). Tiempo recomendado: 15 minutos Indica Verdadero o Falso en estas afirmaciones, justificando siempre y en cada caso tu respuesta. a) El Triple DES que se usa en la práctica se conoce también como una cifra tipo EDE.

VERDADERO: EDE significa Encrypt-Decrypt-Encrypt, que cifra el texto en claro de forma encadenada con una clave K1, luego descifra esto con la clave K2 y vuelve a cifrar el resultado con la clave K1. Esta cifra es equivalente y tiene la misma fortaleza a cifrar encadenadamente con tres claves distintas K1, K2, K3 y sin embargo es compatible con el DES normal, simplemente haciendo que K1 = K2.

b) Los hash SHA-1 de dos archivos de igual contenido y guardados con formatos distintos son iguales.

FALSO: Si cambia el formato del archivo, por ejemplo un Word guardado como Word 2000 y el mismo documento guardado luego como RTF, los dos archivos evidentemente tendrán un hash distinto. Toda función hash, sea SHA-1, MD5 u otra calcula el resumen a partir de los bits del mensaje o documento que agrupa normalmente en bloques de 512 bits, y no del contenido mensaje.

c) Excepto la primera, las demás claves privadas parejas en RSA están separadas por valor constante.

VERDADERO: La ecuación del cálculo de las claves privadas parejas es di = d + i , con = 0, 1, ... . Por

lo tanto, después de la primera clave d todas las demás estarán separadas por un valor constantes igual a

Page 147: Solución Exa Jun 95_002 (1)

SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2006

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 2

. Para primos p y q grandes, la primera clave d será bastante alta puesto que d = inv (e, ), el valor de la

clave pública e es pequeño (típico 17 bits) y el valor de = mcm [(p-1),)(q-1)] es decir un valor muy alto.

d) En la firma ElGamal, aunque no se use un generador del cuerpo la firma siempre podrá comprobarse.

FALSO: Es condición sine qua non que en este tipo de firma digital se use un generador o raíz primitiva

del cuerpo de cifra. Si se usa un valor distinto de , se podrá realizar la operación de firma en el extremo emisor pero nunca la operación de comprobación de dicha firma en el extremo receptor.

Cuestión de Práctica 1,0 punto (0,25 c/u). Tiempo recomendado: 15 minutos Responde estas cuestiones de las prácticas y justifica cada una de tus respuestas. a) ¿Por qué es tan fácil generar una clave RSA y en cambio muy difícil romper su clave privada?

Porque en la generación de la clave sólo necesitamos tener números aleatorios grandes (e.g. 512 bits) que, aunque no es un problema polinomial, sí es muy rápido y en la práctica hay algoritmos que nos los entregan en tiempo razonable: menos de 1 segundo. En cambio, para romper la clave privada mediante

factorización del cuerpo n = p q, el problema NP es muy difícil y tardaríamos miles de billones de años.

b) ¿Qué intentan vulnerar un ataque por cifrado cíclico y uno por paradoja del cumpleaños en RSA?

Si ambos prosperan, en el ataque por cifrado cíclico romperíamos el secreto del mensaje; es decir, se vulneraría la confidencialidad del mensaje, y en el ataque basado en la paradoja del cumpleaños, se encontrará en la mayoría de los casos la clave privada o bien una clave privada pareja, que hace las mismas funciones que la otra, vulnerando en este caso el secreto de dicha clave privada.

c) ¿Por qué es prácticamente imposible saber los números no cifrables de una clave RSA de 1.024 bits?

Porque los números no cifrables serán en el mejor de los casos 9: 0, 1, n-1 y otros seis valores que están distribuidos en todo el cuerpo de cifra. Si n = 1.024 bits, p y q primos de 512 bits, entonces para encontrar estos otros 6 valores o más si la clave los tiene, habrá que hacer cálculos por fuerza bruta dentro de p y dentro de q, lo que resulta imposible en la práctica al ser esto equivalente a un problema de tipo NP. No obstante, podemos saber fácilmente la cantidad de números no cifrables.

d) Generamos una clave RSA de 1.024 bits con OpenSSL. ¿Cómo sabemos la calidad de la clave?

Con ese software no lo sabremos. Habrá que usar otros programas o aplicaciones, por ejemplo genRSA, que nos permita generar esa misma clave y nos entregue información sobre el número de claves privadas parejas y la cantidad de números no cifrables, conociendo además en ambos casos su distribución.

2ª PARTE: EJERCICIOS (7 puntos: 120 minutos)

Ejercicio Nº 1 2,0 puntos. Tiempo recomendado: 30 minutos

Adela (A) envía a Benito (B) un mensaje M y su firma digital RSA añadida sobre h(M) = 90. Los datos de la clave de Adela son pA = 23, qA = 43, eA = 13: Se pide:

a) Encontrar la clave privada dA de Adela usando el algoritmo extendido de Euclides. [0,5 p] b) Firmar el hash del mensaje h(M) = 90 usando el algoritmo de exponenciación rápida. [0,5 p] c) Comprobar la validez de la firma usando el algoritmo de exponenciación rápida. [0,5 p] d) Comentar y justificar lo que sucede si Benito intenta comprobar la firma de Adela con una

clave pública e’ = 475. [0,5 p] Datos: 8532 = 1101010101; 4752 = 111011011

SOLUCIÓN: Apartado a)

pA 23; qA = 43 nA = 989; eA = 13; h(M) = 90, h’(M) = 91.

nA = (pA - 1)( qA – 1) = 22 42 = 924; dA = inv (eA, nA) = inv (13, 924) i yi gi ui vi

0 -- 924 1 0

1 -- 13 0 1

Page 148: Solución Exa Jun 95_002 (1)

SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2006

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 3

2 71 1 1 -71

3 13 0 La clave privada dA será: -71 + 924 = 853.

Apartado b) Firma rA = h(M)

dA mod nA = 90

853 mod 989

8532 = 1101010101 = b9b8b7b6b5b4b3b2b1b0 (entregado en el examen) x = 1 i = 9 b9 = 1 x = 1

2 x 90 mod 989 x = 90

i = 8 b8 = 1 x = 902 x 90 mod 989 x = 107

i = 7 b7 = 0 x = 1072 mod 989 x = 570

i = 6 b6 = 1 x = 5702 x 90 mod 989 x = 226

i = 5 b5 = 0 x = 2262 mod 989 x = 637

i = 4 b4 = 1 x = 6372 x 90 mod 989 x = 385

i = 3 b3 = 0 x = 3852 mod 989 x = 864

i = 2 b2 = 1 x = 8642 x 90 mod 989 x = 881

i = 1 b1 = 0 x = 8812 mod 989 x = 785

i = 0 b0 = 1 x = 7852 x 90 mod 989 x = 97

Nota: estos valores pueden calcularse con cualquier calculadora simple, no científica, dividiendo el producto por el módulo, restando la parte entera y multiplicando la parte decimal por el módulo. El resultado que se obtiene es siempre por defecto, por ejemplo 96,99123 = 97 para el último valor. Apartado c) Comprobación: rA

eA mod nA = 97

13 mod 989

132 = 1101 = b3b2b1b0 x = 1 i = 3 b3 = 1 x = 1

2 x 97 mod 989 x = 97

i = 2 b2 = 1 x = 972 x 97 mod 989 x = 815

i = 1 b1 = 0 x = 8152 mod 989 x = 606

i = 0 b0 = 1 x = 6062 x 97 mod 989 x = 90 = h(M).

Apartado d) Si e’ = 475 la comprobación de la firma sería: rA

e’A mod nA = 97

475 mod 989

4752 = 111011011 = b8b7b6b5b4b3b2b1b0 (entregado en el examen) x = 1 i = 8 b8 = 1 x = 1

2 x 97 mod 989 x = 97

i = 7 b7 = 1 x = 972 x 97 mod 989 x = 815

i = 6 b6 = 1 x = 8152 x 97 mod 989 x = 431

i = 5 b5 = 0 x = 4312 mod 989 x = 818

i = 4 b4 = 1 x = 8182 x 97 mod 989 x = 914

i = 3 b3 = 1 x = 9142 x 97 mod 989 x = 686

i = 2 b2 = 0 x = 6862 mod 989 x = 821

i = 1 b1 = 1 x = 8212 x 97 mod 989 x = 176

i = 0 b0 = 1 x = 1762 x 97 mod 989 x = 90

Se llega al mismo resultado que usando la clave pública de Adela eA. Esto se debe a que el valor 475 es una de las claves públicas parejas de eA = 13.

Ejercicio Nº 2 2,5 puntos. Tiempo recomendado: 45 minutos 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. Tabla con cajas S del DES en el anverso del examen. Se pide: a) Los 48 bits de entrada a las cajas S (be) y la palabra en ASCII que forma. [1,0 p] b) Los 32 bits de salida (bs) de esas cajas S. [1,0 p] c) El número de entradas (be) posibles que podrían dar lugar a esa salida (bs) en una vuelta. [0,5 p]

SOLUCIÓN: Apartado a)

Page 149: Solución Exa Jun 95_002 (1)

SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2006

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 4

Como las cajas S se activan seleccionando filas F y columnas C a partir de 6 bits b6b5b4b3b2b1 de forma que los bits b6b1 indican la fila F y los bits b5b4b3b2 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 1;

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 0111 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) 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 be que entregan una misma salida bs.

Ejercicio Nº 3 2,5 puntos. Tiempo recomendado: 45 minutos 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. [1,0 p] b) Resolver el sistema de ecuaciones y encontrar el tipo de registro utilizado. NOTA: en este caso

no es necesario utilizar matrices: simple lógica de operaciones XOR en las ecuaciones, en tanto se sabe además que la última celda siempre estará conectada y tiene el valor 1. [1,0 p]

c) ¿Qué longitud en bits tendrá la secuencia cifrante Si? [0,5 p]

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 + x

2 + 1

Apartado c)

Page 150: Solución Exa Jun 95_002 (1)

SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2006

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 5

Como el registro tiene 5 celdas y el polinomio f(x) es primitivo, su período será T = 25 – 1 = 31.

Page 151: Solución Exa Jun 95_002 (1)

SOLUCIÓN AL EXAMEN DE LA ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2007

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 1 (véase el anverso)

SEGURIDAD INFORMÁTICA Martes 25 de septiembre de 2007

En esta primera parte del examen (Teoría y Prácticas) que se entrega en una hoja aparte y se recogerá transcurridos 60 minutos del

comienzo del examen, NO está permitido el uso de apuntes ni libros. En la segunda parte (Ejercicios) con una duración de 120

minutos, SÍ podrás utilizar libros de la asignatura, apuntes y calculadora. La duración total del examen es de 3 horas.

Publicación de notas: lunes 1 de octubre de 2007 en el tablón de la asignatura.

Revisión del examen: miércoles 3 de octubre de 2007: mañana de 11:00 a 12:00 horas; tarde de 16:00 a 17:00 horas.

Nota: Si lo deseas o bien si has terminado antes de los 60 minutos esta primera parte, puedes comenzar la segunda. Recuerda no

obstante que sólo podrás usar apuntes, libros y una calculadora transcurridos los primeros 60 minutos del examen.

1ª PARTE: TEORÍA Y PRÁCTICAS (3 puntos: 60 minutos)

Cuestión de Teoría Nº 1 1,0 punto (0,1 c/u). Tiempo recomendado: 30 minutos Para cada frase, elige una opción (separadas por signos | |) y escribe la respuesta más acertada: 1. Si al volver a cifrar un criptograma con la misma clave se obtiene el mensaje en claro, se habla de

| clave débil | clave simétrica | solución falsa | solución ambigua | Sol.: clave débil / solución falsa

2. Una cifra clásica por sustitución se rompe fácilmente usando | sustitución de caracteres | análisis

de frecuencias | anagramación | el método de Hill | Sol.: análisis de frecuencias

3. Si en cifra simétrica la clave afecta sólo a una mitad del texto en claro en cada vuelta se habla de |

cifrado múltiple | cifrado Feistel | cifrado híbrido | cifrado afín | Sol.: cifrado Feistel

4. El DES y el AES tienen en común que ambos | son cifras asimétricas | trabajan módulo n | son de

tipo Feistel | usan cajas de sustitución | Sol.: usan cajas de sustitución

5. Una ataque por fuerza bruta significará buscar | repeticiones de caracteres | en todo el espacio de

claves | fallos en el algoritmo | las claves débiles | Sol.: en todo el espacio de claves

6. En RSA una clave pública pequeña y módulo muy grande implican una clave privada | pequeña |

de tamaño medio | del orden del módulo | de cualquier tamaño | Sol.: del orden del módulo

7. Con openSSL se crean claves RSA | mitad buenas y mitad malas | casi siempre óptimas | siempre

óptimas | siempre buenas pero nunca óptimas | Sol.: casi siempre óptimas 8. En PGP y S/MIME para enviar un correo confidencial, la clave de cifra simétrica para abrir el

criptograma se envía cifrada con | la clave pública del emisor | la clave privada del emisor | la clave

pública del receptor | la clave privada del receptor | Sol.: la clave pública del receptor

9. La principal vulnerabilidad del hash son ataques basados en | la paradoja del cumpleaños | los bits

de relleno | la fuerza bruta | Berlekamp-Massey | Sol.: la paradoja del cumpleaños

10. Para que la firma ElGamal pueda comprobarse es necesario que el primo p sea | muy grande | un

primo seguro | un número impar | un generador del cuerpo | Sol.: un generador del cuerpo

Cuestión de Teoría Nº 2 1,0 punto (0,50 c/u). Tiempo recomendado: 15 minutos a) ¿Qué es una solución falsa? ¿Qué ecuación de cifra es una clara muestra de ello, por ejemplo en DES?

Respuesta: Una solución falsa es toda aquella que no cumple con la condición de que un criptograma C será resultado solamente de la cifra de un mensaje M con una clave K. Una ecuación típica de una solución falsa es el uso de una clave débil en DES de forma que se recupera e mensaje en clareo volviendo a cifrar el criptograma con la misma clave EK1[EK1(M)] = M, en tanto que lo que debe cumplirse es que sólo pueda recuperarse el texto en claro si se descifraron la misma clave DK1[EK1(M)] = M.

b) Indica –sin comentar- cinco diferencias entre los sistemas de cifra simétrica y asimétrica.

Respuesta: Cifra Simétrica Cifra Asimétrica

- Tiene una mala gestión de claves - La gestión de claves eficiente - No permite intercambio de claves - Permite el intercambio de claves - No tiene firma digital (al menos fácil) - Posee firma digital completa - Velocidad de cifra muy rápida:100 Mbyte/s - Velocidad de cifra muy lenta: 100 Kbyte/s

Page 152: Solución Exa Jun 95_002 (1)

SOLUCIÓN AL EXAMEN DE LA ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2007

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 2 (véase el anverso)

- Longitud de claves de centenas de bits (128) - Longitud de claves de miles de bits (1.024) - Vida típica de una clave: segundos, minutos - Vida típica de una clave: un año - Sus inicios se remontan antes del siglo V a.C. - Su origen es el trabajo de Diffie y Hellman en 1976 - Seguridad basada en longitud de clave (bits) - Seguridad basada en funciones de un solo sentido - Se usa para cifrar la información verdadera - Se usa para intercambio de clave y firma digital - Usa una sola clave (y vector inicial en CBC) - Usa dos claves inversas entre sí en cuerpo finito

Cuestión de Prácticas 1,0 punto (0,50 c/u). Tiempo recomendado: 15 minutos Responde estas cuestiones de las prácticas obligatorias y justifica cada una de tus respuestas. a) Explica en pasos cómo has podido comprobar la calidad de las claves que has generado con openSSL.

Respuesta: 01. Se generan las claves RSA desde openSSL en modo comando. 02. Se guarda la clave en un archivo forzando un formato texto. 03. Se edita ese archivo texto con un editor (conveniente que permita buscar y sustituir). 04. Se borran los 4 espacios en blanco que aparecen antes de laca dila de valores de las claves 05. Se borran los cambios de línea en los valores de p y q de forma que sean un solo número. 06. Se ejecuta el programa genRSA, claves en modo hexadecimal. 07. Se copian al portapapeles los valores de p y q y se pegan en las ventanas del programa genRSA. 08. Se copia la clave pública y se pega en la ventana respectiva de genRSA. 09. Se genera ahora de forma manual dicha clave. 10. Se obtienen todas las claves privadas parejas, guardando la clave generada en html. 11. Se obtiene sólo la cantidad de números no cifrables. 12. La calidad viene expresada por la cantidad de claves privadas parejas y números no cifrables.

b) A una clave RSA le realizas un ataque basado en la paradoja del cumpleaños. ¿Qué tipo de resultados

puedes encontrarte y qué significa cada uno de ellos?

Respuesta: Si el ataque prospera, podemos tener 3 resultados. El algoritmo encuentra la clave privada; el algoritmo encuentra una clave privada parejas; el algoritmo encuentra un falso positivo. Un falso positivo significa que esa supuesta clave que se ha encontrado efectivamente descifra el criptograma pero sólo para esa entrada, no para cualquier entrada; es decir, no es una solución genérica y por lo tanto es falsa. Si se encuentra la clave privada o una clave privada pareja, se ha roto el sistema. Lo más frecuente es que tras este tipo de ataques se encuentre alguna clave privada pareja, ello depende del valor de entrada como mensaje usado y rara vez se obtiene un falso positivo.

2ª PARTE: EJERCICIOS (7 puntos: 120 minutos)

Ejercicio Nº 1 2,0 puntos (0,5 c/u). Tiempo recomendado: 30 minutos En el algoritmo IDEA se usan los siguientes valores para las cuatro primeras claves de la primera vuelta:

K1 = 783 K2 = 13.860 K3 = 35.851 K4 = 42.673

Se pide: a) ¿Qué clave se usará para el descifrado en el paso de la operación hecha por K1?

Solución: La clave K1= 783 se habrá usado en el cifrado en una operación multiplicación por lo en el descifrado se usará su inverso multiplicativo en el cuerpo 216+1 = 65537, es decir K49 = inv (783, 65.537) = 837.

i yi gi ui vi

0 -- 65.537 1 0

1 -- 783 0 1

2 83 548 1 - 83

Page 153: Solución Exa Jun 95_002 (1)

SOLUCIÓN AL EXAMEN DE LA ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2007

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 3 (véase el anverso)

3 1 235 -1 84

4 2 78 3 - 251

5 3 1 -10 837

6 78 0

b) ¿Qué clave se usará para el descifrado en el paso de la operación hecha por K2?

Solución: La clave K2 se usa en el cifrado en una operación suma por lo en el descifrado se usará el inverso aditivo en 216 = 65.536 que será el complemento al cuerpo.

La clave será: K50 = 65.536 - 13.860 = 51.676.

c) ¿Qué clave se usará para el descifrado en el paso de la operación hecha por K3?

Solución: La clave K3 se usa en el cifrado en una operación suma por lo en el descifrado se usará el inverso aditivo en 216 = 65.536 que será el complemento al cuerpo.

La clave será: K51 = 65.536 - 35.851 = 29.685.

d) ¿Qué clave se usará para el descifrado en el paso de la operación hecha por K4?

Solución: La clave K4= 42.673 se usa en el cifrado en una operación multiplicación; en el descifrado se usará su inverso multiplicativo en el cuerpo 2

16+1 = 65537, es decir K52 = inv (42.673, 65.537) = 62.834.

i yi gi ui vi

0 -- 65.537 1 0

1 -- 42.673 0 1

2 1 22.864 1 -1

3 1 19.809 -1 2

4 1 3.055 2 - 3

5 6 1.479 -13 20

6 2 97 28 - 43

7 15 24 - 433 665

8 4 1 1.760 - 2.703 (+ 65.537) = 62.834

9 24 0

Ejercicio Nº 2 3,0 puntos (0,5 c/u). Tiempo recomendado: 30 minutos Amparo y Bartolo se envían los valores que se indican de texto en claro usando para ello RSA. Los datos del sistema de cifra son:

Clave de Amparo Clave de Bartolo

Primo p 61 67

Primo q 41 47

Clave pública e 31 37

Texto en claro 11 77

Nota: es obligatorio usar el algoritmo Extendido de Euclides para el cálculo de las claves privadas y el algoritmo de exponenciación rápida visto en clase para la cifra. Datos de Amparo: Datos de Bartolo: n = pxq = 61 x 41 = 2.501 n = pxq = 67 x 47 = 3.149

Page 154: Solución Exa Jun 95_002 (1)

SOLUCIÓN AL EXAMEN DE LA ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2007

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 4 (véase el anverso)

Φ(n) = (p-1)(q-1) = 60 x 40 = 2.400 Φ(n) = (p-1)(q-1) = 66 x 46 = 3.036 e = 31 e = 37 Curiosidad: los datos de Amparo terminan todos en 1 y los de Bartolo todos en 7. Se pide:

a) Calcula la clave privada de Amparo.

Solución: Usando el algoritmo extendido de Euclides se obtiene: d = inv [e, Φ(n)] = inv [31, 2.400] = 1.471 i yi gi ui vi

0 -- 2.400 1 0

1 -- 31 0 1

2 77 13 1 - 77

3 2 5 - 2 155

4 2 3 5 - 387

5 1 2 - 7 542

6 1 1 12 - 929 (+ 2.400) = 1.471

7 2 0

b) Calcula la clave privada de Bartolo.

Solución: Usando el algoritmo extendido de Euclides se obtiene: d = inv [e, Φ(n)] = inv [37, 3.036] = 1.477 i yi gi ui vi

0 -- 3.036 1 0

1 -- 37 0 1

2 82 2 1 - 82

3 18 1 - 18 1.477

4 2 0

c) Envía el mensaje de Amparo a Bartolo de forma confidencial.

Solución: Amparo usa la clave pública e = 37 de Bartolo y calcula: 11

37 mod 3.149 = 2.846

37 = 100101 = b5b4b3b2b1b0. x = 1 i = 5 b5 = 1 x = 1

2 x 11 mod 3.149 x = 11

i = 4 b4 = 0 x = 112 mod 3.149 x = 121

i = 3 b3 = 0 x = 1212 mod 3.149 x = 2.045

i = 2 b2 = 1 x = 2.0452 x 11 mod 3.149 x = 1.683

i = 1 b1 = 0 x = 1.6832 mod 3.149 x = 1.538

i = 0 b0 = 1 x = 1.5382 x 11 mod 3.149 x = 2.846

Amparo envía a Bartolo el valor 11 cifrado como 2.846.

d) Descifra el criptograma que recibe Bartolo.

Solución: Bartolo usa su clave privada d = 1.477 y calcula: 2.846

1.477 mod 3.149 = 11

1.477 = 10111000101 = b10b9b8b7b6b5b4b3b2b1b0. x = 1

Page 155: Solución Exa Jun 95_002 (1)

SOLUCIÓN AL EXAMEN DE LA ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2007

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 5 (véase el anverso)

i = 10 b10 = 1 x = 12 x 2.846 mod 3.149 x = 2.846

i = 9 b9 = 0 x = 2.8462 mod 3.149 x = 488

i = 8 b8 = 1 x = 4882 x 2.846 mod 3.149 x = 1.703

i = 7 b7 = 1 x = 1.7032 x 2.846 mod 3.149 x = 2.911

i = 6 b6 = 1 x = 2.9112 x 2.846 mod 3.149 x = 2.067

i = 5 b5 = 0 x = 2.0672 mod 3.149 x = 2.445

i = 4 b4 = 0 x = 2.4452 mod 3.149 x = 1.223

i = 3 b3 = 0 x = 1.2232 mod 3.149 x = 3.103

i = 2 b2 = 1 x = 3.1032 x 2.846 mod 3.149 x = 1.248

i = 1 b1 = 0 x = 1.2482 mod 3.149 x = 1.898

i = 0 b0 = 1 x = 1.8982 x 2.846 mod 3.149 x = 11

Bartolo recupera el valor secreto enviado por Amparo.

e) Firma el mensaje que Bartolo envía a Amparo..

Solución: Bartolo usa su clave privada d = 1.477 y calcula: 77

1.477 mod 3.149 = 1.423.

1.477 = 10111000101 = b10b9b8b7b6b5b4b3b2b1b0. x = 1 i = 10 b10 = 1 x = 1

2 x 77 mod 3.149 x = 77

i = 9 b9 = 0 x = 772 mod 3.149 x = 2.780

i = 8 b8 = 1 x = 2.7802 x 77 mod 3.149 x = 1.376

i = 7 b7 = 1 x = 1.3762 x 77 mod 3.149 x = 699

i = 6 b6 = 1 x = 6992 x 77 mod 3.149 x = 1.174

i = 5 b5 = 0 x = 1.1742 mod 3.149 x = 2.163

i = 4 b4 = 0 x = 2.1632 mod 3.149 x = 2.304

i = 3 b3 = 0 x = 2.3042 mod 3.149 x = 2.351

i = 2 b2 = 1 x = 2.3512 x 77 mod 3.149 x = 829

i = 1 b1 = 0 x = 8292 mod 3.149 x = 759

i = 0 b0 = 1 x = 7592 x 77 mod 3.149 x = 1.423

Bartolo envía el mensaje 77 firmado a Amparo como 1.423.

f) Comprueba la firma de Bartolo en el extremo de Amparo.

Solución: Amparo usa la clave pública e = 37 de Bartolo y calcula: 1.423

37 mod 3.149 = 77 recuperando el

mensaje que ha firmado Bartolo. 37 = 100101 = b5b4b3b2b1b0. x = 1 i = 5 b5 = 1 x = 1

2 x 1.423 mod 3.149 x = 1.423

i = 4 b4 = 0 x = 1.4232 mod 3.149 x = 122

i = 3 b3 = 0 x = 1222 mod 3.149 x = 2.288

i = 2 b2 = 1 x = 2.2882 x 1.423 mod 3.149 x = 528

i = 1 b1 = 0 x = 5282 mod 3.149 x = 1.672

i = 0 b0 = 1 x = 1.6722 x 1.423 mod 3.149 x = 77

Amparo recupera el texto en claro firmado por Bartolo.

Ejercicio Nº 3 2,0 puntos (0,5 c/u). Tiempo recomendado: 60 minutos Adela y Benito realizan el siguiente protocolo: PASOS PREVIOS

- Adela realiza los siguientes cálculos: o Encuentra un primo pA

o Encuentra un generador A o Elige un valor a

o Calcula CPubA = A a mod pA

o Hace público los valores (pA, A, CPubA = A a mod pA)

Page 156: Solución Exa Jun 95_002 (1)

SOLUCIÓN AL EXAMEN DE LA ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2007

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 6 (véase el anverso)

- Benito realiza los siguientes cálculos: o Encuentra un primo pB

o Encuentra un generador B o Elige un valor b

o Calcula CPubB = B b mod pB

o Hace público los valores (pB, B, CPubB = B b mod pB)

PASOS DEL PROTOCOLO

- Adela hace lo siguiente:

o Calcula una clave: KAB = ( B b mod pB)

a mod pB

o Cifra el mensaje con la clave KAB que envía a Benito.

o Envía además a Benito el siguiente valor: B a mod pB.

- Benito hace lo siguiente:

o El valor recibido B a mod pB lo eleva a su clave privada ( B

a mod pB)

b mod pB

o … Se pide:

a) Termina el protocolo e indica a qué resultado llegan Adela y Benito.

Solución:

En el último paso Benito recupera B ab

mod pB = KAB que había calculado Adela ( B ba

mod pB). Con ese valor de clave de sesión Benito descifra el mensaje cifrado que le había enviado Adela. Lo interesante de este algoritmo es que realiza el intercambio de clave de Diffie y Hellman pero sin la necesidad de que ambos interlocutores lo hagan en tiempo real, permitiendo así enviar una clave de sesión dentro de un sobre de correo cifrado con la seguridad que nos da el problema del logaritmo discreto, en vez de hacerlo con el clásico sistema RSA.

b) Indica a qué claves corresponden cada uno de los valores calculados en todos los pasos del

protocolo, tanto previos como en el protocolo en sí.

Solución: pA = primo usado por Adela

A = generador usado por Adela a = clave privada de Adela

A a mod pA = clave pública de Adela

KAB = ( B b mod pB)

a mod pB = B

ba mod pB = clave de sesión calculada por Adela

pB = primo usado por Benito

B = generador usado por Benito b = clave privada de Benito

B b mod pB = clave pública de Benito

KAB = ( B a mod pB)

b mod pB = B

ab mod pB = clave de sesión recuperada por Benito

c) ¿Qué habría que hacer con el tamaño de KAB para poder usarla en una aplicación real?

Solución: El valor debe ser del tamaño de una clave de un algoritmo simétrico, por ejemplo 128 bits de AES. En ese caso, la clave de sesión pueden ser los primeros 128 bits del valor KAB que comparten ambos extremos.

d) ¿Qué relación tendría este algoritmo con la versión 8.0 de programa PGP visto en clases?

Solución: Este algoritmo posibilita el uso del intercambio de clave de Diffie y Hellman en un sistema en el que los usuarios no interactúan simultáneamente como lo es el correo electrónico. Como PGP 8.0 genera claves DH/DSS por defecto, el intercambio de clave secreta para abrir el correo cifrado en este entorno se realiza de esta manera.

Page 157: Solución Exa Jun 95_002 (1)

SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2007

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 1 (véase el anverso)

SEGURIDAD INFORMÁTICA Miércoles 6 de junio de 2007

En esta primera parte del examen (Teoría y Prácticas) que se entrega en una hoja aparte y se recogerá transcurridos 60 minutos del

comienzo del examen, NO está permitido el uso de apuntes ni libros. En la segunda parte (Ejercicios) con una duración de 120

minutos, SÍ podrás utilizar libros de la asignatura, apuntes y calculadora. La duración total del examen es de 3 horas.

1ª PARTE: TEORÍA Y PRÁCTICAS (3 puntos: 60 minutos)

Cuestión de Teoría Nº 1 1,0 punto (0,1 c/u). Tiempo recomendado: 30 minutos Para cada frase, elige una opción (separadas por signos | |) y escribe la respuesta más acertada:

1. La entropía de una clave de cifra simétrica debería ser | baja | media | alta | cero | alta

2. El código Base 64 se usa para: | la compatibilidad entre clientes de correo | cifrar con 64 bits |

poder codificar con 264

bits | obtener código óptimo | compatibilidad entre clientes de correo

3. La trampa en RSA para el cálculo de inversos para las claves pública y privada es | el cuerpo n | el

cuerpo (n) | el cuerpo n-1 | el cuerpo (n) - 1 | el cuerpo (n)

4. El cifrado de matrices tipo Hill es vulnerable a ataques | de Berlekamp-Massey | por fuerza bruta |

de Diffie-Hellman | de Gauss-Jordan | de Guass-Jordan 5. El número medio de intentos para que prospere un ataque basado en la paradoja del cumpleaños

ante una clave o valor de n bits será | 22n

| 2n/4

| 2n | 2

n/2 | 2

n/2

6. Los tamaños de clave por defecto en algoritmo AES en bits son | 80 / 128 / 192 | 128 / 192 / 256 |

128 / 256 / 512 bits | 128 / 512 / 1024 bits | 128 / 192 / 256 7. El estándar de firma Digital Signature Standard DSS propuesto por el NIST es una variante de la

firma | ElGamal | Diffie-Hellman | Merkle-Hellman | RSA | ElGamal 8. Para cifrar un archivo de forma convencional con PGP y que el archivo criptograma resultante sea

un ejecutable que pueda abrirse sin la necesidad de tener instalado ese programa en destino, lo

hacemos con la opción | DH/DSS | Base64 | PGP | SDA | SDA

9. La clave pública por defecto que genera PGP en su versión 8.0 y número de bits es | RSA 1204 |

DH/DSS 2048/1024 | DH/DSS 1024/2048 | DH/SHA-1 1024/160 | DH/DSS 2048/1024

10. El algoritmo simétrico y longitud de clave en SSL | lo fuerza el cliente | lo fuerza el servidor | es

siempre 3DES o AES | se negocia entre cliente y servidor | se negocia entre cliente y servidor

Cuestión de Teoría Nº 2 1,0 punto (0,50 c/u). Tiempo recomendado: 15 minutos a) Ciframos con PGP el mismo archivo en instantes distintos usando la misma clave. ¿Los criptogramas

son iguales o diferentes? Explica qué sucede y justifica tu respuesta.

Son diferentes. Esto es debido a que la cifra simétrica siempre se realiza en el modo Encadenamiento de Bloques Cifrantes (CBC) por lo que, además de la clave K propia de cifra interviene una segunda clave conocida como Vector Inicial (IV) también secreta, que se suma XOR con el primer bloque de entrada y dicha operación se repite en los siguientes bloques con el criptograma resultante de la cifra del bloque anterior. Como en este vector inicial está incluida la fecha y hora del sistema, cada cifra será distinta.

b) Alguien afirma que mediante una función hash como MD5 o SHA-1 se puede autenticar una persona. Comenta si esto es cierto o no y justifica tu respuesta.

No es cierto. Las funciones hash no tienen claves secretas y por tanto no pueden servir como autenticación. No hay nada que sea propio de un usuario y que le permita al extremo receptor comprobar su autenticidad. No obstante, sí sirven para comprobar la integridad de mensajes o archivos y comprimirlos por lo que esa es su aplicación en cripotgrafía. No confundir con las funciones HMAC que se usan, por ejemplo, en un intercambio de clave de una sesión SSL y que sí usan claves secretas.

Cuestión de Prácticas 1,0 punto (0,50 c/u). Tiempo recomendado: 15 minutos Responde estas cuestiones de las prácticas obligatorias y justifica cada una de tus respuestas. a) ¿Es verdad que al generar una clave RSA, ésta puede tener un número indeterminado de claves

privadas parejas, de claves públicas parejas y de números no cifrables?

En principio es falso porque al generar las claves RSA la cantidad de claves privadas parejas y claves públicas parejas será como mínimo 1 y la de mensajes o números no cifrables como mínimo 9. Si no se

Page 158: Solución Exa Jun 95_002 (1)

SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2007

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 2 (véase el anverso)

cuida el diseño de la clave eligiendo adecuadamente p, q y e, estos valores pueden llegar a ser muy altos y en algunos casos podrían resentir seriamente la seguridad de esa clave. También se podría decir que es verdadero pero argumentando que dicho valor indeterminado parte de los mínimos antes comentados.

b) Si usamos genRSA para cifrar el mensaje de texto M = 123_PRUEBA y el cuerpo de cifra del destino es n = 482.884.243 (29 bits), ¿cuáles son los bloques a cifrar y de qué tamaño son los bloques de salida?

Se cifrarán bloques de 3 bytes y la salida se representará en bloques de 4 bytes. Esto porque el módulo de cifra es de 29 bits y por tanto sólo podemos cifrar 3 bytes = 24 bits, pero como la cifra se hace en ese módulo de 29 bits la salida serán bloques de 4 bytes. Luego, los bloques de entrada serán los valores resultantes en hexadecimal de 123; _PR; UEB; A.

2ª PARTE: EJERCICIOS (7 puntos: 120 minutos)

Ejercicio Nº 1 2,0 puntos. Tiempo recomendado: 30 minutos Se intenta criptoanalizar las cajas S del DES. Si en una de las vueltas del algoritmo, la salida de las cajas en hexadecimal es igual a B5AF8D1F = 10110101 10101111 10001101 00011111. Se pide: a) Encuentra en binario todas las entradas posibles de la caja S8. b) ¿Es más fácil atacar por fuerza bruta la cifra o romper las cajas S en 16 vueltas? ¿Por qué? c) ¿Qué pasaría si el algoritmo tuviese sólo 3 vueltas?

Caja S8 C O L U M N A

Fila 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

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

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

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

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

SOLUCIÓN: Apartado a: (1,0 punto) La salida de la caja S8 serán los últimos 4 bits del valor entregado, es decir F = 1111. Luego, habrá que buscar en dicha caja las filas y columnas que entreguen el valor decimal 15.

Fila 0 Columna 5 Valores de entrada para esta combinación: 0 0101 0 Fila 1 Columna 1 Valores de entrada para esta combinación: 0 0001 1 Fila 2 Columna 12 Valores de entrada para esta combinación: 1 1100 0 Fila 3 Columna 8 Valores de entrada para esta combinación: 1 1000 1

Apartado b: (0,5 puntos) Hay que realizar un mayor trabajo para hacer un seguimiento hacia atrás de las cajas S en 16 vueltas que atacar la clave del DES por fuerza bruta (2

56). Como en cada caja hay 4 entradas posibles para

cada salida, existirán 48 = 2

16 combinaciones de entrada. Como tenemos 16 vueltas, deshacer todas

las operaciones de las cajas S en un bloque de cifra del DES implicaría (216

)16

= 2256

intentos, un valor muchísimo mayor que 2

56.

Apartado b: (0,5 puntos) Si sólo tenemos 3 vueltas, independiente de que el algoritmo sea muy básico y poco seguro, atacar las cajas S será ahora mucho más fácil porque significaría tan sólo (2

16)3 = 2

48 intentos, un valor bastante

menor que 256

.

Ejercicio Nº 2 2,0 puntos. Tiempo recomendado: 30 minutos

Amparo y Bartolo desean intercambiar una clave usando el algoritmo de Diffie y Hellman. El primo

elegido es 661 y como generador han optado por = 6. Nota: no es obligatorio usar en este ejercicio el algoritmo de exponenciación rápida. Además, los valores de cálculo son muy bajos. Se pide:

a) Si Amparo elige el valor privado a = 12, calcula el valor que envía a Bartolo.

Page 159: Solución Exa Jun 95_002 (1)

SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2007

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 3 (véase el anverso)

b) Si Bartolo elige el valor privado b = 8, calcula el valor que envía a Amparo.

c) Calcula la clave de sesión que se intercambian Amparo y Bartolo.

d) Si el fisgón Crispín tiene la posibilidad de interceptar la línea de comunicación y posee además capacidad de cómputo suficiente, indica cómo haría un ataque por fuerza bruta y qué otros dos métodos podría usar para vulnerar la confidencialidad de ese intercambio.

e) Con respecto a todos estos métodos de ataque, ¿qué sucedería si en vez de elegir = 6 Amparo y

Bartolo hubiesen elegido = 10 que no es generador del primo 661?

SOLUCIÓN: Apartado a: (0,25 puntos)

A B: a mod p = 6

12 mod 661 = 271 (Amparo envia a Bartolo el valor 271)

Apartado b: (0,25 puntos)

B A: b mod p = 6

8 mod 661 = 15 (Bartolo envia a Amparo el valor 15)

Apartado c: (0,25 puntos) La clave compartida es 271

8 mod 661 = 15

12 mod 661 = 497

Apartado d: (1,0 punto)

Crispín sabe que = 6 y que p = 661. Haría un ataque por fuerza bruta capturando el valor 227 que

Amparo envía a Bartolo y calculando xa

mod 661 = 227 para todos los valores de xa dentro del cuerpo

p hasta que se dé la igualdad para obtener la clave de Amparo y lo mismo con el valor 15 que Bartolo

envió a Amparo y calculando xb

mod 661 = 15 para todos los valores de xb dentro del cuerpo hasta

que se dé la igualdad para obtener la clave de Bartolo. Si se comienza por xa,b = 2, dado que las

claves privadas elegidas por Amparo y Bartolo son muy bajas (12 y 8), podemos afirmar que Crispín las encontrará rápidamente. Un segundo ataque más eficiente (independientemente del tamaño de a y b) es despejar los valores de xa y xb mediante el uso de diversos algoritmos de solución del Problema del Logaritmo Discreto. Es

decir calcularía log6 271 mod 661 para la clave de Amparo y log6 15 mod 661 para la clave de Bartolo. El tercer ataque, ya en un entorno distinto, sería un ataque del tipo “man in the middle” de forma que,

por ejemplo, intercepta el valor que Amparo envía a Bartolo y envía a Bartolo el valor calculado por él

c mod p y hace lo mismo con Amparo. Tras ello Crispín se podra hacer dueño de la sesión.

Apartado e: (0,25 puntos) Si no eligen un generador, el intercambio puede hacerse pero será más vulnerable. Un ataque por fuerza bruta o cálculo del logaritmo discreto prosperará antes porque, ahora, hay varias soluciones

posibles de claves secretas de Amparo y Bartolo que entregan valores de sesión equivalentes. Es

decir, para Amparo tendríamos que a1

mod 661 = a2

mod 661 = a3

mod 661 … = valor constante.

Ejercicio Nº 3 3,0 puntos. Tiempo recomendado: 60 minutos

Adela desea enviar a Benito el mensaje en claro HOLA cifrando con el sistema RSA byte a byte. Los datos son:

Clave de Adela Clave de Benito

Primo p 43 31

Primo q 61 59

Clave pública e 19 13

Se pide:

a) Usando el algoritmo extendido de Euclides encuentra la clave privada de Adela.

b) Usando el algoritmo extendido de Euclides encuentra la clave privada de Benito. c) Usando el algoritmo de exponenciación rápida cifra sólo el primer byte del mensaje HOLA que

Adela desea enviar de forma confidencial a Benito. d) Usando el algoritmo de exponenciación rápida descifra el criptograma en el extremo receptor de

Benito.

e) Si Adela desea además firmar digitalmente ese mensaje, usando como “hash” la acción de concatenar sólo los bits pares del texto HOLA (aunque sea una pésima opción y no tenga

Page 160: Solución Exa Jun 95_002 (1)

SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2007

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 4 (véase el anverso)

absolutamente nada que ver con un hash) y así obtener un número, ¿podría hacerlo? En su caso, ¿qué solución le queda si desea firmar? Ayuda: HASCII = 0100 1000; 937 = 11 1010 1001; 2.623 = 1010 0011 1111

SOLUCIÓN: Apartado a: (0,6 puntos)

Adela: p = 43, q = 61, eA = 19. Luego nA = p x q = 2.623; (nA) = (p-1)(q-1) = 42 x 60 = 2.520.

Luego, dA = inv [eA, (nA)] = inv (19, 2.520) = 1.459 i yi gi ui vi

0 -- 2.520 1 0

1 -- 19 0 1

2 132 12 1 -132

3 1 7 -1 133

4 1 5 2 -265

5 1 2 -3 398

6 2 1 8 -1.061

7 2 0

La clave privada de Adela será dA = -1.061 + 2.520 = 1.459.

Apartado b: (0,6 puntos)

Benito: p = 31, q = 59, eB = 13. Luego nB = p x q = 1.829; (nB) = (p-1)(q-1) = 30 x 58 = 1.740.

Luego, dB = inv [eB, (nB)] = inv (13, 1.740) = 937 i yi gi ui vi

0 -- 1.740 1 0

1 -- 13 0 1

2 133 11 1 -133

3 1 2 -1 134

4 5 1 6 -803

5 2 0

La clave privada de Benito será dB = -803 + 1.740 = 937.

Apartado c: (0,6 puntos)

HOLA = 72, 79, 76, 65 en valor decimal del código ASCII. Como es Adela quien cifra para Benito,

usará la clave pública de Benito:

C1 = HeB

mod nB = C1 = 7213

mod 1.829 (132 = 1101 = b3b2b1b0). Y según el algoritmo pedido:

i = 3 b3 = 1 x = 12 x 72 mod 1.829 x = 72

i = 2 b2 = 1 x = 722 x 72 mod 1.829 x = 132

i = 1 b1 = 0 x = 1322 mod 1.829 x = 963

i = 0 b0 = 1 x = 9632 x 72 mod 1.829 x = 1.094

C1 = 1.094 Todos estos cálculos se pueden hacer con una calculadora no científica: ver exámenes anteriores. Apartado d: (0,6 puntos)

Para descifrar, usaremos la clave privada de Benito:

M1 = C1dB

mod nB = M1 = 1.094937

mod 1.829 (9372 = 1110101001 = b9b8b7b6b5b4b3b2b1b0). Valor binario

entregado como dato en el examen.

i = 9 b8 = 1 x = 12 x 1.094 mod 1.829 x = 1.094

i = 8 b8 = 1 x = 1.0942 x 1.094 mod 1.829 x = 1.380

i = 7 b7 = 1 x = 1.3802 x 1.094 mod 1.829 x = 1.529

Page 161: Solución Exa Jun 95_002 (1)

SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2007

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 5 (véase el anverso)

i = 6 b6 = 0 x = 1.5292 mod 1.829 x = 379

i = 5 b5 = 1 x = 3792 x 1.094 mod 1.829 x = 1.061

i = 4 b4 = 0 x = 1.0612 mod 1.829 x = 886

i = 3 b3 = 1 x = 8862 x 1.094 mod 1.829 x = 622

i = 2 b2 = 0 x = 6222 mod 1.829 x = 965

i = 1 b1 = 0 x = 9652 mod 1.829 x = 264

i = 0 b0 = 1 x = 2642 x 1.094 mod 1.829 x = 72 Valor ASCII decimal del carácter H.

Todos estos cálculos se pueden hacer con una calculadora no científica: ver exámenes anteriores. Apartado e: (0,6 puntos) Si el hash consiste en concatenar los bits pares del mensaje (independientemente de que no sea ésta ni mucho menos una función hash ni tampoco recomendable) dado que el mensaje HOLA tiene 32 bits

y el cuerpo de cifra de Adela nA = 2.623 = 101000111111 tiene 12 bits (valor dado como dato en el

examen), Adela no podrá firmar pues el hash resultante serían 16 bits y estaría fuera del cuerpo de cifra. Si desea seguir con esta “función” hash, podría realizar la firma en dos bloques, cada uno de 8 bits, pero esto no tendría sentido por ser demasiado costoso. También podría aumentar el valor de su clave de forma que le permita firmar mensajes de mayor tamaño.

Page 162: Solución Exa Jun 95_002 (1)

SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2008

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 1 (véase el anverso)

SEGURIDAD INFORMÁTICA Miércoles 4 de junio de 2008

En esta primera parte del examen (Teoría y Prácticas) que se entrega en una hoja aparte y se recogerá transcurridos 60 minutos del

comienzo del examen, no está permitido el uso de apuntes ni libros. En la segunda parte (Ejercicios) con una duración de 120

minutos, sí podrás utilizar libros de la asignatura, apuntes y calculadora. La duración total del examen es de 3 horas.

1ª PARTE: TEORÍA Y PRÁCTICAS (3 puntos: 60 minutos)

Cuestión de Teoría Nº 1 1,0 punto (0,1 c/u). Recomendado: 20 minutos Para cada frase, elige una opción (separadas por signos | |) y escribe la respuesta más acertada: 1. Los 4 elementos básicos de la seguridad informática son integridad, confidencialidad, no repudio y

| sostenibilidad | trazabilidad | disponibilidad | autenticidad | disponibilidad. 2. La simulación y suplantación de una página Web por otra pirata con el objeto de robar claves se

conoce como | pharming | phising | carding | honeynet | phising. 3. El ciclo de un Sistema de Gestión de la Seguridad de la Información SGSI es más conocido por las

siguientes siglas en inglés | COBIT | ITIL | CISA | PDCA | PDCA.

4. La entropía de una clave será máxima cuando sus bits sean | aleatorios | pseudoaleatorios |

equiprobables | todos iguales | equiprobables.

5. Si se da la situación que C1 = EK1(M2) y C1 = EK2(M1) decimos que | la clave es débil | es una

solución falsa | la cifra es segura | el sistema es asimétrico | es una solución falsa.

6. Si ni mod p entrega valores distintos para 0 ≤ i ≤ p-1,decimos que n será | una raíz primitiva | un

primo seguro | un pseudoprimo | un problema tipo NP | una raíz primitiva. 7. Si una cifra se representa matemáticamente como Ci = Mi + Ki mod n, decimos que se trata de una

cifra | del César | de Playfair | de escítala | de Vigenère | de Vigenère.

8. La firma DSS se caracteriza por | enviar dos valores de 160 bits | enviar dos valores de 1.024 bits |

ser no lineal | basarse en el problema de la factorización | enviar dos valores de 160 bits.

9. Para generar una clave PGP 8.0 RSA usamos la opción modo | generación rápida | forzar tamaño

a 1.024 bits | single sign on | experto | experto.

10. Si queremos que un correo cifrado o firmado con PGP lo pueda leer cualquier cliente de correo |

ciframos el archivo en binario | convertimos el texto cifrado a hexadecimal | añadimos armadura al

cifrado | lo ciframos de forma local | añadimos armadura al cifrado.

Cuestión de Teoría Nº 2 1,0 punto (0,50 c/u). Recomendado: 20 minutos a) Si la clave privada ElGamal de Adela es x = 8, α = 2 y p = 131, ¿cuál es su clave pública? ¿Cómo

podríamos encontrar su valor privado x si sólo conocemos esta clave pública, α y p?

La clave pública será y = αx mod p = 2

8 mod 131 = 256 mod 131 = 125.

La única forma de conocer la clave privada sería enfrentarse al problema del logaritmo discreto resolviendo la ecuación x = logα y mod p. No obstante, en este caso dado que el módulo es muy pequeño se puede romper muy fácilmente mediante fuerza bruta elevando α a todos los restos de p; al llegar al valor 8 habrá una igualdad y por tanto conoceremos así la clave privada. Con valores grandes esto no es factible.

b) Justifica porqué al cifrar con PGP un mismo documento dos veces (por tanto en momentos distintos) y usando en cada cifra la misma clave K, el criptograma resultante es distinto.

Porque la cifra siempre se hace en modo CBC, Encadenamiento de Bloques Cifrantes, y por lo tanto interviene una segunda clave conocida como vector inicial IV que se combina XOR con el primer bloque de entrada, y cuyo valor lo asignará la máquina a modo de un sello de tiempo, por tanto cada cifra hecha en tiempos distintos será también distinta aunque se use la misma clave K de cifra.

Cuestión de Prácticas Obligatorias 1,0 punto (0,50 c/u). Recomendado: 20 minutos a) Si en un sistema de cifra en flujo tenemos una clave de periodo 1.023 bits y sospechamos que se trata

de un sistema lineal muy elemental, ¿qué necesitaríamos para hacer un ataque y porqué prosperaría?

Si se trata de un sistema lineal muy elemental, entonces el generador será un único LFRS primitivo en los que el período es igual a 2

n -1. Claramente 1.023 es igual a 2

10 – 1 por lo que se trata de un registro de 10

celdas. En este caso para conocer toda la secuencia sólo nos hará falta conocer 2*n = 20 bits consecutivos

Page 163: Solución Exa Jun 95_002 (1)

SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2008

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 2 (véase el anverso)

en cualquier lugar de ella y realizar un ataque de Berlekamp-Massey. Ese ataque prosperará porque tendremos 10 ecuaciones con 9 incógnitas.

b) Cuando generamos una clave RSA con openSSL, además de los valores propios de la clave (p, q, n, e, d), el programa nos entrega como datos exponent1, exponent2 y coefficient. ¿Para qué sirven?

Datos: exponent1 = dP = (1/e) mod (p-1); exponent2 = dQ = (1/e) mod (q-1); coefficient = qInv = 1(q) mod p (si p > q)

Estos tres valores (no pedidos en el examen) son los que permiten hacer un descifrado usando el Teorema del Resto Chino y por tanto usar sólo operaciones en módulo p y módulo q, lo que reduce el tiempo de cómputo en unas 4 veces. Las operaciones (tampoco se piden en el examen) son: M = m2 + hq siendo: m1 = C

dP mod p; m2 = C

dQ mod q; h = qInv (m1 – m2) mod p

2ª PARTE: EJERCICIOS (7 puntos: 120 minutos)

Ejercicio Nº 1 2,0 puntos. Recomendado: 30 minutos Un nuevo algoritmo de cifra simétrica incluye en una etapa intermedia el uso de las cajas S del DES para así aumentar su fortaleza. En una de las 20 vueltas de ese algoritmo, los 48 bits que entran en estas cajas vienen representados en hexadecimal por C83A 8E9A F5D0. Se pide: a) Encontrar la salida de cada caja S y representarla en hexadecimal (1,0 punto) b) ¿Qué cadena en hexadecimal se obtiene como salida? (0,5 puntos) c) ¿Se puede recuperar con facilidad la entrada a partir de la salida? ¿Por qué? (0,5 puntos)

SOLUCIÓN: Apartado a: Pasamos la entrada C83A 8E9A F5D0 a binario y nos queda 1100 1000 0011 1010 1000 1110 1001 1010 1111 0101 1101 0000 Agrupando de 6 bits que son los que entran en cada caja S:

110010 000011 101010 001110 100110 101111 010111 010000

S1 S2 S3 S4 S5 S6 S7 S8

Leyendo los bits de los extremos para las filas F y los cuatro centrales para columnas C, tenemos: S1 S2 S3 S4 S5 S6 S7 S8

(F,C) (2,9) (1,1) (2,5) (0,7) (2,3) (3,7) (1,11) (0,8)

Que corresponde a las salidas: 12, 13, 15, 10, 11, 10, 12, 10 respectivamente. Apartado b: Pasando estos valores a hexadecimal se tiene: CDFABACA. Apartado c: Para una sola vuelta sí sería muy fácil porque para cada salida hay 4 entradas posibles y así tendríamos que hacer sólo 4^8 = 65.536 intentos con todas las combinaciones. Pero si, como se indica en el enunciado, el algoritmo realiza 20 vueltas, intentar atacar las cajas S (de valores conocidos) por fuerza bruta significaría realizar (4^8)^20 = 2,14 x 10

96 intentos, un valor muy alto.

Ejercicio Nº 2 2,5 puntos. Recomendado: 45 minutos Se diseña un algoritmo de cifra en flujo contando con dos registros LFSR de tipo primitivo:

- Generador LFSR1: polinomio x3 + x + 1

- Generador LFSR2: polinomio x4 + x + 1

La salida de ambos generadores entra a una etapa de multiplicación (X) en la que los bits de cada secuencia se multiplican entre sí, dando lugar a la secuencia cifrante del sistema o clave K. Nota: las secuencias que se piden hay que encontrarlas, no sólo escribir el conjunto de bits. Se pide:

a) Encuentra la secuencia cifrante y el periodo de LFSR1 para la semilla: 101 (0,5 puntos)

b) Encuentra la secuencia cifrante y el periodo de LFSR2 para la semilla: 1001 (0,5 puntos) c) Encuentra los 20 primeros bits de la secuencia de salida clave K (0,5 puntos) d) ¿Cuál será el periodo de la secuencia de salida K y porqué? (0,5 puntos) e) ¿Qué le encuentras de bueno y qué de malo a este sistema? (0,5 puntos)

Page 164: Solución Exa Jun 95_002 (1)

SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2008

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 3 (véase el anverso)

SOLUCIÓN: Apartado a: Registro LFSR1: S1 S2 S3

1 0 1 Si El XOR se realizará entre el bit de la tercera celda y el de la primera. Evolución del registro:

1 0 1 1

0 1 0 0

0 0 1 1

1 0 0 0

1 1 0 0

1 1 1 1

0 1 1 1 1 0 1 semilla Si = 1010011 El periodo es igual a 7 = 2

3 – 1, máximo para este tipo de registro.

Apartado b: Registro LFSR2: S1 S2 S3 S4

1 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 1 1

0 1 0 0 0

0 0 1 0 0

0 0 0 1 1

1 0 0 0 0

1 1 0 0 0

1 1 1 0 0

1 1 1 1 1

0 1 1 1 1

1 0 1 1 1

0 1 0 1 1

1 0 1 0 0

1 1 0 1 1

0 1 1 0 0

0 0 1 1 1 1 0 0 1 semilla Si = 100100011110101 El periodo es igual a 15 = 2

4 – 1, máximo para este tipo de registro.

Apartado c: Registro LFSR1: 10100111010011101001 Registro LFSR1: 10010001111010110010 Producto: 10000001010010100000 (suponiendo que se trata de una función AND) Apartado d: El periodo del sistema de cifra será mcm (7, 15) = 105 Apartado e: Aunque aumenta el periodo al producto entre ambos generadores y así también la complejidad lineal, lo que es un factor a favor, al tratarse de un producto habrá muchos ceros en la secuencia de clave, por lo que ésta será poco aleatoria. Incluso podría darse el caso que algunos bytes del mensaje se transmitiesen en claro si alguna(s) cadena(s) de 8 ceros seguidos coincide con los bytes del mensaje.

Ejercicio Nº 3 2,5 puntos. Recomendado: 45 minutos Adela enviará de forma confidencial el mensaje HOLA a Benito, usando RSA y cifrando bloques de 1 carácter según el valor decimal del ASCII correspondiente. Por ejemplo A = 65.

Page 165: Solución Exa Jun 95_002 (1)

SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2008

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 4 (véase el anverso)

Datos públicos de Benito: n = 713, e = 13 Nota: los cálculos de inversos deben hacerse de forma obligada con el algoritmo extendido de Euclides y las cifras con el algoritmo de exponenciación rápida visto en clase y apuntes. Si sólo se indica el valor sin hacer y escribir estas operaciones la puntuación será 0,1. Se pide: a) Cifra todo el mensaje (1,0 punto)

b) Encuentra la clave privada de Benito (0,5 puntos) c) Descifra sólo el primer criptograma (0,5 puntos)

d) ¿Qué sucede si Adela envía a Benito el carácter D cifrado y porqué? (0,5 puntos) Ayuda: 45010 = 111000010.

SOLUCIÓN: Apartado a:

HOLA = 72, 79, 76, 65 en valor decimal del código ASCII entregada en examen. Como Adela cifra el

mensaje a Benito, usaremos la clave pública de Benito nB, eB: C1 = H

eB mod nB = C1 = 72

13 mod 713

C2 = OeB

mod nB = C2 = 7913

mod 713 C3 = L

eB mod nB = C3 = 76

13 mod 713

C4 = AeB

mod nB = C4 = 6513

mod 713 Como 1310 = 1101 = b3b2b1b0, según el algoritmo pedido Criptograma C1, M = 72:

i = 3 b3 = 1 x = 12 x 72 mod 713 x = 72

I = 2 b2 = 1 x = 722 x 72 mod 713 x = 349

i = 1 b1 = 0 x = 3492 mod 713 x = 591

i = 0 b0 = 1 x = 5912 x 72 mod 713 x = 9 C1 = 9

Criptograma C2, M = 79: i = 3 b3 = 1 x = 1

2 x 79 mod 713 x = 79

I = 2 b2 = 1 x = 792 x 79 mod 713 x = 356

i = 1 b1 = 0 x = 3562 mod 713 x = 535

i = 0 b0 = 1 x = 5352 x 79 mod 713 x = 406 C2 = 406

Criptograma C3, M = 76: i = 3 b3 = 1 x = 1

2 x 76 mod 713 x = 76

I = 2 b2 = 1 x = 762 x 76 mod 713 x = 481

i = 1 b1 = 0 x = 4812 mod 713 x = 349

i = 0 b0 = 1 x = 3492 x 76 mod 713 x = 710 C3 = 710

Criptograma C4, M = 65: i = 3 b3 = 1 x = 1

2 x 65 mod 713 x = 65

I = 2 b2 = 1 x = 652 x 65 mod 713 x = 120

i = 1 b1 = 0 x = 1202 mod 713 x = 140

i = 0 b0 = 1 x = 1402 x 65 mod 713 x = 582 C4 = 582

Apartado b:

Benito: nB = 713, luego pB = 31, qB = 23. Luego (nB) = (pB-1)(qB-1) = 30 x 22 = 660.

DB = inv [eB, (nB)] = inv (13, 660) i yi gi ui vi

0 -- 660 1 0

1 -- 13 0 1

2 50 10 1 -50

3 1 3 -1 51

4 1 1 4 -203

5 3 0

La clave privada de Benito será dB = -203 + 660 = 457. Apartado c:

Benito recibe C1 = 9, luego. Como dato 45010 = 111000010, si le sumamos 7, se obtiene dB = 457 = 111001001, luego:

Page 166: Solución Exa Jun 95_002 (1)

SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2008

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 5 (véase el anverso)

Criptograma recibido C1 = 9: i = 8 b8 = 1 x = 1

2 x 9 mod 713 x = 9

I = 7 b7 = 1 x = 92 x 9 mod 713 x = 16

i = 6 b6 = 1 x = 162 x 9 mod 713 x = 165

i = 5 b5 = 0 x = 1652 mod 713 x = 131

i = 4 b4 = 0 x = 1312 mod 713 x = 49

I = 3 b3 = 1 x = 492 x 9 mod 713 x = 219

i = 2 b2 = 0 x = 2192 mod 713 x = 190

i = 1 b1 = 0 x = 1902 mod 713 x = 450

i = 0 b0 = 1 x = 4502 x 9 mod 713 x = 72

Que es el valor ASCII del carácter H enviado. Apartado d: Si el mensaje es la letra D (68), se cifrará como: C = D

eB mod nB = C = 68

13 mod 713

Como 1310 = 1101 = b3b2b1b0, según el algoritmo pedido Criptograma C, M = 68:

i = 3 b3 = 1 x = 12 x 68 mod 713 x = 68

I = 2 b2 = 1 x = 682 x 68 mod 713 x = 712

i = 1 b1 = 0 x = 7122 mod 713 x = 1

i = 0 b0 = 1 x = 12 x 68 mod 713 x = 68

Se obtiene el mismo carácter, se transmite en claro. Esto es debido a que se trata de uno de los números no cifrables de dicha clave. Los 21 números no cifrables (no pedido en este examen) de la clave de Benito son los siguientes: 0, 1, 68, 92, 93, 160, 161, 185, 253, 254, 346, 367, 459, 460, 528, 552, 553, 620, 621, 645, 712. Nota: todos estos cálculos se han hecho con una calculadora simple, no científica.

Page 167: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2008

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 1 (véase el anverso)

SEGURIDAD INFORMÁTICA Miércoles 24 de septiembre de 2008

En esta primera parte del examen (Teoría y Prácticas) que se entrega en una hoja aparte y se recogerá transcurridos 60 minutos

del comienzo del examen, no está permitido el uso de apuntes ni libros. En la segunda parte (Ejercicios) con una duración de 120

minutos, sí podrás utilizar libros de la asignatura, apuntes y calculadora. La duración total del examen es de 3 horas.

1ª PARTE: TEORÍA Y PRÁCTICAS (3 puntos: 60 minutos)

Cuestión de Teoría Nº 1 1,0 punto (0,1 c/u). Recomendado: 20 minutos Para cada frase, elige una opción (separadas por signos | |) y escribe la respuesta más acertada: 1. La clave del antiguo sistema de cifra conocido como escítala residía en la siguiente propiedad del

artilugio usado | su longitud | su diámetro | su peso | su color | su diámetro 2. Para una buena seguridad del algoritmo de cifra simétrica, se requiere que la entropía de su clave

sea | muy baja | mayor que 1 | muy alta | menor que 1 | muy alta

3. Las claves pública y privada en RSA se calculan en el cuerpo | (N) | N-1 | N | N/2 | (N) 4. | A5 | ElGamal | AES | RSA | basa su seguridad en el problema del logaritmo discreto ElGamal

5. El nuevo estándar de algoritmo de cifra simétrica es | TripleDES | RC4 | WEP | AES | AES

6. Sistemas como openSSL y PGP se dicen que son criptográficamente híbridos porque | realizan un cifrado doble | usan criptografía simétrica y asimétrica | usan dos o más claves | lo cifrado se

descifra usando claves inversas | usan criptografía simétrica y asimétrica

7. El espacio de claves de una clave simétrica de 128 bits será igual a | 264

| 2128

| 2127

| 2256

| 2128

8. Para firmarle la clave pública a otra persona usamos | nuestra clave pública | la clave de sesión

intercambiada | la clave de un tercero | nuestra clave privada | nuestra clave privada 9. Usando openSSL generamos una clave RSA de 1.024 bits y comprobamos que tiene 37 claves

privadas parejas. Las dimensiones de las claves privadas parejas podrían estar en la siguiente

franja de bits | 1.010 a 1.024 | 516 a 1.024 | 1.023 a 1.204 | 1.024 a 2.048 | 1.010 a 1.024 10. Si usamos PGP para cifrar un mismo documento con la misma clave K pero en dos instantes

distintos, el resultado será | dos criptogramas exactamente iguales | dos criptogramas iguales

pero con distintas fechas de guardado | dos criptogramas que difieren sólo en el tamaño en bits |

dos criptogramas distintos | dos criptogramas distintos

Cuestión de Teoría Nº 2 1,0 punto (0,50 c/u). Recomendado: 20 minutos a) Adela y Benito quieren intercambiar un mensaje secreto corto (una palabra) usando para ello RSA.

Ambos han creado sus claves y poseen la clave pública del otro. ¿Pueden hacerlo? ¿Qué deberían hacer en este caso? ¿Es común el uso de RSA para este intercambio de mensajes de texto?

Sí pueden hacerlo. En este caso, deberían codificar el mensaje a un valor numérico en función del tamaño del cuerpo de cifra n, por ejemplo de cifrando el valor decimal ASCII byte a byte o bien agrupando más bits si así lo permite el valor de n, o incluso menos si n fuese muy pequeño. No obstante, dado que el sistema RSA es muy lento, no se usa para cifrar mensajes. Este sistema se usa sólo para cifrar números, como es el caso del intercambio de una clave de sesión o bien la firma digital de un hash.

b) Cuando ciframos un correo usando por ejemplo PGP o GnuPG al criptograma resultante se le añade lo

que se conoce como armadura o en inglés “armor”. ¿Qué significa eso y por qué se usa?

Significa que se cambia el resultado de la cifra agrupando los bits en grupos de 6 y codificando esa nueva salida en el código base 64, que consiste en las 26 letras mayúsculas (sin la Ñ), las 26 letras minúsculas (sin la ñ), los 10 dígitos y los signos + y / es decir 64 elementos. Si no se forma un nuevo grupo de 6 bits al final de la cadena, se añade el signo = para indicar relleno. Esta operación sirve para que cualquier cliente de correo pueda interpretar el código (todos son valores imprimibles). Todos los archivos que se añaden (attach) a un e-mail vienen codificados de esta manera.

Cuestión de Prácticas Obligatorias 1,0 punto (0,50 c/u). Recomendado: 20 minutos

Page 168: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2008

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 2 (véase el anverso)

a) Indica en qué consiste un ataque de Berlekamp-Massey. ¿A qué sistemas de cifra en flujo afecta, cómo y porqué prospera? ¿Qué debe hacerse para que la cifra no se vea afectada por este ataque?

Consiste en conseguir 2n bits de una secuencia de 2n-1 bits de una clave de un sistema de cifra en flujo

cuya clave se genera con LFSR de polinomio primitivo. Se resuelve un sistema de n ecuaciones con n-1 incógnitas con datos binarios, de fácil solución mediante matrices. Como resultado del ataque, se obtiene la configuración de ese LFSR y como cualquier secuencia de n bits excepto todos 0s es válida como semilla, se puede generar la secuencia completa de de 2

n-1 bits.

La solución es aumentar la complejidad lineal añadiendo varios LFSR y otros dispositivos de selección de bits de los mismos, de forma que el comportamiento de la secuencia final de clave no sea predecible.

b) ¿Por qué al crear una clave RSA de gran tamaño se pueden conocer fácilmente los valores de todas las

claves privadas parejas y por el contrario es muy difícil conocer todos los números no cifrables?

Porque el cálculo de las claves privadas parejas es el resultado de una ecuación simple en que todas estas claves se encuentran separadas por un valor constante. En cambio, para conocer los valores de los números no cifrables hay que plantear un conjunto de ecuaciones en los primos p y q, dos de esas ecuaciones requieren un cómputo por fuerza bruta, que es imposible realizarlo en un tiempo razonable cuando el valor de n es grande. Estas ecuaciones son ¿X

e mod p = X? y X

e mod q = X? que deben

valorarse para los valores de 1 < X < n-1. Si n = 1.204 bits, lo común es que p y q sean primos de 512 bits cada uno, un número decimal con unos 160 dígitos.

2ª PARTE: EJERCICIOS (7 puntos: 120 minutos)

Ejercicio Nº 1 2,0 puntos (0,5 c/u). Recomendado: 30 minutos 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 porqué 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

Page 169: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2008

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 3 (véase el anverso)

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 Nº 2 2,5 puntos (0,5 c/u). Recomendado: 45 minutos 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 x

5 + x

3 + 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 + x

3 + 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: se repite la secuencia. 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 = 0 1 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 1 S = 1 0 0 0 1 0 0 1 1 0 1 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 1 1

Obteniendo:

C = 1 1 0 0 1 0 0 0 1 1 1 0 1 1 0 1 0 1 0 1 0 0 0 1 0 0 0 1 1 1 1 1 0 0 0 0 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.

Page 170: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2008

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 4 (véase el anverso)

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 = 1 1 0 0 1 0 0 0 1 1 1 0 1 1 0 1 0 1 0 1 0 0 0 1 0 0 0 1 1 1 1 1

S = 1 0 0 0 1 0 0 1 1 0 1 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 1 1 1 0 Haciendo el XOR:

M = 0 1 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 1 M = 01000001 01000010 01000010 01000001 = ABBA

Nota: puedes comprobar la solución usando el software FlujoLab.

Ejercicio Nº 3 2,5 puntos (0,5 c/u). Recomendado: 45 minutos

Adela enviará a Benito el mensaje 101 de forma confidencial con RSA, añadiendo además su firma al mismo mensaje. Las claves públicas de ambos son las que se indican:

Adela: nA = 589, eA = 11; Benito: nB = 559, eB = 17 (Valores de los primos: 10 < p < 20). Se pide:

a) Encuentra las claves privadas de Adela y Benito.

b) Cifra el mensaje 101 que A envía a B.

c) Descifra el criptograma recibido por B.

d) Firma el mensaje 101 que A envía a B.

e) Comprueba la firma en el extremo de B. Usar siempre el Algoritmo Extendido de Euclides y el Algoritmo de Exponenciación Rápida vistos en clase y que encontrarás también en soluciones de exámenes.

SOLUCIÓN: Apartado a: Viendo si los valores 589 y 559 son divisibles por 13, 17 ó 19 (los únicos primos en el intervalo dado), se obtiene:

- Claves de Adela:

Adela: nA = 589, pA = 19, qA = 31, eA= 11, (nA) = 18x30 = 540

Clave privada de Adela: dA

dA = inv [eA, (nA)] = inv (11, 540) i yi gi ui vi

0 -- 540 1 0

1 -- 11 0 1

2 49 1 1 - 49

3 11 0

La clave privada de Adela será dA = - 49 + 540 = 491

- Claves de Benito: En este caso:

Benito: nB = 559, pB = 13, qB = 43, eB = 17, (nB) = 12x42 = 504

Clave privada de Benito: dB

dB = inv [eB, (nB)] = inv (17, 504) i yi gi ui vi

0 -- 504 1 0

1 -- 17 0 1

2 29 11 1 - 29

3 1 6 - 1 30

Page 171: Solución Exa Jun 95_002 (1)

SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2008

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 5 (véase el anverso)

4 1 5 2 - 59

5 1 1 - 3 89

6 1 0

La clave privada de Benito será dB = 89

Apartado b:

Adela usará la clave pública de Benito (17, 559) y enviará el criptograma C = MeB

mod nB C = 101

17 mod 559 (172 = 10001 = b4b3b2b1b0)

i = 4 b4 = 1 x = 12 x 101 mod 559 x = 101

i = 3 b8 = 0 x = 1012 mod 559 x = 139

i = 2 b2 = 0 x = 1392 mod 559 x = 315

i = 1 b1 = 0 x = 3152 mod 559 x = 282

i = 0 b0 = 1 x = 2822 x 101 mod 559 x = 212

El criptograma que A envía a B es C = 10117

mod 559 = 212 Apartado c:

Benito usará su clave privada (89) y descifrará el criptograma M = CdB

mod nB C = 212

89 mod 559 (892 = 1011001 = b6b5b4b3b2b1b0)

i = 6 b6 = 1 x = 12 x 212 mod 559 x = 212

i = 5 b5 = 0 x = 2122 mod 559 x = 224

i = 4 b4 = 1 x = 2242 x 212 mod 559 x = 101

i = 3 b3 = 1 x = 1012 x 212 mod 559 x = 400

i = 2 b2 = 0 x = 4002 mod 559 x = 126

i = 1 b1 = 0 x = 1262 mod 559 x = 224

i = 0 b0 = 1 x = 2242 x 212 mod 559 x = 101

B recupera el mensaje enviado M = 101. Apartado d:

Adela usará su clave privada (491) para firmar el documento F = MdA

mod nA F = 101

491 mod 589 (4912 = 111101011 = b8b7b6b5b4b3b2b1b0)

i = 8 b8 = 1 x = 12 x 101 mod 589 x = 101

i = 7 b7 = 1 x = 1012 x 101 mod 589 x = 140

i = 6 b6 = 1 x = 1402 x 101 mod 589 x = 560

i = 5 b5 = 1 x = 5602 x 101 mod 589 x = 125

i = 4 b4 = 0 x = 1252 mod 589 x = 311

i = 3 b3 = 1 x = 3112 x 101 mod 589 x = 256

i = 2 b2 = 0 x = 2562 mod 589 x = 157

i = 1 b3 = 1 x = 1572 x 101 mod 589 x = 435

i = 0 b3 = 1 x = 4352 x 101 mod 589 x = 442

La firma que A envía a B es F = 101491

mod 589 = 442 Apartado e:

Benito usará la clave pública de Adela (11, 589) para comprobar la firma FeA

mod nA ¿442

11 mod 589 = M? (112 = 1011 = b3b2b1b0)

i = 3 b3 = 1 x = 12 x 442 mod 589 x = 442

i = 2 b2 = 0 x = 4422 mod 589 x = 405

i = 1 b1 = 1 x = 4052 x 442 mod 589 x = 218

i = 0 b1 = 1 x = 2182 x 442 mod 589 x = 101

B comprueba la firma de A al obtener el mismo mensaje M = 101. Nota: todos estos cálculos se pueden hacer con una simple calculadora no científica (ver explicación en exámenes anteriores) y también con la calculadora de Windows. Puedes además comprobar la solución de las claves y cifras usando el software genRSA o bien ExpoCrip.