Class4crypt Aula Virtual de Criptografía · 10 23mod 41 = 16 11 mod 41 = 22 1223 mod 41 = 35 13...

28
Class4crypt Videoclases de criptografía aplicada Class4crypt c4c2.3 - © jorgeramio 2020 Profesor Dr. Jorge Ramió A. Clase c4c2.3 Inverso aditivo, inverso xor, inverso multiplicativo Madrid, miércoles 01 de abril de 2020

Transcript of Class4crypt Aula Virtual de Criptografía · 10 23mod 41 = 16 11 mod 41 = 22 1223 mod 41 = 35 13...

Page 1: Class4crypt Aula Virtual de Criptografía · 10 23mod 41 = 16 11 mod 41 = 22 1223 mod 41 = 35 13 mod 41 = 17 1423 mod 41 = 3 15 23 mod 41 = 28 16 23 mod 41 = 37 17 mod 41 = 7 18 23

Class4cryptVideoclases de criptografía aplicada

Class4crypt c4c2.3 - © jorgeramio 2020

Profesor Dr. Jorge Ramió A.

Clase c4c2.3Inverso aditivo, inverso

xor, inverso multiplicativoMadrid, miércoles 01 de abril de 2020

Page 2: Class4crypt Aula Virtual de Criptografía · 10 23mod 41 = 16 11 mod 41 = 22 1223 mod 41 = 35 13 mod 41 = 17 1423 mod 41 = 3 15 23 mod 41 = 28 16 23 mod 41 = 37 17 mod 41 = 7 18 23

Temario

Class4crypt c4c2.3 - © jorgeramio 2020 Lección 2.3 - página 2

• Módulo 1: Principios básicos de la seguridad

• Módulo 2: Matemáticas discretas en la criptografía

• Módulo 3: Complejidad algorítmica en la criptografía

• Módulo 4: Teoría de la información en la criptografía

• Módulo 5: Fundamentos de la criptografía clásica y moderna

• Módulo 6: Algoritmos de criptografía clásica

• Módulo 7: Cifra simétrica en flujo

• Módulo 8: Cifra simétrica en bloque

• Módulo 9: Funciones hash en la criptografía

• Módulo 10: Cifra asimétrica

• Módulo11: Otros temas relacionados

• Temario: http://www.criptored.upm.es/descarga/Class4cryptc4c0.1_Presentacion.pdf

Page 3: Class4crypt Aula Virtual de Criptografía · 10 23mod 41 = 16 11 mod 41 = 22 1223 mod 41 = 35 13 mod 41 = 17 1423 mod 41 = 3 15 23 mod 41 = 28 16 23 mod 41 = 37 17 mod 41 = 7 18 23

Class4crypt c4c2.3 - © jorgeramio 2020 Lección 2.3 - página 3

¡COMENZAMOS!

Page 4: Class4crypt Aula Virtual de Criptografía · 10 23mod 41 = 16 11 mod 41 = 22 1223 mod 41 = 35 13 mod 41 = 17 1423 mod 41 = 3 15 23 mod 41 = 28 16 23 mod 41 = 37 17 mod 41 = 7 18 23

Módulo 2. Matemáticas discretas en la criptografía

Lección 2.3. Inverso aditivo, inverso xor e inverso multiplicativo

1. Importancia de los inversos en la criptografía

2. Los inversos aditivos

3. Los inversos xor

4. Los inversos multiplicativos

Class4crypt c4c2.3

Class4crypt c4c2.3 - © jorgeramio 2020 Lección 2.3 - página 4

Page 5: Class4crypt Aula Virtual de Criptografía · 10 23mod 41 = 16 11 mod 41 = 22 1223 mod 41 = 35 13 mod 41 = 17 1423 mod 41 = 3 15 23 mod 41 = 28 16 23 mod 41 = 37 17 mod 41 = 7 18 23

Criptografía e inversos

• En criptografía deberá estar permitido invertir una operación para recuperar el texto en claro de un texto cifrado (criptograma). Es lo que se conoce como operación de descifrado

• Aunque la cifra sea una función, en lenguaje coloquial la operación de cifrado podría interpretarse como una “multiplicación” y la operación de descifrado como una “división”, si bien hablaremos en este caso de una multiplicación por el inverso. La analogía anterior sólo será válida en los números enteros Z con inverso

• La división está prohibida en matemática discreta. Por ejemplo, si se cifra en mod 27 (mayúsculas del español) multiplicando los códigos de las letras (A=0, B=1, … Y=25, Z=26) por 4, para descifrar no se puede dividir por 4 (ej. 17/4 = 4,25 no es entero)

• Habrá que multiplicar por inv (4, 27) = 7, que en el fondo lo mismo

• Por tanto, si en una operación de cifra la función es multiplicar por el valor a dentro de un módulo n, deberemos encontrar el inverso a-1 mod n para descifrar

Class4crypt c4c2.3 - © jorgeramio 2020 Lección 2.3 - página 5

Page 6: Class4crypt Aula Virtual de Criptografía · 10 23mod 41 = 16 11 mod 41 = 22 1223 mod 41 = 35 13 mod 41 = 17 1423 mod 41 = 3 15 23 mod 41 = 28 16 23 mod 41 = 37 17 mod 41 = 7 18 23

¿Por qué usamos inversos en criptografía?

Class4crypt c4c2.3 - © jorgeramio 2020 Lección 2.3 - página 6

• En la criptografía clásica y en la moderna debemos ser capaces de descifrar lo que se ha cifrado previamente, es decir, deshacer la operación de cifra

• Cifra clásica (desplazamiento puro y decimación pura)

• Cifrado: ci = mi + 6 mod 27 Descifrado: mi = ci + 21 mod 27

• Cifrado: ci = 7*mi mod 27 Descifrado: mi = ci*4 mod 27

• Cifra moderna asimétrica RSA

• Cifrado: C = N7 mod 77 Descifrado: N = C43mod 77 USO DE INVERSOS

• ¿Si el módulo es primo, el exponente indica el tipo de clave? NO• Cifrado: C = N7 mod 41 Descifrado: N = C23mod 41 (sí funciona…)• PERO esto no siempre es válido C = N4 mod 41 ( ya no se descifra)

Page 7: Class4crypt Aula Virtual de Criptografía · 10 23mod 41 = 16 11 mod 41 = 22 1223 mod 41 = 35 13 mod 41 = 17 1423 mod 41 = 3 15 23 mod 41 = 28 16 23 mod 41 = 37 17 mod 41 = 7 18 23

N7 mod 41 se descifra como C23 mod 41…

Class4crypt c4c2.3 - © jorgeramio 2020 Lección 2.3 - página 7

07 mod 41 = 0 17 mod 41 = 1 27 mod 41 = 5 37 mod 41 = 14 47 mod 41 = 25

57 mod 41 = 20 67 mod 41 = 29 77 mod 41 = 17 87 mod 41 = 2 97 mod 41 = 32

107 mod 41 = 18 117 mod 41 = 35 127 mod 41 = 22 137 mod 41 = 26 147 mod 41 = 3

157 mod 41 = 34 167 mod 41 = 10 177 mod 41 = 13 187 mod 41 = 37 197 mod 41 = 30

207 mod 41 = 8 217 mod 41 = 33 227 mod 41 = 11 237 mod 41 = 4 247 mod 41 = 28

257 mod 41 = 31 267 mod 41 = 7 277 mod 41 = 38 287 mod 41 = 15 297 mod 41 = 19

307 mod 41 = 6 317 mod 41 = 23 327 mod 41 = 9 337 mod 41 = 39 347 mod 41 = 24

357 mod 41 = 12 367 mod 41 = 21 377 mod 41 = 16 387 mod 41 = 27 397 mod 41 = 36

407 mod 41 = 40 Cifrado Nx mod p con p = 41 y clave x = 7, para todos los restos de p

023 mod 41 = 0 123 mod 41 = 1 223 mod 41 = 8 323 mod 41 = 14 423 mod 41 = 23

523 mod 41 = 2 623 mod 41 = 30 723 mod 41 = 26 823 mod 41 = 20 923 mod 41 = 32

1023 mod 41 = 16 1123 mod 41 = 22 1223 mod 41 = 35 1323 mod 41 = 17 1423 mod 41 = 3

1523 mod 41 = 28 1623 mod 41 = 37 1723 mod 41 = 7 1823 mod 41 = 10 1923 mod 41 = 29

2023 mod 41 = 5 2123 mod 41 = 36 2223 mod 41 = 12 2323 mod 41 = 31 2423 mod 41 = 34

2523 mod 41 = 4 2623 mod 41 = 13 2723 mod 41 = 38 2823 mod 41 = 24 2923 mod 41 = 6

3023 mod 41 = 19 3123 mod 41 = 25 3223 mod 41 = 9 3323 mod 41 = 21 3423 mod 41 = 15

3523 mod 41 = 11 3623 mod 41 = 39 3723 mod 41 = 18 3823 mod 41 = 27 3923 mod 41 = 33

4023 mod 41 = 40 Se descifran todos los números cifrados usando como exponente el 23

C = Nx mod p = N7 mod 41N = Cy mod p = C23 mod 41

Caso especial de cifrado y de descifrado exponencial modular dentro de un primo, en donde se cumple que cada resto N del módulo p se cifra diferente (Nx mod p = C) y que el descifrado se realiza con un único valor como exponente (Cy mod p = N)

Pero…

Page 8: Class4crypt Aula Virtual de Criptografía · 10 23mod 41 = 16 11 mod 41 = 22 1223 mod 41 = 35 13 mod 41 = 17 1423 mod 41 = 3 15 23 mod 41 = 28 16 23 mod 41 = 37 17 mod 41 = 7 18 23

Pero con el exponente 4 no funciona…

Class4crypt c4c2.3 - © jorgeramio 2020 Lección 2.3 - página 8

04 mod 41 = 0 14 mod 41 = 1 24 mod 41 = 16 34 mod 41 = 40 44 mod 41 = 10

54 mod 41 = 10 64 mod 41 = 25 74 mod 41 = 23 84 mod 41 = 37 94 mod 41 = 1

104 mod 41 = 37 114 mod 41 = 4 124 mod 41 = 31 134 mod 41 = 25 144 mod 41 = 40

154 mod 41 = 31 164 mod 41 = 18 174 mod 41 = 4 184 mod 41 = 16 194 mod 41 = 23

204 mod 41 = 18 214 mod 41 = 18 224 mod 41 = 23 234 mod 41 = 16 244 mod 41 = 4

254 mod 41 = 18 264 mod 41 = 31 274 mod 41 = 40 284 mod 41 = 25 294 mod 41 = 31

304 mod 41 = 4 314 mod 41 = 37 324 mod 41 = 1 334 mod 41 = 37 344 mod 41 = 23

354 mod 41 = 25 364 mod 41 = 10 374 mod 41 = 10 384 mod 41 = 40 394 mod 41 = 16

404 mod 41 = 1

250 mod 41 = 1 251 mod 41 = 25 252 mod 41 = 10 253 mod 41 = 4 254 mod 41 = 18

255 mod 41 = 40 256 mod 41 = 16 257 mod 41 = 31 258 mod 41 = 37 259 mod 41 = 23

2510 mod 41 = 1 2511 mod 41 = 25 2512 mod 41 = 10 2513 mod 41 = 4 2514 mod 41 = 18

2515 mod 41 = 40 2516 mod 41 = 16 2517 mod 41 = 31 2518 mod 41 = 37 2519 mod 41 = 23

2520 mod 41 = 1 2521 mod 41 = 25 2522 mod 41 = 10 2523 mod 41 = 4 2524 mod 41 = 18

2525 mod 41 = 40 2526 mod 41 = 16 2527 mod 41 = 31 2528 mod 41 = 37 2529 mod 41 = 23

2530 mod 41 = 1 2531 mod 41 = 25 2532 mod 41 = 10 2533 mod 41 = 4 2534 mod 41 = 18

2535 mod 41 = 40 2536 mod 41 = 16 2537 mod 41 = 31 2538 mod 41 = 37 2539 mod 41 = 23

2540 mod 41 = 1

C = Nx mod p = N4 mod 41N = Cy mod p = C¿? mod 41

• Para x = 4 la cifra entrega valores repetidos, lo cual es inaceptable en criptografía

• Nunca se recupera el texto en claro. Por ejemplo, 6, 13, 28 y 35 se cifran como 25, pero al descifrar C = 25 con y = 0 hasta y = 40 no se obtiene N.

• La solución a esto vendrá con el algoritmo de Elgamal

Page 9: Class4crypt Aula Virtual de Criptografía · 10 23mod 41 = 16 11 mod 41 = 22 1223 mod 41 = 35 13 mod 41 = 17 1423 mod 41 = 3 15 23 mod 41 = 28 16 23 mod 41 = 37 17 mod 41 = 7 18 23

Inversos aditivos x = inv+ (a, n)

• El inverso aditivo de un resto a de n, dentro de ese módulo n, siempre existirá

• Será el complemento al módulo. Esto es, el valor x que sumado al resto a, entrega la identidad de la suma (0) dentro de ese módulo n

• Por ejemplo, en el módulo 31 el inverso aditivo de 12 será 19 porque 12 + 19 mod 31 = 0

• Es decir, inv+ (12, 31) = - 12 mod 31 = (-12 + 31) mod 31 = 19 mod 31

• Los valores -12 y 19 (entre otros) son clases de equivalencia en el módulo 31

• El algoritmo IDEA usa una operación suma modular mod 65.536 (216) con la clave Z2 de 16 bits y la segunda palabra de 16 bits del bloque de entrada de 64 bits. En el descifrado, en esa zona se usará el inverso. Si Z2 = 39.057, ¿cuál es el valor de ese inverso -Z2? Solución: -Z2 = 65.536 – 39.057 = 26.479

Class4crypt c4c2.3 - © jorgeramio 2020 Lección 2.3 - página 9

Page 10: Class4crypt Aula Virtual de Criptografía · 10 23mod 41 = 16 11 mod 41 = 22 1223 mod 41 = 35 13 mod 41 = 17 1423 mod 41 = 3 15 23 mod 41 = 28 16 23 mod 41 = 37 17 mod 41 = 7 18 23

Inversos xor inv (x)

• El inverso xor de un número x siempre existirá y es el mismo, ya que xor es una función involutiva: si se aplica dos veces, se vuelve al estado original

• Por ejemplo sea el secreto el número N = 135 a enviar mediante una cifra xor con la clave secreta compartida por emisor y receptor K = 791

• Cifrado: C = N K = 135 791 = 9120010000111

1100010111

1110010000

• Descifrado: N = C K = 912 791 = 1351110010000

1100010111

0010000111

Class4crypt c4c2.3 - © jorgeramio 2020 Lección 2.3 - página 10

El algoritmo IDEA usa una operación suma mod 2 con la clave Z5 de 16 bits y una palabra de 16 bits calculada previamente. En esa zona de descifrado se usará el inverso. Si Z5 = 53.904, ¿cuál es el valor de ese inverso xor? Solución: inv 53.904 = 53.904

Page 11: Class4crypt Aula Virtual de Criptografía · 10 23mod 41 = 16 11 mod 41 = 22 1223 mod 41 = 35 13 mod 41 = 17 1423 mod 41 = 3 15 23 mod 41 = 28 16 23 mod 41 = 37 17 mod 41 = 7 18 23

Refuerzo: píldora formativa Thoth nº 23

Class4crypt c4c2.3 - © jorgeramio 2020 Lección 2.3 - página 11

https://www.youtube.com/watch?v=1Jg-HVoA6-M

Page 12: Class4crypt Aula Virtual de Criptografía · 10 23mod 41 = 16 11 mod 41 = 22 1223 mod 41 = 35 13 mod 41 = 17 1423 mod 41 = 3 15 23 mod 41 = 28 16 23 mod 41 = 37 17 mod 41 = 7 18 23

Inversos multiplicativos x = inv (a, n)

• El inverso multiplicativo de un resto a de n, dentro de ese módulo n, no siempre existirá, será un caso especial

• El inverso multiplicativo del resto a en n, será el valor x que multiplicado por a y reducido mod n entrega la identidad de la multiplicación (1)

• Condición necesaria para que el inverso multiplicativo exista

• MCD (a, n) = 1

• Si n = p (primo), entonces el inverso multiplicativo siempre existirá

• Por ejemplo para p = 31 y para n = 87 = 3*29 • inv (15, 31) = 29 Ya que 29*15 mod 31 = 435 mod 31 = 14*31 + 1 mod 31 = 1

• inv (10, 87) = 61 Ya que 61*10 mod 87 = 610 mod 87 = 7*87 + 1 mod 87 = 1

• Lógicamente inv (15, 87) no existe porque MCD (15, 87) = 3

Class4crypt c4c2.3 - © jorgeramio 2020 Lección 2.3 - página 12

Page 13: Class4crypt Aula Virtual de Criptografía · 10 23mod 41 = 16 11 mod 41 = 22 1223 mod 41 = 35 13 mod 41 = 17 1423 mod 41 = 3 15 23 mod 41 = 28 16 23 mod 41 = 37 17 mod 41 = 7 18 23

Inversos aditivo y multiplicativo en primos

• En la operación suma siempre existirá el inverso que entregue el valor de identidad de la adición (0) para cualquier resto. El inverso de 0 será lógicamente 0

• En la operación producto, existirá el inverso que entregue el valor de identidad de la multiplicación (1) cuando se cumple que el número y el módulo sean primos entre sí. Si el módulo es primo, todos los restos, excepto el 0, tienen inverso. El inverso multiplicativo de 1, independientemente del módulo, es obviamente 1

Class4crypt c4c2.3 - © jorgeramio 2020 Lección 2.3 - página 13

Page 14: Class4crypt Aula Virtual de Criptografía · 10 23mod 41 = 16 11 mod 41 = 22 1223 mod 41 = 35 13 mod 41 = 17 1423 mod 41 = 3 15 23 mod 41 = 28 16 23 mod 41 = 37 17 mod 41 = 7 18 23

Inverso multiplicativo número compuesto

Class4crypt c4c2.3 - © jorgeramio 2020 Lección 2.3 - página 14

Para módulo 10 sólo encontramos inversos multiplicativos en los restos 3, 7 y 9, puesto que los demás restos tienen factores 2 y 5 en común con el módulo (10 = 2*5)

Para x = 3, x = 7 y x = 9 se cumple que:

MCD (x, 10) = 1

inv (3, 10) = 7

inv (7, 10) = 3

inv (9, 10) = 9

Page 15: Class4crypt Aula Virtual de Criptografía · 10 23mod 41 = 16 11 mod 41 = 22 1223 mod 41 = 35 13 mod 41 = 17 1423 mod 41 = 3 15 23 mod 41 = 28 16 23 mod 41 = 37 17 mod 41 = 7 18 23

Comprobación de existencia inv (a, n)

• inverso a-1 en mod n ssi MCD (a, n) = 1

• Si MCD (a, n) = 1, el resultado de ai mod n (para i todos los restos de n) serán valores distintos dentro de n

MCD (a, n) = 1 x ! 0 < x < n / a x mod n = 1

• Sea: a = 4 y n = 9 Valores de i = {1, 2, 3, 4, 5, 6, 7, 8}

• Comprobando que inv (4, 9) existe y cálculo por fuerza bruta:

Como MCD (4, 9) = 1, sí existe el inverso

41 mod 9 = 4 42 mod 9 = 8 43 mod 9 = 3 44 mod 9 = 7

45 mod 9 = 2 46 mod 9 = 6 47 mod 9 = 1 48 mod 9 = 5

• Existe una única solución inv (4, 9) = 7 ya que 4x7 = 28 mod 9 = 1

Class4crypt c4c2.3 - © jorgeramio 2020 Lección 2.3 - página 15

Page 16: Class4crypt Aula Virtual de Criptografía · 10 23mod 41 = 16 11 mod 41 = 22 1223 mod 41 = 35 13 mod 41 = 17 1423 mod 41 = 3 15 23 mod 41 = 28 16 23 mod 41 = 37 17 mod 41 = 7 18 23

Comprobación de no existencia inv (a, n)

• Si MCD (a, n) 1 No x ! 0 < x < n / a x mod n = 1

• Sea: a = 3 y n = 15 Valores de i = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}

• Comprobando que inv (3, 15) no existe y cálculo por fuerza bruta:

Como MCD (3, 15) = 3, no existe el inverso

31 mod 15 = 3 32 mod 15 = 6 33 mod 15 = 9 34 mod 15 = 12

35 mod 15 = 0 36 mod 15 = 3 37 mod 15 = 6 38 mod 15 = 9

39 mod 15 = 12 310 mod 15 = 0 311 mod 15 = 3 312 mod 15 = 6

313 mod 15 = 9 314 mod 15 = 12

• No existe el inv (3, 15) puesto que MCD (3, 15) = 3

Class4crypt c4c2.3 - © jorgeramio 2020 Lección 2.3 - página 16

Page 17: Class4crypt Aula Virtual de Criptografía · 10 23mod 41 = 16 11 mod 41 = 22 1223 mod 41 = 35 13 mod 41 = 17 1423 mod 41 = 3 15 23 mod 41 = 28 16 23 mod 41 = 37 17 mod 41 = 7 18 23

Existencia y unicidad de x = inv (a, n)

• Existirá un único x tal que x*a mod n = 1, es decir x = a-1

• Ejemplos para p = 13 (primo) y n = 15 = 3*5 (compuesto) y restos 2 y 3

Class4crypt c4c2.3 - © jorgeramio 2020 Lección 2.3 - página 17

2*0 mod 13 = 0 2*1 mod 13 = 2 2*2 mod 13 = 4 2*3 mod 13 = 6 2*4 mod 13 = 8

2*5 mod 13 = 10 2*6 mod 13 = 12 2*7 mod 13 = 1 2*8 mod 13 = 3 2*9 mod 13 = 5

2*10 mod 13 = 7 2*11 mod 13 = 9 2*12 mod 13 = 11

3*0 mod 13 = 0 3*1 mod 13 = 3 3*2 mod 13 = 6 3*3 mod 13 = 9 3*4 mod 13 = 12

3*5 mod 13 = 2 3*6 mod 13 = 5 3*7 mod 13 = 8 3*8 mod 13 = 11 3*9 mod 13 = 1

3*10 mod 13 = 4 3*11 mod 13 = 7 3*12 mod 13 = 10

2*0 mod 15 = 0 2*1 mod 15 = 2 2*2 mod 15 = 4 2*3 mod 15 = 6 2*4 mod 15 = 8

2*5 mod 15 = 10 2*6 mod 15 = 12 2*7 mod 15 = 14 2*8 mod 15 = 1 2*9 mod 15 = 3

2*10 mod 15 = 5 2*11 mod 15 = 7 2*12 mod 15 = 9 2*13 mod 15 = 11 2*14 mod 15 = 13

3*0 mod 15 = 0 3*1 mod 15 = 3 3*2 mod 15 = 6 3*3 mod 15 = 9 3*4 mod 15 = 12

3*5 mod 15 = 0 3*6 mod 15 = 3 3*7 mod 15 = 6 3*8 mod 15 = 9 3*9 mod 15 = 12

3*10 mod 15 = 0 3*11 mod 15 = 3 3*12 mod 15 = 6 3*13 mod 15 = 9 3*14 mod 15 = 12

Para el módulo primo p = 13, cualquier resto a tendrá inverso pues que se cumplirá siempre que MCD (a, p) = 1; es decir, a y p son coprimos

Para el módulo de un número compuesto n = 15, sólo tendrán inversos aquellos restos a que cumplan con MCD (a, n) = 1

Page 18: Class4crypt Aula Virtual de Criptografía · 10 23mod 41 = 16 11 mod 41 = 22 1223 mod 41 = 35 13 mod 41 = 17 1423 mod 41 = 3 15 23 mod 41 = 28 16 23 mod 41 = 37 17 mod 41 = 7 18 23

Inversos mod 27 en la criptografía clásica

• 27 = 33 luego no existe inverso para x = 3, 6, 9, 12, 15, 18, 21, 24

• Si inv (x, n) = a, entonces inv (a, n) = x

• inv (1, n) = 1

• inv (n-1, n) = n-1

Class4crypt c4c2.3 - © jorgeramio 2020 Lección 2.3 - página 18

Page 19: Class4crypt Aula Virtual de Criptografía · 10 23mod 41 = 16 11 mod 41 = 22 1223 mod 41 = 35 13 mod 41 = 17 1423 mod 41 = 3 15 23 mod 41 = 28 16 23 mod 41 = 37 17 mod 41 = 7 18 23

Inversos en la criptografía moderna

• Algoritmo IDEA

El algoritmo IDEA usa una operación producto modular mod 65.537 (216 +1) que es un número primo, con la clave Z1 de 16 bits y la primera palabra de 16 bits del bloque de entrada de 64 bits. En el descifrado, en esa zona se usará el inverso multiplicativo. Si Z1 = 6.018, ¿cuál es el valor de ese inverso Z1-1? Solución: Z1-1 = inv (6.018, 65.537) = 18.045

Class4crypt c4c2.3 - © jorgeramio 2020 Lección 2.3 - página 19

• Algoritmo RSASi p = 761 y q = 919, siendo la clave pública e = 65.537, encuentra la clave privada d si se sabe que d = inv (e, (n))Solución: d = inv [e, (p-1)(q-1)] = inv [65.537, 760*918]d = inv [65.537, 697.680] = 379.313

Page 20: Class4crypt Aula Virtual de Criptografía · 10 23mod 41 = 16 11 mod 41 = 22 1223 mod 41 = 35 13 mod 41 = 17 1423 mod 41 = 3 15 23 mod 41 = 28 16 23 mod 41 = 37 17 mod 41 = 7 18 23

Inverso de a en p por el teorema de Fermat

• El pequeño teorema de Fermat dice lo siguiente:

• Si el cuerpo de trabajo es un primo p

• MCD (a, p) = 1 a(p) mod p = 1

• Entonces: ax mod p = 1

• Y además: a(n) mod p = 1

• Además, en este caso (p) = p-1 por lo que igualando las dos ecuaciones con resultado igual a 1 de arriba tenemos:

• ax mod p = a(n) mod p

• a(p) a-1 mod p = x mod p

• x = ap-2 mod p

• Luego, x será e inverso de a en el primo p

Class4crypt c4c2.3 - © jorgeramio 2020 Lección 2.3 - página 20

Ejemplo:x = inv (8, 11)

x = 811-2 mod 11 = 89 mod 11 x = 134.217.728 mod 11 = 7

Efectivamente, se cumple que:8*7 mod 11 = 56 mod 11 = 1

Page 21: Class4crypt Aula Virtual de Criptografía · 10 23mod 41 = 16 11 mod 41 = 22 1223 mod 41 = 35 13 mod 41 = 17 1423 mod 41 = 3 15 23 mod 41 = 28 16 23 mod 41 = 37 17 mod 41 = 7 18 23

Inverso de a en n por el teorema de Euler

• Si MCD (a, n) = 1 a(n) mod n = 1

• Ahora igualamos a x mod n = 1 y a(n) mod n = 1

a(n) a-1 mod n = x mod n por lo tanto: x = a(n)-1 mod n

• El valor x será el inverso de a en n. En el cálculo anterior se ha realizado una operación multiplicando por a-1, que es similar a la división por a. Esto se puede hacer porque MCD (a, n) = 1 y por lo tanto hay un único valor inverso en n que lo permite.

• Ejemplo: si n = 10 y a = 3, se cumple que MCD (3, 10) = 1 y (10) = 4

Entonces x = a(n)-1 mod n = 34-1 mod 10 = 33 mod 10 = 27 mod 10 = 7

Efectivamente inv (3, 10) = 7 porque 3*7 = 21 mod 10 = 1Class4crypt c4c2.3 - © jorgeramio 2020 Lección 2.3 - página 21

Page 22: Class4crypt Aula Virtual de Criptografía · 10 23mod 41 = 16 11 mod 41 = 22 1223 mod 41 = 35 13 mod 41 = 17 1423 mod 41 = 3 15 23 mod 41 = 28 16 23 mod 41 = 37 17 mod 41 = 7 18 23

¿Y si no conocemos (n)?

• Calcular ai mod n, cuando los valores de i y a son grandes, se hace tedioso pues habría que utilizar la reducción por cuadrados repetidas veces

• No obstante, hay otros métodos mucho más eficientes y rápidos para hacer esos cálculos de exponenciación como por ejemplo el Algoritmo de Exponenciación Rápida AER, que veremos en una próxima clase

• Además, si no conocemos (n) o no queremos usar los teoremas de Euler o de Fermat antes vistos, siempre podremos encontrar el inverso de a en n usando el Algoritmo Extendido de Euclides AEE, que veremos en una próxima clase, y que será el método más recomendado y eficiente

Class4crypt c4c2.3 - © jorgeramio 2020 Lección 2.3 - página 22

Page 23: Class4crypt Aula Virtual de Criptografía · 10 23mod 41 = 16 11 mod 41 = 22 1223 mod 41 = 35 13 mod 41 = 17 1423 mod 41 = 3 15 23 mod 41 = 28 16 23 mod 41 = 37 17 mod 41 = 7 18 23

Refuerzo: píldora formativa Thoth nº 12

Class4crypt c4c2.3 - © jorgeramio 2020 Lección 2.3 - página 23

https://www.youtube.com/watch?v=MMRNsZ28IIs

Page 24: Class4crypt Aula Virtual de Criptografía · 10 23mod 41 = 16 11 mod 41 = 22 1223 mod 41 = 35 13 mod 41 = 17 1423 mod 41 = 3 15 23 mod 41 = 28 16 23 mod 41 = 37 17 mod 41 = 7 18 23

Conclusiones de la lección 2.3

• El inverso aditivo inv+ (a, n) siempre existirá, será el complemento al módulo

• El inverso xor inv (a) siempre existirá y es el mismo número porque xor es una función involutiva

• El inverso multiplicativo inv (a, n) existirá si y solo si MCD (a, n) = 1

• Si el módulo es primo, n = p, todos restos a de p tendrán inverso

• Los inversos deben ser únicos

• Se puede encontrar el inverso multiplicativo por fuerza bruta (que no es recomendable), usando el pequeño teorema de Fermat para primos o usando el teorema de Euler para números compuestos. En la práctica, se usará el Algoritmo Extendido de Euclides AEE para calcular inversos multiplicativos

Class4crypt c4c2.3 - © jorgeramio 2020 Lección 2.3 - página 24

Page 25: Class4crypt Aula Virtual de Criptografía · 10 23mod 41 = 16 11 mod 41 = 22 1223 mod 41 = 35 13 mod 41 = 17 1423 mod 41 = 3 15 23 mod 41 = 28 16 23 mod 41 = 37 17 mod 41 = 7 18 23

Antes de terminar, por favor colabora…

• Si, en general, te ha gustado el vídeo…

• Si has aprendido algo nuevo…

• Si has podido reforzar algún conocimiento que ya tenías…

• Entonces, por favor, ponle un “Me gusta” al vídeo

• Si deseas expresar alguna opinión sobre el contenido de esta clase o tienes alguna duda, hazlo aquí en YouTube. Todos los comentarios serán muy bien recibidos y las dudas contestadas a la mayor brevedad posible

• Muchas gracias

Class4crypt c4c2.3 - © jorgeramio 2020 Lección 2.3 - página 25

Page 26: Class4crypt Aula Virtual de Criptografía · 10 23mod 41 = 16 11 mod 41 = 22 1223 mod 41 = 35 13 mod 41 = 17 1423 mod 41 = 3 15 23 mod 41 = 28 16 23 mod 41 = 37 17 mod 41 = 7 18 23

Lectura extra recomendada

• Guion de la píldora formativa Thoth nº 23: ¿Qué son los inversos aditivos en un cuerpo? Jorge Ramió, 2014• http://www.criptored.upm.es/thoth/material/texto/pildora023.pdf

• Guion de la píldora formativa Thoth nº 12: ¿Qué son los inversos multiplicativos en un cuerpo? Jorge Ramió, 2015• http://www.criptored.upm.es/thoth/material/texto/pildora012.pdf

• Inverso multiplicativo (aritmética modular), Wikipedia• https://es.wikipedia.org/wiki/Inverso_multiplicativo_(aritm%C3%A9tica_modular)

• Inversos modulares, Khan Academy• https://es.khanacademy.org/computing/computer-

science/cryptography/modarithmetic/a/modular-inverses

Class4crypt c4c2.3 - © jorgeramio 2020 Lección 2.3 - página 26

Fin de la lección

Page 27: Class4crypt Aula Virtual de Criptografía · 10 23mod 41 = 16 11 mod 41 = 22 1223 mod 41 = 35 13 mod 41 = 17 1423 mod 41 = 3 15 23 mod 41 = 28 16 23 mod 41 = 37 17 mod 41 = 7 18 23

Otras videoclases del proyecto Class4crypt

• https://www.youtube.com/user/jorgeramio

• Más información en canal Twitter• https://twitter.com/class4crypt

Class4crypt c4c2.3 - © jorgeramio 2020 Lección 2.3 - página 27

Page 28: Class4crypt Aula Virtual de Criptografía · 10 23mod 41 = 16 11 mod 41 = 22 1223 mod 41 = 35 13 mod 41 = 17 1423 mod 41 = 3 15 23 mod 41 = 28 16 23 mod 41 = 37 17 mod 41 = 7 18 23

Licencia y créditos

• Estas videoclases y la documentación utilizada en ellas, se encuentran bajo licencia CreativeCommons tipo CC BY-NC-ND 4.0

• Reconocimiento - No Comercial - Sin Obra Derivada

• Permite que otros puedan descargar esta obra y compartirla con otras personas, siempre que se reconozca su autoría, pero no se puede cambiar de ninguna manera su contenido ni se puede utilizar comercialmente

• Música:

• Enter_Blonde, Max Surla, Media Right Productions, YouTube Audio Library - Free Music https://www.youtube.com/audiolibrary/music?nv=1

Class4crypt c4c2.3 - © jorgeramio 2020 Lección 2.3 - página 28