SlideShare una empresa de Scribd logo
1 de 27
Descargar para leer sin conexión
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
El algoritmo IV

     Ahora puesto que:

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




                                      C´lculo de potencias modulares
                                       a
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
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
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
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
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
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
Implementaci´n en una hoja de c´lculo II
            o                  a




                           C´lculo de potencias modulares
                            a

Más contenido relacionado

Más de Jesús García de Jalón de la Fuente (7)

Geometría en el espacio
Geometría en el espacioGeometría en el espacio
Geometría en el espacio
 
Logaritmos
LogaritmosLogaritmos
Logaritmos
 
Polinomios
PolinomiosPolinomios
Polinomios
 
Protocolo de Diffie-Hellman
Protocolo de Diffie-HellmanProtocolo de Diffie-Hellman
Protocolo de Diffie-Hellman
 
Geometria
GeometriaGeometria
Geometria
 
Funciones
FuncionesFunciones
Funciones
 
Imagenes Digitales
Imagenes DigitalesImagenes Digitales
Imagenes Digitales
 

Último

Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
patriciaines1993
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docx
lupitavic
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Fernando Solis
 

Último (20)

Abril 2024 - Maestra Jardinera Ediba.pdf
Abril 2024 -  Maestra Jardinera Ediba.pdfAbril 2024 -  Maestra Jardinera Ediba.pdf
Abril 2024 - Maestra Jardinera Ediba.pdf
 
Infografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdfInfografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdf
 
Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 
Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docx
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
Tema 11. Dinámica de la hidrosfera 2024
Tema 11.  Dinámica de la hidrosfera 2024Tema 11.  Dinámica de la hidrosfera 2024
Tema 11. Dinámica de la hidrosfera 2024
 

Potencias Modulares

  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. El algoritmo IV Ahora puesto que: 65418914 = 65412 · 654116 · 654164 · 6541128 · 6541512 · 65418192 C´lculo de potencias modulares a
  • 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. 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. 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. 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. 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. 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. Implementaci´n en una hoja de c´lculo II o a C´lculo de potencias modulares a