Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ex1
Alicia y Bernardo utilizan como grupo Z*13 y eligen como generador del mismo a = 4.
Determinar qué número secreto se intercambiarán por el cambio de clave de Diffie-Hellman, si
Alicia elige como número aleatorio a = 5 y Bernardo elige b = 2.
Solución:
d) B recibe 10 y calcula 10^b = 10^2 ( mod 13) = 9. El número secreto compartido por Alicia y
Bernardo es a ^(a-b) = 4^(5- 2 )(mod 13) = 12.
Ex2
Romper el protocolo utilizado por Alicia y Bernardo en el problema anterior, sabiendo que los
números que se intercambian son 3 y 10, respectivamente.
Solución:
Para romper el protocolo anterior, dado que los números que se intercambian son muy
pequeños, se puede proceder con el ataque por fuerza bruta:
Como Alicia ha enviado el 10, se sabe que eligió a = 5 u 11, mientras que Bernardo eligió b = 2
u 8. En este problema no importa el valor concreto elegido por cada uno puesto que
α ^(a-b)= 4^(5 -2) = 4^(5 -8) = 4^(11-2) = 4(11 -8) = 12 (mod 13)
1
Ex3
Extender el protocolo del cambio de clave de Diffie-Hellman para el caso en el que haya tres
participantes.
Solución :
La extensión del protocolo del cambio de clave de DiffieHellman para el caso de tres
participantes es como sigue:
Ex4:
Solución :
Dado que nB= 143 tiene tres dígitos y M= «1521674902» tiene diez, se debe dividir el mensaje
a cifrar en grupos de dos dígitos, por lo que el mensaje a cifrar será la siguiente cadena de
números: M= M1, M2, M3, M4, M5 = «15, 21, 67, 49, 02». Los criptogramas de cada una de las
partes del mensaje son:
2
C5=02^7 (mod 143)= 128
Ex5:
Bernardo utiliza el criptosistema RSA con la siguiente clave pública: (nB, eB) = (2947, 179).
Determinar el criptograma que debe enviar a Alicia si el mensaje es M = « M A N D A D I N E R
O » . En este caso, las letras A-Z del alfabeto se codifican con 0-25, el punto es el 26 y el
espacio en blanco es el 27.
Soulucion :
Como se utilizan 28 caracteres, tenemos que determinar la longitud de cada parte del
mensaje. Dado que 28^2 = 784 < nB = 2947 < 21952 = 28^3, resulta que el mensaje hay que
romperlo en grupos de dos caracteres. Luego hay que codificar cada uno de estos grupos para
que sea un número menor que nB. Finalmente se procede a determinar el criptograma de cada
grupo, y se obtiene el criptograma resultante:
M = «MANDA DINERO»,
-> 367^179 (mod 2947) = 397 = 0*28^2 + 14 *28 ^1+ 5*28^0 = AOF= C2,
M3 = A_ = A *28^1 + _*28^0 = 0 * 28 + 27 = 27
-> 368179 (mod 2947) = 2438 = 2 *28^2 + 3 *28 ^1+ 3*28^0 = CDD = C5,
C’ = «AAHAOFAE_BNWCDDACA»,
C = «AAHAOFAE BNWCDDACA».
3
Ex6:
Si Alicia tiene como clave pública (nA, eA) = (2773, 17), determinar el criptograma que
corresponde a la respuesta al mensaje del problema anterior: «NO TENGO».
Solución :
M = «NO TENGO»
M'= «NOTENGO»
-> 182^17 (mod 2773) = 2278 = 2 * 28^2 + 25 * 28^1 + 10*28^0 = BZK= c4,
C = «BLZAEMAFYBZK».
Ex7
Tratar de romper las claves de Alicia y Bernardo de los dos problemas anteriores.
Solución:
Para romper las claves de Alicia y Bernardo de los dos criptosistemas anteriores, bastará con
factorizar n = p * q para luego determinar φ(n) = (p - 1) (q - 1) y el inverso de e módulo φ(n)
mediante el algoritmo de Euclides extendido.
Ex8:
Alicia y Bernardo han decidido cambiar sus claves para estar más seguros a la hora de
intercambiarse mensajes. Sus nuevas claves públicas son, respectivamente,
4
(nA,eA) = (342723272091234212791, 13)
¿Podrías romper ahora sus claves? ¿Cuál de las dos claves escogerías?
Solución:
Se tiene que:
nA =342723272091234212791 = 89 * 3850823281923979919,
Es preferible la clave de Bernardo, porque sus dos primos están más cercanos entre sí que los
de la clave de Alicia, que tiene un número primo muy pequeño.
¿Serías capaz de romper un criptosistema cuya clave pública contuviera como n al siguiente
número (este número se conoce como RSA-129)?
Solución:
= 34905 29510 84765 09491 47849 61990 38981 33417 76463 84933 87843 99082 0577
* 32769 13299 32667 09549 96198 81908 34461 41317 76429 67992 94253 97982 88533.
RSA-129 tiene 129 dígitos decimales (426 bits)
5
El desafío de factorización incluía un mensaje encriptado en RSA-129, el cual, una vez
desencriptado, decía "The Magic Words are Squeamish Ossifrage" (del inglés «Las
Palabras Mágicas son Quebrantahuesos Aprensivos»).
Ex10:
Trata de romper., sin la ayuda de un ordenador, la siguiente clave para el criptosistema RSA:
(n, e) = (536813567, 3602561). {Nota: los primos de la factorización de n son un tanto
especiales.)
Solución :
Se verifica que n = 536813567 = 8191 * 65537. Los factores de n son especiales, puesto que el
primero es un primo de Mersenne: 8191 = 2^13 - 1, mientras que el segundo es un primo de
Fermat: 65537 = 2^16 + 1. Por último, se tiene que el inverso de e = 3602561
Ex11 :
Enviar el mensaje M = «16» a un amigo que trabaja con el criptosistema de ElGamal. Este
amigo utiliza los siguientes parámetros: el primo es p = 23, el generador del grupo Z*23 es α=
5 y su clave pública es 19.
Solución :
Siguiendo el protocolo de ElGamal con los parámetros p = 23, α = 5, clave pública 19 = 5^b
(mod 23), y M= «16», se tiene que:
Ex12:
Descifrar el mensaje que recibe el amigo del problema anterior, si su clave privada es a = 15.
Solución :
6
b) Se determina el cociente:
Ex13:
Solución:
Dado que el mensaje, M= «PTA», tiene tres letras, y como 26^3= 17576 < p =
65537<26^4=456976, no hace falta dividir el mensaje en bloques.
Se tiene que M=PTA = P * 26^2 + T *26^1 + A*26^0 = 15 * 26^2 + 19 *26 + 0 =
10634, por lo que:
a) Se elige h = 21 y se calcula 5^21 (mod 65537) = 37684.
b) Se calcula 23467^21 (mod 65537) = 42782.
c) Se determina 10634 * 42782 (mod 65537) = 51471.
d) Se obtiene el criptograma correspondiente: (37684, 51471).
Escribiendo en letras el par anterior, se tiene que:
Ex14:
Intentar romper el criptosistema anterior, es decir, determinar b de modo que 5^b = 23467
(mod 65537).
Solución:
Se tiene que b = 36151 dado que log5 23467 (mod 65537) = 36151, es decir, 5^36151 = 23467
(mod 65537)
Ex15:
Solución:
7
(a ^h, M * α^( h *a)) = (82746592004375034872957717, 243369075971743007328324134),
se eleva el primer número a a = 10384756843984756438549809 y luego se divide el segundo
entre el valor obtenido, todo ello módulo el número primo p =
297262705009139006771611927, es decir,
=243369075971743007328324134/10277040981937509303538788
mod(297262705009139006771611927)= 7466224520185525333630.
Ex 16:
K = 01100011000000010111100000101000
01111110011110011110011001011010
Solución:
M= 01001100010000010100010001010010
01001001010011000100110001001111
Sumando xor, ahora, bit a bit mod2 el mensaje con la cadena cifrante K, se obtiene el mensaje
cifrado C:
M = 01001100010000010100010001010010
01001001010011000100110001001111,
K = 01100011000000010111100000101000
01111110011110011110011001011010,
C = 00101111010000000011110001111010
8
00110111001101011010101000010101
https://www.asciitohex.com/
Ex17:
Obtener las secuencias cifrantes, utilizando el generador en congruencia lineal xi+1= (5xi+ 3)
(mod 16), para las semillas x0 = 1, 2 y 5.
Solución:
Se sustituye y se calcula.
Las secuencias cifrantes generadas por xi+1= (5xi+ 3) (mod 16) son las siguientes:
x0 = 1 ->1, 8, 11, 10,5, 12, 15, 14, 9, 0,3,2, 13,4, 7, 6, 1,8, ...
x0 = 2 -> 2, 13,4, 7, 6, 1,8, 11, 10,5, 12, 15, 14, 9, 0,3,2, 13, ...
x0 = 5 -> 5, 12, 15, 14, 9, 0,3,2, 13,4, 7, 6, 1, 8, 11, 10, 5, 12, ...
Ex18:
Con la secuencia cifrante cuadrática obtener las secuencias cifrantes para todas las semillas x0
y para todos los valores primos p= 17, 19 y 23.
Solucion:
Las órbitas obtenidas para el generador xi= 5xi-1^2 (mod p) con p= 17, 19 y 23, se pueden
observar en las siguientes tablas:
9
10
1.3. Complejidad computacional
Ex20:
Solución :
Se verifica lo siguiente: 11001001(2 = 1*2^7 + 1*2^6 + 0*2^5 +0*2^4 + 1*2^3 + 0 *2^2 +0*
2^1 +2*2^0=201
Ex21:
Solución:
160*199=31840
31840(10 = 161554(7
https://pinetools.com/es/conversor-base-numerica
Ex22:
Solución :
https://miniwebtool.com/es/binary-calculator/
11001001 (2 =201(10
100111(2=39(10
201:39=5+6
11
5(10 =101(2
6(10 = 110(2
Ex23:
Solución:
1 000 000(10=11110100001001000000(2
1 000 000(10=11333311(7
Ex24:
Si se utiliza la base b = 26, se pueden usar las letras del alfabeto en lugar de números, sin más
que asignar a las letras A-Z del alfabeto internacional, los números 0-25. Con esta convención,
determinar los valores en base decimal de «MAL(26» y de «M. AL26».
Solución:
12
MAL(26 = 12*26^2 + 0* 26^1 +11*26^0 = 8123
Ex 25:
a) n= 3,1415926...
b) e = 2,7182818...
Solución :
a) n= 3.1415926 ... = 11.001001000011111 ...(2.
Ex 26:
Dividir «131B 6C 3(16» entre «1A2F(16».
Solución:
https://www.calculadoraconversor.com/hexadecimal-a-decimal/
131B 6C3(16= 1 A 2 F (16-BAD(16.
1A2F(16 = 6703(10
Hacemos la división en decimal y convertimos el resultado otra vez a hexadecimal
2.989(10 =BAD(16
Ex27:
Estimar el tiempo requerido para convertir un entero A:-bit en su representación en base 10.
Solución:
13
siguiente: se han hecho 0(k) divisiones, cada una de las cuales requiere O(4k) = O(k)
operaciones (dividir un número con, a lo más, k bits entre 1010(2, que tiene 4 bits). Por tanto,
el número de operaciones es O ( k^ 2). Como k = O (log n), se puede escribir:
Ex28:
Solución:
El procedimiento del algoritmo de Euclides extendido para expresar d = mcd (a, b) = u * a + v *
b, consiste en utilizar la cadena de divisiones del algoritmo de Euclides, comenzando por la
última hasta llegar a la primera, de modo que en cada paso se expresa d en función de los
restos anteriores. En cada paso son necesarias una multiplicación y una suma o una resta, por
lo que el número de operaciones bits es O (log3 a). Así pues, Tiempo(calcular u, v con mcd (a,b)
= d=ua + v b = O(log3 a)
Ex29:
Si se verifica que mcd (a,m) = 1, calcular el tiempo necesario para encontrar el inverso de a
módulo m, es decir, para determinar un entero b tal que a * b = 1 (mod m).
Solución :
Si se verifica que mcd (a, m) = 1, por el algoritmo de Euclides extendido, existen u, v con
mcd(a, m) = d = u * a + v * m, entonces, tomando b = u, se tiene que a * b = 1 (mod m). Por
tanto, se verifica que
Ex 30:
Determinar el tiempo necesario para calcular [raíz de n] siendo n un número muy grande
escrito en binario y si [m] representa el mayor entero menor que m.
Solución:
Para calcular en binario el mayor entero menor que raíz de n, m =[raíz de n], siendo n un
entero k + 1 -bits, muy grande, se procede como sigue: como primera aproximación a m se
toma 1 seguido de [k/2] ceros. A continuación se trata de encontrar los restantes dígitos de m
desde la izquierda hacia la derecha, a partir del 1. Esto se hace cambiando el primer 0 de la
izquierda por 1. Este cambio se conserva si el cuadrado de esta aproximación es menor que n,
en caso contrario, se mantiene el 0 y se repite el proceso con el siguiente 0. Este proceso
requiere O (log^3 n) operaciones, es decir,
14
Ex31:
Como ejemplo del algoritmo usado en el problema anterior, determinar en binario el valor de
[raíz de 116].
Solución:
Sea m3 = 1010(2. Como m3^3 = (1010(2 )^2 = 1100100(2 < 1110100(2, el cambio se
mantiene.
Sea por último m^4 = 1011(2. Como m4^2 = (1011(2)^2 = 1111001(2 > 1110100(2, el cambio
no es adecuado.
Por tanto, el valor buscado es m= 1010(2 = 10. Por otra parte, puede comprobarse fácilmente
que 11 = sqrt 121 > sqrt116 > =[ sqrt116] > sqrt100 = 10.
Ex32
Solución :
Para calcular en binario 3^n hacen falta n - 1 multiplicaciones. En cada producto parcial 3^j
tiene O(n) bits y 3 tiene 2 bits, por lo que cada producto parcial necesita 0(n) 0(2) = 0(n)
operaciones. En total son necesarias 0( n^2) operaciones, es decir,
EX33
Solución:
Para calcular n^n hacen falta n - 1 multiplicaciones y cada una de ellas tiene 0(n *log n) dígitos;
por tanto, el tiempo requerido en cada producto parcial es O (log n) O (n * log n) = O (n * log 2
n). Luego, el tiempo total es 0(n2 * log2 n), es decir,
Ex 34:
Calcular el tiempo necesario para multiplicar todos los números primos menores que un
número dado n, supuesto que se tiene la lista de todos esos primos. (Nota: para calcular el
número de primos menores que n se debe utilizar el teorema de los números primos.)
15
Solucion:
Por el Teorema de los números primos, sabemos que el número de primos menores que un
número dado n (denotado por 𝜋 es asintótico a n/log n, por lo que el número de primos es O
(n/log n). Una cota para el número de operaciones bits en una de las multiplicaciones es 0(n *
log n). Por tanto, el número de operaciones requerido es O (n/log n) O (n *log n) = 0(n^ 2), esto
es,
EX35:
Sea n = p *q el producto de dos primos diferentes. Demostrar que puede calcular φ(n) a partir
de p y q en O (log n) operaciones bits, y que se pueden calcular p y q a partir de φ(n) en
Solución:
de segundo grado x 2 - (n+ 1- φ(n) x + n = x ^2 - 2bx + n = 0, con lo que bastará con calcular el
valor de b ± sqrt(b^2 - n ). Ahora bien, el mayor tiempo necesario para calcular la expresión
anterior lo lleva determinar la raíz cuadrada,
Ex36
Comprobar que el tiempo necesario para calcular a^n(mod m) es O (log n * log^2 m).
Solución:
Utilizando el método de las potencias cuadradas sucesivas, se puede apreciar que para calcular
a^n (mod m), siendo n un entero k + 1 -bits, hay que hacer, en cada paso, una o dos
multiplicaciones de números menores que m2, y que hay que hacer k pasos. Por tanto, cada
paso lleva O (log^2 m^2) = O (log^2 m) operaciones bits. Así pues, el número de operaciones
es O (log n) O (log^2 m), es decir,
Ex37
Solución:
16
Un elemento de F puede verse como un polinomio con coeficientes en Fp = Z/pZ = Zp módulo
el polinomio F(X). Para multiplicar dos elementos de F se multiplican los polinomios —lo que
requiere O( m^ 2) multiplicaciones de enteros módulo p (y algunas sumas de enteros módulo p
, que necesitan menos tiempo)— y luego se toma el resto de la división entre F(X). La división
de polinomios lleva O(m) divisiones de enteros módulo p y O( m ^2) multiplicaciones de
enteros módulo p. Por tanto, el número de operaciones necesarias es O(m^ 2 * log^2 p + m
*log^3 p) = O((m * log p)^3) = O(log3 q) es decir,
EX38
Con las mismas condiciones del problema anterior, si k es un entero positivo, entonces un
elemento de Fq puede elevarse a la potencia k en O (log k * log^3 q) operaciones bits.
Solucion:
Una potencia k-ésima se puede calcular por el método de las potencias cuadradas sucesivas,
de forma análoga a la exponenciación modular. Este proceso requiere de O (log k)
multiplicaciones (o cuadrados) de elementos de Fq, y, por tanto, de O (log k * log^3 q)
operaciones bits, es decir,
Ex 39
Justificar que el siguiente algoritmo para calcular el mcd (n1, n2) = d de dos números, debido a
Stein, es correcto:
Salida: d = mcd(n1,n2).
17
Solución :
d) Si n1 es impar, se simplifica su valor de modo que pase a ser impar. El factor por el que se
divide n1 para ser impar no importa en la salida, dado que n2 es impar. Después de este paso,
los dos números son impares.
g) Como Δ es par por ser la diferencia de dos números impares, se simplifica por 2, y al nuevo
valor se le llama n1.
18
Ex40
Ejecutar el algoritmo anterior para determinar el mcd (24, 36).
Solución:
Ex 41
Solución:
19
4->9->14->6->12->10->3->8->1->2->5->20->4 tenemos 12 ciclos
EX42
Solución :
El número de divisores es 4 * 2 * 2 =16 y éstos son: 1, 3, 5, 7, 9, 15, 21, 27, 35, 45, 63, 105, 135,
189, 315, 945
Ex43
Calculando los restos potenciales de 10 módulo 7, deducir el criterio de divisibilidad por 7 para
un número de cinco cifras y para uno de siete cifras. Como aplicación, calcular los valores de c
y d para que el número N = 32cd1 sea divisible por 7. ¿Se podría deducir el criterio de
divisibilidad por 7 para un número con cualquier número de cifras?
Solución :
20
10^0 = 1 (mod. 7), 10^1 = 3 (mod. 7), 10^2 = 2 (mod. 7),
Según lo anterior, el número N = 32cd1 es divisible por 7 si se verifica que= 3*4 + 2*6
+c*2+d*3+1 =25 + 3d+2c = 0 (mod 7). Así pues, los números 32011 y 32501 son divisibles por
7.(estos nr viene por sustituir c y d con c= 0 o 5 y d=1 o 0)
Para obtener el criterio de divisibilidad por 7 para un número con cualquier número de cifras
basta observar que el resto de 10^6 (mod 7) es el mismo que el de 10^0 (mod 7), por lo que la
serie de los restos potenciales se repite.
Ex44:
Solución:
Tenemos que:
100! = 2^97 * 3^48 * 5^24 * 7^16 *11^99 *13^7 * 17^5 * 19^5 * 23^4 * 29^3 * 31^3 * 37^2 *
Ex45:
Para cada uno de los siguientes pares de enteros, encontrar su máximo común divisor (mcd =
d) y expresar d como combinación lineal de dicha pareja:
a) 26, 19.
b) 187,34.
c) 841, 160.
d) 1547,560.
e) 1729, 1001.
f ) 2613,2171.
21
Solución:
Se tiene que:
Ex46
Calcular el mínimo común múltiplo de a = 2345 y b = 737 usando la fórmula a * b = mcd (a, b)
*mcm(a,b).
Solución:
Como mcd (2345, 737) = 67, se tiene que mcm(a, b) = 2345* 737/67 = 25795.
Ex47
22
Solución:
Primero:
442 = 403 + 39
403 = 10* 39 + 13
39 = 3 * 13
Segundo:
2171 = 5 *4 4 2 -3 9
442 = 11 * 39+ 13
39 = 3 *13
Ex 48
Calcular los valores del mcd(/(x),g(x)) = d(x) para las siguientes parejas de polinomios, y en
cada uno de los casos determinar los polinomios u(x) y v(x) tales que d(x) = w(x)/(x) + v(x)g(x).
Solución:
Se tiene que:
23
Ex49
Solución:
Ex50
Solución:
24
Ex51:
Representar en sendas tablas las operaciones de suma y producto módulo 4.
Solución:
Ex52:
Calcular , el inverso de 160 módulo 841. Encontrar también el inverso de 15 módulo 127.
Solución :
se tiene que 1 = 205 * 160 - 39 * 841, por lo que 1 = 205 * 160 (mod 841), es decir,
Ex53:
Calcular el orden de 5 módulo 1367.
Solución:
Ex54
Determinar las unidades y decenas de 7^123
25
Solución:
EX55
Solución:
Ex56:
Solución:
26
Ex57 ecuaciones diofánticas
Solución:
Determinamos los inversos correspondientes :
a)Inverso de 3mod7=5
27
∃y ∈ Z : 27x-900y=72
∃y ∈ Z : 3x-100y=8
Utilizaremos el algoritmo de Euclides para obtener la solucion general de esta ecuacion
diofantica.
33 3
100 3 1 0
100=33*3 + 1, 1=100-33*3=100-33(
28
Ex58
Resolver el siguiente sistema de ecuaciones módulo 5:
3x + 2y = 2,
x + 3y = 1.
Solución:
29
30
Ex59
Encontrar el número entero decimal de tres cifras que arroja un resto de 4 al ser dividido por
7, 9 y 11.
Solución:
4 verifica la condición pedida, salvo que no tiene tres cifras. Por otra parte,
como mcd (7, 9, 11) = 1 y 7 * 9 * 11= 693 tiene tres cifras, la solución es 4 + 693 = 697.
Ex60
Determinar el menor entero positivo que da un resto de 1 al dividirlo por 11, un resto de 2 al
dividirlo por 12 y un resto de 3 al dividirlo por 13.
Solución:
Se puede resolver el problema utilizando el Teorema del Resto Chino utilizando las ecuaciones:
x = 1 (mod 11), x = 2 (mod 12), x = 3 (mod 13). Sin embargo, se puede observar que -10 verifica
lo pedido, y como en el problema anterior, la solución es: -10 + 11 * 12 * 13 = 1706
Ex61
Solución:
31
Ex62
Solución:
Ex63
Solución:
32
Ex64
Solución:
Ex65
Solución :
33
EX66
Solución :
Ex67
Solución:
34
Ex68
Solución:
35
1.1. Criptología clásica
Ex 69
Solución :
Julio Cesar
Augusto cesar
36
Ex70:
Solución:
U A A
N
N M
A O O
G S
U C C
I A A
L Z S
Ex71:
Solución :
37
Se hace la tabla : pero creo que tenia que decir e líneas y 8 columnas para llegar al
resultado
M C A
I N D
R B O
I O A
E I A
E L T
A R L
M M R
M I A N I M O T
I E M B L A A L
R E C O R D A R
Ex72
Solución:
Ex73
Solución :
38
Ex74:
Solución:
39
Cifrado Vigenere
Si tiene la clave secreta, descifrar es tan fácil como cifrar. Puede trabajar hacia atrás
utilizando la tabula recta. En primer lugar, repita la clave secreta para que su longitud
coincida con el texto cifrado.
Usando la tabula recta, encuentre la fila que corresponde a la primera letra en su texto
clave secreta- en nuestro caso, D. En la fila D, busque la letra de texto cifrado
correspondiente D. La columna vertical donde se encuentra esa letra de texto cifrado
revela la letra de texto sin formato A.
40
La segunda letra de la clave DIAMANTE es la I .En la fila I ,buscamos la letra de texto
cifrado correspondiente A. La columna vertical donde se encuentra esa letra de texto
cifrado revela la letra de texto sin formato S.
Y asi sucesivamente hasta que sacamos el descifrado:
Ex75
Solución :
Se saca la clave por el año cuando descubrió America Colon.: 1492 =BEJC
41
A continuación se hace VIGENERE sobre el texto con la clave BEJC.
Ex76:
Solución:
b)
42
c)
43
LAS PROBLEMAS QUE REPITEN EN EL EXAMEN
ALGORITMO RSA
P1
Solución:
Clave pública Ali (n1, e1) = (33, 3) Clave privada d=7 p=3, q=11
La firma digital del criptosistema RSA debe realizarse antes de codificar, es decir sobre el texto
plano.
27^2<n2<27, -> 729<77<27 -> Vamos ha tener como máximo una letra y tenemos que dividir
El mensaje
La firma digital correspondiente a “N” es s1= 35 mod 77 = 35= 1*27 ^0+ 8*27^1 = BI
m2 = I = 8*27^0 = 8
44
La firma digital correspondiente a “I” es s2= 30 mod 77 = 30 = 1*27 + 3 = BD
m3 = Ñ = 14*27^0 = 14
m4 = O = 15*27^0 = 15
X=1
b1=0,x=48^2 mod77=71
45
Nota importante para sacar bien este algoritmo:
P2
Solución:
a)
p=23, q=17 ,observamos que p y q son primos y coprimos entre si -> n=p*q=391
φn=(p-1)(q-1)=22*16=352
352=117*3 + 1
3=1*3 + 0
46
Utilizo el Algoritmo Extendido de Euclídes:
b4=0,x=330^2mod391=202
b2=0,x=31^2mod391=179
47
Si lo codificamos en el alfabeto español de 27 letras con {A=0, …, Z=26} quedaría de la siguiente
forma:
P3
Solución:
Clave pública Alicia (n1, e1) = (34121, 15775); Clave privada Alicia d1=26623
Codifico “EÑE”
m = 3298
encriptamos m
48
.b13=0 ,x=36667^2 mod46927=10339
Decodificamos C
27^3 > C > 27^2 ->19683 > 16350 > 729 -> Ha de tener 4 letras porque se compara siempre con
n y en en este caso tiene 5 cifras
C = 0*27^3+22*272+11*27+15 = AVLO
49
P4
Solución:
Clave Pública Alberto (n1, e1) = (34121, 15775) Clave Privada Alberto d=26623 p= 229, q=149
a)
50
Pasamos el exponente 39423 a binario: 39423(10= 1001100111111111(2
X=1
.b13=0,x=26540^2 mod46927=44257
.b12=1,x=44257^2*15664 mod46927=22743
.b11=1,x=22743^2*15664 mod46927=35963
.b10=0,x=35963^2 mod46927=29249
.b9=0,x=29249^2 mod46927=24791
.b8=1,x=24791^2*15664 mod46927=18836
.b7=1,x=18836^2*15664 mod46927=32665
.b6=1,x=32665^2*15664 mod46927=45269
.b5=1,x=45269^2*15664 mod46927=26166
.b4=1,x=26166^2*15664 mod46927=8702
.b3=1,x=8702^2*15664 mod46927=11028
.b2=1,x=11028^2*15664 mod46927=32343
.b1=1,x=32343^2*15664 mod46927=39935
.b0=1,x=39935^2*15664 mod46927=20785
51
Aplicamos otra vez el Algoritmo de exponenciación rápida:
X=1
.b13=0,x=9^2 mod46927=81
.b12=1,x=81^2*3 mod46927=19683
.b11=1,x=19683^2*3 mod46927=20458
.b10=0,x=20458^2 mod46927=34778
.b9=0,x=34778^2 mod46927=12786
.b8=1,x=12786^2*3 mod46927=11311
.b7=1,x=11311^2* 3mod46927=230
.b6=1,x=230^2*3mod46927=17919
.b5=1,x=17919^2*3mod46927=1154
.b4=1,x=1154^2*3 mod46927=6353
.b3=1,x=6353^2*3 mod46927=10167
.b2=1,x=10167^2*3 mod46927=10051
.b1=1,x=10051^2*3 mod46927=13237
52
.b0=1,x=13237^2*3mod46927=25180
En este caso la función resumen H(m) es la suma de los símbolos que componen el mensaje en
Modulo 27
H(UNED) = (21+13+4+3) mod 27 = 41 mod 27 = 14 mod 27 (nota:las cifras 21,13,4 y 3 son los
correspondientes de las letras U,N,E,D)
=>H(m) = 14
53
.b10=1,x=20866^2*14mod 34121 =15702
.b7=1,x=5505^2*14mod 34121=9836
.b6=1,x=9836^2*14mod 34121=23449
.b5=1,x=23449^2*14mod 34121=7846
.b0=1,x=27923^2*14mod 34121=31775
X=1
.b13=0,x=16220^2 mod46927=15638
54
.b12=1,x=15638^2*31775 mod46927=38754
.b11=1,x=38754^2*31775 mod46927=19697
.b10=0,x=19697^2 mod46927=26300
.b9=0,x=26300^2 mod46927=32947
.b8=1,x=32947^2*31775 mod46927=2144
.b7=1,x=2144^2* 31775mod46927=13433
.b6=1,x=13433^2*31775mod46927=4168
.b5=1,x=4168^2*31775mod46927=22746
.b4=1,x=22746^2*31775 mod46927=2421
.b3=1,x=2421^2*31775 mod46927=11576
.b2=1,x=11576^2*31775 mod46927=21028
.b1=1,x=21028^2*31775 mod46927=45226
.b0=1,x=45226^2*31775 mod46927=33893
55
PROBLEMAS CON ELGAMAL
P1
Solución:
56
X=1 ,b8b7b6b5b4b3b2b1 A mod n = 7 mod 15485863
Decodificamos :
Decodificamos :
57
Añadimos los cálculos utilizando el algoritmo de exponenciación rápida:
28236(10 = 110111001001100 (2
58
.b1=0 11024764^2 mod 15485863=10713022
La firma digital del criptosistema de ElGamal la realizamos sobre el mensaje m sin cifrar.
La firma para el mensaje es la pareja (r, s) por lo tanto la firma de Alberto es:
59
Ex1
Un texto cifrado ha sido generado con un cifrado afín. La letra más
frecuente del cibertexto es la 'B' y la segunda letra más frecuente es la 'U'.
Al romper este código, el valor debes:
a) 7
b) 15
e) 13
d) Ninguna de las anteriores
Solución:
En el alfabeto ingles sin Ñ , B=1 y U=20
Sabemos que C=a *m +b mod n; donde n=26 ; a,b<n
mcd(a,n)=1 -> a=1,3,5,7,11,13,17,19,23
según la teoría sabemos que :
letra con mas frecuente= E(4)
letra segundo mas frecuente=T(19)
Entonces:
1=a*4 + b mod 26
20= a*19 + b mod 26
De las dos relaciones resulta que :
La única posibilidad que puede cumplir es a= 3 y b=15
Lo adivinamos dando valores a “a=1,3,5,7,11,13,17,19,23”
Y comprobando las 2 relaciones.
Ex2
El inverso de 4 en Z8 es:
a) 1
60
b) 2
e) 4
d) Ninguna de los anteriores
solución:
como [8] no es numero primo no todos los elementos de Z8
tienen inverso.
Mcd(4,8)=4 entonces [4] no tiene inverso en Z8.
Ex3
Se dispone del texto JMVWD UW cifrado con clave CIELO y el método de
Vigénere. El texto descifrado es:
a) GARBOSO
b) HERMOSO
e) CLARISA
d) Ninguna de los anteriores
solución:
hay mas arriba un ejercicio donde se explica según la tabla como
se hace
EX4
La expresión (125 x 45)mod 10 es igual a:
a) 3 mod 10
b) 30 mod 10
c) 1 mod 10
d) Ninguna de las anteriores
61
solución:
primero se multiplica 125*45=5625
después se divide por 10 y el resto es 5
entonces (125 x45) mod 10 = 5 mod 10
EX5
La expresión (5^15mod 13) se reduce a: (Ayuda: Pequeño teorema de
Fermat)
a) (8 mod 13)
b) (5 mod 13)
c) (11 mod 13)
d) Ninguna de las anteriores
Solucion:
m
EX6
Solución:
17 es un nr. primo ->aplicamos Fermat
.a^(p-1)=1 mod p
15 ^(17-1)=1 mod 17
15^16=1 mod 17
62
Pero : 15 ^18 mod 17 = 15^(16+2) mod 17 = (15^16)*15^2 mod
17 =15^2 mod 17 = 225 mod 17 =4 mod 17
Ex 7
Solución:
x es el inverso de 12 en Z77
entonces (12*x) mod 77 =1 mod 77
observamos que x=45 cumple , ademas es el inverso de 12 en z77.
Ex8
63
Solución :
x es el inverso de 16 en Z323
entonces (16*x) mod 323 =1 mod 323
observamos que x=101 cumple , ademas es el inverso de 16 en z323.
EX9
Solución:
como [56] no es numero primo no todos los elementos de Z56 tienen
inverso.
Como mcd(27,56) = 1 ,entonces [27] tiene inverso en Z56
x es el inverso de 27 en Z56
entonces (27*x) mod 56 =1 mod 56
observamos que x=27 cumple , ademas es el inverso de 27 en z56.
64
EX10
Solución:
Ex11
Solución:
Z
calculamos inverso de 31 en 3480
65
Este inverso nos da 3130.
=3480*4-31*449
Ex12
Solución :
66
En nuestro caso:
Tenemos 3 valores -> m=3
R = log(2 (3)= 1,584
La entropía:
H(S)=0,5* log(2 (0,5^-1) +0,25* log(2 (0,25^-1)+ 0,25* log(2 (0,25^-1)=1,5
.r= la entropía=1,5
D=R-r= 1,584-1,5~ 0,0850
67
EX13:
Solución:
Hacemos la división :
5 =(-3)*(-1) +2
Puede ser 2 o -3+2 =-1
EX14
Solución:
Hacemos la división :
-5 =(-3)*(1) + (-2)
68
Ex15
Solución :
La primera es COMPUTADOR porque es la mas larga
La segunda es MAMA porque se repite MA
EX16
Solución:
69
Ex17
Solución:
Con el algoritmo RSA nunca se debe firmar un mensaje despues de
codificarlo, por el contrario, debe firmarse primero. Existen ataques que
permiten manipular con exito mensajes primero codificados y luego
firmados, aunque se empleen funciones resumen.
Ex18
70
Solución:
EX19(mirar arriba)
71
Solución del libro:
EX20
Solución:
72
Ex21
Solución:
Caras= columnas
Longitud del texto =48
Filas= 48/7 =7
ENUNLUG
ARDELAM
ANCHADE
CUYONOM
BRENOQU
IEROACO
RDARME
Nos sale:->EAACBIRNRNURED….GMEMUO
EX22
73
Solución:
Criptografía simétrica =misma clave para codificacar y para
decodificar
74
EX23
Solución:
Uno de los aspectos más singulares de PGP es su gestión de claves. Aquí no existen
autoridades de certificación, sino un «entorno de confianza»: cada usuario genera y distribuye
su propia clave, y son los mismos usuarios quienes firman las claves públicas de los demás.
PGP no especifica una política para establecer la confianza, sino que cada usuario es libre para
elegir en quién confiar y en quién no hacerlo.
75
EX25:
Solución:
76
EX26:
Solución:
CIFRADOS DE FEISTEL
Se denominan así los criptosistemas en los que el bloque de datos se divide en dos mitades y
en cada vuelta de encriptación se trabaja, alternativamente, con una de las mitades.
Pertenecen a este tipo los criptosistemas LUCIFER [25], DES [19], LOKI [6] y FEAL [24].
EX27
Solución:
EX28
77
Solución:
EX30
78
Solución:
EX31
Solución:
79
80