Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Clase c4c2.5
Algoritmo de
exponenciación rápida
Madrid, sábado 11 de abril de 2020
x = x mod n
2 i = 3 b3 = 0 x = 802 mod 91 = 30 x = 30
i = 2 b2 = 0 x = 302 mod 91 = 81 x = 81
Si bi = 1 entonces
i = 1 b1 = 1 x = 812 19 mod 91 = 80 x = 80
x = xA mod n
i = 0 b0 = 1 x = 802 19 mod 91 = 24 x = 24
Hemos realizado sólo 16 operaciones, frente a las 164 si se usase reducción por cuadrados.
¿Qué sucederá en una firma digital RSA sobre un hash: (256 bits)(2.048 bits) mod (2.048 bits)?
Con AER, 2.048 cuadrados y unas 1.000 multiplicaciones… pero ¿un número de 620 dígitos?
Class4crypt c4c2.5 - © jorgeramio 2020 Lección 2.5 - página 7
Calculadoras modulares básicas
http://www.criptored.upm.es/software/sw_m001t.htm
https://www.mobilefish.com/services/big_n
umber_equation/big_number_equation.php
https://www.boxentriq.com/code-
breaking/modular-exponentiation
https://www.mtholyoke.edu/courses/quenell/s2003/ma139/js/powermod.html
https://www.youtube.com/watch?v=atadETMx9Lk
Class4crypt c4c2.5 - © jorgeramio 2020 Lección 2.5 - página 13
Conclusiones de la lección 2.5
• La criptografía moderna usa en sus algoritmos de clave pública operaciones
de exponenciación modular AB mod n con números muy grandes, para
protegerse de ataques por fuerza bruta
• No obstante, para permitir realizar las operaciones de cifrado y descifrado en
tiempos mínimos, se hace uso del homomorfismo de los enteros y, en
particular, del algoritmo de exponenciación rápida AER
• El exponente B se expresa en binario y se recorre dicha cadena de bits, de
forma que cuando el bit es un 0 la operación a realizar es un cuadrado, y
cuando el bit es un 1, además de ese cuadrado se multiplica por la base A, en
ambos casos reduciendo la operación módulo n
• Operaciones en las que tanto A, B y n son mayores que 3.000 bits, se realizan
en menos de un segundo… y cuidado nuevamente con páginas web no fiables
Class4crypt c4c2.5 - © jorgeramio 2020 Lección 2.5 - página 14
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.5 - © jorgeramio 2020 Lección 2.5 - página 15
Fin de la
Lectura extra recomendada lección
• Guion de la píldora formativa Thoth nº 37 ¿Cómo funciona el algoritmo de
exponenciación rápida? Jorge Ramió, 2016
• http://www.criptored.upm.es/thoth/material/texto/pildora037.pdf
• Coursera Square and Multiply
• https://es.coursera.org/lecture/mathematical-foundations-
cryptography/square-and-multiply-ty62K
• Modular exponentiation by repeated squaring
• https://mathlesstraveled.com/2018/08/18/modular-exponentiation-by-
repeated-squaring/
• Más información en canal Twitter
• https://twitter.com/class4crypt
Class4crypt c4c2.5 - © jorgeramio 2020 Lección 2.5 - página 17
Licencia y créditos
• Estas videoclases y la documentación utilizada
en ellas, se encuentran bajo licencia Creative
Commons 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