19
Class4crypt Videoclases de criptografía aplicada Class4crypt c4c2.2 - © jorgeramio 2020 Profesor Dr. Jorge Ramió A. Clase c4c2.2 El homomorfismo de los enteros en la criptografía Madrid, viernes 27 de marzo de 2020

Class4crypt Aula Virtual de Criptografía...•Módulo 10: Cifra asimétrica ... sólo hasta unos 44 mil dígitos, demasiado pequeño para la criptografía actual •Para cálculos

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Class4crypt Aula Virtual de Criptografía...•Módulo 10: Cifra asimétrica ... sólo hasta unos 44 mil dígitos, demasiado pequeño para la criptografía actual •Para cálculos

Class4cryptVideoclases de criptografía aplicada

Class4crypt c4c2.2 - © jorgeramio 2020

Profesor Dr. Jorge Ramió A.

Clase c4c2.2El homomorfismo de los enteros en la criptografía

Madrid, viernes 27 de marzo de 2020

Page 2: Class4crypt Aula Virtual de Criptografía...•Módulo 10: Cifra asimétrica ... sólo hasta unos 44 mil dígitos, demasiado pequeño para la criptografía actual •Para cálculos

Temario

Class4crypt c4c2.2 - © jorgeramio 2020 Lección 2.2 - 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...•Módulo 10: Cifra asimétrica ... sólo hasta unos 44 mil dígitos, demasiado pequeño para la criptografía actual •Para cálculos

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

¡COMENZAMOS!

Page 4: Class4crypt Aula Virtual de Criptografía...•Módulo 10: Cifra asimétrica ... sólo hasta unos 44 mil dígitos, demasiado pequeño para la criptografía actual •Para cálculos

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

Lección 2.2. El homomorfismo de los enteros en la criptografía

1. Recordando la aritmética modular

2. Homomorfismo de los enteros en operaciones modulares

3. Reducción por cuadrados en operaciones de exponenciación modular

4. Importancia del homomorfismo de los enteros en la cifra moderna

5. Calculadoras a usar para las operaciones de cifra con números grandes

Class4crypt c4c2.2

Class4crypt c4c2.2 - © jorgeramio 2020 Lección 2.2 - página 4

Page 5: Class4crypt Aula Virtual de Criptografía...•Módulo 10: Cifra asimétrica ... sólo hasta unos 44 mil dígitos, demasiado pequeño para la criptografía actual •Para cálculos

Recordando la aritmética modular

Class4crypt c4c2.2 - © jorgeramio 2020 Lección 2.2 - página 5

• En criptografía, las operaciones de cifra se hacen dentro de un módulo

• Sólo se cifran restos de ese módulo y los resultados de esa operación modular de cifra serán también restos de dicho módulo

• En la cifra clásica el módulo, grupo o cuerpo de cifra, tenía el mismo tamaño que el alfabeto

• Operaciones: ci = a*mi + b mod 27 (Afín), ci = mi + ki mod 27 (Vigenère) …

• En la cifra moderna esto no sucede, al tener como “alfabeto” el código ASCII extendido, bytes con sus 28 = 256 caracteres, y siendo el módulo de cifra un número mucho mayor, por lo general miles de bits

• En criptografía asimétrica o de clave pública, ese módulo puede ser un primo p (cuerpo) o un número compuesto n (grupo), producto de dos primos

• Operaciones: CA = a mod p (DH - Alicia), C = KeR mod nR (RSA) …

Page 6: Class4crypt Aula Virtual de Criptografía...•Módulo 10: Cifra asimétrica ... sólo hasta unos 44 mil dígitos, demasiado pequeño para la criptografía actual •Para cálculos

Homomorfismo de los enteros en módulo

Class4crypt c4c2.2 - © jorgeramio 2020 Lección 2.2 - página 6

Enteros Enteros mod n

a1, a2 (a1 mod n), (a2 mod n)

op (y posterior reducción mod n) op (reduciendo antes mod n)

(a1 op a2) mod n (a1 mod n) op (a2 mod n) mod n

es lo mismo que

…esta otra operaciónEsta operación...

En matemática el homomorfismo desde un objeto matemático a otro con la misma estructura algebraica, es una función que preserva las operaciones definidas en dichos objetos. Esto nos permitirá realizar operaciones modulares con números muy grandes en la criptografía actual

Page 7: Class4crypt Aula Virtual de Criptografía...•Módulo 10: Cifra asimétrica ... sólo hasta unos 44 mil dígitos, demasiado pequeño para la criptografía actual •Para cálculos

Reduciendo las operaciones modulares

Class4crypt c4c2.2 - © jorgeramio 2020 Lección 2.2 - página 7

• 31512 mod 401 = 954.391.681.757.526.337.812.744.140.625 mod 401 = 125

• Al ser números muy pequeños podemos usar la calculadora de Windows

• Como 31512 = 3152*6, esta operación (op) también se podría resolver así:

• 3152 * 3152 * 3152 * 3152 * 3152 * 3152 mod 401

• Como 3152 mod 401 = 178, tenemos:

• 1782 * 1782 * 1782 mod 401 = 5 * 5 * 5 = 125

• La reducción por cuadrados no será eficiente para números muy grandes

• Aquí usaremos el Algoritmo de Exponenciación Rápida (AER), que veremos en una próxima clase y que está basado en esta misma propiedad Ejemplo práctico

Page 8: Class4crypt Aula Virtual de Criptografía...•Módulo 10: Cifra asimétrica ... sólo hasta unos 44 mil dígitos, demasiado pequeño para la criptografía actual •Para cálculos

¿Por qué es importante el homomorfismo?

Class4crypt c4c2.2 - © jorgeramio 2020 Lección 2.2 - página 8

• El homomorfismo de los enteros será muy importante en criptografía de clave pública, en donde muchas operaciones son del tipo Ab mod n, con valores de A y b que pueden ser incluso de miles de bits, números muy grandes

• Intentar resolver primero la potencia Ab y después reducir el resultado al módulo n, es imposible. Entre otras razones, porque no hay manera de almacenar ese número inmenso en ningún ordenador o sistema.

• Por ejemplo, (256 bits)(17 bits) ya entrega más de 16 millones de bits…

• Sin embargo, gracias al homomorfismo de los enteros, las operaciones pueden hacerse incluso con números del mismo orden de bits que el módulo n de cifra, como sería el caso del descifrado de una clave de sesión tras un intercambio de clave realizado con RSA

• Es decir, realizar una operación (2.048 bits)(2.048 bits) mod (2.048 bits)

Page 9: Class4crypt Aula Virtual de Criptografía...•Módulo 10: Cifra asimétrica ... sólo hasta unos 44 mil dígitos, demasiado pequeño para la criptografía actual •Para cálculos

El homomorfismo en la cifra asimétrica

Class4crypt c4c2.2 - © jorgeramio 2020 Lección 2.2 - página 9

• En criptografía moderna asimétrica trabajamos con números muy grandes, porque la fortaleza de los algoritmos reside en un problema matemático de muy difícil solución cuando el módulo es grande, llamados problemas NP (nondeterministic polynomial time) o tiempo polinomial no determinista

• A pesar de ello, hay que asegurar que podremos realizar una operación del tipo (256 bits)(17 bits) mod (2.048 bits), intercambio de clave AES256 con RSA, o (256 bits)(2.048 bits) mod (2.048 bits), firma digital de un hash SHA-2 con RSA

• Pero no podremos calcular Nx y “después” reducir módulo n (imposible…)• 24319 = 2.120.895.147.045.314.119.491.609.587.512.844.743.630.072.107 (46 dígitos, 151 bits)• Pero si intercambiamos esos números, aun siendo extremadamente pequeños, a: 19243 =

54.591.500.508.179.050.937.318.088.200.925.014.403.198.664.275.313.933.277.242.918.098.453.270.394.419.502.761.682.134.122.372.615.632.042.338.880.435.800.873.587.880.321.946.719.404.884.689.789.912.724.211.616.943.306.657.280.907.354.665.390.070.892.406.881.184.847.540.695.653.985.526.095.057.496.074.324.352.268.540.317.465.180.142.907.170.564.291.497.461.564.034.165.111.403.756.258.878.363.860.020.756.571.659 (311 dígitos = 1.033 bits)

Page 10: Class4crypt Aula Virtual de Criptografía...•Módulo 10: Cifra asimétrica ... sólo hasta unos 44 mil dígitos, demasiado pequeño para la criptografía actual •Para cálculos

Operaciones de potencia Nx y Nx mod n

Class4crypt c4c2.2 - © jorgeramio 2020 Lección 2.2 - página 10

• Con números grandes no podemos calcular Nx pero sí podremos calcular Nx mod n usando el homomorfismo de los enteros. Por ejemplo, este intercambio de clave K de 256 bits del algoritmo AES mediante el algoritmo RSA de 2.048 bits (tiempo << 1 segundo)

• C8FC0451D2D7E4E34B2319D7D043732C85EEEB4843D078A0ADB235E34F4C401E10001 mod C21F3BC0C9B72ECCCFB22F21EAA218F188C43D4E2ADC713D5307330B188AB9869E251AC20F832F6A0FB5B23CB8DF3BAAF271D9D34E7EC202FAC640E2C3D0EBB605DFE5FC352736FF9CFE17D6716F127EEAF3CAA05AD1763D1717E7DF88924D757155F3142844EB46DD13D797867AC23AD053227B2EEA5C904498DA8680D028CE955ABB1391C15F583D0C8E70536428C629FCCF493537E04356DC8CBA19F3916B29B0E03179A96F61BD8C44433B690F4B6D9BEBF15BD638CD0F22544FDA5A87946EB3AF75CAB029F84B786C500CF95529DFDCE6E21E0A8820E151A9212963119A8E315E5F514FAA584DB8AC3099F568AC84975A70FD5E515A37966A1245A3E55F

• BFA103B8E9A64109674151FE61121B6312BA634EA835BB76CC44BC64A396C54AC0CF6C70C853878A39A69EA5A8E1CD5B9304B0B086BB0A2F17AD905BFA4B162627C7E3A75161D5B9EB2F096136CB9F5A22E79E70135266B191CE4FABA9F7D5A1EA34801A66619DA0B87C9773F6AF07C23D5C89F99F5F248F918DC2D2D1B5441E509F648B8C9620DBFCAE4EB12C2C4D81A8B1F56F3C3721C2A327F3EC7CAD3D10B46042F7586261AD67A60D19A4C309549B2135999F054A1F4ED9B3BB31D0A2E007BA49D4EB12F166B2EAB595988DE5F9D59E404C448CF44A035DB12DBC43AF6BE665DC5B28CF86C4111786359E7E2676D812A97C6ED26389C5A0DC188598E06F

Page 11: Class4crypt Aula Virtual de Criptografía...•Módulo 10: Cifra asimétrica ... sólo hasta unos 44 mil dígitos, demasiado pequeño para la criptografía actual •Para cálculos

Cálculo de Nx mod n de forma inmediata

Class4crypt c4c2.2 - © jorgeramio 2020 Lección 2.2 - página 11

Interesante:

Clave 256 bits (AES)Clave pública F4 (RSA)256 bits17 bits

0x C8FC0451D2D7E4E34B2319D7D043732C85EEEB4843D078A0ADB235E34F4C401E10001

4.188.649 caracteres hexadecimales

16.754.596 bits (mucho mayor que el módulo de cifra de 2.048 bits)

Page 12: Class4crypt Aula Virtual de Criptografía...•Módulo 10: Cifra asimétrica ... sólo hasta unos 44 mil dígitos, demasiado pequeño para la criptografía actual •Para cálculos

¿Qué calculadora usar, Windows?

Class4crypt c4c2.2 - © jorgeramio 2020 Lección 2.2 - página 12

• 9.99910.000 = 3,6786104643292992411133567221851e+39999 (40 mil dígitos)

• Pero 9.99910.999 = entrada no válida

• > 5 dígitos5 dígitos (por ejemplo 11.11111.111): entrada no válida ¿Solución?

Page 13: Class4crypt Aula Virtual de Criptografía...•Módulo 10: Cifra asimétrica ... sólo hasta unos 44 mil dígitos, demasiado pequeño para la criptografía actual •Para cálculos

Software para operaciones modulares

Class4crypt c4c2.2 - © jorgeramio 2020 Lección 2.2 - página 13

Mobilefish (no cómodo)SAMCript (recomendable)https://www.mobilefish.com/services/big_number_equation/big_number_equation.php

Page 14: Class4crypt Aula Virtual de Criptografía...•Módulo 10: Cifra asimétrica ... sólo hasta unos 44 mil dígitos, demasiado pequeño para la criptografía actual •Para cálculos

Cuidado con el software en Internet

Class4crypt c4c2.2 - © jorgeramio 2020 Lección 2.2 - página 14

inv (31, 200000000000000000000) = 83.870.967.741.935.483.871 Sin palabras…

¿?

Page 15: Class4crypt Aula Virtual de Criptografía...•Módulo 10: Cifra asimétrica ... sólo hasta unos 44 mil dígitos, demasiado pequeño para la criptografía actual •Para cálculos

Conclusiones de la lección 2.2

• El homomorfismo de los enteros permite realizar operaciones modulares con números muy grandes del tipo Nx mod n, típicas en criptografía asimétrica

• El método por reducción de cuadrados es válido para números grandes porque optimiza el cómputo, pero no para números muy grandes

• La extensión de este método se conoce como Algoritmo de Exponenciación Rápida AER, que veremos en una próxima clase

• La calculadora de Windows permite hacer operaciones de exponenciación sólo hasta unos 44 mil dígitos, demasiado pequeño para la criptografía actual

• Para cálculos con números muy grandes, se recomienda utilizar el software SAMCript en vez de Mobilefish (incómodo y consume muchos recursos web)

• Cuidado con páginas web de matemáticas en Internet

Class4crypt c4c2.2 - © jorgeramio 2020 Lección 2.2 - página 15

Page 16: Class4crypt Aula Virtual de Criptografía...•Módulo 10: Cifra asimétrica ... sólo hasta unos 44 mil dígitos, demasiado pequeño para la criptografía actual •Para cálculos

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.2 - © jorgeramio 2020 Lección 2.2 - página 16

Page 17: Class4crypt Aula Virtual de Criptografía...•Módulo 10: Cifra asimétrica ... sólo hasta unos 44 mil dígitos, demasiado pequeño para la criptografía actual •Para cálculos

Lectura extra recomendada

• Congruencias en Z módulo m, La exponenciación en aritmética modular• http://www.dma.fi.upm.es/recursos/aplicaciones/matematica_discreta/web/aritmetica

_modular/congruencias.html

• Exponenciación modular rápida, Khan Academy• https://es.khanacademy.org/computing/computer-

science/cryptography/modarithmetic/a/fast-modular-exponentiation

• Modular exponentiation, Khan Academy• https://www.khanacademy.org/computing/computer-

science/cryptography/modarithmetic/a/modular-exponentiation

• Modular exponentiation, Wikipedia• https://en.wikipedia.org/wiki/Modular_exponentiation

Class4crypt c4c2.2 - © jorgeramio 2020 Lección 2.2 - página 17

Fin de la lección

Page 18: Class4crypt Aula Virtual de Criptografía...•Módulo 10: Cifra asimétrica ... sólo hasta unos 44 mil dígitos, demasiado pequeño para la criptografía actual •Para cálculos

Otras videoclases del proyecto Class4crypt

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

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

Class4crypt c4c2.2 - © jorgeramio 2020 Lección 2.2 - página 18

Page 19: Class4crypt Aula Virtual de Criptografía...•Módulo 10: Cifra asimétrica ... sólo hasta unos 44 mil dígitos, demasiado pequeño para la criptografía actual •Para cálculos

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.2 - © jorgeramio 2020 Lección 2.2 - página 19