C´lculo de potencias modulares
 a

   Jes´s Garc´ de Jal´n de la Fuente
      u      ıa      o

         IES Avenida de lo...
Introducci´n
          o



     El problema que consideramos consiste en el c´lculo de potencias
                        ...
Introducci´n
          o



     El problema que consideramos consiste en el c´lculo de potencias
                        ...
Introducci´n
          o



     El problema que consideramos consiste en el c´lculo de potencias
                        ...
Introducci´n
          o



     El problema que consideramos consiste en el c´lculo de potencias
                        ...
El problema




     Vamos a calcular una potencia con n´meros de cuatro cifras. Por
                                     ...
El problema




     Vamos a calcular una potencia con n´meros de cuatro cifras. Por
                                     ...
El problema




     Vamos a calcular una potencia con n´meros de cuatro cifras. Por
                                     ...
Estrategias err´neas
               o



     Se podr´ pensar en calcular la potencia 65418914 y despu´s
             ıa  ...
Estrategias err´neas
               o



     Se podr´ pensar en calcular la potencia 65418914 y despu´s
             ıa  ...
Estrategias err´neas
               o



     Se podr´ pensar en calcular la potencia 65418914 y despu´s
             ıa  ...
Estrategias err´neas
               o



     Se podr´ pensar en calcular la potencia 65418914 y despu´s
             ıa  ...
Estrategias err´neas
               o



     Se podr´ pensar en calcular la potencia 65418914 y despu´s
             ıa  ...
Estrategias err´neas
               o



     Se podr´ pensar en calcular la potencia 65418914 y despu´s
             ıa  ...
El algoritmo I


     Expresamos el exponente 8914 como suma de potencias de 2. Esto
     se puede conseguir a partir de l...
El algoritmo I


     Expresamos el exponente 8914 como suma de potencias de 2. Esto
     se puede conseguir a partir de l...
El algoritmo I


     Expresamos el exponente 8914 como suma de potencias de 2. Esto
     se puede conseguir a partir de l...
El algoritmo II


     Seg´n hemos visto, basta calcular las potencias cuyo exponente
        u
     sea una potencia de 2...
El algoritmo III

           65412                       ≡ 42784681 ≡ 7493          (m´d 7789)
                           ...
El algoritmo IV

     Ahora puesto que:

      65418914 = 65412 · 654116 · 654164 · 6541128 · 6541512 · 65418192




     ...
El algoritmo IV

     Ahora puesto que:

       65418914 = 65412 · 654116 · 654164 · 6541128 · 6541512 · 65418192

     Su...
El algoritmo IV

     Ahora puesto que:

       65418914 = 65412 · 654116 · 654164 · 6541128 · 6541512 · 65418192

     Su...
Conclusi´n
        o



  El algoritmo para calcular potencias modulares consiste en lo
  siguiente:

    1   Descomponer ...
Conclusi´n
        o



  El algoritmo para calcular potencias modulares consiste en lo
  siguiente:

    1   Descomponer ...
Conclusi´n
        o



  El algoritmo para calcular potencias modulares consiste en lo
  siguiente:

    1   Descomponer ...
Implementaci´n en una hoja de c´lculo I
            o                  a



  El c´lculo de la potencia ae (m´d p) puede p...
Implementaci´n en una hoja de c´lculo II
            o                  a




                           C´lculo de potenc...
Upcoming SlideShare
Loading in …5
×

Potencias Modulares

7,290 views

Published on

Se describe el algoritmo que permite obtener de forma muy eficiente potencias modulares

Published in: Education, Business, Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
7,290
On SlideShare
0
From Embeds
0
Number of Embeds
219
Actions
Shares
0
Downloads
81
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Potencias Modulares

  1. 1. C´lculo de potencias modulares a Jes´s Garc´ de Jal´n de la Fuente u ıa o IES Avenida de los Toreros Madrid 2009-11-02 C´lculo de potencias modulares a
  2. 2. Introducci´n o El problema que consideramos consiste en el c´lculo de potencias a modulares: an (m´d m) o esto es, el resto de dividir an entre m. C´lculo de potencias modulares a
  3. 3. Introducci´n o El problema que consideramos consiste en el c´lculo de potencias a modulares: an (m´d m) o esto es, el resto de dividir an entre m. Tanto a como n y m son enteros positivos muy grandes. C´lculo de potencias modulares a
  4. 4. Introducci´n o El problema que consideramos consiste en el c´lculo de potencias a modulares: an (m´d m) o esto es, el resto de dividir an entre m. Tanto a como n y m son enteros positivos muy grandes. Por ejemplo el n´mero 65418914 es un n´mero gigantesco de m´s u u a de 30000 cifras. C´lculo de potencias modulares a
  5. 5. Introducci´n o El problema que consideramos consiste en el c´lculo de potencias a modulares: an (m´d m) o esto es, el resto de dividir an entre m. Tanto a como n y m son enteros positivos muy grandes. Por ejemplo el n´mero 65418914 es un n´mero gigantesco de m´s u u a de 30000 cifras. Imaginemos cu´ntas cifras puede tener la potencia si la base y el a exponente tienen 50 cifras. C´lculo de potencias modulares a
  6. 6. El problema Vamos a calcular una potencia con n´meros de cuatro cifras. Por u ejemplo: 65418914 (m´d 7789) o C´lculo de potencias modulares a
  7. 7. El problema Vamos a calcular una potencia con n´meros de cuatro cifras. Por u ejemplo: 65418914 (m´d 7789) o En un criptosistema real, estos n´meros deber´ ser mucho u ıan mayores (cincuenta o m´s cifras). a C´lculo de potencias modulares a
  8. 8. El problema Vamos a calcular una potencia con n´meros de cuatro cifras. Por u ejemplo: 65418914 (m´d 7789) o En un criptosistema real, estos n´meros deber´ ser mucho u ıan mayores (cincuenta o m´s cifras). a Veremos que, en cualquier caso, existe un algoritmo que permite calcular la potencia. C´lculo de potencias modulares a
  9. 9. Estrategias err´neas o Se podr´ pensar en calcular la potencia 65418914 y despu´s ıa e dividir por 7789. Pero: C´lculo de potencias modulares a
  10. 10. Estrategias err´neas o Se podr´ pensar en calcular la potencia 65418914 y despu´s ıa e dividir por 7789. Pero: La potencia tiene m´s de 30000 cifras. a C´lculo de potencias modulares a
  11. 11. Estrategias err´neas o Se podr´ pensar en calcular la potencia 65418914 y despu´s ıa e dividir por 7789. Pero: La potencia tiene m´s de 30000 cifras. a Si la base y el exponente son n´meros muy grandes, el c´lculo se u a vuelve imposible. C´lculo de potencias modulares a
  12. 12. Estrategias err´neas o Se podr´ pensar en calcular la potencia 65418914 y despu´s ıa e dividir por 7789. Pero: La potencia tiene m´s de 30000 cifras. a Si la base y el exponente son n´meros muy grandes, el c´lculo se u a vuelve imposible. Tampoco servir´ calcular la potencia mediante productos y a la ıa vez ir reduciendo m´dulo 7789: o C´lculo de potencias modulares a
  13. 13. Estrategias err´neas o Se podr´ pensar en calcular la potencia 65418914 y despu´s ıa e dividir por 7789. Pero: La potencia tiene m´s de 30000 cifras. a Si la base y el exponente son n´meros muy grandes, el c´lculo se u a vuelve imposible. Tampoco servir´ calcular la potencia mediante productos y a la ıa vez ir reduciendo m´dulo 7789: o Por una parte, se evita que los n´meros se hagan grandes u (siempre ser´n menores que el m´dulo) a o C´lculo de potencias modulares a
  14. 14. Estrategias err´neas o Se podr´ pensar en calcular la potencia 65418914 y despu´s ıa e dividir por 7789. Pero: La potencia tiene m´s de 30000 cifras. a Si la base y el exponente son n´meros muy grandes, el c´lculo se u a vuelve imposible. Tampoco servir´ calcular la potencia mediante productos y a la ıa vez ir reduciendo m´dulo 7789: o Por una parte, se evita que los n´meros se hagan grandes u (siempre ser´n menores que el m´dulo) a o Si la base y el exponente son muy grandes el n´mero de u multiplicaciones y divisiones ser´ enorme (en nuestro ejemplo a 8913 multiplicaciones y el mismo n´mero de divisiones). u C´lculo de potencias modulares a
  15. 15. El algoritmo I Expresamos el exponente 8914 como suma de potencias de 2. Esto se puede conseguir a partir de la expresi´n binaria del n´mero: o u 8914 = 10001011010010(2) C´lculo de potencias modulares a
  16. 16. El algoritmo I Expresamos el exponente 8914 como suma de potencias de 2. Esto se puede conseguir a partir de la expresi´n binaria del n´mero: o u 8914 = 10001011010010(2) Esto significa que: 8914 = 2 + 16 + 64 + 128 + 512 + 8192 C´lculo de potencias modulares a
  17. 17. El algoritmo I Expresamos el exponente 8914 como suma de potencias de 2. Esto se puede conseguir a partir de la expresi´n binaria del n´mero: o u 8914 = 10001011010010(2) Esto significa que: 8914 = 2 + 16 + 64 + 128 + 512 + 8192 Por consiguiente: 65418914 = 65412+16+64+128+512+8192 = 65412 · 654116 · 654164 · 6541128 · 6541512 · 65418192 C´lculo de potencias modulares a
  18. 18. El algoritmo II Seg´n hemos visto, basta calcular las potencias cuyo exponente u sea una potencia de 2. Estas potencias se pueden calcular cada una de la anterior elevando al cuadrado. Para evitar que este n´mero se haga u grande se reduce m´dulo 7789. o Por ejemplo (los c´lculos son m´dulo 7789): a o 65412 ≡ 42784681 ≡ 7493 (m´d 7789) o 4 2 6541 ≡ 7493 ≡ 56145049 ≡ 1937 (m´d 7789) o 8 2 6541 ≡ 1937 ≡ 3751969 ≡ 5460 (m´d 7789) o El resto de potencias puede verse en la p´gina siguiente. a C´lculo de potencias modulares a
  19. 19. El algoritmo III 65412 ≡ 42784681 ≡ 7493 (m´d 7789) o 4 2 6541 ≡ 7493 ≡ 56145049 ≡ 1937 (m´d 7789) o 8 2 6541 ≡ 1937 ≡ 3751969 ≡ 5460 (m´d 7789) o 16 2 6541 ≡ 5460 ≡ 29811600 ≡ 3097 (m´d 7789) o 32 2 6541 ≡ 3097 ≡ 9591409 ≡ 3150 (m´d 7789) o 64 2 6541 ≡ 3150 ≡ 9922500 ≡ 7103 (m´d 7789) o 128 2 6541 ≡ 7103 ≡ 50452609 ≡ 3256 (m´d 7789) o 256 2 6541 ≡ 3256 ≡ 10601536 ≡ 707 (m´d 7789) o 512 2 6541 ≡ 707 ≡ 499849 ≡ 1353 (m´d 7789) o 1024 2 6541 ≡ 1353 ≡ 1830609 ≡ 194 (m´d 7789) o 2048 2 6541 ≡ 194 ≡ 37636 ≡ 6480 (m´d 7789) o 4096 2 6541 ≡ 6480 ≡ 41990400 ≡ 7690 (m´d 7789) o 8192 2 6541 ≡ 7690 ≡ 59136100 ≡ 2012 (m´d 7789) o C´lculo de potencias modulares a
  20. 20. El algoritmo IV Ahora puesto que: 65418914 = 65412 · 654116 · 654164 · 6541128 · 6541512 · 65418192 C´lculo de potencias modulares a
  21. 21. El algoritmo IV Ahora puesto que: 65418914 = 65412 · 654116 · 654164 · 6541128 · 6541512 · 65418192 Sustituimos las potencias y reducimos cada producto m´dulo o 7789: 65418914 = 65412 · 654116 · 654164 · 6541128 · 6541512 · 65418192 ≡ 7493 · 3097 · 7103 · 3256 · 1353 · 2012 ≡ 23205821 · 23127368 · 2722236 ≡ 2390 · 1827 · 3875 ≡ 4366530 · 3875 ≡ 4690 · 3875 ≡ 18173750 ≡ 2013 (m´d 7789) o C´lculo de potencias modulares a
  22. 22. El algoritmo IV Ahora puesto que: 65418914 = 65412 · 654116 · 654164 · 6541128 · 6541512 · 65418192 Sustituimos las potencias y reducimos cada producto m´dulo o 7789: 65418914 = 65412 · 654116 · 654164 · 6541128 · 6541512 · 65418192 ≡ 7493 · 3097 · 7103 · 3256 · 1353 · 2012 ≡ 23205821 · 23127368 · 2722236 ≡ 2390 · 1827 · 3875 ≡ 4366530 · 3875 ≡ 4690 · 3875 ≡ 18173750 ≡ 2013 (m´d 7789) o Han sido suficientes 18 multiplicaciones y divisiones para obtener el resultado. C´lculo de potencias modulares a
  23. 23. Conclusi´n o El algoritmo para calcular potencias modulares consiste en lo siguiente: 1 Descomponer el exponente en suma de potencias de 2. C´lculo de potencias modulares a
  24. 24. Conclusi´n o El algoritmo para calcular potencias modulares consiste en lo siguiente: 1 Descomponer el exponente en suma de potencias de 2. 2 Calcular las potencias modulares cuyo exponente es una potencia de 2. Estas potencias pueden obtenerse cada una de la anterior elevando al cuadrado y reduciendo. C´lculo de potencias modulares a
  25. 25. Conclusi´n o El algoritmo para calcular potencias modulares consiste en lo siguiente: 1 Descomponer el exponente en suma de potencias de 2. 2 Calcular las potencias modulares cuyo exponente es una potencia de 2. Estas potencias pueden obtenerse cada una de la anterior elevando al cuadrado y reduciendo. 3 Multiplicar las potencias cuyos exponentes aparezcan en la descomposici´n del apartado 1 y reducir cada producto con el o m´dulo. o C´lculo de potencias modulares a
  26. 26. Implementaci´n en una hoja de c´lculo I o a El c´lculo de la potencia ae (m´d p) puede programarse f´cilmente a o a en una hoja de c´lculo definiendo las siguientes sucesiones por a recurrencia: xn x1 = e, xn+1 = int 2 2 y1 = a, yn+1 = yn mod p zn si xn es par z1 = 1, zn+1 = yn zn si xn es impar El valor de zn cuando xn = 0 es el valor de la potencia. C´lculo de potencias modulares a
  27. 27. Implementaci´n en una hoja de c´lculo II o a C´lculo de potencias modulares a

×