Escuela Superior Politécnica del Litoral
Facultad de Ingeniería Eléctrica y Computación
Maestría en Seguridad Informática Aplicada
Criptografía
Resolución de Ejercicios Hoja5
Por Freddy A. Rojas Vilela.
EjercicioNo. 1
Asumaun criptosistemaRSA con p = 97 y q = 31. Discutasi todaslas llavespúblicaspropuestas
pueden ser usadas en el criptosistema:
Para poderdeterminarsi unallavepublicapuedeserutilizadaparael criptosistemaesnecesaria
que sea coprimo con phi(n). Entonces para poder comprobarlo procedamos a calcular dicho
valor, así:
𝑛 = 𝑝 ∗ 𝑞
𝑛 = 97 ∗ 31
𝑛 = 3007
𝜙( 𝑛) = ( 𝑝 − 1)( 𝑞 − 1)
𝜙(3007) = 96 ∗ 30
𝜙(3007) = 2880
La prueba para determinar si 2 números son coprimos es que su mcd sea 1:
𝒎𝒄𝒅( 𝒂, 𝝓( 𝒏)) = 𝟏
a. 24
𝑚𝑐𝑑(24,2880) = 24
No cumple con la condición por lo tanto se descarta
b. 33
𝑚𝑐𝑑(33,2880) = 3
No cumple con la condición por lo tanto se descarta
c. 45
𝑚𝑐𝑑(45,2880) = 45
No cumple con la condición por lo tanto se descarta
d. 49
𝒎𝒄𝒅( 𝟒𝟗, 𝟐𝟖𝟖𝟎) = 𝟏
Cumple con la condición por lo tanto se acepta como clave pública
Ejercicio No. 2
Usando númerosprimoscondos dígitos,genere suclave públicay privadaRSA.Describatodos
los pasos.
Primero debemos seleccionar los números primos de dos dígitos, así:
𝒑 = 𝟑𝟏 𝒒 = 𝟖𝟗
Ahoracalculamosn y phi(n):
𝑛 = 𝑝 ∗ 𝑞 = 31 ∗ 89
𝑛 = 2759
𝜙( 𝑛) = ( 𝑝 − 1)( 𝑞 − 1)
𝜙(2759) = 30 ∗ 88
𝜙(2759) = 2640
Ahora debemos determinar la clave pública, es decir, un número que cumpla con siguiente
condición:
1 < 𝑒 < 𝜙(𝑛)
𝑒 = 1483
Verificamosque nuestraelecciónesválida:
𝑚𝑐𝑑( 𝑒, 𝜙( 𝑛)) = 𝑚𝑐𝑑(1483,2640) = 1
Cumple conla condiciónporlotanto esapta para ser clave pública.
Ahoradebemoscalcularlaclave privada:
𝑑 = 𝑒−1 𝑚𝑜𝑑 𝜙( 𝑛)
𝑑 = (1483)−1 𝑚𝑜𝑑 2640
𝑑 = 2227
EjercicioNo.3
Alice y Bob envían mensaje encriptados usando el criptosistema RSA, con los siguientes
parámetros:
𝐴𝑙𝑖𝑐𝑒: 𝑝 𝐴 = 223; 𝑞 𝐴 = 503, 𝑒𝐴 = 41
𝐵𝑜𝑏: 𝑝 𝐵 = 211; 𝑞 𝐵 = 509, 𝑒 𝐵 = 73
1. Calcule laclave privadade Alice yBob
Calculandolaclaveprivadade Alice
𝑛 = 𝑝 ∗ 𝑞 = 223 ∗ 503
𝑛 = 112169
𝜙( 𝑛) = ( 𝑝 − 1)( 𝑞 − 1)
𝜙(112169) = 222 ∗ 502
𝜙(112169) = 111444
Verificamoslaclave públicadada:
𝑚𝑐𝑑( 𝑒, 𝜙( 𝑛)) = 𝑚𝑐𝑑(41,111444) = 1
Cumple conla condiciónporlotanto esapta para ser clave pública.
Ahoradebemoscalcularlaclave privada:
𝑑 = 𝑒−1 𝑚𝑜𝑑 𝜙( 𝑛)
𝑑 = (41)−1 𝑚𝑜𝑑 111444
𝑑 = 92417
Calculandolaclaveprivadade Bob
𝑛 = 𝑝 ∗ 𝑞 = 211 ∗ 509
𝑛 = 107399
𝜙( 𝑛) = ( 𝑝 − 1)( 𝑞 − 1)
𝜙(107399) = 210 ∗ 508
𝜙(107399) = 106680
Verificamoslaclave públicadada:
𝑚𝑐𝑑( 𝑒, 𝜙( 𝑛)) = 𝑚𝑐𝑑(73,106680) = 1
Cumple conla condiciónporlotanto esapta para ser clave pública.
Ahoradebemoscalcularlaclave privada:
𝑑 = 𝑒−1 𝑚𝑜𝑑 𝜙( 𝑛)
𝑑 = (73)−1 𝑚𝑜𝑑 106680
𝑑 = 39457
2. Encripte el mensaje m= 7815, que Bob quiere enviaraAlice
Comoel mensaje vaserenviadoa Alice,debemosutilizarsuclave públicaparacifrar el
mensaje,así:
𝐶 = 𝑚 𝑝 𝐴 ( 𝑚𝑜𝑑 𝑛)
𝐶 = 781541 ( 𝑚𝑜𝑑 112169)
𝐶 = 51005
AhoracomprobaremoselmensajeenviadocuandoAlicelodescifre consuclaveprivada:
𝑚 = 𝐶 𝑑 ( 𝑚𝑜𝑑 𝑛)
𝑚 = 5100592417 ( 𝑚𝑜𝑑 112169)
𝑚 = 7815
EjercicioNo. 4
Utilice laclave generadaenel Ejercicio No.2,para firmardigitalmente el mensajem=7y valide
que el valordel resultadoesunfirmacorrecta
Clave pública
𝑒 = 1483
Clave privada
𝑑 = 2227
Módulo
n = 2759
Mensaje a cifrar
m = 7
𝑠 = 𝑚 𝑑 (𝑚𝑜𝑑 𝑛)
𝑠 = 72227 𝑚𝑜𝑑 2759 = 2105
Mensaje firmado a enviar
(m, s) = (7, 2105)
Ahoraprocedemosavalidadlafirmadel mensaje,así:
𝑚 = 𝑠 𝑒 𝑚𝑜𝑑 𝑛
𝑚 = 21051483 𝑚𝑜𝑑 2759
𝑚 = 7
Con lo que comprobamos que la firma es completamente válida,ya que hemos obtenido le
mensaje enviado.
EjercicioNo. 5
Usando los siguientesparámetros: ℤ 𝑝 = ℤ29 , 𝛼 = 3, cree la llave pública y privada, para los
usuarios A y B, y envíe el mensaje m = 15 a B encriptado usando el criptosistema ElGamal.
Describa el proceso.
Primero con los datos proporcionados calcular el valor de la llave pública y privada, así:
Usuario A
Llave Privada: Se debe seleccionar un valor aleatorio d de tal manera que cumpla con la
condición 𝑑 ℇ ℤ29 − {0,1, 𝑝 − 1}
𝑑 𝐴 = 11
Llave Pública:Se calcula elevando el elemento primitivo 𝛼, a la llave publica seleccionada.
𝛼 𝑑 𝑚𝑜𝑑 𝑝 = 311 𝑚𝑜𝑑 29 = 15
𝑒𝐴 = 15
Usuario B
Llave Privada: Se debe seleccionar un valor aleatorio d de tal manera que cumpla con la
condición d ℇ ℤ29 − {0,1, 𝑝 − 1}
𝑑 𝐵 = 25
Llave Pública:Se calcula elevando el elemento primitivo 𝛼, a la llave publica seleccionada.
𝛼 𝑑 𝑚𝑜𝑑 𝑝 = 325 𝑚𝑜𝑑 29 = 14
𝑒 𝐵 = 14
Ahora procedemos a encriptar el mensaje destinado para el usuario B, y para poder hacer
debemos de seleccionar un valor aleatorio k ℇ ℤ29 − {0,1, 𝑝 − 1}. Elegimos k = 7
𝑚 = 15
𝐶 = [𝛼 𝑘, 𝑚 ∙ ( 𝛼 𝑑)
𝑘
]
𝐶 = [37,15 ∙ (14)7]
𝐶 = [ 𝑐1, 𝑐2] = [12, 6]
Para verificarvamosa descifrarel mensaje enviadoaB, utilizandolallaveprivadade B,así:
𝐶 = [12, 6]
𝑚 = 𝑐1
−𝑑 ∙ 𝑐2
𝑚 = 12−25 ∙ 6 𝑚𝑜𝑑 29
𝑚 = 15
Vemos que coincide con el mensaje original.
Ejercicio No. 6
Alice y Bob utilizan el criptosistema ElGamal (trabajando en un campo finito ℤ131 , con el
elementoprimitivo 𝛼 = 37.Lacorrespondienteclave privadade A yB son 𝑟𝐴 = 122 y 𝑟𝐵 = 18.
Detalle el procesode encriptación del mensaje m = 6, que Alice cifra para enviar a Bob (use el
valor aleatorio k = 21).
También detalle el proceso que debe seguir Bob para descifrar el mensaje.
Para encriptarel mensajeenviadoporAliceaBob,debemoshacerloconlaclave públicade Bob,
la cual procederemos a calcular con los datos proporcionados:
𝛼 𝑑 𝑚𝑜𝑑 𝑝 = 3718 𝑚𝑜𝑑 131 = 108
𝑒 𝐵 = 108
Con estoAlice,puedeyaencriptarel mensaje,así:
𝑚 = 6
𝐶 = [𝛼 𝑘, 𝑚 ∙ ( 𝛼 𝑑)
𝑘
]
𝐶 = [3721,6 ∙ (108)21]
𝐶 = [ 𝑐1, 𝑐2] = [95, 93]
Para descifrarel mensaje enviadoaBob, utilizamossullaveprivada 𝑟𝐵 = 18,así:
𝐶 = [95,81]
𝑚 = 𝑐1
−𝑟 𝐵 ∙ 𝑐2
𝑚 = 95−18 ∙ 93 𝑚𝑜𝑑 131
𝑚 = 6
Vemos que coincide con el mensaje original.
Ejercicio No. 7
Suponga el criptosistema ElGamal con los parámetros 𝛼 = 3 y ℤ29, con las siguientes llaves
públicas:
USUARIO B 12
USUARIO C 5
Usted es el usuario B y ha calculado su clave pública 𝛼7 = 12 𝑚𝑜𝑑 29
Ustedrecibe unmensaje cifradomensaje( 𝛼 𝑘,𝑐) = (21, 11),ytambiénrecibelasupuestafirma
digital de C para el mensaje, ( 𝛼 𝑘, 𝑠) = (21,3)
1. Encuentre el mensaje Original
Para descifrarel mensaje debemos utilizarlallave privadadel UsuarioB 𝑑 𝐵 = 7, así:
𝐶 = [21,11]
𝑚 = 𝑐1
−𝑑 𝐵 ∙ 𝑐2
𝑚 = 21−7 ∙ 11 𝑚𝑜𝑑 29
𝑚 = 13
El mensaje original es 𝑚 = 13
2. Valide la firma
( 𝛼 𝑘, 𝑠) = (21,3)
𝛼 𝑘 = 21
𝛼 𝑚 = 313 𝑚𝑜𝑑 29 = 19
(𝛼 𝑑 𝑐) 𝑎 𝑘
∙ ( 𝑎 𝑘)
𝑠
= 521 ∙ 213 𝑚𝑜𝑑 29 = 19
La firma es válida ya que ambos valores coinciden.

Métodos de Crifrado Asimétrico

  • 1.
    Escuela Superior Politécnicadel Litoral Facultad de Ingeniería Eléctrica y Computación Maestría en Seguridad Informática Aplicada Criptografía Resolución de Ejercicios Hoja5 Por Freddy A. Rojas Vilela. EjercicioNo. 1 Asumaun criptosistemaRSA con p = 97 y q = 31. Discutasi todaslas llavespúblicaspropuestas pueden ser usadas en el criptosistema: Para poderdeterminarsi unallavepublicapuedeserutilizadaparael criptosistemaesnecesaria que sea coprimo con phi(n). Entonces para poder comprobarlo procedamos a calcular dicho valor, así: 𝑛 = 𝑝 ∗ 𝑞 𝑛 = 97 ∗ 31 𝑛 = 3007 𝜙( 𝑛) = ( 𝑝 − 1)( 𝑞 − 1) 𝜙(3007) = 96 ∗ 30 𝜙(3007) = 2880 La prueba para determinar si 2 números son coprimos es que su mcd sea 1: 𝒎𝒄𝒅( 𝒂, 𝝓( 𝒏)) = 𝟏 a. 24 𝑚𝑐𝑑(24,2880) = 24 No cumple con la condición por lo tanto se descarta b. 33 𝑚𝑐𝑑(33,2880) = 3 No cumple con la condición por lo tanto se descarta c. 45 𝑚𝑐𝑑(45,2880) = 45 No cumple con la condición por lo tanto se descarta d. 49 𝒎𝒄𝒅( 𝟒𝟗, 𝟐𝟖𝟖𝟎) = 𝟏 Cumple con la condición por lo tanto se acepta como clave pública Ejercicio No. 2 Usando númerosprimoscondos dígitos,genere suclave públicay privadaRSA.Describatodos los pasos. Primero debemos seleccionar los números primos de dos dígitos, así: 𝒑 = 𝟑𝟏 𝒒 = 𝟖𝟗
  • 2.
    Ahoracalculamosn y phi(n): 𝑛= 𝑝 ∗ 𝑞 = 31 ∗ 89 𝑛 = 2759 𝜙( 𝑛) = ( 𝑝 − 1)( 𝑞 − 1) 𝜙(2759) = 30 ∗ 88 𝜙(2759) = 2640 Ahora debemos determinar la clave pública, es decir, un número que cumpla con siguiente condición: 1 < 𝑒 < 𝜙(𝑛) 𝑒 = 1483 Verificamosque nuestraelecciónesválida: 𝑚𝑐𝑑( 𝑒, 𝜙( 𝑛)) = 𝑚𝑐𝑑(1483,2640) = 1 Cumple conla condiciónporlotanto esapta para ser clave pública. Ahoradebemoscalcularlaclave privada: 𝑑 = 𝑒−1 𝑚𝑜𝑑 𝜙( 𝑛) 𝑑 = (1483)−1 𝑚𝑜𝑑 2640 𝑑 = 2227 EjercicioNo.3 Alice y Bob envían mensaje encriptados usando el criptosistema RSA, con los siguientes parámetros: 𝐴𝑙𝑖𝑐𝑒: 𝑝 𝐴 = 223; 𝑞 𝐴 = 503, 𝑒𝐴 = 41 𝐵𝑜𝑏: 𝑝 𝐵 = 211; 𝑞 𝐵 = 509, 𝑒 𝐵 = 73 1. Calcule laclave privadade Alice yBob Calculandolaclaveprivadade Alice 𝑛 = 𝑝 ∗ 𝑞 = 223 ∗ 503 𝑛 = 112169 𝜙( 𝑛) = ( 𝑝 − 1)( 𝑞 − 1) 𝜙(112169) = 222 ∗ 502 𝜙(112169) = 111444 Verificamoslaclave públicadada: 𝑚𝑐𝑑( 𝑒, 𝜙( 𝑛)) = 𝑚𝑐𝑑(41,111444) = 1 Cumple conla condiciónporlotanto esapta para ser clave pública. Ahoradebemoscalcularlaclave privada: 𝑑 = 𝑒−1 𝑚𝑜𝑑 𝜙( 𝑛) 𝑑 = (41)−1 𝑚𝑜𝑑 111444 𝑑 = 92417 Calculandolaclaveprivadade Bob 𝑛 = 𝑝 ∗ 𝑞 = 211 ∗ 509 𝑛 = 107399 𝜙( 𝑛) = ( 𝑝 − 1)( 𝑞 − 1) 𝜙(107399) = 210 ∗ 508 𝜙(107399) = 106680 Verificamoslaclave públicadada: 𝑚𝑐𝑑( 𝑒, 𝜙( 𝑛)) = 𝑚𝑐𝑑(73,106680) = 1 Cumple conla condiciónporlotanto esapta para ser clave pública. Ahoradebemoscalcularlaclave privada: 𝑑 = 𝑒−1 𝑚𝑜𝑑 𝜙( 𝑛) 𝑑 = (73)−1 𝑚𝑜𝑑 106680 𝑑 = 39457
  • 3.
    2. Encripte elmensaje m= 7815, que Bob quiere enviaraAlice Comoel mensaje vaserenviadoa Alice,debemosutilizarsuclave públicaparacifrar el mensaje,así: 𝐶 = 𝑚 𝑝 𝐴 ( 𝑚𝑜𝑑 𝑛) 𝐶 = 781541 ( 𝑚𝑜𝑑 112169) 𝐶 = 51005 AhoracomprobaremoselmensajeenviadocuandoAlicelodescifre consuclaveprivada: 𝑚 = 𝐶 𝑑 ( 𝑚𝑜𝑑 𝑛) 𝑚 = 5100592417 ( 𝑚𝑜𝑑 112169) 𝑚 = 7815 EjercicioNo. 4 Utilice laclave generadaenel Ejercicio No.2,para firmardigitalmente el mensajem=7y valide que el valordel resultadoesunfirmacorrecta Clave pública 𝑒 = 1483 Clave privada 𝑑 = 2227 Módulo n = 2759 Mensaje a cifrar m = 7 𝑠 = 𝑚 𝑑 (𝑚𝑜𝑑 𝑛) 𝑠 = 72227 𝑚𝑜𝑑 2759 = 2105 Mensaje firmado a enviar (m, s) = (7, 2105) Ahoraprocedemosavalidadlafirmadel mensaje,así: 𝑚 = 𝑠 𝑒 𝑚𝑜𝑑 𝑛 𝑚 = 21051483 𝑚𝑜𝑑 2759 𝑚 = 7 Con lo que comprobamos que la firma es completamente válida,ya que hemos obtenido le mensaje enviado. EjercicioNo. 5 Usando los siguientesparámetros: ℤ 𝑝 = ℤ29 , 𝛼 = 3, cree la llave pública y privada, para los usuarios A y B, y envíe el mensaje m = 15 a B encriptado usando el criptosistema ElGamal. Describa el proceso. Primero con los datos proporcionados calcular el valor de la llave pública y privada, así: Usuario A Llave Privada: Se debe seleccionar un valor aleatorio d de tal manera que cumpla con la condición 𝑑 ℇ ℤ29 − {0,1, 𝑝 − 1} 𝑑 𝐴 = 11
  • 4.
    Llave Pública:Se calculaelevando el elemento primitivo 𝛼, a la llave publica seleccionada. 𝛼 𝑑 𝑚𝑜𝑑 𝑝 = 311 𝑚𝑜𝑑 29 = 15 𝑒𝐴 = 15 Usuario B Llave Privada: Se debe seleccionar un valor aleatorio d de tal manera que cumpla con la condición d ℇ ℤ29 − {0,1, 𝑝 − 1} 𝑑 𝐵 = 25 Llave Pública:Se calcula elevando el elemento primitivo 𝛼, a la llave publica seleccionada. 𝛼 𝑑 𝑚𝑜𝑑 𝑝 = 325 𝑚𝑜𝑑 29 = 14 𝑒 𝐵 = 14 Ahora procedemos a encriptar el mensaje destinado para el usuario B, y para poder hacer debemos de seleccionar un valor aleatorio k ℇ ℤ29 − {0,1, 𝑝 − 1}. Elegimos k = 7 𝑚 = 15 𝐶 = [𝛼 𝑘, 𝑚 ∙ ( 𝛼 𝑑) 𝑘 ] 𝐶 = [37,15 ∙ (14)7] 𝐶 = [ 𝑐1, 𝑐2] = [12, 6] Para verificarvamosa descifrarel mensaje enviadoaB, utilizandolallaveprivadade B,así: 𝐶 = [12, 6] 𝑚 = 𝑐1 −𝑑 ∙ 𝑐2 𝑚 = 12−25 ∙ 6 𝑚𝑜𝑑 29 𝑚 = 15 Vemos que coincide con el mensaje original. Ejercicio No. 6 Alice y Bob utilizan el criptosistema ElGamal (trabajando en un campo finito ℤ131 , con el elementoprimitivo 𝛼 = 37.Lacorrespondienteclave privadade A yB son 𝑟𝐴 = 122 y 𝑟𝐵 = 18. Detalle el procesode encriptación del mensaje m = 6, que Alice cifra para enviar a Bob (use el valor aleatorio k = 21). También detalle el proceso que debe seguir Bob para descifrar el mensaje. Para encriptarel mensajeenviadoporAliceaBob,debemoshacerloconlaclave públicade Bob, la cual procederemos a calcular con los datos proporcionados: 𝛼 𝑑 𝑚𝑜𝑑 𝑝 = 3718 𝑚𝑜𝑑 131 = 108 𝑒 𝐵 = 108 Con estoAlice,puedeyaencriptarel mensaje,así: 𝑚 = 6 𝐶 = [𝛼 𝑘, 𝑚 ∙ ( 𝛼 𝑑) 𝑘 ] 𝐶 = [3721,6 ∙ (108)21] 𝐶 = [ 𝑐1, 𝑐2] = [95, 93]
  • 5.
    Para descifrarel mensajeenviadoaBob, utilizamossullaveprivada 𝑟𝐵 = 18,así: 𝐶 = [95,81] 𝑚 = 𝑐1 −𝑟 𝐵 ∙ 𝑐2 𝑚 = 95−18 ∙ 93 𝑚𝑜𝑑 131 𝑚 = 6 Vemos que coincide con el mensaje original. Ejercicio No. 7 Suponga el criptosistema ElGamal con los parámetros 𝛼 = 3 y ℤ29, con las siguientes llaves públicas: USUARIO B 12 USUARIO C 5 Usted es el usuario B y ha calculado su clave pública 𝛼7 = 12 𝑚𝑜𝑑 29 Ustedrecibe unmensaje cifradomensaje( 𝛼 𝑘,𝑐) = (21, 11),ytambiénrecibelasupuestafirma digital de C para el mensaje, ( 𝛼 𝑘, 𝑠) = (21,3) 1. Encuentre el mensaje Original Para descifrarel mensaje debemos utilizarlallave privadadel UsuarioB 𝑑 𝐵 = 7, así: 𝐶 = [21,11] 𝑚 = 𝑐1 −𝑑 𝐵 ∙ 𝑐2 𝑚 = 21−7 ∙ 11 𝑚𝑜𝑑 29 𝑚 = 13 El mensaje original es 𝑚 = 13 2. Valide la firma ( 𝛼 𝑘, 𝑠) = (21,3) 𝛼 𝑘 = 21 𝛼 𝑚 = 313 𝑚𝑜𝑑 29 = 19 (𝛼 𝑑 𝑐) 𝑎 𝑘 ∙ ( 𝑎 𝑘) 𝑠 = 521 ∙ 213 𝑚𝑜𝑑 29 = 19 La firma es válida ya que ambos valores coinciden.