50% encontró este documento útil (2 votos)
3K vistas171 páginas

Solución Exa Jun 95 - 002

Este documento contiene la solución a un examen de seguridad informática de junio de 1995. Incluye las respuestas a preguntas teóricas sobre criptografía como RSA y DES, así como la solución a tres ejercicios prácticos que involucran métodos de cifrado como Playfair, mochila de Merkle-Hellman y RSA aplicado a un mensaje de texto.

Cargado por

Jeffrey Perez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
50% encontró este documento útil (2 votos)
3K vistas171 páginas

Solución Exa Jun 95 - 002

Este documento contiene la solución a un examen de seguridad informática de junio de 1995. Incluye las respuestas a preguntas teóricas sobre criptografía como RSA y DES, así como la solución a tres ejercicios prácticos que involucran métodos de cifrado como Playfair, mochila de Merkle-Hellman y RSA aplicado a un mensaje de texto.

Cargado por

Jeffrey Perez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

SOLUCION EXAMEN SEGURIDAD INFORMÁTICA Convocatoria Junio 1995

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 pi2, 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 Fi2 > Fi(Fi-1) si bien N(N-1) N2,
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.

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


SOLUCION EXAMEN SEGURIDAD INFORMÁTICA Convocatoria Junio 1995

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.

0 0 1 1

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.

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


SOLUCION EXAMEN SEGURIDAD INFORMÁTICA Convocatoria Junio 1995

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

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


SOLUCION EXAMEN SEGURIDAD INFORMÁTICA Convocatoria Junio 1995

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 25 < 37 < 26.

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.
-1
Inv (3,20) = 7 (7*3 = 21 = 20*1 + 1) w =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 = Meb (mod nb)

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


SOLUCION EXAMEN SEGURIDAD INFORMÁTICA Convocatoria Junio 1995

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 = m1eb (mod nb) = 073 (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 = c1db (mod nb) = 137 (mod 33) = 07


m2 = c2db (mod nb) = 097 (mod 33) = 15
db 7
m3 = c3 (mod nb) = 11 (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

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


EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 1995

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.

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


EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 1995

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%

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


EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 1995

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

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


EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 1995

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

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


EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 1995

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


-1 -1
K = x K mod 27 = mod 27
-k21 k11 -1 2-1 2 2-1

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

14 0 14 0
-1
K = 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

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


EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 1995

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
-1
mimj = K 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:

26 < 109 < 27

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


EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 1996

SOLUCIÓ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:
16 18 15
a) K = 3 21 2 => det(K) mod 27 = - 27 = 0 No es válida (matriz singular mod 27)
20 15 19

3 4 19
b) K = 2 21 1 => det(K) mod 27 = - 8 = 19 Es válida.pues mcd (19,27) = 1
18 8 18

12 8 18
c) K = 0 13 3 => det(K) mod 27 = - 9 = 18 No es válida pues mcd (18,27) = 9
15 11 0

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


EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 1996

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 = 26 32 5
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.

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


EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 1996

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.

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


EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 1996

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:
bv
m 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.

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


EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 1996

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 = M1PeL mod nL, M2PeL mod nL = 197 mod 33, 87 mod 33 = 13, 2.
Mensaje de Lola a Paco: ML = NO = M1L, M2L = 13, 15.
CL = M1LeP mod nP, M2LeP mod nP = 1311 mod 35, 1511 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
dP 11
Rúbrica de Paco: rP = S mod nP = 19 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 = C1PdL mod nL, C2PdL mod nL = 133 mod 33, 23 mod 33 = 19,8 = SÍ.
Comprobación de la firma de Paco:
rPeP mod nP = 2411 mod 35 = 19, que coincide con el primer carácter S.
Descifrado del mensaje de Lola por parte de Paco:
ML = C1LdP mod nP, C2LdP mod nP = 2711 mod35, 1511 mod35 = 13,15 = NO.
Comprobación de la firma de Lola:
rLeL mod nL = 197 mod 33 = 13, que coincide con el primer carácter N.

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


EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Febrero 1997

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.

Ayuda: Aparecen 4 cadenas de 4 caracteres que se repiten en el


criptograma: JGAZ, NMON, PNFA y AZMJ.

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 PQ 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...

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


EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Febrero 1997

(párrafo de Juan Salvador Gaviota)

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


EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Febrero 1997

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.

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


EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Febrero 1997

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.

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

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 = M1e mod n = 17133 mod 3127 = 2899


C2 = M2e mod n = 06223 mod 3127 = 0436
C3 = M3e mod n = 23213 mod 3127 = 0153
C4 = M4e mod n = 24103 mod 3127 = 2693
C5 = M5e mod n = 05063 mod 3127 = 2606
C6 = M6e mod n = 17213 mod 3127 = 2534

Luego, C = 2899 0436 0153 2693 2606 2534

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


EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Febrero 1997

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.

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


EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Febrero 1997

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 = C1dP mod 55 = 229 mod 55 = 22 T
dP 9
M2 = C2 mod 55 = 30 mod 55 = 40 (no existe representación)
M3 = C3dP mod 55 = 419 mod 55 = 51 (no existe representación)
dP 9
M4 = C4 mod 55 = 48 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 = C1dC mod 77 = 2237 mod 77 = 22 T
M2 = C2dC mod 77 = 3037 mod 77 = 02 A
dC 37
M3 = C3 mod 77 = 41 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)

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


EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Febrero 1997

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.

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


EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 1996

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

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


EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 1996

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 735mod 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

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


EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 1996

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.

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


EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 1996

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

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


EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 1996

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 = 23017 mod 2867 = 2410; C2 = 12057 mod 2867 = 2689
C3 = 28217 mod 2867 = 1364; C4 = 9017 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 = MdB mod nB
r = 23013 mod 3127, 12053 mod 3127, 28213 mod 3127, 9013 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 = (23017)1183 mod 2867, (12057)1183 mod 2867,
(28217)1183 mod 2867, (9017)1183 mod 2867
Por ser inversos 7 y 1183 en (nC) = 2760, se recupera M = VALE TIA.

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


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

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 -1 Ci mod n
c) Ci = (a Mi + b) mod n Mi = a -1 (Ci - b) mod n
-1
donde a = 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 216 y producto módulo 216+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 23. ¿Cuál es el inverso de 2 en 23+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 216 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 216 = 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 216 (0, …, 65.535) considerando que 0 = 65.536 y
reduciendo todas las operaciones en módulo 216+1.

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


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

2b) Cálculo de X Y mod 23+1 = 2 Y mod 9. Se supone 0 = 23 = 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 23+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.

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


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

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

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


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

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
-1
Por lo tanto, la trampa w = (-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

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


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

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 @;.
16
2e) Puesto que la suma de los elementos de la mochila fácil es 2 -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 abb 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:
713 mod 991 = 777 2213 mod 991 = 323 inv(323,991) = 135
15
256 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(abb) ] mod p
Mi=M1M2M3M4 = HOLA = 72 79 76 65
Como: ab mod p = 713 mod 991 = 777 (dado en el enunciado)
y (abb) mod p = 2213 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 = 45 mod 1009 = 15

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


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

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(abb) mod p] / (ab )b mod p = [Mi(abb) inv((ab )b , p))] mod p
Como (ab )b mod p = (abb) mod p = 2213 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:
(aaa )r mod q = 25615 mod 1009 = 576 (dado en el enunciado) y luego calcula:
(aaa )r rs mod q = 576 151 mod 1009 = 568
Este último valor deberá coincidir con (aa)M mod q = 465 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.

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


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

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 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2
Alfabeto A B C D E F G H I J K
0 L
1 M
2 N
3 Ñ
4 O
5 P
6 Q
7 R
8 S
9 T
0 U
1 V
2 W
3 X
4 Y
5 Z
6
Alfabeto
Claro 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
Cifrado
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.

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


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

C A R 2 0 18 A V E 0 22 4
I Ñ O = 8 14 15 N T U = 13 20 21
S A S 19 0 19 R A S 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 28-
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,4x1038 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.

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


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

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 22 X 1
corresponde el mensaje en claro VE = K-1 =
4 X2
(22 4), luego ésta será la primera
columna de la matriz inversa:
Los valores de X1 y X2 lo obtenemos a partir de algún par digrámico mediante la
ecuación M = K-1 C. 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 22 X 1 E
=
I 4 X2 B

a1) B = (22 E + X1 B) mod 27 Luego la matriz inversa será:


1 = (22 4 + X1) mod 27
X1 = (1 - 22 4) mod 27 = 21 22 21
a2) I = (4 E + X2 B) mod 27 K-1 =
4 19
8 = (4 4 + X2) mod 27
X2 = (8 - 4 4) mod 27 = 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

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


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

19 4 19 21
Adj(K-1) = T (Adj (K-1)) =
21 22 4 22
19 19 21 19 10 6
Luego K= mod 27 K=
4 19 22 19 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
eB 7
La ecuación de cifra será Ci = Mi mod nB = Mi 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 = Ci mod nB = Ci36.585.143 mod
dB

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:

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


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

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 Bloque Bloque


I II 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.

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


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

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 = r1dA mod nA = 21.83251.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.

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


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

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)

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


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

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 2128 = 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.

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


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

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

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


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

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 0 11 8 17
AM UU 0 12 21 21
IN SÑ 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á:
15 13
K
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|
4 2 4 13 4 14
Adj( K) T(Adj( K)) mod 27
13 15 2 15 25 15
Como |K| mod 27 = (15x4 - 13x2) = (60 - 26) = 34 mod 27 = 7 e inv (7,27) = 4 entonces:
4x4 14x4 16 2
Inversa( K) mod 27
25x4 15x4 19 6
Efectivamente, con esta matriz se descifra el criptograma. Como C 1C2 = IQ = 8 17,
entonces:
M1 16 2 C1 M1 16 2 8 16x8 2x17 0 A
mod 27
M2 19 6 C2 M2 19 6 17 19x8 6x17 11 L
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:
C1 3 8 M1 3 8 17 3x17 8x21 3 D
mod 27
C2 4 26 M2 4 26 21 4x17 26x21 20 T

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


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

C3 3 8 M3 3 8 4 3x4 8x12 0 A
mod 27
C4 4 26 M4 4 26 12 4x4 26x12 4 E

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.

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


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

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

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


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

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 = 1010 mod 47 = 21, valor que envía a Benito.
Por su parte, Benito elige b = 8 y calcula b mod p = 108 mod 47 = 27 que envía a
Adelaida. Luego, Adelaida calcula 27a mod p = 2710 mod 47 = 25 y Benito calcula 21b
mod p = 218 mod 47 = 25. Ambos comparten el valor ab mod p = 1010*8 mod 47 = 1080
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.

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


EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 1998

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.

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


EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 1998

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 2128 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 264 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.

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


EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 1998

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:

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


EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 1998

12 8 11
K1 8 20 0 |K1| = [12(20*4-20*0) - 8(8*4-13*0) + 11(8*20-13*20)] mod
13 20 4
27=9
2 0 11
K2 0 22 4 |K2 = [2(22*19-0*4) - 0 + 11(0*0-18*22)] mod 27 = 17
18 0 19
0 12 0
K3 20 8 19 |K3| = [0 - 12(20*19-20*19) + 0] mod 27 = 0
20 0 19
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|
2 0 11 13 18 9 13 0 1
K 0 22 4 Adj( K) 0 2 0 T(Adj( K)) 18 2 19
18 0 19 1 19 17 9 0 17
Como el inv (|K|, n) = inv (17, 27) = 8 entonces la matriz de descifrado será:
13 0 1 23 0 8
inv (K ) 18 2 19 8 mod 27 9 16 17
9 0 17 18 0 1
c) C = SDN PIN HYX C1 = (19 3 13); C2 = (16 8 13) y C3 = (7 25 24).
23 0 8 19
M1 9 16 17 3
18 0 1 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
23 0 8 16
M2 9 16 17 8
18 0 1 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
23 0 8 7
M3 9 16 17 25
18 0 1 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

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


EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 1998

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
15
Nota: 32.768 = 2

Preguntas:
a) Rellene las siete operaciones de suma módulo 216 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 216 + 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 216 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

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


EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 1998

32.768*32.765 = 10.740.203.520, la calculadora indica desbordamiento, se


calcula (25*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 216 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?

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


EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 1998

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 = 5111 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 216 < 65.551 < 217,
habría que transmitir con un mínimo de 17 bits para asegurar que aquellos valores
comprendidos entre 65.535 (216-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 rs mod p = 18.60945.831 mod 65.551 = 43.254
A continuación calcula k = ( a)r rs mod p = (5110)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 = (5110) 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 = (5134.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
(p-1)/q
será un generador en p si 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.

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


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

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

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


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

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) = (x2 + 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) = (x3 + x2)+(x2 + x)+(x + 1) = x3 + 2x2 + 2x + 1
Reduciendo módulo 2 nos queda f(x) = x3 + 1 cuya representación es:

S1 S2 S3

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 2n 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

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


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

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
2m+1 por lo que se intenta encontrarla en el espacio 2m+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
m+1
espacio 2 , 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
m+3 13
inversos y generación de mochila fácil en vez de 2 =2 = 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.

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


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

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:

1 8 0 11 3 19
0 1 0 11 12 26
0 23 25 8 4 1
0 4 11 1 5 26
0 0 19 19 19 15

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:
1 0 0 4 15 0 4 11 1
Luego:
0 1 0 11 12 26 K 15 12 1
0 0 1 1 1 15 0 26 15
En este caso, la clave será la traspuesta de la matriz de los vectores unitarios.

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


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

La clave simbólica es K = EL BOMBAZO.


b) C1 4 11 1 M1
C2 15 12 1 M2
C3 0 26 15 M3
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
(12x15 26x1) (15x15 0x1) (15x 26 0x12) 19 18 12
Adj(K ) (11x15 26x1) (4x15 0x1) (4x 26 0x11) mod 27 23 6 4
(11x1 12x1) (4x1 15x1) (4x12 15x11) 26 11 18
Luego:
19 23 26
TAdj( K ) 18 6 11
12 4 18
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á:
19 22 23 22 26 22 13 20 5
inv (K) 18 22 6 22 11 22 mod 27 18 24 26
12 22 4 22 18 22 21 7 18
-1
Y se comprueba que K K mod 27 = I, la matiz de identidad.

Ejercicio Nº 2: (2.0 pts. Tiempo recomendado 30 minutos)


Para el polinomio primitivo f(x) = (x + x2 + 1) se pide:
5

a) Dibujar el registro de desplazamiento LFSR si la semilla es S 1S2S3S4S5 =


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)

S1 S2 S3 S4 S5 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

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


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

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 = 2n – 1 = 25 – 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 2n – 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 B 1B2 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:
215 mod 70.001 = 24.043 2113 mod 70.001 = 20.570
A2 = 0100 0001 (ASCII) V2 = 0101 0110 (ASCII)

SOLUCIÓN:
a) 012345678
HE VOTADO
Primer bloque de firma: 2º 6º 8º mod 9

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


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

00100000 (espacio)
01000001 (A)
01001111 (O)
00101110 B1 = 0010 1110
Segundo bloque de firma: 4º 12º 16º = 4º 3º 7º mod 9
01001111 (O)
01010110 (V)
01000100 (D)
01011101 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 54 x 7
Luego h no debe tener estos factores primos
Como h1 = 55 = 5 x 11 (no es válido) y h2 = 27 = 33 (sí es válido)
Elegirá h = 27 para generar la firma.
c) r = h mod p = 2127 mod 70.001 = [(2113 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 28 (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:

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


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

1º rs mod p = 45.96524.897 mod 70.001 = 59.072


2º ( a) mod p = 2110 mod 70.001 = 67.592 (clave pública de Adelaida)
3º ( a)r mod p = 67.59245.965 mod 70.001 = 22.097
4º k = [( a)r] [rs] mod p = 22.097 59.072 mod 70.001 = 5.337
M
5º mod p = 2111.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
2114.000 mod 70.001 = 16.743
2110.000 mod 70.001 = 969

Nota: Estos valores pueden comprobarse con el software denominado Fortaleza.

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


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

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
2H(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)

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


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

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:

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


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

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:

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


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

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

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


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

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 Y me anulo y me atribulo
lo sepa, y diga: don Mendo y mi honor no disimulo,
es un vil y desahogado, pues aunque el nombre te asombre
que sin pizca de aprensión quien obra así tiene un nombre,
aprovecho una ocasión y ese nombre es el de ... chulo.
que el creyó propicia y obvia La Venganza de Don Mendo.
y pagó a cierto Barón Pedro Muñoz Seca
con alhajas de su novia. 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:
-1
S1’ = S1 w 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
-1
C2 w mod = 16.246 250 mod 9.999 = 4.061.500 mod 9.999 = 1.906

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


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

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

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


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

b) Sí pueden cifrar en sus grupos pues la parte baja del ASCII tiene 128
caracteres (restos del 0 al 127) y Adelaida elige n A = 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 53 107 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.13765 mod 133 = 74 también se obtiene con 44 65 mod 133 ya
que 16.137 mod 133 = 44.

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


SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2000

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:

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


SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2000

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

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


SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2000

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 22n bits a sólo 2n+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};

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


SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2000

= 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 = 2x72; 112 = 24x7; 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”:

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


SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2000

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, 28, 210. 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 2n+1 para los tres valores dados:
26+1 = 64+1 = 65 (no es primo pues 65 = 5 13)
8
2 +1 = 256+1 = 257 (es un número primo, puede ser candidato)
210+1 = 1024+1 = 1025 (no es primo pues 1025 = 5 2 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

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


SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2000

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 264. 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 216. 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: k 1 - 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;
2 2 2
62.940 mod 65.537 = 59.635 59.635 mod 65.537 = 33.457 33.457 mod 65.537 = 64.426
55711 36.211 32.768
36.211 mod 65537 = 7.806 48.949 mod 65.537 = 30.665 5 mod 65.537 = 65.536
4.131.509
5 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:

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


SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2000

h 33
Cálculo r = mod p = 5 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
52 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
-1
h = (-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.21155.711 mod 65.537 = 7.806 (dado en los datos)
( a)r mod 65.537 = (5114)36.211 mod 65.537
Clave pública de Benito ( a) mod 65.537 = (5114) 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
52 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.94936.211 mod 65.537 = 30.665 (dado en los
datos)
s a r
Luego se calcula k=(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 = 216 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

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


SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2000

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.

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


SOLUCIÓN AL EXAMEN DE SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2000

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) x2 + 1; (2) x3 + x + 1; (3) x4 + x3 +
x2 + 1; (4) x4 + x3 + 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) = x2 + 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 x2.
S1 S2 No genera secuencia y no es un polinomio válido.
S
3
(2) p(x) = x + x + 1 (número de etapas n = 3)
Semilla (111) y secuencia cifrante:
+ S1 S2 S3  S
1 1 1 1
S1 S2 S3 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 = 23 – 1 (máximo)
4 3 2
(3) p(x) = x + x + x + 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 ...
S1 S2 S3 S4 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

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


SOLUCIÓN AL EXAMEN DE SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2000

secuencia cifrante. Luego, no es un polinomio


válido.
(4) p(x) = x4 + x3 + 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
S1 S2 S3 S4
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 = 24 – 1 (máximo)
b) Como los únicos dos sistemas que entregan una secuencia máxima T = 2 n
– 1, excluida la cadena de todos ceros y que, por lo tanto, el registro pasa
3
por todos los estados (restos) posibles son el polinomio segundo p(x) = x +
x + 1 y el cuarto p(x) = x4 + x3 + 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 = 2H(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

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


SOLUCIÓN AL EXAMEN DE SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2000

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,418 = 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 DN, 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].

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


SOLUCIÓN AL EXAMEN DE SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2000

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| = (224 - 110) 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

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


SOLUCIÓN AL EXAMEN DE SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2000

I1 = (2216 + 010) mod 27 = 352 mod 27 = 1


I2 = (220 + 07) mod 27 = 0 mod 27 = 0
I3 = (1116 + 410) mod 27 = 216 mod 27 = 0
I1 = (110 + 47) 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

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


SOLUCIÓN AL EXAMEN DE SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2000

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á 48 = 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 (48)5 = 440 = 280 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 232 y la resistencia fuerte ante colisiones (en este
caso la coincidencia de resúmenes de dos mensajes distintos elegidos al
azar) será solamente de 216, 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
92.314 103
38.793 mod 112.169 = 37.394 38.793 mod 112.169 = 523 (92.417 = 92.314+103)
13.000 457
7.815 mod 107.399 = 3.153 7.815 mod 107.399 = 32.219 (39.457 = 3x13.000 + 457)
Operaciones de exponenciación rápida en módulo 107.399:

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


SOLUCIÓN AL EXAMEN DE SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2000

2 4 8 16 32
50.035 = 30.535; 50.035 = 55.506; 50.035 = 68.322; 50.035 = 12.947; 50.035 = 82.369;
64
50.035 = 42.533
Operaciones de exponenciación rápida en módulo 112.169:
2 4 8 16 32
39.656 = 101.125; 39.656 = 42.233; 39.656 = 27.020; 39.656 = 84.548; 39.656 = 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.71841) = – 6111.444 + 16.30941
1 = 6 - 15 = (111.444 – 2.71841 ) – 1(– 6111.444 + 16.30941)
= 7111.444 – 19.02741
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.46173)
= - 2106.680 + 2.92373
8 = 27 - 119 = (106.680 – 1.461  73) – 1(- 2106.680 + 2.92373)
= 3106.680 – 4.38473
3 = 19 – 28 = (– 2106.680 + 2.92373) – 2(3106.680 – 4.38473)
= – 8106.680 + 11.69173
2 = 8 – 23 = (3106.680 – 4.38473) – 2(- 8106.680 + 11.69173)
= 19106.680 – 27.76673
1 = 3 – 12 = (– 8106.680 + 11.69173) – 1(19106.680 – 27.76673)
= 27106.680 + 39.45773
inv (73, 106.680) = 39.457 mod 106.680 = 39.457 dB = 39.457

b) Firma de Adelaida:
rA = HMAdA mod nA = 38.79392.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

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


SOLUCIÓN AL EXAMEN DE SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2000

Según los datos del examen y usando la propiedad de reducibilidad:


rB = (7.81513.000 mod 107.399)3(7.815457 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:


rB mod nB = 50.03573 mod 107.399 732 = 1001001 (dado en el examen)
eB

j 0 1 2 3 4 5 6
j
50.0352 50.035 30.535 55.506 68.322 12.947 82.369 42.533

rBeB mod nB = 50.03568.32242.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:


rAeA mod nA = 39.65641 mod 112.169 412 = 101001 (dado en el examen)

j 0 1 2 3 4 5
j
39.6562 39.656 101.125 42.233 27.020 84.548 58.272

rAeA mod nA = 39.65627.02058.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

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


SOLUCIÓN AL EXAMEN DE SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2000

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 M i: 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á:
R i = R1  R 2  R 3
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

Departamento de Lenguajes, Proyectos y Sistemas Informáticos - UPM pág. 9


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

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 K 1 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)

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


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

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 2s 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 2n–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 2n/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)

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


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

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.

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


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

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) = x5 + 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.

0 1 1 1 0

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)

1 0 0 0 1

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

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


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

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 25-1 = 31 bits. Aunque
algunas condiciones de Golomb se cumplen, este polinomio no sirve. (1.0 punto)
El polinomio p(x) = x5 + x + 1 es factorizable, de hecho:
x5 + x + 1 mod 2 = (x3 + x2 + 1)(x2 + x + 1) mod 2
x5 + x + 1 mod 2 = (x5 + x4 + x3) + (x4 + x3 + x2) + (x2 + x + 1) mod 2
x5 + x + 1 mod 2 = x5 + 2x4 + 2x3 + 2x2 + x + 1 mod 2 (reduciendo ahora mod 2)
x5 + x + 1 mod 2 = x5 + 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.85214.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:

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


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

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.0006.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á reA mod nA = 7.683.13034.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.1302 (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

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


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

ANEXO:
X
Cálculo de 7.683.130 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 Valor Carácter Valor Carácter Valor Carácter


6 bits codificado 6 bits codificado 6 bits codificado 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

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


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

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 = 26 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.

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


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

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 = ax 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?

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


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

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á 280 (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 2n/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)

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


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

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:
2
mcd (S1’, u) = mcd (119, 65.533) = 1 porque 119 = 7 17 y 65.533 = 13 71 (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

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


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

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 = (282) (282) 28 mod 39 = 4 4 28 mod 39 = 19 que envía a B.
Benito descifra el criptograma recibido con su clave privada d B = 5:
Kizq. = 195 mod 39 = (192) (192) 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 = (252) (252) (252) 25 mod 77 = 9 9 9 25 mod 77 = (93) 25 mod 77
= 36 25 mod 77 = 53 que envía a A.
Adelaida descifra el criptograma recibido con su clave privada d A = 43:
X = 5343 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
532 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 = 5343 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.

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


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

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)
¿ k = {(r mod p) [( a) r mod p]} = H(M) mod p ?
s
Comprobación de Firma:
a
a = 4 (clave privada) mod p = 24 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 = [86 mod 11 58 mod 11]
mod 11
H(M)
k = 3 4 mod 11 = 1 -- comprobación -- 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 = [83 mod 11 58 mod 11]
mod 11
H(M)
k = 6 4 mod 11 = 2 -- comprobación -- 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 = [80 mod 11 58 mod 11]
mod 11
H(M)
k = 1 4 mod 11 = 4 -- comprobación -- 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 = [87 mod 11 58 mod 11]
mod 11
H(M) 3
k = 2 4 mod 11 = 8 -- comprobación -- mod p = 2 mod 11 = 8 (SÍ)
Cálculos para H(M) = 4
r = 23 mod 11 = 8 s = [4 - 4 8] 7 mod 10 = 4 k = [84 mod 11 58 mod 11]
mod 11
H(M)
k = 4 4 mod 11 = 5 -- comprobación -- 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 = [81 mod 11 58 mod 11]
mod 11
H(M)
k = 8 4 mod 11 = 10 -- comprobación -- mod p = 25 mod 11 = 10
(SÍ)
Cálculos para H(M) = 6

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


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

r = 23 mod 11 = 8 s = [6 - 4 8] 7 mod 10 = 8 k = [88 mod 11 58 mod 11]


mod 11
H(M)
k = 5 4 mod 11 = 9 -- comprobación -- 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 = [85 mod 11 58 mod 11]
mod 11
H(M)
k = 10 4 mod 11 = 7 -- comprobación -- 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
a = 4 (clave privada) mod p = 34 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 = [50 mod 11 45 mod 11]
mod 11
H(M)
k = 1 1 mod 11 = 1 -- comprobación -- 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 = [57 mod 11 45 mod 11]
mod 11
H(M)
k = 3 1 mod 11 = 3 -- comprobación -- 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 = [54 mod 11 45 mod 11]
mod 11
H(M)
k = 9 1 mod 11 = 9 -- comprobación -- 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 = [51 mod 11 45 mod 11]
mod 11
H(M)
k = 5 1 mod 11 = 5 -- comprobación -- 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 = [58 mod 11 45 mod 11]
mod 11
H(M)
k = 4 1 mod 11 = 4 -- comprobación -- 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 = [55 mod 11 45 mod 11]
mod 11
H(M)
k = 1 1 mod 11 = 1 -- comprobación -- 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 = [52 mod 11 45 mod 11]
mod 11
H(M) 6
k = 3 1 mod 11 = 3 -- comprobación -- mod p = 3 mod 11 = 3 (SÍ)
Cálculos para H(M) = 7
r = 33 mod 11 = 5 s = [7 - 4 5] 7 mod 10 = 9 k = [59 mod 11 45 mod 11]
mod 11
H(M)
k = 9 1 mod 11 = 9 -- comprobación -- 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

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


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

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 = 37 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.

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


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

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 / 240 / 1040 / 2 1040) 240.
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.

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


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

(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
16
obstante, si se concatena en bits, dos bytes serán 16 bits y como 2 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

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


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

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.
16 16
Datos del examen: 2 = 0x 10000; 2 + 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
16
Bloque 7 Z7 = F01E = 1111 0000 0001 1110 (operación multiplicación mod 2 + 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
16
Bloque 10 Z10 = C312 = 1100 0011 0001 0010 (operación multiplicación mod 2 + 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).

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


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

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.2662 = 152.409 152.4092 = 116.730
2 2
116.730 = 190.793 190.793 = 160.873 160.8732 = 219.719
2 2 2
219.719 = 227.005 227.005 = 48.839 48.839 = 50.999
2 2
50.999 = 148.341 148.341 = 212.569 212.5692 = 133.450
2 2
133.450 = 11.300 11.300 = 95.810 95.8102 = 104.299
(104.299) (148.341) (160.873) (116.730) = 160.873
Otros datos de interés: 33.833 = 1000010000101001; 10BD = 1000010111101 = 4.285
15 16 17 18 19 20
2 = 32.768; 2 = 65.536; 2 = 131.072; 2 = 262.144; 2 = 524.288; 2 = 1.048.576
SOLUCIÓN:
eB
a) La ecuación de envío del bloque 1 de la clave K desde A hacia B será: K1 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á: K1eB mod nB = 4.28533.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.2852 (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 (218 < 271.477 < 219),
en cambio B puede enviar a A un bloque máximo de 19 bits (219 < 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

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


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

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
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 Valor Carácter Valor Carácter Valor Carácter


6 bits codificado 6 bits codificado 6 bits codificado 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

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


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

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(46) / log2(64) / log2(6 4). log2(64).
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?

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


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

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

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


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

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

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. 1 0 0 1 1
S1 S2 S3 S4 S5 Si
SOLUCIÓN:
5 4 2
a) El polinomio asociado es p(x) = x + x + x + 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.

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


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

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

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


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

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 232 = 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 (232 – 1) y el valor dado aquí
31
es justo un bit menos (2 – 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.

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


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

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

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
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 Valor Carácter Valor Carácter Valor Carácter


6 bits codificado 6 bits codificado 6 bits codificado 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

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


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

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 C O L U M N A
FILAS8 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

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


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

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)

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


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

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}
-1
b) C1 = 5.507 M1 = C1 w mod m = 5.507 2.519 mod 3.889 = 70 [01010]
-1
C2 = 843 M2 = C2 w mod 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) f(x1) = x4 + x3 + 1
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?
f(x2) = x3 + x2 + 1 Si
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:

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


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

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
254 mod nA = 390.625; 258 mod nA = 1.266.896.401; 2516 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.0601 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)
eA 17
b) C = KS mod nA = 25 mod 3.152.520.713. Como 17 = 10001 = b0b1b2b3b4
j 0 1 2 3 4
j
252 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.

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


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

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


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
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 Valor Carácter Valor Carácter Valor Carácter


6 bits codificado 6 bits codificado 6 bits codificado 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

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


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

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.

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


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

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]

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


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

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 S i
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á 48 = 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).

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


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

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 =
7
36 mod 95. Y dado que 7 = 1112 = b2b1b0 entonces:
j 0 1 2
j
362 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 =
3611 mod 91. Y dado que 11 = 10112 = b3b2b1b0 entonces:
j 0 1 2 3
j
2
36 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
432 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
812 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.

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


SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2004

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.
Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 1
SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2004

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 5i 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?
e
Son 0 y 1. Para los valores 0 y 1 se cumplirá siempre que A 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 48 = 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 (48)16 = 1,16 x 1077 intentos, un valor ya desmesurado.
Ejercicio Nº 2 2,5 puntos (0,5 c/u). Tiempo recomendado: 45 minutos

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 2


SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2004

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: 221 mod 43 = 42; 214 mod 43 = 1; 27 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 = 37 mod 43 = 37
Benito envía a Adela: b mod p = 38 mod 43 = 25
Benito calcula: 37b mod p = 378 mod 43 = 36
a 7
Adela calcula: 25 mod p = 25 mod 43 = 36. Esta (36) es la clave que se intercambian A y B.
Apartado c)
a 7
Adela envía a Benito: mod p = 3 mod 43 = 37
c 10
Cristina intercepta el 37, elige c = 10 y envía a Benito mod p = 3 mod 43 = 10
b 8
Benito envía a Adela: mod p = 3 mod 43 = 25
Cristina intercepta el 25, elige c = 10 y envía a Adela c mod p = 310 mod 43 = 10
Benito calcula su clave de comunicación con Adela: 10b mod p = 108 mod 43 = 17
Adela calcula su clave de comunicación con Benito: 10a mod p = 107 mod 43 = 6
b c 10
Cristina calcula su clave con Benito: ( ) mod p = 25 mod 43 = 17 (la misma que Benito)
a c 10
Cristina calcula su clave con Adela: ( ) mod p = 37 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
Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 3
SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2004

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 X2 por M = 13.620.
2
i=4 1 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
2
i=0 X = 6.226 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 = CdA 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 12x13.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.

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 4


SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2004

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”


Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 1
SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2004

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 28 = 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á 2n = 216 = 65.536 intentos.
En cambio, para comprobar la resistencia fuerte a colisiones será necesario realizar en este caso
tan sólo 2n/2 = 216/2 = 28 = 256 intentos, basado en la paradoja del cumpleaños.
Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 2
SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2004

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
11 2
Sea g = 4: 4 mod 23 = 1; 4 mod 23 = 16 El 4 no es un generador
11 2
Sea g = 5: 5 mod 23 = 22; 5 mod 23 = 2 El 5 sí es un generador ( = 5)
Apartado b)
Primer paso: (A) envía a (B): a mod p = 52 mod 23 = 2
(B) envía a (C): b mod p = 54 mod 23 = 4
(C) envía a (A): c mod p = 56 mod 23 = 8
a b 4
Segundo paso: (B) envía a (C): ( ) mod p = (2) mod 23 = 16
b c 6
(C) envía a (A): ( ) mod p = (4) mod 23 = 2
(A) envía a (B): ( c)a mod p = (8)2 mod 23 = 18
ab c 6
Tercer paso: (C) envía a (A): ( ) mod p = (16) mod 23 = 4
bc a 2
(A) envía a (B): ( ) mod p = (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)
c a i
Paso 2: (A) envía a (B): ( ) mod p el intruso lo intercepta y envía a (B) 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)
a ab c
Paso 1: (A) envía a (B): mod p Paso 3: (C) envía a (D): ( ) mod p
b bc d
(B) envía a (C): mod p (D) envía a (A): ( ) mod p
Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 3
SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2004

(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
a b abc d
Paso 2: (B) envía a (C): ( ) mod p Paso 4: (D) envía a (A): ( ) mod p
(C) envía a (D): ( b)c mod p (A) envía a (B): ( bcd a
) mod p
c d cda b
(D) envía a (A): ( ) mod p (B) envía a (C): ( ) mod p
d a dab c
(A) envía a (B): ( ) mod p (C) envía a (D): ( ) 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
242 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.
Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 4
SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2004

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
102 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
2
i = 1 b1 = 1 x = 45 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.

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 5


SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2005

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 2127 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 AB 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.
Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 1
SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2005

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 48
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)
Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 2
SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2005

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 = x3 + 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)
2
Generador S1 con polinomio p1 = x + x + 1 (semilla 11):
Semilla 11 1
01 1
10 0
11 semilla ... luego S1 = 110.
3
Generador S2 con polinomio p1 = x + 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 0100111101001011
S 0111110000100011
C= 0011001101101000
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

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 3


SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2005

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 = 162 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.
k 3
r = ( mod p) mod q = (16 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
u v
Amparo comprueba si ( y mod p) mod q es igual a r
El valor y es la clave pública de Bartolo ya calculada, 8
( u yv mod p) mod q = (164 82 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
1630/2 mod 31 = 1615 mod 31 = 1; 1630/3 mod 31 = 1610 mod 31 = 1; 1630/5 mod 31 = 166 mod 31 = 16.
Como hay al menos un resultado igual a la unidad, 16 no es una raíz primitiva de p = 31.

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 4


SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre de 2005

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.
Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 1
SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre de 2005

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)
Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 2
SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre de 2005

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) CD195435
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)

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 3


SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre de 2005

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 = 4111 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 = x2 mod 91 = 412 mod 91 = 43 x = 43
i = 1 b1 = 1 x = x2 mod 91 = 432 41 mod 91 = 6 x=6
2 2
i = 0 b0 = 1 x = x 41 mod 91 = 6 41 mod 91 = 20 x = 20
Luego 4111 mod 91 = 20
Apartado d)
59
La firma será 77 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
Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 4
SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre de 2005

i = 3 b3 = 1 x = x2 77 mod 91 = 772 77 mod 91 = 77 x = 77


i = 2 b2 = 0 x = x2 mod 91 = 772 mod 91 = 14 x = 14
i = 1 b1 = 1 x = x2 mod 91 = 142 77 mod 91 = 77 x = 77
2 2
i = 0 b0 = 1 x = x 77 mod 91 = 77 77 mod 91 = 77 x = 77
Luego 7759 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.

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 5


SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2006

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

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 1


SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2006

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 Ne mod p = N para N = 2,3,4... p-1 y Ne 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:
55 mod 41 = 9; 65 mod 41 = 27 (Use la propiedad de reducibilidad).

SOLUCIÓN:
Apartado a)
A a = 3; B b = 3; C c = 3, p = 41, = 6.
3
p-1 = 40 = 2 x 5 q1 = 2; q2 = 5.
p/q1
mod p = 640/2 mod 41 = 620 mod 41 = 40 (usando reducibilidad y ayuda entregada en examen)
p/q2
mod p = 640/5 mod 41 = 68 mod 41 = 10 (usando reducibilidad y ayuda entregada en examen)

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 2


SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2006

Ambos son distintos de 1 por lo que 6 es efectivamente un generador del primo 41.
Apartado b)
A B: a mod p = 63 mod 41 = 11 (Claudia captura el 11 enviado por Adela)
B A: b mod p = 64 mod 41 = 25 (Claudia captura el 25 enviado por Benito)
C A: c mod p = 65 mod 41 = 27; C B: c mod p = 65 mod 41 = 27 (entregado en el examen)
Apartado c)
Adela calcula 27a mod p = 273 mod 41 = 3
Benito calcula 27b mod p = 274 mod 41 = 40
c 5
Claudia calcula 11 mod p = 11 mod 41 = 3 (clave que comparte con Adela)
25 mod p = 255 mod 41 = 40 (clave que comparte con Benito)
c

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 40/5 8
mod p = 5 mod 41 = 5 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)

K
IV
64 bits
512 bits M1 512 bits M2
Bloque h(M)1 + DES

MD5 MD5 CONCATENAR


ABCD A’B’C’D’ 128 bits
h(M) Resumen
Cifrado
Bloque h(M)2
+ DES
64 bits
IV K

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 3


SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2006

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.
612 mod 437 = 225; 2252 mod 437 = 370.
31710 = 1001111012
432 mod 437 = 101; 1012 mod 437 = 150; 1182 mod 437 = 377; 1532 mod 437 = 248;
2 2 2 2
264 mod 437 = 213; 283 mod 437 = 118; 377 mod 437 = 104; 410 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,

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 4


SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2006

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

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 5


SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2006

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:
eS 5
C = KS mod nS = 61 mod 396
5 = 1012 (b2b1b0); x = 1
i = 2 b2 = 1 x = 12 x 61 mod 437 x = 61
i = 1 b1 = 0 x = 612 mod 437 x = 225
2
i = 0 b1 = 1 x = 225 x 61 mod 437 x = 283 (valores entregados en el enunciado)
C = 283
Descifrado en el servidor;
KS = CdS mod nS = 283317 mod 437
317 = 1001111012 (b8b7b6b5b4b3b2b1b0); x = 1 (entregado como dato)
i = 8 b8 = 1 x = 12 x 283 mod 437 x = 283
2
i = 7 b7 = 0 x = 283 mod 437 x = 118
2
i = 6 b6 = 0 x = 118 mod 437 x = 377
2
i = 5 b5 = 1 x = 277 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
2
i = 2 b2 = 1 x = 410 x 283 mod 437 x = 43
2
i = 1 b1 = 0 x = 43 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.

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 6


SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2006

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

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 1


SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2006

. 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

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 2


SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2006

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 = 90853 mod 989
8532 = 1101010101 = b9b8b7b6b5b4b3b2b1b0 (entregado en el examen)
x=1
i = 9 b9 = 1 x = 12 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
2
i = 6 b6 = 1 x = 570 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
2
i = 1 b1 = 0 x = 881 mod 989 x = 785
2
i = 0 b0 = 1 x = 785 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: rAeA mod nA = 9713 mod 989
132 = 1101 = b3b2b1b0
x=1
i = 3 b3 = 1 x = 12 x 97 mod 989 x = 97
2
i = 2 b2 = 1 x = 97 x 97 mod 989 x = 815
i = 1 b1 = 0 x = 8152 mod 989 x = 606
2
i = 0 b0 = 1 x = 606 x 97 mod 989 x = 90 = h(M).
Apartado d)
Si e’ = 475 la comprobación de la firma sería: rAe’A mod nA = 97475 mod 989
4752 = 111011011 = b8b7b6b5b4b3b2b1b0 (entregado en el examen)
x=1
i = 8 b8 = 1 x = 12 x 97 mod 989 x = 97
2
i = 7 b7 = 1 x = 97 x 97 mod 989 x = 815
2
i = 6 b6 = 1 x = 815 x 97 mod 989 x = 431
i = 5 b5 = 0 x = 4312 mod 989 x = 818
2
i = 4 b4 = 1 x = 818 x 97 mod 989 x = 914
i = 3 b3 = 1 x = 9142 x 97 mod 989 x = 686
2
i = 2 b2 = 0 x = 686 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)

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 3


SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2006

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 + x2 + 1
Apartado c)

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 4


SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2006

5
Como el registro tiene 5 celdas y el polinomio f(x) es primitivo, su período será T = 2 – 1 = 31.

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 5


SOLUCIÓN AL EXAMEN DE LA ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2007

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

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 1 (véase el anverso)
SOLUCIÓN AL EXAMEN DE LA ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2007

- 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

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 2 (véase el anverso)
SOLUCIÓN AL EXAMEN DE LA ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2007

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
16
inverso multiplicativo en el cuerpo 2 +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

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 3 (véase el anverso)
SOLUCIÓN AL EXAMEN DE LA ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2007

Φ(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: 1137 mod 3.149 = 2.846
37 = 100101 = b5b4b3b2b1b0.
x=1
2
i = 5 b5 = 1 x = 1 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
2
i = 0 b0 = 1 x = 1.538 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.8461.477 mod 3.149 = 11
1.477 = 10111000101 = b10b9b8b7b6b5b4b3b2b1b0.
x=1

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 4 (véase el anverso)
SOLUCIÓN AL EXAMEN DE LA ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2007

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
2
i = 4 b4 = 0 x = 2.445 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:
1.477
Bartolo usa su clave privada d = 1.477 y calcula: 77 mod 3.149 = 1.423.
1.477 = 10111000101 = b10b9b8b7b6b5b4b3b2b1b0.
x=1
i = 10 b10 = 1 x = 12 x 77 mod 3.149 x = 77
2
i = 9 b9 = 0 x = 77 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
2
i = 6 b6 = 1 x = 699 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
2
i = 3 b3 = 0 x = 2.304 mod 3.149 x = 2.351
i = 2 b2 = 1 x = 2.3512 x 77 mod 3.149 x = 829
2
i = 1 b1 = 0 x = 829 mod 3.149 x = 759
2
i = 0 b0 = 1 x = 759 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:
37
Amparo usa la clave pública e = 37 de Bartolo y calcula: 1.423 mod 3.149 = 77 recuperando el
mensaje que ha firmado Bartolo.
37 = 100101 = b5b4b3b2b1b0.
x=1
i = 5 b5 = 1 x = 12 x 1.423 mod 3.149 x = 1.423
2
i = 4 b4 = 0 x = 1.423 mod 3.149 x = 122
i = 3 b3 = 0 x = 1222 mod 3.149 x = 2.288
2
i = 2 b2 = 1 x = 2.288 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
a
o Hace público los valores (pA, A, CPubA = A mod pA)

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 5 (véase el anverso)
SOLUCIÓN AL EXAMEN DE LA ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2007

- 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
b
o Hace público los valores (pB, B, CPubB = 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.

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 6 (véase el anverso)
SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2007

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
2n n/4 n n/2 n/2
ante una clave o valor de n bits será | 2 | 2 | 2 | 2 | 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

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 1 (véase el anverso)
SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2007

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 (256). Como en cada caja hay 4 entradas posibles para
cada salida, existirán 48 = 216 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
56
muchísimo mayor que 2 .
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 (216)3 = 248 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.

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 2 (véase el anverso)
SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2007

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 = 612 mod 661 = 271 (Amparo envia a Bartolo el valor 271)
Apartado b: (0,25 puntos)
B  A: b mod p = 68 mod 661 = 15 (Bartolo envia a Amparo el valor 15)
Apartado c: (0,25 puntos)
La clave compartida es 2718 mod 661 = 1512 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
 mod p y hace lo mismo con Amparo. Tras ello Crispín se podra hacer dueño de la sesión.
c

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

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 3 (véase el anverso)
SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2007

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:
eB 13
C1 = H mod nB = C1 = 72 mod 1.829 (132 = 1101 = b3b2b1b0). Y según el algoritmo pedido:
2
i = 3 b3 = 1 x = 1 x 72 mod 1.829 x = 72
2
i = 2 b2 = 1 x = 72 x 72 mod 1.829 x = 132
2
i = 1 b1 = 0 x = 132 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

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 4 (véase el anverso)
SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2007

2
i = 6 b6 = 0 x = 1.529 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
2
i = 2 b2 = 0 x = 622 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.

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 5 (véase el anverso)
SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2008

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.
i
6. Si n 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 = 28 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 2n -1. Claramente 1.023 es igual a 210 – 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

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 1 (véase el anverso)
SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2008

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 = CdP mod p; m2 = CdQ 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
96
fuerza bruta significaría realizar (4^8)^20 = 2,14 x 10 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:
3
- Generador LFSR1: polinomio x + 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)

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 2 (véase el anverso)
SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2008

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 = 23 – 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
4
El periodo es igual a 15 = 2 – 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.

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 3 (véase el anverso)
SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2008

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:
eB 13
C1 = H mod nB = C1 = 72 mod 713
C2 = O mod nB = C2 = 7913 mod 713
eB

C3 = LeB mod nB = C3 = 7613 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
2
I = 2 b2 = 1 x = 72 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 = 12 x 79 mod 713 x = 79
I = 2 b2 = 1 x = 792 x 79 mod 713 x = 356
2
i = 1 b1 = 0 x = 356 mod 713 x = 535
i = 0 b0 = 1 x = 5352 x 79 mod 713 x = 406 C2 = 406
Criptograma C3, M = 76:
2
i = 3 b3 = 1 x = 1 x 76 mod 713 x = 76
I = 2 b2 = 1 x = 762 x 76 mod 713 x = 481
2
i = 1 b1 = 0 x = 481 mod 713 x = 349
2
i = 0 b0 = 1 x = 349 x 76 mod 713 x = 710 C3 = 710
Criptograma C4, M = 65:
i = 3 b3 = 1 x = 12 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
2
i = 0 b0 = 1 x = 140 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:

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 4 (véase el anverso)
SOLUCIÓN AL EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Junio 2008

Criptograma recibido C1 = 9:
i = 8 b8 = 1 x = 12 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
2
i = 5 b5 = 0 x = 165 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
2
i = 0 b0 = 1 x = 450 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 = DeB mod nB = C = 6813 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
2
i = 1 b1 = 0 x = 712 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.

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 5 (véase el anverso)
SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2008

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

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 1 (véase el anverso)
SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2008

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 2n-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 ¿Xe mod p = X? y Xe 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

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 2 (véase el anverso)
SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2008

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 x5 + x3 + x + 1 y con la semilla 10001.
Se pide:
a) Encuentra la secuencia cifrante y el periodo del generador.
b) ¿Qué puedes decir de la secuencia de clave encontrada?
c) Cifra el mensaje ABBA bit a bit con la secuencia de clave encontrada (AASCII = 0100 0001).
d) Representa el criptograma en formato Base 64 y comenta alguna particularidad de ese resultado.
e) Descifra el criptograma bit a bit.

SOLUCIÓN:
Apartado a:
5 3
Registro LFSR: x + x + 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=01000001010000100100001001000001
S=100010011010111100010011010111100010011010111
Obteniendo:
C=110010001110110101010001000111110000
La secuencia cifrante se repite dos veces dado que el texto en claro tiene 32 bits y ésta 30.
Los últimos 4 ceros (0 0 0 0) indican el relleno que habrá que hacer al pasarlo a código Base 64.

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 3 (véase el anverso)
SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2008

Apartado d:
C = 110010 001110 110101 010001 000111 110000
Usando la tabla del código Base 64 obtenemos:
C = yO1RHw==
Hay dos rellenos ==, puesto que faltan los cuatro bits indicados en negrita para formar el último
bloque de 6 bits de la codificación Base 64.
Apartado e:
C=11001000111011010101000100011111
S=10001001101011110001001101011110
Haciendo el XOR:
M=01000001010000100100001001000001
M = 01000001 01000010 01000010 01000001 = ABBA
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

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 4 (véase el anverso)
SOLUCIÓN EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA Convocatoria Septiembre 2008

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
17
C = 101 mod 559 (172 = 10001 = b4b3b2b1b0)
i = 4 b4 = 1 x = 12 x 101 mod 559 x = 101
2
i = 3 b8 = 0 x = 101 mod 559 x = 139
i = 2 b2 = 0 x = 1392 mod 559 x = 315
i = 1 b1 = 0 x = 3152 mod 559 x = 282
2
i = 0 b0 = 1 x = 282 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 = 21289 mod 559 (892 = 1011001 = b6b5b4b3b2b1b0)
i = 6 b6 = 1 x = 12 x 212 mod 559 x = 212
2
i = 5 b5 = 0 x = 212 mod 559 x = 224
2
i = 4 b4 = 1 x = 224 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 = 101491 mod 589 (4912 = 111101011 = b8b7b6b5b4b3b2b1b0)
i = 8 b8 = 1 x = 12 x 101 mod 589 x = 101
2
i = 7 b7 = 1 x = 101 x 101 mod 589 x = 140
2
i = 6 b6 = 1 x = 140 x 101 mod 589 x = 560
i = 5 b5 = 1 x = 5602 x 101 mod 589 x = 125
2
i = 4 b4 = 0 x = 125 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
¿44211 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.

Departamento de Lenguajes, Proyectos y Sistemas Informáticos – EUI - UPM pág. 5 (véase el anverso)

SOLUCION EXAMEN SEGURIDAD INFORMÁTICA 
Convocatoria Junio 1995 
 
 
  
 
Dpto. Lenguajes, Proyectos y Sistemas Informáticos E
SOLUCION EXAMEN SEGURIDAD INFORMÁTICA 
Convocatoria Junio 1995 
 
 
  
 
Dpto. Lenguajes, Proyectos y Sistemas Informáticos E
SOLUCION EXAMEN SEGURIDAD INFORMÁTICA 
Convocatoria Junio 1995 
 
 
  
 
Dpto. Lenguajes, Proyectos y Sistemas Informáticos E
SOLUCION EXAMEN SEGURIDAD INFORMÁTICA 
Convocatoria Junio 1995 
 
 
  
 
Dpto. Lenguajes, Proyectos y Sistemas Informáticos E
SOLUCION EXAMEN SEGURIDAD INFORMÁTICA 
Convocatoria Junio 1995 
 
 
  
 
Dpto. Lenguajes, Proyectos y Sistemas Informáticos E
EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA 
Convocatoria Septiembre 1995 
 
 
  
 
Dpto. Lenguajes, Proyectos y Sistemas Informá
EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA 
Convocatoria Septiembre 1995 
 
 
  
 
Dpto. Lenguajes, Proyectos y Sistemas Informá
EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA 
Convocatoria Septiembre 1995 
 
 
  
 
Dpto. Lenguajes, Proyectos y Sistemas Informá
EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA 
Convocatoria Septiembre 1995 
 
 
  
 
Dpto. Lenguajes, Proyectos y Sistemas Informá
EXAMEN ASIGNATURA SEGURIDAD INFORMÁTICA 
Convocatoria Septiembre 1995 
 
 
  
 
Dpto. Lenguajes, Proyectos y Sistemas Informá

También podría gustarte