NOTA SEGUNDA PARTE.
EJERCICIO 1 (3,0 puntos)
APELLIDOS Y NOMBRE: INICIAL
EJERCICIO 1. CADA UNO DE LOS SEIS APARTADOS VALE 0,5 PUNTOS
CONTESTA SOLAMENTE EN ESTE FOLIO Y EN SU ANVERSO
En un intercambio de clave de Diffie y Hellman DH, los usuarios Alicia y Bernardo usan los siguientes
valores secretos Alicia (A) a = 3, Bernardo (B) b = 4, siendo los valores públicos p = 41, = 6. Si Carlos hace
un Man In The Middle usando para la comunicación con Alicia el valor secreto cA= 7 y para la comunicación
con Bernardo el valor secreto CB = 5, se pide:
1.1. ¿Qué valor envia Alicia a Bernardo y captura Carlos?
1.2. ¿Qué valor envia Carlos a Bernardo?
1.3. ¿Qué valor envía Bernardo a Alicia y captura Carlos?
1.4. ¿Qué valor envía Carlos a Alicia?
1.5. ¿Qué clave comparten Alicia y Carlos? Indica cómo lo hacen.
1.6. ¿Qué clave comparten Bernardo y Carlos? Indica cómo lo hacen.
Nota: puedes usar aquí la calculadora para todas las operaciones, NO es obligatorio usar el algoritmo de
exponenciación rápida AER en este ejercicio.
RESPUESTA:
1.1. Alicia envía a Bernardo a mod p = 63 mod 41 = 11 pero lo captura Carlos
1.2. Carlos envía a Bernardo CB mod p = 65 mod 41 = 27
1.3. Bernardo envía a Alicia b mod p = 64 mod 41 = 25 pero lo captura Carlos
1.4. Carlos envía a Alicia CA mod p = 67 mod 41 = 29
1.5. Alicia calcula 29a mod p = 293 mod 41 = 35
Carlos calcula 11cA mod p = 117 mod 41 = 35 (Alicia y Carlos comparten la clave 35)
1.6. Bernardo calcula 27b mod p = 274 mod 41 = 40
Carlos calcula 25cB mod p = 255 mod 41 = 40 (Bernardo y Carlos comparten la clave 40)
Examen Parcial SI - Curso 2019-2020. Evaluación Continua - Fecha: 9 de marzo de 2020 Página 3
2ª Parte 70%: 3 ejercicios
Seguridad de la Información Curso 2019-20
CONVOCATORIA EXTRAORDINARIA
Ejercicio 1 Generación simultánea de clave simétrica (2,0 puntos)
a) Indica qué características deben tener los parámetros (α y p) de la componente
pública en la técnica Diffie y Hellman de intercambio de clave. (0,5 puntos)
b) Elige un ejemplo de {α, p}, de tamaño 5 bits, que cumpla con las características
indicadas anteriormente y justifica por qué cumple. (0,5 puntos)
c) Sabiendo que los interlocutores A y B han elegido respectivamente como valores
secretos a= 15 y b = 22, calcula, utilizando el Algoritmo de Exponenciación
Rápida, (AER) el secreto compartido. (0,5 puntos).
d) El criptoanalista C ha interceptado una comunicación entre A y B en el momento
en que A enviaba a B, obteniendo el valor 30.
• Utilizando la técnica de fuerza bruta ¿en qué intento consigue C averiguar el
valor secreto de A? Justifique el resultado. (0,25 puntos)
• ¿Cuántos intentos, en promedio, necesitaría C para conseguirlo si el módulo p
hubiera sido de 1024 bits? ¿Cuánto tiempo le llevaría si se utiliza un
procesador Intel de 1 GHz? (0,25 puntos)
Solución
a) Indica qué características deben tener los parámetros (α y p) de la componente
pública en la técnica Diffie y Hellman de intercambio de clave. (0,5 puntos)
p: debe ser un número primo (preferiblemente grande)
α: debe ser un generador de p (capaz de generar todo el cuerpo p, de forma
que las operaciones α1mod p, α2mod p, …, αp-1mod p, entregan todos los
elementos o restos de p, desde 1 hasta p-1
b) Elige un ejemplo de {α, p}, de tamaño 5 bits, que cumpla con las características
indicadas anteriormente y justifica por qué cumple. (0,5 puntos)
Elección: p: 31, α: 21
Justificación:
• p (31) es un número primo de 5 bits (11111).
• α (21) es un generador de p. (Otros valores posibles: 3, 11, 12, 13, 17, 22 y 24)
211mod 31= 21 217mod 31= 11 2113mod 31= 22 2119mod 31= 13 2125mod 31= 26
21 2mod 31= 7 218mod 31= 14 2114mod 31= 28 2120mod 31= 25 2126mod 31= 19
213mod 31= 23 219mod 31= 15 2115mod 31= 30 2121mod 31= 29 2127mod 31= 27
214mod 31= 18 2110mod 31= 5 2116mod 31= 10 2122mod 31= 20 2128mod 31= 9
215mod 31= 6 2111mod 31= 12 2117mod 31= 24 2123mod 31= 17 2129mod 31= 3
216mod 31= 2 2112mod 31= 4 2118mod 31= 8 2124mod 31= 16 2130mod 31= 1
Se obtiene todo el conjunto {1...30}
c) Sabiendo que los interlocutores A y B han elegido respectivamente como valores
secretos a= 15 y b = 22, calcula, utilizando el Algoritmo de Exponenciación
Rápida, (AER) el secreto compartido. (0,5 puntos).
K= αa*bmod p = 2115*22mod 31 = 21330mod 31 = 1
AER:
• 33010 = 1 0100 10102 (bi)
• A = 21
bi x X ->
1 1 21
0 21 7
1 7 6
0 6 5
0 5 25
1 25 12
0 12 20
1 20 30
0 30 1
d) El criptoanalista C ha interceptado una comunicación entre A y B en el momento
en que A enviaba a B, obteniendo el valor 30.
• Utilizando la técnica de fuerza bruta ¿en qué intento consigue C averiguar el
valor secreto de A? Justifique el resultado. (0,25 puntos)
• ¿Cuántos intentos, en promedio, necesitaría C para conseguirlo si el módulo p
hubiera sido de 1024 bits? ¿Cuánto tiempo le llevaría si se utiliza un
procesador Intel de 1 GHz? (0,25 puntos)
d1) Intento nº 15 (ver la tabla anterior)
d2) En promedio sería la mitad de todo el cuerpo p, es decir 2p / 2 = 21024 / 2
= 21023 = 8,99 * 10307.
Suponiendo, en el mejor de los casos, que cada operación se realiza en un
único ciclo de reloj, se necesitaría un total de (aproximadamente) 9 * 10307 /
109 = 9 * 10299 segundos. es decir 2,9 * 10292 años. (1 año tiene 3.15 * 107
segundos.
(Se estima que el Universo tiene una existencia de 1,4 * 1010 años. O sea
para su envío confidencial al destino o en el descifrado de un criptograma para recuperar ese
número secreto, en qué operaciones lo usarías (cifrado, descifrado, en ambas) y por qué?
RESPUESTA. Aunque usando el TCR en los primos p y q se hacen más operaciones que la única
operación que se realiza cuando se trabaja en módulo n, Cd mod n, en la práctica la velocidad
es tres veces mayor con TCR cuando los números son muy grandes. Por ese motivo, solamente
se recomienda usar el TCR en el descifrado (no en el cifrado) porque en este caso los valores
de la base, el exponente y el módulo son todos números muy grandes, por ejemplo todos
iguales o muy cercanos a los 2.048 bits.
PREGUNTA 4. Realizamos un ataque por la paradoja del cumpleaños a RSA conociendo la clave
pública de la víctima n = 2.867 y e =7. SI usamos como valor de ataque N = 11, obtenemos
como resultado 631, un falso positivo. ¿Qué significa esto?
RESPUESTA. Significa que aunque el ataque ha terminado, no ha habido éxito. Esto porque no
se ha encontrado ni la clave privada ni una clave privada. El valor encontrado 631 sólo sirve
para descifrar el número con el cual se ha iniciado el ataque, el 11, no así a otros números. Por
ejemplo 117 mod 2.867 = 172 y 172631 mod 2.867 = 11, sin ser 631 ninguna clave privada o
privada pareja.
EJERCICIO 1
En un intercambio de clave de Diffie y Hellman DH, los usuarios Alicia y Bernardo tienen los
siguientes parámetros: Alicia (A) α = 3, p = 17, a = 3; Bernardo (B) α = 3, p = 17, b = 5. Usa la
calculadora para todas las operaciones.
a) [0,5 puntos] ¿Qué valor envia Alicia a Bernardo?
b) [0.5 puntos] ¿Qué valor envia Bernardo a Alicia?
c) [0.5 puntos] ¿Qué clave secreta se intercambian Alicia y Bernardo?
d) [0.5 puntos] ¿Por qué decimos que este protocolo es seguro si, por ejemplo, p tiene
1.024 bits y los valores de a y b tienen 256 bits, resultado de aplicar un hash a una
frase secreta y diferente por cada usuario.
e) [0.5 puntos] Si Carlos se pone en medio y elige como valor secreto c = 6. ¿Qué valor
envía Carlos a Alicia? ¿Y qué valor envía Carlos a Bernado?
f) [0.5 puntos] ¿Qué valor compartiran Carlos y Alicia? ¿Qué valor compartiran Carlos y
Bernardo?
RESPUESTA:
a) Alicia envía a Bernardo αa mod p = 33 mod 17 = 27 mod 17 = 10.
b) Bernardo envía a Alicia αb mod p = 35 mod 17 = 243 mod 17 = 5.
c) Alicia calcula 53 mod 17 = 125 mod 17 = 6
Bernardo calcula 105 mod 17 = 100.000 mod 17 = 6
Alicia y Bernardo intercambian el valor secreto αab mod p = 33*5 mod 17 = 14.348.907
mod 17 = 6.
d) Es seguro porque el atacante que capture el valor que Alicia le envía a Bernardo,
capture también el valor que Bernardo le envía a Alicia, y conozca los valores públicos
α y p, deberá enfrentarse al Problema del Logaritmo Discreto PLD, que para números
Examen Parcial SI - Curso 2018-2019. Evaluación Continua - Fecha: 8 de abril de 2019 Página 2
grandes como es este caso se vuelve intratable. Tampoco podrá hacer fuerza bruta en
búsqueda de los valores secretos a de Alicia y b de Bernardo porque ambos serán
números de 256 bits y, por tanto, existen 2256 números posibles, imposible de calcular
hoy en día.
e) Carlos le envía a ambos el mismo valor αc mod p = 36 mod 17 = 729 mod 17 = 15.
f) Alicia calcula 153 mod 17 = 3.375 mod 17 = 9 y Carlos calcula 106 mod 17 = 1.000.000
mod 17 = 9. Es decir, Alicia y Carlos intercambian el valor secreto αac mod p = 33*6 mod
17 = 387.420.489 mod 17 = 9.
Bernardo calcula 155 mod 17 = 759.375 mod 17 = 2 y Carlos calcula 56 mod 17 = 15.625
mod 17 = 2. Es decir, Bernardo y Carlos intercambian el valor secreto αbc mod p = 35*6
mod 17 = 205.891.132.094.649 mod 17 = 2.
EJERCICIO 2
Clave RSA de Alicia: pA = 47, qA = 61, dA = 1.183. Clave RSA de Bernardo: pB = 43, qB = 53, eB = 5.
Aquí es obligatorio usar el Algoritmo Extendido de Euclides AEE y el Algoritmo de
Exponenciación Rápida AER.
a) [0,5 puntos] Encontrar la clave pública eA de Alicia.
b) [0.5 puntos] Ecuación y resultado si Alicia envía cifrado el número secreto N = 51 a
Bernardo.
c) [0.5 puntos] Ecuación y resultado si Bernardo comprueba que Alicia ha firmado
digitalmente el valor 123 porque ha recibido de ella la firma FA = 916.
d) [0.5 puntos] ¿Pueden enviarse Alicia a Bernardo y Bernardo a Alicia mediante sus
claves RSA el valor secreto 2.500? Justifica la respuesta.
e) [0.5 puntos] ¿Qué significa que la clave privada de Alicia tenga la clave privada pareja
d’ = 2.563?
f) [0.5 puntos] Se sabe que la clave de Alicia tiene 21 números no cifrables. ¿Qué significa
esto?. Si algunos de los NNC son los siguientes [0, 1, 47, 48, 563, 610, 611, 657, 658,
……, 2.256, 2.257, 2.304, 2.819, 2.820, 2.866]. ¿Podrías indicar dos NNC más?
RESPUESTA:
a) La clave pública de Alicia será e = inv (dA, φnA) = inv (1.183, φnA)
φnA = (pA – 1)(qA – 1) = (47-1)( 61-1) = 46*60 = 2.760
I yi gi ui vi
0 - 2.760 1 0
1 - 1.183 0 1
2 2 394 1 -2
3 3 1 -3 7
4 394 0 1.183 -2.760
La clave pública de Alicia es eA = 7.
b) Como nB = pBxqB = 43x53 = 2.279, el cifrado debe ser NeB mod nB = 515 mod 2.279
5 = 101 = b2b1b0 x=1
i = 2 b2 = 1 x = 12*51 mod 2.279 = 51
i = 1 b2 = 0 x = 512 mod 2.279 = 2.601 mod 2.279 = 322
i = 0 b2 = 1 x = 3222*51 mod 2.279 = 5.287.884 mod 2.279 = 604
Examen Parcial SI - Curso 2018-2019. Evaluación Continua - Fecha: 8 de abril de 2019 Página 3
SEGUNDA PARTE. 3 EJERCICIOS (5,0 puntos en total)
APELLIDOS Y NOMBRE:
EJERCICIO 1 (2,0 PUNTOS)
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 pequeños y fáciles de encontrar con una calculadora.
Se pide:
a. [0.4 puntos] Si Amparo elige el valor privado a = 12, calcula el valor que envía a Bartolo.
b. [0.4 puntos] Si Bartolo elige el valor privado b = 8, calcula el valor que envía a Amparo.
c. [0.4 puntos] Calcula la clave de sesión que se intercambian Amparo y Bartolo, indicando cómo calcularían la
clave de sesión cada uno de ellos, en función del número recibido en cada caso.
d. [0.4 puntos] 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. ¿Qué otros dos tipos de
ataque diferentes a fuerza bruta podría usar para vulnerar la confidencialidad de ese intercambio de clave?
e. [0.4 puntos] 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 un generador o raíz primitiva del primo 661?
RESPUESTA:
Apartado a: A B: αa mod p = 612 mod 661 = 271 (Amparo envía a Bartolo el valor 271)
Apartado b: B A: αb mod p = 68 mod 661 = 15 (Bartolo envía a Amparo el valor 15)
Apartado c: Como Bartolo ha recibido el número 271 calcularía 2718 mod 661 = 497
Como Amparo ha recibido el número 15 calcularía 1512 mod 661 = 497
Por tanto, la clave de sesión compartida será 497.
NOTA: si la calculadora no permite realizar algún cálculo por ser número grande, siempre se puede utilizar el
homomorfismo de loa enteros. Por ejemplo para 2718 mod 661 tenemos:
2718 mod 661 = [(2712 mod 661)(2712 mod 661)(2712 mod 661)(2712 mod 661)] mod 661
= [(73.441 mod 661)(73.441 mod 661)(73.441 mod 661)(73.441 mod 661)] mod 661
= 70 * 70 * 70 *70 mod 661 = 497
Apartado d: Crispín sabe que α = 6 y que p = 661.
Haría un ataque por fuerza bruta capturando el valor 271 que Amparo envía a Bartolo y calculando αxa mod 661 =
271 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=2 y xb = 2,
dado que las claves privadas elegidas por Amparo y Bartolo son muy bajas (12 y 8), podemos afirmar que Crispín las
encontrará rápidamente.
Un segundo ataque más eficiente (independientemente del tamaño de a y b) es despejar los valores de xa y xb
mediante el uso de diversos algoritmos de solución del Problema del Logaritmo Discreto. Es decir calcularía log6 271
mod 661 para la clave de Amparo y log6 15 mod 661 para la clave de Bartolo.
El tercer ataque, ya en un entorno distinto, sería un ataque del tipo “man in the middle” de forma que, por ejemplo,
intercepta el valor que Amparo envía a Bartolo y envía a Bartolo el valor calculado por él αc mod p y hace lo mismo
con Amparo. Tras ello Crispín se podrá hacer dueño de la sesión.
Apartado e: 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
Asignatura SI - Curso 2018-2019 - Examen Convocatoria Extraordinaria - 2 de julio de 2019 Página 3
claves secretas de Amparo y Bartolo que entregan el mismo valor de clave pública. Es decir, para Amparo tendríamos
que αa1 mod 661 = αa2 mod 661 = αa3 mod 661, etc. = valor constante de clave pública.
EJERCICIO 2 (2,0 PUNTOS)
Andrés (A) y Carlos (C) enviarán a Benjamín (B) un número N secreto (distinto en cada caso) mediante un
intercambio de clave con el algoritmo RSA. Pero Eva interceptará esos dos criptogramas y realizará un ataque con el
único fin de encontrar, en cada caso, el secreto que le han transmitido a Benjamín, cuya clave pública es:
• Clave pública de Benjamín: n = 667, e = 3.
• Se sabe que Benjamín recibe de Andrés el criptograma C = 320 (que captura Eva)
• Se sabe que Benjamín recibe de Carlos el criptograma C = 231 (que captura Eva)
Se pide:
a. [0.4 puntos] ¿Qué ataque debe realizar Eva para encontrar el secreto de los criptogramas interceptados, sin
que ello lleve a la necesidad de descubrir antes la clave privada de Benjamín? Explica cómo lo hace.
b. [0.4 puntos] Termina el ataque que corresponde según la tabla entregada al criptograma C = 320, enviado
por Andrés a Benjamín. ¿En qué vuelta se encuentra el secreto?
1 3203 mod 667 = 291
2 2913 mod 667 = 523
3 5233 mod 667 = 175
4 1753 mod 667 = 30
5 …
c. [0.4 puntos] Realiza el mismo tipo de ataque al criptograma C = 231 enviado por Carlos a Benjamín. ¿En qué
vuelta se encuentra el secreto?
d. [0.4 puntos] Justifica por qué han sido diferentes el número de operaciones realizadas en casa caso. ¿Qué ha
sucedido con el secreto enviado por Carlos?
e. [0.4 puntos] Eva ha logrado factorizar el módulo de Benjamín (n = 667 = 29*23). Encuentra la clave privada d
de Benjamín usando obligatoriamente el Algoritmo Extendido de Euclides.
SOLUCIÓN:
Apartado a. Se trata de un ataque por cifrado cíclico, usando para ello solamente la clave pública de la víctima y el
criptograma interceptado. Realiza una cifra RSA del criptograma con la clave pública de Benjamín, y lo mismo a los
resultados que va obteniendo, hasta que se encuentra otra vez con el valor inicial del ataque. En ese momento sabe
que el número de la cifra anterior era el secreto que buscaba.
Apartado b. Datos conocidos C= 320,n = 667, e = 3.
5 303 mod 667 = 320
Como ha vuelto a encontrar C = 320 tras 5 vueltas o cifrados, el valor N = 30 anterior era el secreto.
Apartado c. Datos conocidos C= 231, n = 667, e = 3.
1 2313 mod 667 = 231
Como ha vuelto a encontrar C = 231 tras 1 vueltas o cifrado, el valor N = 231 anterior era el secreto.
Apartado d. En el primer caso, Eva ha tenido que realizar 5 operaciones. En el segundo caso, Eva ha tenido que
realizar una única operación. Esto se debe a que el primer criptograma C y su secreto asociado N de Andrés se
encontraba en un anillo de longitud 5, el segundo criptograma C y su secreto asociado N de Carlos se encontraba en
un anillo de longitud 1. El número secreto enviado por Carlos se trataba de un número no cifrable de la clave de
Benjamín.
Apartado e. Sí puede hacerlo. Se trata de un ataque basado en la factorización del módulo n.
Datos: e = 3; n = 667. Como ha logrado factorizar P = 23 y q = 29, por tanto φ(n) = 22 * 28 = 616. Estamos en
condiciones de calcular la clave privada de Benjamín
Asignatura SI - Curso 2018-2019 - Examen Convocatoria Extraordinaria - 2 de julio de 2019 Página 4
c) [0,25]¿¿Cuántos bits relleno se observan? ¿Cómo comienza ese relleno? Marca en la figura todo el relleno.
2 bytes en la palabra 4 más 4 bytes en las palabras 5, 6, 7, 8, 9, 10, 11, 12, 13 y 14. Es decir: 16 + 10x32 = 336 bits.
El relleno comienza por el byte 1000 0000, el valor 80 en hexadecimal que se observa en la palabra 4.
d) [0,25]¿¿Qué tamaño tiene el archivo en bits? Marca en la figura dónde lo indica y cuántos bits reserva para
ello.
El archivo tiene un tamaño de 14 bytes = 14x8 = 112 bits, que en hexadecimal es igual al valor 70 que se muestra
en la palabra 15. MD5 reserva las dos últimas palabras del hash indicar para el relleno, es decir 64 bits.
PREGUNTA ABIERTA 2 (CONTESTA EN ESTE FOLIO, 1 punto)
Sin resolver las ecuaciones, pero sí indicándolas con sus números, muestra cómo se desarrolla un Man In The Middle
en un intercambio de clave de Diffie y Hellman con p = 197, α = 2. Los datos privados de los participantes son Alicia a
= 5, Bernardo b = 7, Atacante Carlos c = 10. El valor que Alicia le envía a Bernardo es C1, el que Bernardo le envía a
Alicia es C2 y el valor que usa el atacante Carlos para el MITM es C3.
Alicia calcula 25 mod 197 = C1 y se lo desea enviar a Bernardo pero lo intercepta Carlos
Carlos calcula 210 mod 197 = C3 y se lo envía a Bernardo.
Bernardo calcula 27 mod 197 = C2 y se lo desea enviar a Alicia pero lo intercepta Carlos
Carlos calcula 210 mod 197 = C3 y se lo envía a Alicia.
Alicia calcula C35 mod 197 y obtiene la clave con la que conversa con Carlos
Carlos calcula C110 mod 197 y obtiene la clave con la que conversa con Alicia
Bernardo calcula C37 mod 197 y obtiene la clave con la que conversa con Carlos
Carlos calcula C210 mod 197 y obtiene la clave con la que conversa con Bernardo
Ha prosperado el ataque Man In The Middle
TERCERA PARTE CON 2 EJERCICIOS (5 puntos)
Ejercicio 1 (CONTESTA EN ESTE FOLIO, 2 puntos)
En un sistema de cifra RSA, Alicia tierne como datos públicos nA = 209 y eA = 7. Se pide:
a) [1,00]¿Encontrar la clave privada dA. Obligatorio usar Algoritmo Extendido de Euclides.
b) [1,00]¿Bernardo con clave nB = 377, eB = 5 y dB = 269, desea enviar a Alicia confidencialmente la clave K = 85.
Cifra ese valor y encuentra el criptograma. Obligatorio usar Algoritmo de Exponenciación Rápida.
Examen Parcial asignatura Seguridad de la Información curso 2017/2018 3
SEGUNDA PARTE. 2 PREGUNTAS ABIERTAS (2,0 puntos en total)
PREGUNTA ABIERTA 1 (1,0 puntos)
Para realizar los siguientes dos ataques escribe lo siguiente:
a) Con qué datos cuenta el atacante.
b) Cada uno de los pasos debe realizar el atacante de forma cronológica y detallada.
c) Qué obtiene si este ataque finaliza con éxito.
Los dos ataques son:
1. Un ataque Man In The Middle a Diffie y Hellman
2. Un ataque por paradoja del cumpleaños en un único PC a RSA
SOLUCIÓN:
1. En un ataque ataque Man In The Middle a Diifie y Hellman entre A y B:
1. El atacante conoce el primo p y el generador α de dicho primo ya que son datos públicos.
2. El atacante se pone en el medio de los interlocutores y captura el criptograma que A envía a B (αa mod p) así
como el criptograma que B envía a A (αb mod p), siendo a y b los valores secretos de A y B respectivamente.
3. El atacante genera un valor secreto c y envía tanto a A como a B el criptograma (αc mod p).
4. El usuario A calcula una clave de sesión haciendo (αc mod p)a mod p = αca mod p
5. El usuario B calcula una clave de sesión haciendo (αc mod p)b mod p = αcb mod p
6. El atacante que conoce (αa mod p) enviado por A calcula = (αa mod p)c mod p = αac mod p que es igual a lo que
tiene A y con este clave se comunica con A.
7. El atacante que conoce (αb mod p) enviado por B calcula = (αb mod p)c mod p = αbc mod p que es igual a lo que
tiene B y con este clave se comunica con B.
8. Ahora cualquier valor que el usuario A envíe al usuario B o que el usuario B envíe al usuario A, lo intercepta C,
lo modifica a su gusto y lo reenvía a ese destino, produciéndose un ataque Man In The Middle.
2. En un ataque por la paradoja del cumpleaños en un único PC:
1. El atacante cuenta sólo con la clave pública de la víctima (n, e).
2. Elije un valor de ataque M pequeño, preferiblemente M = 2.
3. Además, el módulo n lo divide en dos mitades; la mitad izquierda desde i = 0 hasta i = n/2 y la mitad derecha
desde j = (n/2)+1 hasta n-1.
4. Realiza un primer cifrado con i = 0, es decir, M0 mod n) y con j = (n/2)+1, es decir, M(n/2)+1 mod n y va
comparando los resultados de las cifras con el contador i respecto a los resultados de las cifras con el contador
j, hasta que haya una colisión.
5. Cuando encuentra una colisión entre un resultado de j con el primer resultado de i, o bien el resultado de i con
el primer resultado de j, obtiene las distancias recorridas por esos dos punteros.
6. Realiza una operación simple de inversos y si tiene éxito encuentra la clave privada o una clave privada pareja
de la víctima.
Nota: esto no se pide ni puntúa:
Cálculo de la Clave Privada, Clave Privada Pareja o Falso Positivo:
1) Se calcula w = (i - j) / mcd (e, |i - j|)
2) Se calcula t = inv (e, w)
3) El valor de t es la clave privada, una CPP o un falso positivo
Asignatura SI - Curso 2017-2018 - Examen Convocatoria Extraordinaria - 13 de julio de 2018 Página 3
Seguridad de la Información
Curso 2015 – 16. Evaluación SOLO PRUEBA FINAL
6 de JUNIO. (2 h. 45 min)
APELLIDOS
Y NOMBRE _______________________________________________________________
2ª PARTE. PREGUNTA DE RESPUESTA CORTA. CALIFICACIÓN [1,5 Ptos]
1) Describe las actividades necesarias para la implantación de un SGSI.
Solución
1. Elegir la metodología que se va a utilizar y definir los niveles de riesgo aceptables para el negocio.
2. Identificar los riesgos.
– Identificar los activos dentro del alcance.
– Identificar las vulnerabilidades y amenazas existentes.
3. Analizar y valorar los riesgos.
– Evaluar el impacto o daño en el negocio.
– Evaluar la probabilidad de que ocurra la materialización de una amenaza.
– Decidir si es un riesgo aceptable o si se toma alguna medida
4. Identificar y evaluar las distintas opciones de tratamiento de riesgos.
– Aplicar controles y contramedidas que sean oportunas y ajustadas al daño producido.
3ª PARTE. DOS PROBLEMAS [4 Ptos.] (2 Ptos./Problema)
Problema 1 [2 Ptos]
Álvaro y Beatriz tratan de practicar un intercambio de clave utilizando para ello el algoritmo propuesto
por Diffie y Hellman (en adelante DH). Prueban con valores muy pequeños para p y para el generador
asignando un p = 29 y un = 3. Cada uno completa el protocolo del algoritmo eligiendo un número
secreto. Alvaro elige como valor secreto a = 7 y B elige como valor secreto b = 12.
Se pide:
a) Realizar todos los cálculos y encontrar el valor de la clave que se intercambian Alvaro y Beatriz
detallando todas las operaciones.
b) Detalla las operaciones que tendría que realizar Carlos para llevar a cabo un ataque man in de middle
al protocolo DH descrito entre Alvaro y Beatriz y un valor de secreto generado falsamente = 10.
c) Si en un intercambio real aplicando el protocolo de DH se conocen p, y los valores intercambiados
entre Alvaro y Beatriz ¿es seguro el algoritmo?
Solución 1.
Apartado a)
3
Álvaro envía a Beatriz: a mod p = 37 mod 29 = 12
Beatriz envía a Alvaro: b mod p = 312 mod 29 = 16
Alvaro recibe 312 mod 29 = 16 y calcula: 16a mod 29 = 167 mod 29 = 1
Beatriz recibe 37 mod 29 = 12 y calcula: 12b mod 29 = 1212 mod 29 = 1
La clave intercambiada por lo tanto es 1
Apartado b)
Álvaro envía a Beatriz: a mod p = 37 mod 29 = 12
Carlos intercepta este valor a mod p = 37 mod 29 = 12 que tiene origen Álvaro
Beatriz envía a Alvaro: b mod p = 312 mod 29 = 16
Carlos intercepta también este valor b mod p = 312 mod 29 = 16 que tiene origen Beatriz
Carlos piensa un valor secreto 10 y calcula c mod p = 310 mod 29 = 5 y se lo envía a Álvaro y a
Beatriz.
Álvaro recibe 310 mod 29 = 5 que le ha enviado Carlos pensando que ha sido Beatriz y realiza la
operación 57 mod 29 =28 y se la envía a Carlos pensando que es Beatriz
Beatriz recibe 310 mod 29 = 5 que le ha enviado Carlos pensando que ha sido Álvaro y realiza la
operación 512 mod 29 =7 y se la envía a Carlos pensando que es Álvaro.
Carlos calcula kCarolosAlvaro = 2810 mod 29 = 1 y kCarolosBeatriz = 710 mod 29 = 24.
A partir de ahora el intercambio de información entre Álvaro y Beatriz, es decir, todo lo que Álvaro
envíe a Beatriz y lo que Beatriz envíe a Álvaro, es interceptado por Carlos utilizando las claves 1 y 24
respectivamente.
Apartado c)
El algoritmo en sí es seguro porque el atacante deberá enfrentarse al problema del logaritmo
discreto, un problema de carácter no polinomial o exponencial en función del tamaño del módulo, por lo
que para valores de p en torno a los 1.000 bits es computacionalmente imposible romperlo. Otra cosa es
que con los valores usados en este ejemplo el ataque sea algo totalmente trivial. No obstante, para prevenir
ataques del tipo man-in-the-middle deberá añadirse un sello de tiempo.