SlideShare ist ein Scribd-Unternehmen logo
1 von 27
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Mehr von 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
 

Kürzlich hochgeladen

Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxMaritzaRetamozoVera
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdfBaker Publishing Company
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdfDemetrio Ccesa Rayme
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzprofefilete
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaDecaunlz
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadAlejandrino Halire Ccahuana
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxKarlaMassielMartinez
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arteRaquel Martín Contreras
 
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.pdfAngélica Soledad Vega Ramírez
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosCesarFernandez937857
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfMaritzaRetamozoVera
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuaDANNYISAACCARVAJALGA
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAEl Fortí
 
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxPryhaSalam
 
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...Lourdes Feria
 

Kürzlich hochgeladen (20)

Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docx
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdf
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativa
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdad
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arte
 
Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.
 
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
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos Básicos
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.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
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahua
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
 
Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
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...
 

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