Ejercicios Rsa
Ejercicios Rsa
Examen Parcial SI - Curso 2019-2020. Evaluación Continua - Fecha: 9 de marzo de 2020 Página 4
i yi gi ui vi
0 - 924 1 0
1 - 17 0 1
2 54 6 1 -54
3 2 5 -2 109
4 1 1 3 -163
5 5 0 -17 924
La clave privada de Bernardo es dB = -163 + 924 = 761
2.3. La cifra de Alicia a Bernardo para enviarle de forma confidencial el secreto K = 10
será: KeB mod nB
Como nB = pB x qB = 23 x 43 = 989 entonces KeB mod nB = 1017 mod 989, con 17 =
10001
17 = 10001 = b4b3b2b1b0 x = 1
i = 4 b4 = 1 x = 12 * 10 mod 989 = 10
i = 3 b3 = 0 x = 102 mod 989 = 100 mod 989 = 100
i = 2 b2 = 0 x = 1002 mod 989 = 10.000 mod 989 = 110
i = 1 b1 = 0 x = 1102 mod 989 = 12.100 mod 989 = 232
i = 0 b0 = 1 x = 2322 * 10 mod 989 = 538.240 mod 989 = 224
C = 224
2.4. La comprobación de la firma F de Alicia por parte de Bernardo será FeA mod nA
Como nA = pA x qA = 31 x 41 = 1.271 entonces FeA mod nA = 79813 mod 1.271, con 13 =
1101
12 = 1101 = b3b2b1b0 x=1
i = 3 b3 = 1 x = 12 * 798 mod 1.271 = 798
i = 2 b2 = 1 x = 7982 * 798 mod 1.271 = 508.169.592 mod 1.271 = 914
i = 1 b1 = 0 x = 9142 mod 1.271 = 835.396 mod 1.271 = 349
i = 0 b0 = 1 x = 3492 *798 mod 1.271 = 97.197.198 mod 1.271 = 15
Bernardo recupera y comprueba el número firmado por Alicia
2.5. Como las claves privadas parejas de Alicia comienzan por 37 y están separadas entre
ellas 120 espacios, dichas claves serán: 37, 157, 277 (la clave privada d), 397, 517, 637,
757, 877, 997, 1.117 y 1.273 la última. Por lo tanto, dado que 637 es una CPP sí se podrá
firmar digitalmente con ese número. Sin embargo, como 937 no se encuentra entre estas
CPP, no se podrá usar para descifrar algo enviado confidencialmente a Alicia.
2.6. Porque Bernardo usa el primo 23 que es un primo seguro (23 = 11x2 +1), en cambio
los primos de Alicia son 31 y 41, que no son primos seguros porque 31 = 15x2 +1 y 41 =
20x2 +1, y no son primos ni el 15 ni el 20. El uso de primos seguros minimiza la cantidad
de CPP y la cantidad de NNC en RSA, alcanzando 1 CPP y 9 NNC, los valores mínimos.
Examen Parcial SI - Curso 2019-2020. Evaluación Continua - Fecha: 9 de marzo de 2020 Página 5
que tardaría unas 2 * 10282 veces más que la existencia del Universo).
Ejercicio 2. Cifrado con RSA (3 puntos)
En un sistema RSA, el usuario A genera sus claves utilizando: pA = 173; qA = 241 y eA
= 29.
a) Comprueba que el valor elegido para eA es adecuado. (0,5 puntos)
b) Utilizando el Algoritmo Extendido de Euclides (AEE) encuentra el valor de la
clave privada asociada (dA). (0,5 punto)
c) Construye una [pareja de] clave[s] para el usuario B, de 16 bits. Deberás indicar
qué valor(es) eliges, cómo se obtienen los derivados de ellos (0,5 puntos) y que
se cumplen las condiciones requeridas en la técnica RSA (0,5 puntos). En este
apartado no se requiere utilizar el AEE ni el AER.
d) El usuario A cifra el valor ‘123’ para el usuario B ¿Qué valor recibe este último?
Justifica los resultados. (0,5 puntos)
e) ¿Cómo procedería el Usuario B para descifrar el valor recibido por parte de A?
Justifica los resultados. En este apartado no se requiere utilizar el AEE ni el
AER. (0,5 puntos)
Solución
En un sistema RSA, el usuario A genera sus claves utilizando: pA = 173; qA = 241 y eA
= 29.
a) Comprueba que el valor elegido para eA es adecuado. (0,5 puntos)
• nA = pA * qA = 173 * 241 = 41693
• φA(n) = (pA – 1) * (qA – 1) = 172 * 240 = 41280
Se comprueba que mcd ((eA, φA(n)) = mcd (29, 41280) = 1
b) Utilizando el Algoritmo Extendido de Euclides (AEE) encuentra el valor de la
clave privada asociada (dA). (0,5 puntos)
i yi gi ui vi
Ent(gi-1/gi) gi-1 - yi+1∗ gi ui-1 - yi+1∗ ui vi-1 - yi+1∗ vi
0 - 41280 1 0
1 - 29 0 1
2 1423 13 1 -1423
3 2 3 -2 2847
4 4 1 8 -12811 mod 41280 = 28469
3 0
dA = 28469
c) Construye una [pareja de] clave[s] para el usuario B, de 16 bits. Deberás indicar
qué valor(es) eliges, cómo se obtienen los derivados de ellos (0,5 puntos) y que
se cumplen las condiciones requeridas en la técnica RSA (0,5 puntos). En este
apartado no se requiere utilizar el AEE ni el AER.
Elegimos
• pB = 163, qB = 277. Deben ser primos.
• eB = 13. Debe cumplir que 1 < eB < φB(n) y mcd [eB, φB(n)] = 1. Se comprueba
posteriormente
Calculamos
• nB = pB * qB = 163 * 277 = 45151. Se comprueba que su tamaño es 16 bits
• φB(n) = (pB – 1) * (qB – 1) = 162 * 276 = 44712
Se comprueba que eB cumple los requerimientos: 1 < eB < φB(n) y mcd [eB,
φB(n)] = 1
• dB = (inv(eB, φB(n)) = inv(13, 44712) = 17197. (Realizado con SAMCript)
[pareja de] clave[s] para el usuario B
• Clave pública: {13, 45151}
• Clave privada: {17197, 45151}
d) El usuario A cifra el valor ‘123’ para el usuario B ¿Qué valor recibe este último?
Justifica los resultados. (0,5 puntos)
El usuario A utiliza la clave pública del usuario B:
C = MeB mod nB = 12313 mod 45151 = 4479 (Con la calculadora de Windows)
e) ¿Cómo procedería el Usuario B para descifrar el valor recibido por parte de A?
Justifica los resultados. En este apartado no se requiere utilizar el AEE ni el
AER. (0,5 puntos)
El usuario B utiliza su clave privada.
C = MdB mod nB = 447917197 mod 45151 = 123 (Con SAMCript)
Ejercicio 3. Seguridad en integridad y autenticidad. [2 puntos]
Tomando en consideración el supuesto anterior y sabiendo que el usuario A va a enviar
al usuario B el mensaje de texto ‘123’
a) Describe (0,25 puntos) y explica (0,25 puntos) la estructura del (único) bloque
MD5 correspondiente a dicho mensaje. Solo la parte significativa, no hace
falta poner los 0’s de relleno.
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 = [Link].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
C = 604
c) Como nA = pA*qA = 47*61 = 2.867, Bernardo comprueba la firma de Alicia con la clave
pública de ella calculando: FAeA mod nA = 9167 mod 2.867
7 = 111 = b2b1b0 x=1
2
i = 2 b2 = 1 x = 1 *916 mod 2.867 = 916
i = 1 b2 = 1 x = 9162*916 mod 2.867 = 768.575.296 mod 2.867 = 1.404
i = 0 b2 = 1 x = 1.4042*916 mod 2.867 = [Link] mod 2.867 = 123
Valor firmado por Alicia = 123
d) Como el módulo de Alicia es nA = 2.867, Bernardo puede enviarle a Alicia el número
secreto 2.500 porque es un elemento de ese cuerpo de cifra. Sin embargo, Alicia no
puede enviarle el número 2.500 a Bernardo porque en este caso cuerpo de cifra de es
nB = 2.279 y si cifra el valor 2.500 en realidad le estaría enviando el valor 2.500 – 2.279
= 221.
e) Significa que cualquier número N cifrado con la clave pública de Alicia, además de
poderse descifrar con su clave privada, también podrá descifrarse con el número
2.563.
Fuera del examen: Si N = 10 y ciframos con la clave pública de Alicia que es 7 entonces
C = 107 mod 2.867 = 10.000.000mod 2.867 = 2.771. Para descifrar C podemos realizar
estas dos operaciones:
2.7711.183 mod 2.867 = 10 o bien 2.7712.563 mod 2.867 = 10.
f) Significa que si N es un NNC entonces dicho NeA mod nA = N. Dada las características de
los NNC que la suma de los extremos (excepto el 0) es igual al módiulo n, también
serán NNC el 2.209 y el 2.210, ya que se cumple 2.209 + 658 = 2.867 = n y 2.210 + 657
= 2.867 = n.
Examen Parcial SI - Curso 2018-2019. Evaluación Continua - Fecha: 8 de abril de 2019 Página 4
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.
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.
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
i yi gi ui vi
0 -- 616 1 0
1 -- 3 0 1
2 205 1 1 -205
3 3 0 -3 616
Por tanto d = -205+616 = 411
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.
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
En un sistema de cifra RSA, Alicia tierne como datos públicos nA = 209 y eA = 7. Se pide:
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.
i yi gi ui vi
0 - 180 1 0
1 - 7 0 1
2 25 5 1 -25
3 1 2 -1 26
4 2 1 3 -77
5 2 0 -7 180
Mortadelo y Filemón deben descifrar la hora aproximada en la que se ha producido un crimen. El formato es HH,
entre las 00 y las 23 horas, sin minutos. Un compañero de la TIA les ha dejado como criptograma el número 65
resultado de estas operaciones de cifra:
a) Primero se cifra esa hora con la clave de Mortadelo (nM = 77, eM = 13, dM = 37)
b) Segundo se firma ese resultado con la clave de la TIA (nT = 119, eT = 5, dT= 77)
Se pide:
a) [1,50]¿Encontrar la hora del suceso. Es obligatorio usar el Algoritmo de Exponenciación Rápida. Ayuda,
valores en binario: 5 = 101, 13 = 1101, 37 = 100101, 77 = 1001101 (2 puntos)
b) [1,50]¿¿Qué debe tenerse en cuenta al hacer esta operación doble (cifra y firma o firma y cifra) para que
todo salga bien? Justifica tu respuesta. (1 punto)
a) (0,5 puntos) Realiza todas las operaciones necesarias para calcular la clave privada de Arya y de Bran.
b) (0,5 puntos) Utilizando el Algoritmo de Exponenciación Rápida, realiza los cálculos que ha tenido que realizar Arya para
enviarle a Bran la clave secreta K firmada y cifrada.
c) (0,5 puntos) Utilizando el Algoritmo de Exponenciación Rápida, realiza las operaciones que tiene que realizar Bran para
poder recuperar la clave K enviada por Arya y comprobar que es su firma.
d) (0,5 puntos) ¿Daría lo mismo el orden de las operaciones de firma y cifrado para recuperar esta clave K? Realiza las
operaciones oportunas y justifica tu respuesta.
e) (0,5 puntos) ¿Podría darse el caso de existir alguna clave no recuperable al alterar el orden de las operaciones? Justifica
tu respuesta.
NOTA 1: Es obligatorio utilizar el Algoritmo Extendido de Euclides para el cálculo de los inversos en cuerpo.
NOTA 2: Utilizar la tabla de conversión de decimal a binario adjunta cuando se estime necesario.
4
CALIFICACION –
PROBLEMAS
Seguridad de la Información
Curso 2016 – 17. Primer Parcial
24 de Abril. (1 h. 45 min)
(Publicación Notas 5/05/17) (Revisión 8/05/17. 13 h. y 15 h. D 1129)
P1 P2
APELLIDOS Y NOMBRE ____________________________________
___________________________________________________________
a) Solución:
Nombre p Nombre q Nombre eNombre n Nombre= p*q Ф(n) = (p-1)(q-1) dNombre= inv(eNombre, Ф(n))
Arya 7 11 17 77 60 53
Bran 17 23 15 391 352 47
Cálculos Arya:
Operaciones inv (A,B): partiendo de (g0, g1, u0, u1, v0, v1, i) = (B, A, 1, 0, 0, 1, 1), las operaciones a realizar son:
i yi gi ui vi
0 - 60 1 0
1 - 17 0 1
2 3 9 1 -3
3 1 8 -1 4
4 1 1 2 -7
5 8 0 -17 60
Mientras gi <> 0
Hacer yi+1 = parte entera (gi-1/gi)
Hacer gi+1 = gi-1 – yi + 1* gi
Hacer ui+1 = ui-1 – yi + 1* ui
Hacer vi+1 = vi-1 – yi + 1* vi
Hacer i = i+1
Si (vi-1 < 0)
Hacer vi-1 = vi-1 + B
Hacer x = vi-1
El resultado es negativo (-7) por lo que se le suma el módulo. inv (17,60) = -7 + 60 = 53
Cálculos Bran:
Operaciones inv (A,B): partiendo de (g0, g1, u0, u1, v0, v1, i) = (B, A, 1, 0, 0, 1, 1), las operaciones a realizar son:
5
i yi gi ui vi
0 - 352 1 0
1 - 15 0 1
2 23 7 1 -23
3 2 1 -2 47
4 7 0 15 -352
b) Solución:
Arya:
1. Firma el mensaje K= 53 con su clave privada y su módulo K Firmado = 53 53 mod 77 = 58
5310 = 001101012
x=1
i=5 b5= 1 x = 12 53 mod 77 = 53 x = 53
i=4 b4= 1 x = 532 *53 mod 77 = 36 x = 36
i=3 b3= 0 x = 362 mod 77 = 64 x =64
i=2 b2= 1 x = 642 53 mod 77 = 25 x = 25
i=1 b1= 0 x = 252 mod 77 = 9 x = 9
i=0 b0= 1 x = 92 53 mod 77 = 58 x = 58
1510 = 11112
x=1
i=3 b3= 1 x = 12 *58 mod 391 = 58 x =58
i=2 b2= 1 x = 582 58 mod 391 = 3 x = 3
i=1 b1= 1 x = 32 *58 mod 391 = 131 x = 131
i=0 b0= 1 x = 1312 58 mod 391 = 243 x = 243
c) Solución:
Bran:
4710 = 1011112
x=1
i=5 b5= 1 x = 12 243 mod 391 = 243 x = 243
i=4 b4= 0 x = 2432 mod 391 = 8 x=8
i=3 b3= 1 x = 82 * 243 mod 391 = 303 x =303
i=2 b2= 1 x = 3032 243 mod 391 = 300 x = 300
i=1 b1= 1 x = 3002 * 243 mod 391 = 197 x = 197
i=0 b0= 1 x = 1972 243 mod 391 = 58 x = 58
2. Comprueba la firma de Arya con la clave pública y módulo de Arya recuperando así el mensaje con la clave secreta K.
M2= 5817 mod 77 = 53
6
1710 = 100012
x=1
i=4 b3= 1 x = 12 *58 mod 77 = 58 x =58
i=3 b3= 0 x = 582 mod 77 = 53 x =53
i=2 b2= 0 x = 532 mod 77 = 37 x = 37
i=1 b1= 0 x = 372 mod 77 = 60 x = 60
i=0 b0= 1 x = 602 58 mod 77 = 53 x = 53
d) Solución:
Arya:
1. Cifra el mensaje K= 53 para Bran con la clave pública y módulo de Bran
K cifrada para Bran= 5315 mod 391= 60
1510 = 11112
x=1
i=3 b3= 1 x = 12 *53 mod 391 = 53 x =53
i=2 b2= 1 x = 532 53 mod 391 = 3 x = 297
i=1 b1= 1 x = 2972 *53 mod 391 = 281 x = 281
i=0 b0= 1 x = 2812 53 mod 391 = 60 x = 60
5310 = 001101012
x=1
i=5 b5= 1 x = 12 60 mod 77 = 60 x = 60
i=4 b4= 1 x = 602 *60 mod 77 = 15 x = 15
i=3 b3= 0 x = 152 mod 77 = 71 x =71
i=2 b2= 1 x = 712 60 mod 77 = 4 x = 4
i=1 b1= 0 x = 42 mod 77 = 16 x = 16
i=0 b0= 1 x = 162 60 mod 77 = 37 x = 37
Envía a Bran 37
Bran:
1. Comprueba la firma de Arya con la clave pública y módulo de Arya recuperando así el mensaje con la clave
secreta K cifrada.
M1= 3717 mod 77= 60
1710 = 100012
x=1
i=4 b3= 1 x = 12 *37 mod 77 = 37 x =37
i=3 b3= 0 x = 372 mod 77 = 60 x =60
i=2 b2= 0 x = 602 mod 77 = 58 x = 58
i=1 b1= 0 x = 582 mod 77 = 53 x = 53
i=0 b0= 1 x = 532 37 mod 77 = 60 x = 60
4710 = 1011112
x=1
i=5 b5= 1 x = 12 60 mod 391 = 60 x = 60
i=4 b4= 0 x = 602 mod 391 = 81 x = 81
i=3 b3= 1 x = 812 * 60 mod 391 = 314 x =314
i=2 b2= 1 x = 3142 60 mod 391 = 321 x = 321
i=1 b1= 1 x = 3212 * 60 mod 391 = 359 x = 359
i=0 b0= 1 x = 3592 60 mod 391 = 53 x = 53
En este caso la clave K=53 se recupera sin problemas utilizando cualquier orden Cifra y firma o Firma y Cifra.
7
e) Solución:
SI, podría ocurrir que una de las operaciones para comprobar la firma o descifrado la base de la potencia (el número que se
vaya a elevar a una u otra clave) no esté dentro del cuerpo de cifra. En este caso, podría ocurrir que el orden alterase el resultado
recuperado.
8
P1 P2
Seguridad de la Información
Curso 2016 – 17. CONVOCATORIA EXTRAORDINARIA
14 de Julio. 12:00 h (Duración 2 h. 45 min)
(Publicación Notas 18/07/17) (Revisión 19/07/17. A las 12 h. Laboratorio 1101)
PRACTICA
APELLIDOS
Y NOMBRE:
M = Una función hash toma cada carácter de texto y lo convierte en numérico, los agrupa de 3 en 3 y realiza las
operaciones (1º - 2º) * 3º
a) ¿Sobre cuántos bloques debe operar MD5 para obtener el hash de M? Justifica tu respuesta. (0,2 pts)
b) Describe y representa la estructura y la distribución de los bits generados en cada bloque. (0,5 pts)
c) Si al texto anterior le añadimos 50 caracteres, el mensaje M’ y su hash son los que se muestran más abajo. ¿Qué
sucederá ahora con la estructura y la distribución de los bits generados en cada bloque? (0,3 pts)
M’ = Una función hash toma cada carácter de texto y lo convierte en numérico, los agrupa de 3 en 3 y realiza las
operaciones (1º - 2º) * 3º. Los resultados son acumulados en un número final
SOLUCIÓN
a) M tiene 134 caracteres => 134 x 8 = 1.072 bits. Como 1.072/512 = 2,09375, se procesarán 3 bloques.
b) MD5 procesa bloques de 512 bit y reserva los últimos 64 bits para indicar el tamaño del archivo.
El primer y el segundo bloque tendrán 512 bits correspondientes al texto.
El tercer bloque tendrá 1.072 - 1.024 = 48 bits correspondientes al texto y los 64 últimos bits para el tamaño del
texto, En medio habrá 512 – (48 + 64) = 400 bits de relleno constituido por un 1 seguido de 399 ceros.
c) Al añadir 50 bytes, el mensaje queda en 134 + 50 = 184 bytes, que significa 1.472 bits. Si a esta cantidad le
sumamos los 64 bits de relleno el resultado es 1.536 bits, que es justo 512x3. Pero como el hash siempre deberá
llevar al menos un byte de relleno, ahora serán 4 bloques a procesar y el último bloque serán todos rellenos (512 –
64 = 448 bits) y los últimos 64 bits indicarán el tamaño del archivo.
P1 P2
Seguridad de la Información
Curso 2016 – 17. CONVOCATORIA EXTRAORDINARIA
14 de Julio. 12:00 h (Duración 2 h. 45 min)
(Publicación Notas 18/07/17) (Revisión 19/07/17. A las 12 h. Laboratorio 1101)
PRACTICA
APELLIDOS
Y NOMBRE:
γ = mcm [(p-1), (q-1)] dγ = e-1 mod γ = inv (e, γ) di = dγ + i γ con 1 < di < n i = 0, 1,... λ λ = (n - dγ)/γ
σn = [1 + mcd (e-1, p-1)]*[1 + mcd (e-1, q-1)] Ne mod p = N con 1 < N < p-1 y Ne mod q = N con 1 < N < q-1
SOLUCIÓN
a) Tenemos n = p*q = 115 y que φ(n) = (p-1)(q-1) = 4*22 = 88. Buscaremos el inv (7, 88)
i yi gi ui vi
0 - 88 1 0
1 - 7 0 1
2 12 4 1 -12
3 1 3 -1 13
4 1 1 2 -25
5 3 0 -7 88
La clave privada de Bernardo es inv (7, 88) = -25+88 = 63
c) Bernardo no puede enviar el secreto 250 a Alicia porque el cuerpo de cifra de ésta es 187 y 250 queda
fuera del cuerpo. En realidad le estaría enviado otro secreto, el número 250 – 187 = 63.
i yi gi ui vi
0 - 44 1 0
1 - 7 0 1
2 6 2 1 -6
3 3 1 -3 19
4 2 0 7 -44
e) di = dγ + i γ con i = 0, 1, 2
d0 = 19 + 0*44 = 19; d1 = 19 + 1*44 = 63; d2 = 19 + 2*44 = 107
Como 63 es la clave privada, las claves privadas parejas CPP son 19 y 107.
Figura 1
1. Comenta al menos tres características que veas en los anillos encontrados acerca de las claves, sus anillos
y números. (0,2 pts)
2. ¿Qué son los anillos de longitud 1? (0,2 pts)
SOLUCIÓN:
1) a) Las tres claves tienen varios anillos, la primera y la segunda 20 anillos y la tercera 21 anillos.
b) Hay algunos anillos que concentran una gran cantidad de números. En la clave1 los 672 anillos de
longitud 660 significan el 46% de los números del módulo. En la Clave2 los 1.344 anillos de longitud 5.220
significan el 68% de los números del módulo. En la Clave3 los 816 anillos de longitud 161.040 significan el
77% de los números del módulo.
c) A medida que la clave tiene más bits, tarda más tiempo en encontrar todos sus anillos.
2) Los anillos de longitud 1 son los números no cifrables de la clave, en la Clave1 hay 49, en la Clave2 y en la
Clave3 hay 9.
SE PIDE:
a) Justifica las diferencias de tiempo entre ambos ataques.
SOLUCIÓN
El segundo ataque ha prosperado mucho antes simplemente porque el mensaje original 20 se encuentra en uno
de los anillos de longitud 9.750.540 y el mensaje original 10 se encuentra en uno de los anillos de longitud
68.253.780, exactamente 7 veces mayor.
Resolviendo problemas de Seguridad de la Información, Carlos y Sara trabajan con el algoritmo RSA utilizando un
módulo de 10 bits. Uno de los problemas que estudian trata del intercambio de una clave de sesión KS de 8 bits para una
comunicación. Los datos de trabajo de Carlos y Sara son los siguientes:
Carlos: p Carlos = 7; q Carlos = 17; e Carlos = 11; d Carlos = 35
Sara: p Sara = 11; q Sara = 7; e Sara = 7
Nota: Todos los cálculos de inversos y de exponenciación deben hacerse obligatoriamente con el Algoritmo Extendido
de Euclides y el Algoritmo de Exponenciación Rápida respectivamente.
Se pide:
a) (0,5 puntos) Calcule detalladamente todas las operaciones necesarias para encontrar la clave privada de Sara.
b) (0,5 puntos) Los datos de trabajo de Carlos generan una única Clave Privada Pareja = 83. Calcule y encuentre las
claves privadas parejas de Sara. ¿Qué datos elegiría, los de Carlos o los de Sara? Justifique su respuesta.
c) (1,25 puntos) Carlos genera una clave de sesión K=43 y se la envía cifrada de forma confidencial a Sara. Cuando
Sara recibe el criptograma lo descifra. Realice detalladamente las operaciones de cifrado y descifrado de la clave
K generada por Carlos (0,5). Analice y justifique los resultados obtenidos en las operaciones realizadas (0,75).
d) (1,25 puntos) ¿Calcule y describa detalladamente qué ocurre cuando es Sara la encargada de generar y transmitir a
Carlos esta misma clave K=43 cifrada? (0,5) ¿Sería mejor o igual este nuevo escenario de intercambio de clave que
el propuesto en el apartado c)? Justifique su respuesta (0,75).
e) (0,5 puntos) Indique las operaciones (sin realizarlas) que tendrían que realizar Carlos y Sara para verificar la
confidencialidad y la integridad del intercambio de la clave de sesión K=43.
Información y datos de interés que se conocen en cada una de las operaciones realizadas:
iii) NNC (n=77 y e=7) = {0, 1, 10, 11, 12, 21, 22, 23, 32, 33, 34, 43, 44, 45, 54, 55, 56, 65, 66, 67, 76}
NNC (n=119 y e=11) = {0, 1, 34, 35, 50, 69, 84, 85, 118}
Solución:
Apartado a)
Sara: p Sara = 11; q Sara = 7; e Sara = 7
n Sara =77; (n) Sara = 60
d Sara = inv [eS, (n) Sara)] = inv (7,60) =43
i yi gi ui vi
0 -- 60 1 0
1 -- 7 0 1
2 Int(60/7)=8 60-8*7=4 1-8*0=-7 0-8*1=-8
3 Int(7/4)=1 7-1*4=3 0-1*-7=7 1-1*(-8)=9
4 Int(4/3)=1 4-1*3=1 -7-1*7= -14 -8-1*9=-17
5 Int(3/1)=3 3-3*1=0
La clave privada de Sara es dSara = -17+60=43
Apartado b)
Sara: p Sara = 11; q Sara = 7; e Sara = 7 n Sara =77; (n) Sara = 60 d Sara =inv (7,60) =43
= mcm[(p-1),(q-1)] = mcm (10, 6) = 30
d = inv (e, ) = inv (7, 30) =13
Seguridad de la Información
Curso 2015– 16. Evaluación Continua.
2ª Parte. Ejercicio (4 puntos)
El número de claves privadas parejas serán. = (n - d)/ = (77- 13)/ 30 = 2
Las claves privadas parejas se calculan aplicando: di = d + i
i=0; d0 = 13 + 0*30 =13;
i=1; d1 = 13+1*30=43, (Esta es la clave privada y NO es clave pareja)
i=2, d2 = 13+2*30=73
Las claves parejas son {13,73}
Apartado c)
KSesion = 43.
Cifra para Sara
C = KeSara mod nSara = 437 mod 77
710 = 1112 (b2b1b0); x = 1
i=2 b2 = 1 x = 12 x 43 mod 77 x = 43
C = 43
43 es un Número No Cifrable en el cuerpo n =77 de Sara de acuerdo a los datos proporcionados
en el enunciado (iii). Por lo tanto Sara no necesitaría descifrar porque sabe que el mensaje
recibido viene en claro y NO cifrado.
Apartado d)
Si es Sara la encargada de generar y transmitir de forma confidencial la clave K=43 a Carlos,
la cifra se haría en el cuerpo de Carlos, con la clave pública de Carlos.
KSesion = 43.
Cifrado para Carlos
Carlos: p Carlos = 7; q Carlos = 17; e Carlos = 11; n=p*q = 119; d Carlos = 35
C= KSesioneCarlos 11
mod nCarlos = 43 mod 119;
1110=10112 (b3b2b1b0); (entregado como dato, ii) x = 1
Se comprueba que la clave de sesión enviada llega cifrada. Por lo tanto, este nuevo escenario
es mejor que el presentado en el apartado c) (donde la clave de sesión es transmitida en claro
al tratarse de un Número No Cifrable en el cuerpo de Sara). En este nuevo escenario la clave
de sesión es transmitida de Sara a Carlos de forma cifrada porque NO está entre los NNC en
el cuerpo de Carlos.
Apartado e)
1º) Cifrado con confidencial e íntegridad de Sara para Carlos:
Sara cifra KSesión para Carlos (para confidencialidad a Carlos) con la clave pública de Carlos
obteniendo C1 = (KSesión)eCarlos mod nCarlos
Sara además, aplica el hash de (KSesión) y lo firma con su clave privada:
Firma= hash(KSesión)dSara mod nSara
Sara envía a Carlos las dos cosas (C1 y la Firma)
2º) Autenticación de la Firma y verificación de la integridad:
Carlos descifra C1 con su clave privada y obtiene la supuesta clave de sesion K´Sesión:
K´Sesión = C1dCarlos mod nCarlos
Además autentica la Firma de Sara descifrando el h(KSesión) con la clave pública de Sara
obteniendo el hash(KSesión) que le envió Sara.
hash(KSesión) =FirmaeSara mod nSara
Carlos aplica la función hash(K´Sesión) y comprueba que hash (KSesión)= hash(K´Sesión)
verificando así la integridad de la clave.
Seguridad de la Información
Curso 2015 – 16. Evaluación SOLO PRUEBA FINAL
6 de JUNIO. (2 h. 45 min)
APELLIDOS
Y NOMBRE _______________________________________________________________
Problema 2 [2 Ptos]
Carmen ha interceptado un mensaje cifrado que Alicia ha enviado a Beatriz de forma confidencial. Se sospecha que
para cifrar el mensaje interceptado se ha utilizado el algoritmo de cifrado de clave pública RSA. Además, Carmen
sabe que Alicia firma utilizando RSA todos los documentos enviados. El criptograma interceptado es C=317.
a) ¿Es posible que Carmen conozca el mensaje M asociado al criptograma interceptado sin conocer la
clave privada de receptor? Justifica detalladamente tu respuesta.
Solución
SÍ, es posible. Realizando cualquiera de los ataques que puede sufrir el algoritmo RSA.
El ataque basado en la paradoja del cumpleaños en la que se encuentra la clave privada d o una clave
privada pareja
b) Detalla y realiza las operaciones que haría Carmen para realizar un ataque cíclico.
El secreto interceptado es C=175
Solución
c) ¿Cuáles son los valores de p y q utilizados por Ana y Boris? ¿Son primos seguros? ¿Qué ocurriría si el
ataque cíclico se realiza sobre un cifrado en el que Ana y Boris han utilizado un n= 517?
Solución