SlideShare une entreprise Scribd logo
1  sur  40
Télécharger pour lire hors ligne
√
                             n-ìåòîäû
Àëãîðèòìû index calculus: ïåðâàÿ ôàçà




           Ïîèñê äèñêðåòíîãî ëîãàðèôìà

                          Ñåðãåé Íèêîëåíêî

           Êðèïòîãðàôèÿ  CS Club, îñåíü 2009



                   Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
√             Ââåäåíèå. Àòàêà íà ãëàäêèå ìîäóëè
                                       n-ìåòîäû   Àëãîðèòì Øåíêñà è ρ-ìåòîä Ïîëëàðäà
          Àëãîðèòìû index calculus: ïåðâàÿ ôàçà
                                                  λ-ìåòîä Ïîëëàðäà


Outline



          n-ìåòîäû
      √
  1
          Ââåäåíèå. Àòàêà íà ãëàäêèå ìîäóëè
          Àëãîðèòì Øåíêñà è ρ-ìåòîä Ïîëëàðäà
          λ-ìåòîä Ïîëëàðäà

  2   Àëãîðèòìû index calculus: ïåðâàÿ ôàçà
        Ââåäåíèå. Îñíîâíàÿ èäåÿ
        Ïðîâåðêà íà ãëàäêîñòü îäíîãî ÷èñëà
        Ïðîâåðêà íà ãëàäêîñòü ìíîãèõ ÷èñåë


                             Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
√             Ââåäåíèå. Àòàêà íà ãëàäêèå ìîäóëè
                                  n-ìåòîäû   Àëãîðèòì Øåíêñà è ρ-ìåòîä Ïîëëàðäà
     Àëãîðèòìû index calculus: ïåðâàÿ ôàçà
                                             λ-ìåòîä Ïîëëàðäà


Çàäà÷à




     Íà ïðîøëîé ëåêöèè ìû óçíàëè, êàê ðàñêëàäûâàòü ÷èñëà íà
     ìíîæèòåëè.
     Òåïåðü ïîïðîáóåì ðåøàòü äðóãóþ áàçîâóþ çàäà÷ó
     êðèïòîãðàôèè: äèñêðåòíûé ëîãàðèôì.




                        Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
√             Ââåäåíèå. Àòàêà íà ãëàäêèå ìîäóëè
                                  n-ìåòîäû   Àëãîðèòì Øåíêñà è ρ-ìåòîä Ïîëëàðäà
     Àëãîðèòìû index calculus: ïåðâàÿ ôàçà
                                             λ-ìåòîä Ïîëëàðäà


Çàäà÷à


     Íà ïðîøëîé ëåêöèè ìû óçíàëè, êàê ðàñêëàäûâàòü ÷èñëà íà
     ìíîæèòåëè.
     Òåïåðü ïîïðîáóåì ðåøàòü äðóãóþ áàçîâóþ çàäà÷ó
     êðèïòîãðàôèè: äèñêðåòíûé ëîãàðèôì.
     Äèñêðåòíûé ëîãàðèôì: â öèêëè÷åñêîé ãðóïïå G ïî g ∈ G
     è y ∈ G íàéòè òàêîé x , ÷òî g x = y .
     Ýòîò x îïðåäåëÿåòñÿ ñ òî÷íîñòüþ äî ïîðÿäêà g ; åñëè
      g = G , òî ëîãàðèôì îïðåäåë¼í ñ òî÷íîñòüþ äî |G | = n.
     Ìû áóäåì ñ÷èòàòü, ÷òî g = G .


                        Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
√             Ââåäåíèå. Àòàêà íà ãëàäêèå ìîäóëè
                                  n-ìåòîäû   Àëãîðèòì Øåíêñà è ρ-ìåòîä Ïîëëàðäà
     Àëãîðèòìû index calculus: ïåðâàÿ ôàçà
                                             λ-ìåòîä Ïîëëàðäà


Ñëîæíîñòü îáùåé çàäà÷è



     Èçâåñòíî, ÷òî åñëè íå ïîëüçîâàòüñÿ íè÷åì, êðîìå
     ãðóïïîâîé îïåðàöèè è âçÿòèÿ îáðàòíîãî, òî íè÷åãî ëó÷øå,
     ÷åì √n, íå áóäåò: êîãäà àëãîðèòì îáðàùàåòñÿ çà
     îïðåäåë¼ííûìè óìíîæåíèÿìè, ìîæíî ïî õîäó ñòðîèòü
     ãðóïïó òàê, ÷òî åìó ïðèä¼òñÿ îáðàùàòüñÿ Ω(√p) ðàç, ãäå p
      íàèáîëüøèé ïðîñòîé äåëèòåëü n [Shoup, 1997].
     Ìû ñíà÷àëà ðàññìîòðèì ìåòîäû, äîñòèãàþùèå ýòîé öåëè,
     à ïîòîì ïåðåéä¼ì ê ñïåöèôè÷åñêè ÷èñëîâûì ìåòîäàì,
     ðàáîòàþùèì íå âî âñåõ ãðóïïàõ.


                        Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
√             Ââåäåíèå. Àòàêà íà ãëàäêèå ìîäóëè
                                  n-ìåòîäû   Àëãîðèòì Øåíêñà è ρ-ìåòîä Ïîëëàðäà
     Àëãîðèòìû index calculus: ïåðâàÿ ôàçà
                                             λ-ìåòîä Ïîëëàðäà


Òðèâèàëüíûé ïîäõîä




     Òðèâèàëüíûé ïîäõîä: âîçâîäèòü g , g 2, g 3, . . ., ïîêà íå
     íàòêí¼ìñÿ íà y .
     Òðåáóåò ïðèìåðíî n îïåðàöèé, èìååò ñìûñë òîëüêî äëÿ
                      2
     ìàëåíüêèõ n.




                        Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
√                  Ââåäåíèå. Àòàêà íà ãëàäêèå ìîäóëè
                                  n-ìåòîäû                 Àëãîðèòì Øåíêñà è ρ-ìåòîä Ïîëëàðäà
     Àëãîðèòìû index calculus: ïåðâàÿ ôàçà
                                                           λ-ìåòîä Ïîëëàðäà


Àòàêà íà ãëàäêèå ìîäóëè

     Ïóñòü n = p1 p2 . . . plk .
                 k k   1        2               l


     Çàìåòèì, ÷òî äëÿ êàæäîãî èç ýòèõ p ïîðÿäîê ýëåìåíòà
     g n/p ðàâåí pk , è ïîðÿäîê ýëåìåíòà y n/p íå ïðåâîñõîäèò
          k                                                               k


     pk .
     Èíà÷å ãîâîðÿ, g n/p ïîðîæäàåò ïîäãðóïïó G ïîðÿäêà pk , à
                                        k


     y n/p ëåæèò â ýòîé ïîäãðóïïå.
          k


     È åñëè ìû ìîæåì íàéòè ëîãàðèôì â ýòîé ïîäãðóïïå:
                                    x
                   g n /p
                            k
                                        = y n /p ,
                                                       k
                                                           òî, ñ äðóãîé ñòîðîíû,
                                            x
                            g n /p
                                        k
                                                    è òåì ñàìûì
                                                    = y n /p ,
                                                            k



                                            x ≡ x (mod pk ).
                           Ñåðãåé Íèêîëåíêî                Ïîèñê äèñêðåòíîãî ëîãàðèôìà
√                          Ââåäåíèå. Àòàêà íà ãëàäêèå ìîäóëè
                                  n-ìåòîäû                Àëãîðèòì Øåíêñà è ρ-ìåòîä Ïîëëàðäà
     Àëãîðèòìû index calculus: ïåðâàÿ ôàçà
                                                          λ-ìåòîä Ïîëëàðäà


Àòàêà íà ãëàäêèå ìîäóëè
     Òîãäà, åñëè ìû íàéä¼ì ëîãàðèôìû ïî ìîäóëÿì ïðîñòûõ
     ÷èñåë                    x           k1                               k1
                                   g n /p                           y n /p
                                                   1
                                         1                  =              1       ,
                                          k       x2                       k
                                   g n /p2
                                              2
                                                            =       y n /p 2
                                                                               2
                                                                                   ,
                                                    ...             ...,
                                          k       x l                      k
                                   g n / pl l               =       y n/pl l ,
     òî ñìîæåì ïî êèòàéñêîé òåîðåìå îá îñòàòêàõ âîññòàíîâèòü
     x , ïîòîìó ÷òî
                     x ≡ x1 (mod p1 ),      k                              1


                     x ≡ x2 (mod p2 ),      k                              2


                      ...   ... ...,
                     x ≡ xl          (mod plk ).                           l

                        Ñåðãåé Íèêîëåíêî                  Ïîèñê äèñêðåòíîãî ëîãàðèôìà
√                 Ââåäåíèå. Àòàêà íà ãëàäêèå ìîäóëè
                                  n-ìåòîäû       Àëãîðèòì Øåíêñà è ρ-ìåòîä Ïîëëàðäà
     Àëãîðèòìû index calculus: ïåðâàÿ ôàçà
                                                 λ-ìåòîä Ïîëëàðäà


Àòàêà íà ãëàäêèå ìîäóëè

     Îêàçûâàåòñÿ, íàéòè ëîãàðèôì ïî ìîäóëþ pk äëÿ
     ìàëåíüêîãî ïðîñòîãî p ëåãêî, äàæå åñëè k áîëüøîå.
     Ðàçëîæèì ïðåäïîëàãàåìûé ëîãàðèôì x ïî îñíîâàíèþ p:
                       x    = z0 + z1 p + z2 p 2 + . . . + zk p k .

     Ïîëîæèì ñíà÷àëà y0 = y n/p , g0 = g n/p . Ïîðÿäîê g0 íå
     áîëüøå p, çíà÷èò,
                                                    x    z
                           y0 = y n/p = g x ·n/p = g0 = g0          0
                                                                        .

     Òåì ñàìûì ìû íàøëè z0. Òåïåðü ìîæíî åãî âû÷åñòü,
     ïîëîæèòü y1 = yg0−z n/p è ïðîäîëæàòü.
                                             2
                                   0



      èòîãå íàéä¼ì ëîãàðèôì ïî ìîäóëþ pk çà k ïîèñêîâ
     ëîãàðèôìà ïî ìîäóëþ p.
                        Ñåðãåé Íèêîëåíêî         Ïîèñê äèñêðåòíîãî ëîãàðèôìà
√             Ââåäåíèå. Àòàêà íà ãëàäêèå ìîäóëè
                                  n-ìåòîäû   Àëãîðèòì Øåíêñà è ρ-ìåòîä Ïîëëàðäà
     Àëãîðèòìû index calculus: ïåðâàÿ ôàçà
                                             λ-ìåòîä Ïîëëàðäà


Àòàêà íà ãëàäêèå ìîäóëè




     Çíà÷èò, ãëàäêèå ìîäóëè èñïîëüçîâàòü íåëüçÿ.
     Íóæíî âûáèðàòü òàêèå n, ó êîòîðûõ åñòü áîëüøèå ïðîñòûå
     äåëèòåëè.
     Ëèáî, â êðàéíåì ñëó÷àå, ðàçëîæåíèå n íåèçâåñòíî, íî åñòü
     ïðè÷èíû ïîëàãàòü, ÷òî áîëüøèå ïðîñòûå äåëèòåëè åñòü.




                        Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
√             Ââåäåíèå. Àòàêà íà ãëàäêèå ìîäóëè
                                   n-ìåòîäû   Àëãîðèòì Øåíêñà è ρ-ìåòîä Ïîëëàðäà
      Àëãîðèòìû index calculus: ïåðâàÿ ôàçà
                                              λ-ìåòîä Ïîëëàðäà


Baby-stepGiant-step



      Shanks, 1973: àëãîðèòì, ðàáîòàþùèé çà O (√n);
      ñòàíäàðòíûé time-space tradeo.
        1   Çàïèøåì x â âèäå x = im + j äëÿ êàêîãî-òî m. Òîãäà
            y · (g −m )i = g j .
        2   Ïðåäâû÷èñëèì g j è áóäåì ïåðåáèðàòü i , óìíîæàÿ y íà g im
            è ïðîâåðÿÿ, íåò ëè åãî ñðåäè g j .
      Åñëè çàïèñàòü gj â õåø-òàáëèöó, ìîæíî ñ÷èòàòü, ÷òî
      ïðîâåðêà íà ðàâåíñòâî ïðîèñõîäèò â ñðåäíåì çà
      êîíñòàíòíîå âðåìÿ.


                         Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
√                   Ââåäåíèå. Àòàêà íà ãëàäêèå ìîäóëè
                                   n-ìåòîäû         Àëãîðèòì Øåíêñà è ρ-ìåòîä Ïîëëàðäà
      Àëãîðèòìû index calculus: ïåðâàÿ ôàçà
                                                    λ-ìåòîä Ïîëëàðäà


Baby-stepGiant-step


      Àëãîðèòì çàïèñûâàåò äâà ìàññèâà. Ïåðâûé (giant steps):
                                                                  √
                                                            0
                                            √
                        S=          i, gi       n     | i = ..        n   .

      Âòîðîé (baby steps):
                          T   =        0 √n .
                                     j, y · gj      | j = ..

      Êàê òîëüêî ñïèñêè ïåðåñåêóòñÿ, ëîãàðèôì ìîæíî áóäåò
      íàéòè êàê
                    logg y ≡ i √n − j (mod n).
      Îäíàêî ýòîò àëãîðèòì òðåáóåò ýêñïîíåíöèàëüíîé ïàìÿòè.

                         Ñåðãåé Íèêîëåíêî           Ïîèñê äèñêðåòíîãî ëîãàðèôìà
√               Ââåäåíèå. Àòàêà íà ãëàäêèå ìîäóëè
                                  n-ìåòîäû     Àëãîðèòì Øåíêñà è ρ-ìåòîä Ïîëëàðäà
     Àëãîðèòìû index calculus: ïåðâàÿ ôàçà
                                               λ-ìåòîä Ïîëëàðäà


ρ-ìåòîä Ïîëëàðäà


     Pollard, 1978. Ñóòü  ¾birthday paradox¿: ìû âûáèðàåì
     ïñåâäîñëó÷àéíóþ ïîñëåäîâàòåëüíîñòü ýëåìåíòîâ â ãðóïïå
     è æä¼ì öèêëà. Öèêë áóäåò â ñðåäíåì ÷åðåç O (√n)
     ýëåìåíòîâ.
     Ðàçîáü¼ì ãðóïïó íà òðè ÷àñòè (íå ïîäãðóïïû) S1, S2, S3.
     Áóäåì âû÷èñëÿòü
                                   
                                   y · ai ,
                                   
                                                 åñëè ai ∈ S1,
                         ai +1 = ai    2,        åñëè ai ∈ S2,
                                 
                                 g · a ,
                                       i          åñëè ai ∈ S3.

                        Ñåðãåé Íèêîëåíêî       Ïîèñê äèñêðåòíîãî ëîãàðèôìà
√             Ââåäåíèå. Àòàêà íà ãëàäêèå ìîäóëè
                                  n-ìåòîäû   Àëãîðèòì Øåíêñà è ρ-ìåòîä Ïîëëàðäà
     Àëãîðèòìû index calculus: ïåðâàÿ ôàçà
                                             λ-ìåòîä Ïîëëàðäà


ρ-ìåòîä Ïîëëàðäà



     Åñëè â ïîñëåäîâàòåëüíîñòè íàéä¼òñÿ öèêë, ýòî ñ áîëüøîé
     âåðîÿòíîñòüþ ïðèâåä¼ò ê òîìó, ÷òî ìû íàéä¼ì äèñêðåòíûé
     ëîãàðèôì, ïîòîìó ÷òî ìû íàéä¼ì ñîîòíîøåíèå âèäà
     g ay b = g c y d .
     Íî, êàçàëîñü áû, âñ¼ ðàâíî íàäî õðàíèòü âñþ
     ïîñëåäîâàòåëüíîñòü, è ñ ïàìÿòüþ ëó÷øå íå ñòàíîâèòñÿ.
     ×òî äåëàòü?



                        Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
√             Ââåäåíèå. Àòàêà íà ãëàäêèå ìîäóëè
                                  n-ìåòîäû   Àëãîðèòì Øåíêñà è ρ-ìåòîä Ïîëëàðäà
     Àëãîðèòìû index calculus: ïåðâàÿ ôàçà
                                             λ-ìåòîä Ïîëëàðäà


Àëãîðèòì Ôëîéäà äëÿ ïîèñêà öèêëà


     Àëãîðèòì Ôëîéäà, îí æå ¾tortoise-and-hare algorithm¿.
     Îáùàÿ ïîñòàíîâêà: õîòèì íàéòè öèêë â
     ïîñëåäîâàòåëüíîñòè ai +1 = f (ai ).
     Äàâàéòå áóäåì õðàíèòü âñåãî äâà óêàçàòåëÿ: u è v , ïðè÷¼ì
     ui = ai (÷åðåïàõà), à vi = a2i (çàÿö).
     Åñëè â ïîñëåäîâàòåëüíîñòè åñòü öèêë ïåðèîäà r ,
     íà÷èíàþùèéñÿ ñ ïîçèöèè s (ai = ai +r äëÿ i ≥ s ), òî äëÿ
     ëþáîãî i ≥ s , äåëÿùåãîñÿ íà r , ai = a2i .
     Ò.å. íàì ïðèä¼òñÿ èñêàòü íå áîëåå ÷åì íà äëèíó ïåðèîäà
     (ò.å. ïðèìåðíî âäâîå) äîëüøå.

                        Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
√             Ââåäåíèå. Àòàêà íà ãëàäêèå ìîäóëè
                                  n-ìåòîäû   Àëãîðèòì Øåíêñà è ρ-ìåòîä Ïîëëàðäà
     Àëãîðèòìû index calculus: ïåðâàÿ ôàçà
                                             λ-ìåòîä Ïîëëàðäà


Àëãîðèòì Áðåíòà

     Äðóãîé àëãîðèòì äëÿ òîãî æå ñàìîãî  àëãîðèòì Áðåíòà.
     Òåïåðü ÷åðåïàõà îñòàíàâëèâàåòñÿ íà ñòåïåíÿõ äâîéêè, à
     çàÿö ïðûãàåò øàã çà øàãîì ê ñëåäóþùåé ñòåïåíè.
       1   Ïîêà tortoise=hare:
                 åñëè i  == pow , òî
                     tortoise := hare
                     pow := 2 · pow

                     i := 0

                   = f (hare)
                 hare

                 ++i
     Øàãîâ â ëþáîì ñëó÷àå íå áîëüøå, ÷åì â àëãîðèòìå
     Ôëîéäà, íî êàæäûé øàã  ýòî îäíî âû÷èñëåíèå f , à íå
     òðè.
                        Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
√             Ââåäåíèå. Àòàêà íà ãëàäêèå ìîäóëè
                                  n-ìåòîäû   Àëãîðèòì Øåíêñà è ρ-ìåòîä Ïîëëàðäà
     Àëãîðèòìû index calculus: ïåðâàÿ ôàçà
                                             λ-ìåòîä Ïîëëàðäà


λ-ìåòîä Ïîëëàðäà




     Ðàíüøå áûëè çàéöû è ÷åðåïàõè, òåïåðü  êåíãóðó.
     λ-ìåòîä Ïîëëàðäà åù¼ íàçûâàåòñÿ ¾kangaroo method¿.
     Ïðåäïîëîæèì, ÷òî ìû çíàåì íåêèé èíòåðâàë [a, b], íà
     êîòîðîì äîëæåí ëåæàòü íåèçâåñòíûé ëîãàðèôì x .
     Êàê ýòî èñïîëüçîâàòü?




                        Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
√              Ââåäåíèå. Àòàêà íà ãëàäêèå ìîäóëè
                                  n-ìåòîäû    Àëãîðèòì Øåíêñà è ρ-ìåòîä Ïîëëàðäà
     Àëãîðèòìû index calculus: ïåðâàÿ ôàçà
                                              λ-ìåòîä Ïîëëàðäà


λ-ìåòîä Ïîëëàðäà



     Îïðåäåëèì õåø-ôóíêöèþ h, äåëÿùóþ G íà r ìíîæåñòâ
     S1 , S2 , . . . , Sr : Si = h−1 (i ).
     Ïîñòàâèì êàæäîìó ìíîæåñòâó â ñîîòâåòñòâèå ðàññòîÿíèå
     d1 , d2 , . . . , dr è äëèíó ïðûæêà g d , g d , . . . , g d .
                                                  1      2         r


     Òåïåðü ïóòü êåíãóðó îïðåäåëÿåòñÿ êàê
                                   ci +1 = ci · g dh(ci ) .




                        Ñåðãåé Íèêîëåíêî      Ïîèñê äèñêðåòíîãî ëîãàðèôìà
√             Ââåäåíèå. Àòàêà íà ãëàäêèå ìîäóëè
                                  n-ìåòîäû   Àëãîðèòì Øåíêñà è ρ-ìåòîä Ïîëëàðäà
     Àëãîðèòìû index calculus: ïåðâàÿ ôàçà
                                             λ-ìåòîä Ïîëëàðäà


λ-ìåòîä Ïîëëàðäà



     Íàì áóäóò íóæíû äâà êåíãóðó: äèêèé è ðó÷íîé.
     Ðó÷íîé êåíãóðó íà÷í¼ò ïðûãàòü èç êàêîé-íèáóäü òî÷êè
     âíóòðè èíòåðâàëà [a, b], íàïðèìåð, g .            a+b
                                                        2


     Äèêèé êåíãóðó íà÷í¼ò ïðûãàòü èç íåèçâåñòíîé òî÷êè y .
     Îäíàêî, ñóììèðóÿ di , ìû ìîæåì õðàíèòü îáùåå
     ïðîéäåííîå ðàññòîÿíèå äëÿ îáîèõ êåíãóðó.



                        Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
√             Ââåäåíèå. Àòàêà íà ãëàäêèå ìîäóëè
                                  n-ìåòîäû    Àëãîðèòì Øåíêñà è ρ-ìåòîä Ïîëëàðäà
     Àëãîðèòìû index calculus: ïåðâàÿ ôàçà
                                              λ-ìåòîä Ïîëëàðäà


λ-ìåòîä Ïîëëàðäà


     Êîãäà ðó÷íîé è äèêèé êåíãóðó âñòðåòÿòñÿ, ïðè÷¼ì ðó÷íîé
     ïðîéä¼ò ê òîìó âðåìåíè ðàññòîÿíèå t , à äèêèé 
     ðàññòîÿíèå w , ó íàñ ïîëó÷èòñÿ, ÷òî
                    g
                        a+b
                         2    gt = gxgw,     è x = a + b + t − w.
                                                     2
     Ïåðåñå÷åíèå ìîæíî íàéòè, íàïðèìåð, õðàíÿ òîëüêî
     t1 , t2 , t4 , t8 , . . . è w1 , w2 , w4 , w8 , . . ., ïîòîìó ÷òî ïîñëå
     ïåðåñå÷åíèÿ ïóòè êåíãóðó ñîéäóòñÿ íàâñåãäà.
     Â ðåçóëüòàòå (áåç äîêàçàòåëüñòâà) îæèäàåìîå âðåìÿ
                                        √
     ðàáîòû ïîëó÷àåòñÿ O ( b − a).

                         Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
√             Ââåäåíèå. Àòàêà íà ãëàäêèå ìîäóëè
                                  n-ìåòîäû   Àëãîðèòì Øåíêñà è ρ-ìåòîä Ïîëëàðäà
     Àëãîðèòìû index calculus: ïåðâàÿ ôàçà
                                             λ-ìåòîä Ïîëëàðäà


ρ- è λ-ìåòîäû

     Ïî÷åìó ρ- è λ-ìåòîäû íàçâàíû ýòèìè áóêâàìè?




                        Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
√             Ââåäåíèå. Àòàêà íà ãëàäêèå ìîäóëè
                                  n-ìåòîäû   Àëãîðèòì Øåíêñà è ρ-ìåòîä Ïîëëàðäà
     Àëãîðèòìû index calculus: ïåðâàÿ ôàçà
                                             λ-ìåòîä Ïîëëàðäà


ρ- è λ-ìåòîäû

     Ïî÷åìó ρ- è λ-ìåòîäû íàçâàíû ýòèìè áóêâàìè?
     Ïîòîìó ÷òî òî, ÷òî ïðîèñõîäèò â àëãîðèòìàõ, ïîõîæå íà
     ýòè áóêâû:
           ρ-ìåòîä ñòðîèò ïîñëåäîâàòåëüíîñòü ýëåìåíòîâ, êîòîðàÿ â
           êàêîé-òî ìîìåíò âîçâðàùàåòñÿ ê îäíîìó èç
           ïðîìåæóòî÷íûõ çíà÷åíèé, ñîçäàâàÿ öèêë;
           λ-ìåòîä ñòðîèò äâå ïîñëåäîâàòåëüíîñòè ýëåìåíòîâ,
           êîòîðûå â êàêîé-òî ìîìåíò ñëèâàþòñÿ è çàòåì ñîâïàäàþò.




                        Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
√             Ââåäåíèå. Îñíîâíàÿ èäåÿ
                                       n-ìåòîäû   Ïðîâåðêà íà ãëàäêîñòü îäíîãî ÷èñëà
          Àëãîðèòìû index calculus: ïåðâàÿ ôàçà
                                                  Ïðîâåðêà íà ãëàäêîñòü ìíîãèõ ÷èñåë


Outline



          n-ìåòîäû
      √
  1
          Ââåäåíèå. Àòàêà íà ãëàäêèå ìîäóëè
          Àëãîðèòì Øåíêñà è ρ-ìåòîä Ïîëëàðäà
          λ-ìåòîä Ïîëëàðäà

  2   Àëãîðèòìû index calculus: ïåðâàÿ ôàçà
        Ââåäåíèå. Îñíîâíàÿ èäåÿ
        Ïðîâåðêà íà ãëàäêîñòü îäíîãî ÷èñëà
        Ïðîâåðêà íà ãëàäêîñòü ìíîãèõ ÷èñåë


                             Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
√             Ââåäåíèå. Îñíîâíàÿ èäåÿ
                                  n-ìåòîäû   Ïðîâåðêà íà ãëàäêîñòü îäíîãî ÷èñëà
     Àëãîðèòìû index calculus: ïåðâàÿ ôàçà
                                             Ïðîâåðêà íà ãëàäêîñòü ìíîãèõ ÷èñåë


Îò îáùèõ ãðóïï ê ÷àñòíûì ñëó÷àÿì




     Àëãîðèòìîâ ëó÷øå, ÷åì âûøåîïèñàííûå äîâîëüíî ïðîñòûå
     ñîîáðàæåíèÿ, äëÿ îáùèõ ãðóïï íå èçâåñòíî.
     Îäíàêî ìîæíî ñäåëàòü ëó÷øå ïðè äîïîëíèòåëüíûõ
     ïðåäïîëîæåíèÿõ íà ñòðóêòóðó ãðóïïû.
     Îíè âûïîëíÿþòñÿ, â ÷àñòíîñòè, â ãðóïïàõ ÷èñåë Zp .




                        Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
√                 Ââåäåíèå. Îñíîâíàÿ èäåÿ
                                  n-ìåòîäû       Ïðîâåðêà íà ãëàäêîñòü îäíîãî ÷èñëà
     Àëãîðèòìû index calculus: ïåðâàÿ ôàçà
                                                 Ïðîâåðêà íà ãëàäêîñòü ìíîãèõ ÷èñåë


Îò îáùèõ ãðóïï ê ÷àñòíûì ñëó÷àÿì



     Ïðåäïîëîæåíèÿ ïðîñòûå: ìîæíî âûáðàòü ðàçóìíóþ áàçó
     ôàêòîðèçàöèè p1, . . . , ps , äëÿ êîòîðîé ìíîãèå ýëåìåíòû
     áóäóò ïðåäñòàâëÿòüñÿ â âèäå
                                        k k
                                   r = p1 p2 1    2          k
                                                      . . . ps s .

     Äëÿ ÷èñåë ýòî ëåãêî: áåð¼ì ïðîñòûå ÷èñëà, ìåíüøèå B ;
     ¾ìíîãèå¿  ýòî â òî÷íîñòè B -ãëàäêèå ýëåìåíòû.
      äàëüíåéøåì áóäåì ñ÷èòàòü, ÷òî ìû ðàáîòàåì íàä Zp .


                        Ñåðãåé Íèêîëåíêî         Ïîèñê äèñêðåòíîãî ëîãàðèôìà
√             Ââåäåíèå. Îñíîâíàÿ èäåÿ
                                   n-ìåòîäû   Ïðîâåðêà íà ãëàäêîñòü îäíîãî ÷èñëà
      Àëãîðèòìû index calculus: ïåðâàÿ ôàçà
                                              Ïðîâåðêà íà ãëàäêîñòü ìíîãèõ ÷èñåë


Îáùàÿ èäåÿ index calculus



     Àëãîðèòì index calculus î÷åíü ïîõîæ íà àëãîðèòì
     ôàêòîðèçàöèè, èñïîëüçóþùèé êâàäðàòè÷íîå ðåøåòî.
     Òàê ÷òî çàîäíî â êàêîì-òî ñìûñëå è ïîâòîðèì ïðîøëóþ
     ëåêöèþ.
     Ìû çíàåì ñâîéñòâà ëîãàðèôìà, à èìåííî
                     logg (ab) = logg a + logg b,
                     logg (ae ) = e logg a.


                         Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
√             Ââåäåíèå. Îñíîâíàÿ èäåÿ
                                   n-ìåòîäû   Ïðîâåðêà íà ãëàäêîñòü îäíîãî ÷èñëà
      Àëãîðèòìû index calculus: ïåðâàÿ ôàçà
                                              Ïðîâåðêà íà ãëàäêîñòü ìíîãèõ ÷èñåë


Îáùàÿ èäåÿ index calculus


     Îáùàÿ èäåÿ: ëîãàðèôì ãëàäêîãî ýëåìåíòà ìîæíî
     ïðåäñòàâèòü êàê
     logg r ≡ k1 logg p1 + k2 logg p2 + . . . + ks logg ps (mod p − 1).
     Åñëè ìû çíàåì logg r (íàïðèìåð, ñàìè âûáèðàëè u è
     âû÷èñëÿëè r = g u ) è íàáåð¼ì äîñòàòî÷íî ìíîãî òàêèõ
     ñîîòíîøåíèé, ó íàñ ïîëó÷èòñÿ ëèíåéíàÿ ñèñòåìà íà logg pi .
     ż ìîæíî ðåøèòü è íàéòè logg pi , à çàòåì ñ èõ ïîìîùüþ
     íàéòè logg y .


                         Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
√             Ââåäåíèå. Îñíîâíàÿ èäåÿ
                                   n-ìåòîäû   Ïðîâåðêà íà ãëàäêîñòü îäíîãî ÷èñëà
      Àëãîðèòìû index calculus: ïåðâàÿ ôàçà
                                              Ïðîâåðêà íà ãëàäêîñòü ìíîãèõ ÷èñåë


Îáùàÿ èäåÿ index calculus



     Èòàê, ïîëó÷àþòñÿ òðè ôàçû.
        1   Íàéòè äîñòàòî÷íî ìíîãî ñîîòíîøåíèé íà logg pi .
        2   Ðåøèòü ëèíåéíóþ ñèñòåìó.
        3   Íàéòè ëîãàðèôì èíòåðåñóþùåãî íàñ y , çíàÿ ëîãàðèôìû pi .
     Ëèíåéíûå ñèñòåìû áóäåì ðåøàòü òàê æå, êàê â àëãîðèòìå
     ôàêòîðèçàöèè.
     À îñòàëüíûå ôàçû ñåé÷àñ ðàññìîòðèì.



                         Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
√             Ââåäåíèå. Îñíîâíàÿ èäåÿ
                                  n-ìåòîäû   Ïðîâåðêà íà ãëàäêîñòü îäíîãî ÷èñëà
     Àëãîðèòìû index calculus: ïåðâàÿ ôàçà
                                             Ïðîâåðêà íà ãëàäêîñòü ìíîãèõ ÷èñåë


Ãëàäêèå ÷èñëà



     Íàì íóæíî âûáðàòü ãðàíèöó ãëàäêîñòè B , à çàòåì íàéòè
     êó÷ó ñîîòíîøåíèé íà logg pi , pi ≤ B , ïðè ïîìîùè ãëàäêèõ
     ÷èñåë u.
     Èíà÷å ãîâîðÿ, íóæíî ïðîâåðèòü êó÷ó ÷èñåë íà ãëàäêîñòü.
     Ìû íà÷í¼ì ñ ìåòîäîâ ïðîâåðêè èíäèâèäóàëüíûõ ÷èñåë íà
     ãëàäêîñòü (òîæå ïðèãîäèòñÿ), à ïîòîì âñïîìíèì ìåòîä
     ïîëèíîìèàëüíîãî ðåøåòà.



                        Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
√             Ââåäåíèå. Îñíîâíàÿ èäåÿ
                                  n-ìåòîäû   Ïðîâåðêà íà ãëàäêîñòü îäíîãî ÷èñëà
     Àëãîðèòìû index calculus: ïåðâàÿ ôàçà
                                             Ïðîâåðêà íà ãëàäêîñòü ìíîãèõ ÷èñåë


Ìåòîä Ïîëëàðäà

     Åñëè ïðîñòî ïðîâåðÿòü íà B -ãëàäêîñòü ïåðåáîðîì,
     ñëîæíîñòü áóäåò ïîðÿäêà O (π(B )).
     Ìîæíî âîñïîëüçîâàòüñÿ ìåòîäîì, î÷åíü ïîõîæèì íà
     ρ-ìåòîä Ïîëëàðäà: îïðåäåëèì ïîñëåäîâàòåëüíîñòü ÷èñåë

      ai +1 ≡ ai2 + 1 (mod n), ãäå n  èíòåðåñóþùåå íàñ ÷èñëî.
     Ïî birthday paradox, îíà íà÷í¼ò ïîâòîðÿòüñÿ â ñðåäíåì
     ÷åðåç O (√n).
     Áîëåå òîãî, åñëè ó n åñòü ïðîñòîé äåëèòåëü q, òî â ñðåäíåì
     ÷åðåç O (√n) íà÷í¼ò ïîâòîðÿòüñÿ ïîñëåäîâàòåëüíîñòü ai
     (mod q ).


                        Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
√             Ââåäåíèå. Îñíîâíàÿ èäåÿ
                                  n-ìåòîäû   Ïðîâåðêà íà ãëàäêîñòü îäíîãî ÷èñëà
     Àëãîðèòìû index calculus: ïåðâàÿ ôàçà
                                             Ïðîâåðêà íà ãëàäêîñòü ìíîãèõ ÷èñåë


Ìåòîä Ïîëëàðäà


     Ìû íå çíàåì q, íî ìîæåì ïðîâåðÿòü ïðîñòî êàæäûé ðàç ai
     è a2i , íå äà¼ò ëè
                   gcd(n, a2i − ai ) èëè gcd(n, a2i + ai )
     ÷åãî-íèáóäü èíòåðåñíîãî. Ïðè òàêîì ïîäõîäå ìû îæèäàåì
     íàéòè äåëèòåëü n çà O (√q), ãäå q  íàèìåíüøèé ïðîñòîé
     äåëèòåëü n.                                           √
     Çíà÷èò, íà ãëàäêîñòü ïðîâåðèòü îæèäàåì çà O ( B ); åñëè
                √
     ÷åðåç O ( B ) øàãîâ ñîâïàäåíèé íå íàéäåíî, ìîæíî ïðîñòî
     ïðåäïîëîæèòü ñ áîëüøîé âåðîÿòíîñòüþ, ÷òî íå ãëàäêîå.

                        Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
√             Ââåäåíèå. Îñíîâíàÿ èäåÿ
                                  n-ìåòîäû   Ïðîâåðêà íà ãëàäêîñòü îäíîãî ÷èñëà
     Àëãîðèòìû index calculus: ïåðâàÿ ôàçà
                                             Ïðîâåðêà íà ãëàäêîñòü ìíîãèõ ÷èñåë


Àëãîðèòì Ëåíñòðû




     Ìû çíàåì ýôôåêòèâíûå àëãîðèòìû ðàçëîæåíèÿ ÷èñåë íà
     ìíîæèòåëè.                                         √
     Ó íàñ áûëè àëãîðèòìû, ðàáîòàþùèå çà âðåìÿ Ln 1 ; 2 è
                                                      2
     äàæå Ln 1 ; 1 .
              2
     Íî íåïîíÿòíî, êàê èõ îáîáùèòü òàê, ÷òîáû îöåíêà
     çàâèñåëà îò ðàçìåðà ïðîñòûõ äåëèòåëåé (îò B ), à íå îò n.



                        Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
√             Ââåäåíèå. Îñíîâíàÿ èäåÿ
                                  n-ìåòîäû   Ïðîâåðêà íà ãëàäêîñòü îäíîãî ÷èñëà
     Àëãîðèòìû index calculus: ïåðâàÿ ôàçà
                                             Ïðîâåðêà íà ãëàäêîñòü ìíîãèõ ÷èñåë


Àëãîðèòì Ëåíñòðû



     Àëãîðèòì Ëåíñòðû (ECM, elliptic curve method) äåëàåò êàê
     ðàç ýòî. Îí îñíîâàí íà ýëëèïòè÷åñêèõ êðèâûõ, è ìû åãî
     ðàçáèðàòü íå áóäåì.
     Âàæíî, ÷òî ðàáîòàåò îí çà âðåìÿ
               √                                       1√
           O e (2+o (1)) log B log log B (log n)2 = LB ; 2 .
                                                       2



                        Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
√             Ââåäåíèå. Îñíîâíàÿ èäåÿ
                                     n-ìåòîäû   Ïðîâåðêà íà ãëàäêîñòü îäíîãî ÷èñëà
        Àëãîðèòìû index calculus: ïåðâàÿ ôàçà
                                                Ïðîâåðêà íà ãëàäêîñòü ìíîãèõ ÷èñåë


Èòîãè




        Èòàê, ó íàñ åñòü äâà ðàçóìíûõ ïîäõîäà ê ïðîâåðêå îäíîãî
        ÷èñëà íà ãëàäêîñòü:                            √
              ìåòîä Ïîëëàðäà ïðîâåðÿåò íà B -ãëàäêîñòü çà O ( B );
              ECM ïðîâåðÿåò íà√B -ãëàäêîñòü çà
                    √
              LB 1 ; 2 = O e (2+o (1)) log B log log B .
                  2




                           Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
√             Ââåäåíèå. Îñíîâíàÿ èäåÿ
                                  n-ìåòîäû   Ïðîâåðêà íà ãëàäêîñòü îäíîãî ÷èñëà
     Àëãîðèòìû index calculus: ïåðâàÿ ôàçà
                                             Ïðîâåðêà íà ãëàäêîñòü ìíîãèõ ÷èñåë


Çàäà÷à



     Íàì íóæíî íà ïåðâîé ôàçå ïîðîäèòü ìíîãî ñîîòíîøåíèé
     âèäà
      logg r = k1 logg p1 + k2 logg p2 + . . . + ks logg ps , pi ≤ B .
     Äëÿ ýòîãî íóæíî ïðîâåðèòü ìàññó ÷èñåë íà B -ãëàäêîñòü.
     Âîîáùå ãîâîðÿ, ìû äîëæíû âûáðàòü ìíîãî ñëó÷àéíûõ u, à
     ïîòîì ïðîâåðèòü g u (mod p) íà B -ãëàäêîñòü.



                        Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
√             Ââåäåíèå. Îñíîâíàÿ èäåÿ
                                  n-ìåòîäû   Ïðîâåðêà íà ãëàäêîñòü îäíîãî ÷èñëà
     Àëãîðèòìû index calculus: ïåðâàÿ ôàçà
                                             Ïðîâåðêà íà ãëàäêîñòü ìíîãèõ ÷èñåë


Êâàäðàòè÷íîå ðåøåòî

     Ìû äëÿ ïîäîáíîé çàäà÷è çíàåì ìåòîä êâàäðàòè÷íîãî
     ðåøåòà.
     Ðàññìîòðèì ïîñëåäîâàòåëüíîñòü Q (x ) = x 2 − n äëÿ
     x = x0 = n , x0 + 1, . . ..
              √
           Åñëè n  êâàäðàò ïî ìîäóëþ p, òî x 2 − n ≡ 0 (mod n) i
           x ≡ a èëè b (mod p), ãäå a è b  êîðíè èç n ïî ìîäóëþ p.
           Åñëè n  íå êâàäðàò (mod p), òî äåëèòüñÿ íèêîãäà íå
           áóäåò.
     Çíà÷èò, ìîæíî ïðîñòî òàê æå âû÷¼ðêèâàòü òå Q (x ), äëÿ
     êîòîðûõ x äåëèòñÿ íà a èëè b.
     Ïðè÷¼ì ýòîò àëãîðèòì ìîæíî ïðèìåíèòü ê ëþáîìó
     ìíîãî÷ëåíó (íàì íóæíû áóäóò êâàäðàòè÷íûå è ëèíåéíûå).
     Ñëîæíîñòü ýòîãî àëãîðèòìà:
     O π(B )(1 + log B )o (1) + N log log B , ãäå N  êîëè÷åñòâî
     ïðîâåðÿåìûõ ÷èñåë. Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
√             Ââåäåíèå. Îñíîâíàÿ èäåÿ
                                  n-ìåòîäû   Ïðîâåðêà íà ãëàäêîñòü îäíîãî ÷èñëà
     Àëãîðèòìû index calculus: ïåðâàÿ ôàçà
                                             Ïðîâåðêà íà ãëàäêîñòü ìíîãèõ ÷èñåë


Ïðîáëåìà




     Íî ñåé÷àñ ó íàñ íå âñ¼ òàê ïðîñòî.
     Åñëè âûáèðàòü u, òî g u , êîòîðûå íóæíî ïðîâåðÿòü íà
     ãëàäêîñòü, íå ïîõîæè íè íà êàêîé ìíîãî÷ëåí, è òàê ïðîñòî
     âñ¼ íå ïîëó÷èòñÿ.
     Êàê îáîéòè ýòó ïðîáëåìó?




                        Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
√             Ââåäåíèå. Îñíîâíàÿ èäåÿ
                                  n-ìåòîäû   Ïðîâåðêà íà ãëàäêîñòü îäíîãî ÷èñëà
     Àëãîðèòìû index calculus: ïåðâàÿ ôàçà
                                             Ïðîâåðêà íà ãëàäêîñòü ìíîãèõ ÷èñåë


Ðåøåíèå

     Ðàññìîòðèì H = √p è áóäåì ðàññìàòðèâàòü
     ïîñëåäîâàòåëüíîñòü (H + c1)(H + c2) äëÿ ìàëåíüêèõ c1 è c2.
     Òîãäà äëÿ pi ≤ B ïîëó÷àþòñÿ ñîîòíîøåíèÿ âèäà
     logg (H + c1)(H + c2) = k1 logg p1 + k2 logg p2 + . . . + ks logg ps .
     Åñëè H 2 = p + J , òî
          (H + c1 )(H + c2 ) ≡ J + (c1 + c2 )H + c1 c2 (mod p ),
     è ýòî ëèíåéíûé ìíîãî÷ëåí, ê êîòîðîìó ìîæíî ïðèìåíèòü
     ðåøåòî (åñëè â êàæäûé êîíêðåòíûé ìîìåíò ôèêñèðîâàòü
     c1 è âàðüèðîâàòü c2 ).
     Íî âåäü ìû ïî ïðåæíåìó íå çíàåì logg (H + c1)(H + c2), è
     îòäåëüíûõ logg (H + c1) òîæå íå çíàåì. :) ×åì æå íàì
     ñòàëî ëó÷øå?
                        Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
√             Ââåäåíèå. Îñíîâíàÿ èäåÿ
                                  n-ìåòîäû   Ïðîâåðêà íà ãëàäêîñòü îäíîãî ÷èñëà
     Àëãîðèòìû index calculus: ïåðâàÿ ôàçà
                                             Ïðîâåðêà íà ãëàäêîñòü ìíîãèõ ÷èñåë


Ðåøåíèå


     Íàì ñòàëî ëó÷øå òåì, ÷òî òåïåðü ñ îäíèìè è òåìè æå c1 è
     c2 ïîëó÷àþòñÿ ñðàçó ìíîãî ñîîòíîøåíèé!
     Ìû ïðîñòî äîáàâëÿåì logg (H + ci ) êàê íîâûå íåèçâåñòíûå.
     Íî êîëè÷åñòâî óðàâíåíèé ðàñò¼ò áûñòðåå, ÷åì êîëè÷åñòâî
     íåèçâåñòíûõ, è íà ïðàêòèêå ïîëó÷àåòñÿ, ÷òî äëÿ áàçû B
     íóæíî íå áîëüøå 4π(B ) óðàâíåíèé.
     À çàòåì ìû èõ ðåøèì ïðè ïîìîùè àëãîðèòìà Âèäåìàííà,
     çà âðåìÿ π(B )2.
     Áóäåì âàðüèðîâàòü 0 ≤ c1  c2 ≤ C , C âûáåðåì ïîçæå.

                        Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
√             Ââåäåíèå. Îñíîâíàÿ èäåÿ
                                 n-ìåòîäû   Ïðîâåðêà íà ãëàäêîñòü îäíîãî ÷èñëà
    Àëãîðèòìû index calculus: ïåðâàÿ ôàçà
                                            Ïðîâåðêà íà ãëàäêîñòü ìíîãèõ ÷èñåë




Ñïàñèáî çà âíèìàíèå!

   Lecture notes è ñëàéäû áóäóò ïîÿâëÿòüñÿ íà ìîåé
   homepage:
   http://logic.pdmi.ras.ru/∼sergey/
   Ïðèñûëàéòå ëþáûå çàìå÷àíèÿ, ðåøåíèÿ óïðàæíåíèé,
   íîâûå ÷èñëåííûå ïðèìåðû è ïðî÷åå ïî àäðåñàì:
   sergey@logic.pdmi.ras.ru, snikolenko@gmail.com
   Çàõîäèòå â ÆÆ smartnik.



                       Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà

Contenu connexe

Tendances

20080217 cryptography hirsch_lecture01
20080217 cryptography hirsch_lecture0120080217 cryptography hirsch_lecture01
20080217 cryptography hirsch_lecture01Computer Science Club
 
Юрий Владимирович Матиясевич. Десятая проблема Гильберта. Решение и применени...
Юрий Владимирович Матиясевич. Десятая проблема Гильберта. Решение и применени...Юрий Владимирович Матиясевич. Десятая проблема Гильберта. Решение и применени...
Юрий Владимирович Матиясевич. Десятая проблема Гильберта. Решение и применени...Computer Science Club
 
Дмитрий Васильев - Задачи ассиметричной криптографии
Дмитрий Васильев - Задачи ассиметричной криптографииДмитрий Васильев - Задачи ассиметричной криптографии
Дмитрий Васильев - Задачи ассиметричной криптографииYandex
 
20080316 machine learning_nikolenko_lecture03
20080316 machine learning_nikolenko_lecture0320080316 machine learning_nikolenko_lecture03
20080316 machine learning_nikolenko_lecture03Computer Science Club
 
MES-игрок на растущем рынке
MES-игрок на растущем рынкеMES-игрок на растущем рынке
MES-игрок на растущем рынкеVera Leonik-Shilyaeva
 
Юрий Владимирович Матиясевич. Десятая проблема Гильберта. Решение и применени...
Юрий Владимирович Матиясевич. Десятая проблема Гильберта. Решение и применени...Юрий Владимирович Матиясевич. Десятая проблема Гильберта. Решение и применени...
Юрий Владимирович Матиясевич. Десятая проблема Гильберта. Решение и применени...Computer Science Club
 
Lecture 9
Lecture 9Lecture 9
Lecture 9Bbujee
 
Çàíãèëààíû õ¿÷äëèéíí àðãà
Çàíãèëààíû õ¿÷äëèéíí àðãàÇàíãèëààíû õ¿÷äëèéíí àðãà
Çàíãèëààíû õ¿÷äëèéíí àðãàzaluu_medleg
 
Urdu bible 90)_new_testament
Urdu bible 90)_new_testamentUrdu bible 90)_new_testament
Urdu bible 90)_new_testamentWorldBibles
 
Biblia hebraica stuttgartensia
Biblia hebraica stuttgartensiaBiblia hebraica stuttgartensia
Biblia hebraica stuttgartensiagpelayomentor90
 
Biblia hebraica stuttgartensia
Biblia hebraica stuttgartensiaBiblia hebraica stuttgartensia
Biblia hebraica stuttgartensiaGrammatteus M
 

Tendances (16)

20080217 cryptography hirsch_lecture01
20080217 cryptography hirsch_lecture0120080217 cryptography hirsch_lecture01
20080217 cryptography hirsch_lecture01
 
Юрий Владимирович Матиясевич. Десятая проблема Гильберта. Решение и применени...
Юрий Владимирович Матиясевич. Десятая проблема Гильберта. Решение и применени...Юрий Владимирович Матиясевич. Десятая проблема Гильберта. Решение и применени...
Юрий Владимирович Матиясевич. Десятая проблема Гильберта. Решение и применени...
 
Дмитрий Васильев - Задачи ассиметричной криптографии
Дмитрий Васильев - Задачи ассиметричной криптографииДмитрий Васильев - Задачи ассиметричной криптографии
Дмитрий Васильев - Задачи ассиметричной криптографии
 
030811
030811030811
030811
 
20080316 machine learning_nikolenko_lecture03
20080316 machine learning_nikolenko_lecture0320080316 machine learning_nikolenko_lecture03
20080316 machine learning_nikolenko_lecture03
 
Business review
Business reviewBusiness review
Business review
 
MES-игрок на растущем рынке
MES-игрок на растущем рынкеMES-игрок на растущем рынке
MES-игрок на растущем рынке
 
Юрий Владимирович Матиясевич. Десятая проблема Гильберта. Решение и применени...
Юрий Владимирович Матиясевич. Десятая проблема Гильберта. Решение и применени...Юрий Владимирович Матиясевич. Десятая проблема Гильберта. Решение и применени...
Юрий Владимирович Матиясевич. Десятая проблема Гильберта. Решение и применени...
 
стор 1 8
стор 1 8стор 1 8
стор 1 8
 
Lecture 9
Lecture 9Lecture 9
Lecture 9
 
Çàíãèëààíû õ¿÷äëèéíí àðãà
Çàíãèëààíû õ¿÷äëèéíí àðãàÇàíãèëààíû õ¿÷äëèéíí àðãà
Çàíãèëààíû õ¿÷äëèéíí àðãà
 
Urdu bible 90)_new_testament
Urdu bible 90)_new_testamentUrdu bible 90)_new_testament
Urdu bible 90)_new_testament
 
Ορόσημο Φροντιστήριο (Αθήνα). Βοήθημα μαθηματικών Α' λυκείου 2015 |
Ορόσημο Φροντιστήριο (Αθήνα). Βοήθημα μαθηματικών Α' λυκείου 2015 |Ορόσημο Φροντιστήριο (Αθήνα). Βοήθημα μαθηματικών Α' λυκείου 2015 |
Ορόσημο Φροντιστήριο (Αθήνα). Βοήθημα μαθηματικών Α' λυκείου 2015 |
 
Biblia hebraica stuttgartensia
Biblia hebraica stuttgartensiaBiblia hebraica stuttgartensia
Biblia hebraica stuttgartensia
 
Biblia hebraica stuttgartensia
Biblia hebraica stuttgartensiaBiblia hebraica stuttgartensia
Biblia hebraica stuttgartensia
 
Matriz dofa gestión 2011
Matriz dofa gestión 2011Matriz dofa gestión 2011
Matriz dofa gestión 2011
 

En vedette (8)

Tuncar huaroc roxana
Tuncar huaroc roxanaTuncar huaroc roxana
Tuncar huaroc roxana
 
Desember
DesemberDesember
Desember
 
PROMO STRUMENTI DI MISURA TRIMOS-SYLVAC-WOLF
PROMO STRUMENTI DI MISURA TRIMOS-SYLVAC-WOLF PROMO STRUMENTI DI MISURA TRIMOS-SYLVAC-WOLF
PROMO STRUMENTI DI MISURA TRIMOS-SYLVAC-WOLF
 
Como comprar um computador (pedro ramos e sergio carvalho)
Como comprar um computador (pedro ramos e sergio carvalho)Como comprar um computador (pedro ramos e sergio carvalho)
Como comprar um computador (pedro ramos e sergio carvalho)
 
Tecnologia na Educação
Tecnologia na EducaçãoTecnologia na Educação
Tecnologia na Educação
 
Pesticidas
PesticidasPesticidas
Pesticidas
 
Presentation_NEW.PPTX
Presentation_NEW.PPTXPresentation_NEW.PPTX
Presentation_NEW.PPTX
 
TESA Hits 2014/1
TESA Hits 2014/1TESA Hits 2014/1
TESA Hits 2014/1
 

Plus de Computer Science Club

20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugsComputer Science Club
 
20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugsComputer Science Club
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugsComputer Science Club
 
20140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture1220140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture12Computer Science Club
 
20140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture1120140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture11Computer Science Club
 
20140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture1020140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture10Computer Science Club
 
20140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture0920140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture09Computer Science Club
 
20140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture0220140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture02Computer Science Club
 
20140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture0120140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture01Computer Science Club
 
20140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-0420140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-04Computer Science Club
 
20140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture0120140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture01Computer Science Club
 

Plus de Computer Science Club (20)

20141223 kuznetsov distributed
20141223 kuznetsov distributed20141223 kuznetsov distributed
20141223 kuznetsov distributed
 
Computer Vision
Computer VisionComputer Vision
Computer Vision
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs
 
20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs
 
20140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture1220140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture12
 
20140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture1120140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture11
 
20140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture1020140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture10
 
20140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture0920140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture09
 
20140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture0220140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture02
 
20140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture0120140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture01
 
20140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-0420140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-04
 
20140223-SuffixTrees-lecture01-03
20140223-SuffixTrees-lecture01-0320140223-SuffixTrees-lecture01-03
20140223-SuffixTrees-lecture01-03
 
20140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture0120140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture01
 
20131106 h10 lecture6_matiyasevich
20131106 h10 lecture6_matiyasevich20131106 h10 lecture6_matiyasevich
20131106 h10 lecture6_matiyasevich
 
20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich
 
20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich
 
20131013 h10 lecture4_matiyasevich
20131013 h10 lecture4_matiyasevich20131013 h10 lecture4_matiyasevich
20131013 h10 lecture4_matiyasevich
 
20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich
 
20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich
 

20091129 cryptoprotocols nikolenko_lecture08

  • 1. n-ìåòîäû Àëãîðèòìû index calculus: ïåðâàÿ ôàçà Ïîèñê äèñêðåòíîãî ëîãàðèôìà Ñåðãåé Íèêîëåíêî Êðèïòîãðàôèÿ CS Club, îñåíü 2009 Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 2. Ââåäåíèå. Àòàêà íà ãëàäêèå ìîäóëè n-ìåòîäû Àëãîðèòì Øåíêñà è ρ-ìåòîä Ïîëëàðäà Àëãîðèòìû index calculus: ïåðâàÿ ôàçà λ-ìåòîä Ïîëëàðäà Outline n-ìåòîäû √ 1 Ââåäåíèå. Àòàêà íà ãëàäêèå ìîäóëè Àëãîðèòì Øåíêñà è ρ-ìåòîä Ïîëëàðäà λ-ìåòîä Ïîëëàðäà 2 Àëãîðèòìû index calculus: ïåðâàÿ ôàçà Ââåäåíèå. Îñíîâíàÿ èäåÿ Ïðîâåðêà íà ãëàäêîñòü îäíîãî ÷èñëà Ïðîâåðêà íà ãëàäêîñòü ìíîãèõ ÷èñåë Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 3. Ââåäåíèå. Àòàêà íà ãëàäêèå ìîäóëè n-ìåòîäû Àëãîðèòì Øåíêñà è ρ-ìåòîä Ïîëëàðäà Àëãîðèòìû index calculus: ïåðâàÿ ôàçà λ-ìåòîä Ïîëëàðäà Çàäà÷à Íà ïðîøëîé ëåêöèè ìû óçíàëè, êàê ðàñêëàäûâàòü ÷èñëà íà ìíîæèòåëè. Òåïåðü ïîïðîáóåì ðåøàòü äðóãóþ áàçîâóþ çàäà÷ó êðèïòîãðàôèè: äèñêðåòíûé ëîãàðèôì. Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 4. Ââåäåíèå. Àòàêà íà ãëàäêèå ìîäóëè n-ìåòîäû Àëãîðèòì Øåíêñà è ρ-ìåòîä Ïîëëàðäà Àëãîðèòìû index calculus: ïåðâàÿ ôàçà λ-ìåòîä Ïîëëàðäà Çàäà÷à Íà ïðîøëîé ëåêöèè ìû óçíàëè, êàê ðàñêëàäûâàòü ÷èñëà íà ìíîæèòåëè. Òåïåðü ïîïðîáóåì ðåøàòü äðóãóþ áàçîâóþ çàäà÷ó êðèïòîãðàôèè: äèñêðåòíûé ëîãàðèôì. Äèñêðåòíûé ëîãàðèôì: â öèêëè÷åñêîé ãðóïïå G ïî g ∈ G è y ∈ G íàéòè òàêîé x , ÷òî g x = y . Ýòîò x îïðåäåëÿåòñÿ ñ òî÷íîñòüþ äî ïîðÿäêà g ; åñëè g = G , òî ëîãàðèôì îïðåäåë¼í ñ òî÷íîñòüþ äî |G | = n. Ìû áóäåì ñ÷èòàòü, ÷òî g = G . Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 5. Ââåäåíèå. Àòàêà íà ãëàäêèå ìîäóëè n-ìåòîäû Àëãîðèòì Øåíêñà è ρ-ìåòîä Ïîëëàðäà Àëãîðèòìû index calculus: ïåðâàÿ ôàçà λ-ìåòîä Ïîëëàðäà Ñëîæíîñòü îáùåé çàäà÷è Èçâåñòíî, ÷òî åñëè íå ïîëüçîâàòüñÿ íè÷åì, êðîìå ãðóïïîâîé îïåðàöèè è âçÿòèÿ îáðàòíîãî, òî íè÷åãî ëó÷øå, ÷åì √n, íå áóäåò: êîãäà àëãîðèòì îáðàùàåòñÿ çà îïðåäåë¼ííûìè óìíîæåíèÿìè, ìîæíî ïî õîäó ñòðîèòü ãðóïïó òàê, ÷òî åìó ïðèä¼òñÿ îáðàùàòüñÿ Ω(√p) ðàç, ãäå p íàèáîëüøèé ïðîñòîé äåëèòåëü n [Shoup, 1997]. Ìû ñíà÷àëà ðàññìîòðèì ìåòîäû, äîñòèãàþùèå ýòîé öåëè, à ïîòîì ïåðåéä¼ì ê ñïåöèôè÷åñêè ÷èñëîâûì ìåòîäàì, ðàáîòàþùèì íå âî âñåõ ãðóïïàõ. Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 6. Ââåäåíèå. Àòàêà íà ãëàäêèå ìîäóëè n-ìåòîäû Àëãîðèòì Øåíêñà è ρ-ìåòîä Ïîëëàðäà Àëãîðèòìû index calculus: ïåðâàÿ ôàçà λ-ìåòîä Ïîëëàðäà Òðèâèàëüíûé ïîäõîä Òðèâèàëüíûé ïîäõîä: âîçâîäèòü g , g 2, g 3, . . ., ïîêà íå íàòêí¼ìñÿ íà y . Òðåáóåò ïðèìåðíî n îïåðàöèé, èìååò ñìûñë òîëüêî äëÿ 2 ìàëåíüêèõ n. Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 7. Ââåäåíèå. Àòàêà íà ãëàäêèå ìîäóëè n-ìåòîäû Àëãîðèòì Øåíêñà è ρ-ìåòîä Ïîëëàðäà Àëãîðèòìû index calculus: ïåðâàÿ ôàçà λ-ìåòîä Ïîëëàðäà Àòàêà íà ãëàäêèå ìîäóëè Ïóñòü n = p1 p2 . . . plk . k k 1 2 l Çàìåòèì, ÷òî äëÿ êàæäîãî èç ýòèõ p ïîðÿäîê ýëåìåíòà g n/p ðàâåí pk , è ïîðÿäîê ýëåìåíòà y n/p íå ïðåâîñõîäèò k k pk . Èíà÷å ãîâîðÿ, g n/p ïîðîæäàåò ïîäãðóïïó G ïîðÿäêà pk , à k y n/p ëåæèò â ýòîé ïîäãðóïïå. k È åñëè ìû ìîæåì íàéòè ëîãàðèôì â ýòîé ïîäãðóïïå: x g n /p k = y n /p , k òî, ñ äðóãîé ñòîðîíû, x g n /p k è òåì ñàìûì = y n /p , k x ≡ x (mod pk ). Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 8. Ââåäåíèå. Àòàêà íà ãëàäêèå ìîäóëè n-ìåòîäû Àëãîðèòì Øåíêñà è ρ-ìåòîä Ïîëëàðäà Àëãîðèòìû index calculus: ïåðâàÿ ôàçà λ-ìåòîä Ïîëëàðäà Àòàêà íà ãëàäêèå ìîäóëè Òîãäà, åñëè ìû íàéä¼ì ëîãàðèôìû ïî ìîäóëÿì ïðîñòûõ ÷èñåë x k1 k1 g n /p y n /p 1 1 = 1 , k x2 k g n /p2 2 = y n /p 2 2 , ... ..., k x l k g n / pl l = y n/pl l , òî ñìîæåì ïî êèòàéñêîé òåîðåìå îá îñòàòêàõ âîññòàíîâèòü x , ïîòîìó ÷òî x ≡ x1 (mod p1 ), k 1 x ≡ x2 (mod p2 ), k 2 ... ... ..., x ≡ xl (mod plk ). l Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 9. Ââåäåíèå. Àòàêà íà ãëàäêèå ìîäóëè n-ìåòîäû Àëãîðèòì Øåíêñà è ρ-ìåòîä Ïîëëàðäà Àëãîðèòìû index calculus: ïåðâàÿ ôàçà λ-ìåòîä Ïîëëàðäà Àòàêà íà ãëàäêèå ìîäóëè Îêàçûâàåòñÿ, íàéòè ëîãàðèôì ïî ìîäóëþ pk äëÿ ìàëåíüêîãî ïðîñòîãî p ëåãêî, äàæå åñëè k áîëüøîå. Ðàçëîæèì ïðåäïîëàãàåìûé ëîãàðèôì x ïî îñíîâàíèþ p: x = z0 + z1 p + z2 p 2 + . . . + zk p k . Ïîëîæèì ñíà÷àëà y0 = y n/p , g0 = g n/p . Ïîðÿäîê g0 íå áîëüøå p, çíà÷èò, x z y0 = y n/p = g x ·n/p = g0 = g0 0 . Òåì ñàìûì ìû íàøëè z0. Òåïåðü ìîæíî åãî âû÷åñòü, ïîëîæèòü y1 = yg0−z n/p è ïðîäîëæàòü. 2 0  èòîãå íàéä¼ì ëîãàðèôì ïî ìîäóëþ pk çà k ïîèñêîâ ëîãàðèôìà ïî ìîäóëþ p. Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 10. Ââåäåíèå. Àòàêà íà ãëàäêèå ìîäóëè n-ìåòîäû Àëãîðèòì Øåíêñà è ρ-ìåòîä Ïîëëàðäà Àëãîðèòìû index calculus: ïåðâàÿ ôàçà λ-ìåòîä Ïîëëàðäà Àòàêà íà ãëàäêèå ìîäóëè Çíà÷èò, ãëàäêèå ìîäóëè èñïîëüçîâàòü íåëüçÿ. Íóæíî âûáèðàòü òàêèå n, ó êîòîðûõ åñòü áîëüøèå ïðîñòûå äåëèòåëè. Ëèáî, â êðàéíåì ñëó÷àå, ðàçëîæåíèå n íåèçâåñòíî, íî åñòü ïðè÷èíû ïîëàãàòü, ÷òî áîëüøèå ïðîñòûå äåëèòåëè åñòü. Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 11. Ââåäåíèå. Àòàêà íà ãëàäêèå ìîäóëè n-ìåòîäû Àëãîðèòì Øåíêñà è ρ-ìåòîä Ïîëëàðäà Àëãîðèòìû index calculus: ïåðâàÿ ôàçà λ-ìåòîä Ïîëëàðäà Baby-stepGiant-step Shanks, 1973: àëãîðèòì, ðàáîòàþùèé çà O (√n); ñòàíäàðòíûé time-space tradeo. 1 Çàïèøåì x â âèäå x = im + j äëÿ êàêîãî-òî m. Òîãäà y · (g −m )i = g j . 2 Ïðåäâû÷èñëèì g j è áóäåì ïåðåáèðàòü i , óìíîæàÿ y íà g im è ïðîâåðÿÿ, íåò ëè åãî ñðåäè g j . Åñëè çàïèñàòü gj â õåø-òàáëèöó, ìîæíî ñ÷èòàòü, ÷òî ïðîâåðêà íà ðàâåíñòâî ïðîèñõîäèò â ñðåäíåì çà êîíñòàíòíîå âðåìÿ. Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 12. Ââåäåíèå. Àòàêà íà ãëàäêèå ìîäóëè n-ìåòîäû Àëãîðèòì Øåíêñà è ρ-ìåòîä Ïîëëàðäà Àëãîðèòìû index calculus: ïåðâàÿ ôàçà λ-ìåòîä Ïîëëàðäà Baby-stepGiant-step Àëãîðèòì çàïèñûâàåò äâà ìàññèâà. Ïåðâûé (giant steps): √ 0 √ S= i, gi n | i = .. n . Âòîðîé (baby steps): T = 0 √n . j, y · gj | j = .. Êàê òîëüêî ñïèñêè ïåðåñåêóòñÿ, ëîãàðèôì ìîæíî áóäåò íàéòè êàê logg y ≡ i √n − j (mod n). Îäíàêî ýòîò àëãîðèòì òðåáóåò ýêñïîíåíöèàëüíîé ïàìÿòè. Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 13. Ââåäåíèå. Àòàêà íà ãëàäêèå ìîäóëè n-ìåòîäû Àëãîðèòì Øåíêñà è ρ-ìåòîä Ïîëëàðäà Àëãîðèòìû index calculus: ïåðâàÿ ôàçà λ-ìåòîä Ïîëëàðäà ρ-ìåòîä Ïîëëàðäà Pollard, 1978. Ñóòü ¾birthday paradox¿: ìû âûáèðàåì ïñåâäîñëó÷àéíóþ ïîñëåäîâàòåëüíîñòü ýëåìåíòîâ â ãðóïïå è æä¼ì öèêëà. Öèêë áóäåò â ñðåäíåì ÷åðåç O (√n) ýëåìåíòîâ. Ðàçîáü¼ì ãðóïïó íà òðè ÷àñòè (íå ïîäãðóïïû) S1, S2, S3. Áóäåì âû÷èñëÿòü  y · ai ,   åñëè ai ∈ S1, ai +1 = ai 2, åñëè ai ∈ S2,  g · a , i åñëè ai ∈ S3. Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 14. Ââåäåíèå. Àòàêà íà ãëàäêèå ìîäóëè n-ìåòîäû Àëãîðèòì Øåíêñà è ρ-ìåòîä Ïîëëàðäà Àëãîðèòìû index calculus: ïåðâàÿ ôàçà λ-ìåòîä Ïîëëàðäà ρ-ìåòîä Ïîëëàðäà Åñëè â ïîñëåäîâàòåëüíîñòè íàéä¼òñÿ öèêë, ýòî ñ áîëüøîé âåðîÿòíîñòüþ ïðèâåä¼ò ê òîìó, ÷òî ìû íàéä¼ì äèñêðåòíûé ëîãàðèôì, ïîòîìó ÷òî ìû íàéä¼ì ñîîòíîøåíèå âèäà g ay b = g c y d . Íî, êàçàëîñü áû, âñ¼ ðàâíî íàäî õðàíèòü âñþ ïîñëåäîâàòåëüíîñòü, è ñ ïàìÿòüþ ëó÷øå íå ñòàíîâèòñÿ. ×òî äåëàòü? Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 15. Ââåäåíèå. Àòàêà íà ãëàäêèå ìîäóëè n-ìåòîäû Àëãîðèòì Øåíêñà è ρ-ìåòîä Ïîëëàðäà Àëãîðèòìû index calculus: ïåðâàÿ ôàçà λ-ìåòîä Ïîëëàðäà Àëãîðèòì Ôëîéäà äëÿ ïîèñêà öèêëà Àëãîðèòì Ôëîéäà, îí æå ¾tortoise-and-hare algorithm¿. Îáùàÿ ïîñòàíîâêà: õîòèì íàéòè öèêë â ïîñëåäîâàòåëüíîñòè ai +1 = f (ai ). Äàâàéòå áóäåì õðàíèòü âñåãî äâà óêàçàòåëÿ: u è v , ïðè÷¼ì ui = ai (÷åðåïàõà), à vi = a2i (çàÿö). Åñëè â ïîñëåäîâàòåëüíîñòè åñòü öèêë ïåðèîäà r , íà÷èíàþùèéñÿ ñ ïîçèöèè s (ai = ai +r äëÿ i ≥ s ), òî äëÿ ëþáîãî i ≥ s , äåëÿùåãîñÿ íà r , ai = a2i . Ò.å. íàì ïðèä¼òñÿ èñêàòü íå áîëåå ÷åì íà äëèíó ïåðèîäà (ò.å. ïðèìåðíî âäâîå) äîëüøå. Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 16. Ââåäåíèå. Àòàêà íà ãëàäêèå ìîäóëè n-ìåòîäû Àëãîðèòì Øåíêñà è ρ-ìåòîä Ïîëëàðäà Àëãîðèòìû index calculus: ïåðâàÿ ôàçà λ-ìåòîä Ïîëëàðäà Àëãîðèòì Áðåíòà Äðóãîé àëãîðèòì äëÿ òîãî æå ñàìîãî àëãîðèòì Áðåíòà. Òåïåðü ÷åðåïàõà îñòàíàâëèâàåòñÿ íà ñòåïåíÿõ äâîéêè, à çàÿö ïðûãàåò øàã çà øàãîì ê ñëåäóþùåé ñòåïåíè. 1 Ïîêà tortoise=hare: åñëè i == pow , òî tortoise := hare pow := 2 · pow i := 0 = f (hare) hare ++i Øàãîâ â ëþáîì ñëó÷àå íå áîëüøå, ÷åì â àëãîðèòìå Ôëîéäà, íî êàæäûé øàã ýòî îäíî âû÷èñëåíèå f , à íå òðè. Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 17. Ââåäåíèå. Àòàêà íà ãëàäêèå ìîäóëè n-ìåòîäû Àëãîðèòì Øåíêñà è ρ-ìåòîä Ïîëëàðäà Àëãîðèòìû index calculus: ïåðâàÿ ôàçà λ-ìåòîä Ïîëëàðäà λ-ìåòîä Ïîëëàðäà Ðàíüøå áûëè çàéöû è ÷åðåïàõè, òåïåðü êåíãóðó. λ-ìåòîä Ïîëëàðäà åù¼ íàçûâàåòñÿ ¾kangaroo method¿. Ïðåäïîëîæèì, ÷òî ìû çíàåì íåêèé èíòåðâàë [a, b], íà êîòîðîì äîëæåí ëåæàòü íåèçâåñòíûé ëîãàðèôì x . Êàê ýòî èñïîëüçîâàòü? Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 18. Ââåäåíèå. Àòàêà íà ãëàäêèå ìîäóëè n-ìåòîäû Àëãîðèòì Øåíêñà è ρ-ìåòîä Ïîëëàðäà Àëãîðèòìû index calculus: ïåðâàÿ ôàçà λ-ìåòîä Ïîëëàðäà λ-ìåòîä Ïîëëàðäà Îïðåäåëèì õåø-ôóíêöèþ h, äåëÿùóþ G íà r ìíîæåñòâ S1 , S2 , . . . , Sr : Si = h−1 (i ). Ïîñòàâèì êàæäîìó ìíîæåñòâó â ñîîòâåòñòâèå ðàññòîÿíèå d1 , d2 , . . . , dr è äëèíó ïðûæêà g d , g d , . . . , g d . 1 2 r Òåïåðü ïóòü êåíãóðó îïðåäåëÿåòñÿ êàê ci +1 = ci · g dh(ci ) . Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 19. Ââåäåíèå. Àòàêà íà ãëàäêèå ìîäóëè n-ìåòîäû Àëãîðèòì Øåíêñà è ρ-ìåòîä Ïîëëàðäà Àëãîðèòìû index calculus: ïåðâàÿ ôàçà λ-ìåòîä Ïîëëàðäà λ-ìåòîä Ïîëëàðäà Íàì áóäóò íóæíû äâà êåíãóðó: äèêèé è ðó÷íîé. Ðó÷íîé êåíãóðó íà÷í¼ò ïðûãàòü èç êàêîé-íèáóäü òî÷êè âíóòðè èíòåðâàëà [a, b], íàïðèìåð, g . a+b 2 Äèêèé êåíãóðó íà÷í¼ò ïðûãàòü èç íåèçâåñòíîé òî÷êè y . Îäíàêî, ñóììèðóÿ di , ìû ìîæåì õðàíèòü îáùåå ïðîéäåííîå ðàññòîÿíèå äëÿ îáîèõ êåíãóðó. Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 20. Ââåäåíèå. Àòàêà íà ãëàäêèå ìîäóëè n-ìåòîäû Àëãîðèòì Øåíêñà è ρ-ìåòîä Ïîëëàðäà Àëãîðèòìû index calculus: ïåðâàÿ ôàçà λ-ìåòîä Ïîëëàðäà λ-ìåòîä Ïîëëàðäà Êîãäà ðó÷íîé è äèêèé êåíãóðó âñòðåòÿòñÿ, ïðè÷¼ì ðó÷íîé ïðîéä¼ò ê òîìó âðåìåíè ðàññòîÿíèå t , à äèêèé ðàññòîÿíèå w , ó íàñ ïîëó÷èòñÿ, ÷òî g a+b 2 gt = gxgw, è x = a + b + t − w. 2 Ïåðåñå÷åíèå ìîæíî íàéòè, íàïðèìåð, õðàíÿ òîëüêî t1 , t2 , t4 , t8 , . . . è w1 , w2 , w4 , w8 , . . ., ïîòîìó ÷òî ïîñëå ïåðåñå÷åíèÿ ïóòè êåíãóðó ñîéäóòñÿ íàâñåãäà.  ðåçóëüòàòå (áåç äîêàçàòåëüñòâà) îæèäàåìîå âðåìÿ √ ðàáîòû ïîëó÷àåòñÿ O ( b − a). Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 21. Ââåäåíèå. Àòàêà íà ãëàäêèå ìîäóëè n-ìåòîäû Àëãîðèòì Øåíêñà è ρ-ìåòîä Ïîëëàðäà Àëãîðèòìû index calculus: ïåðâàÿ ôàçà λ-ìåòîä Ïîëëàðäà ρ- è λ-ìåòîäû Ïî÷åìó ρ- è λ-ìåòîäû íàçâàíû ýòèìè áóêâàìè? Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 22. Ââåäåíèå. Àòàêà íà ãëàäêèå ìîäóëè n-ìåòîäû Àëãîðèòì Øåíêñà è ρ-ìåòîä Ïîëëàðäà Àëãîðèòìû index calculus: ïåðâàÿ ôàçà λ-ìåòîä Ïîëëàðäà ρ- è λ-ìåòîäû Ïî÷åìó ρ- è λ-ìåòîäû íàçâàíû ýòèìè áóêâàìè? Ïîòîìó ÷òî òî, ÷òî ïðîèñõîäèò â àëãîðèòìàõ, ïîõîæå íà ýòè áóêâû: ρ-ìåòîä ñòðîèò ïîñëåäîâàòåëüíîñòü ýëåìåíòîâ, êîòîðàÿ â êàêîé-òî ìîìåíò âîçâðàùàåòñÿ ê îäíîìó èç ïðîìåæóòî÷íûõ çíà÷åíèé, ñîçäàâàÿ öèêë; λ-ìåòîä ñòðîèò äâå ïîñëåäîâàòåëüíîñòè ýëåìåíòîâ, êîòîðûå â êàêîé-òî ìîìåíò ñëèâàþòñÿ è çàòåì ñîâïàäàþò. Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 23. Ââåäåíèå. Îñíîâíàÿ èäåÿ n-ìåòîäû Ïðîâåðêà íà ãëàäêîñòü îäíîãî ÷èñëà Àëãîðèòìû index calculus: ïåðâàÿ ôàçà Ïðîâåðêà íà ãëàäêîñòü ìíîãèõ ÷èñåë Outline n-ìåòîäû √ 1 Ââåäåíèå. Àòàêà íà ãëàäêèå ìîäóëè Àëãîðèòì Øåíêñà è ρ-ìåòîä Ïîëëàðäà λ-ìåòîä Ïîëëàðäà 2 Àëãîðèòìû index calculus: ïåðâàÿ ôàçà Ââåäåíèå. Îñíîâíàÿ èäåÿ Ïðîâåðêà íà ãëàäêîñòü îäíîãî ÷èñëà Ïðîâåðêà íà ãëàäêîñòü ìíîãèõ ÷èñåë Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 24. Ââåäåíèå. Îñíîâíàÿ èäåÿ n-ìåòîäû Ïðîâåðêà íà ãëàäêîñòü îäíîãî ÷èñëà Àëãîðèòìû index calculus: ïåðâàÿ ôàçà Ïðîâåðêà íà ãëàäêîñòü ìíîãèõ ÷èñåë Îò îáùèõ ãðóïï ê ÷àñòíûì ñëó÷àÿì Àëãîðèòìîâ ëó÷øå, ÷åì âûøåîïèñàííûå äîâîëüíî ïðîñòûå ñîîáðàæåíèÿ, äëÿ îáùèõ ãðóïï íå èçâåñòíî. Îäíàêî ìîæíî ñäåëàòü ëó÷øå ïðè äîïîëíèòåëüíûõ ïðåäïîëîæåíèÿõ íà ñòðóêòóðó ãðóïïû. Îíè âûïîëíÿþòñÿ, â ÷àñòíîñòè, â ãðóïïàõ ÷èñåë Zp . Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 25. Ââåäåíèå. Îñíîâíàÿ èäåÿ n-ìåòîäû Ïðîâåðêà íà ãëàäêîñòü îäíîãî ÷èñëà Àëãîðèòìû index calculus: ïåðâàÿ ôàçà Ïðîâåðêà íà ãëàäêîñòü ìíîãèõ ÷èñåë Îò îáùèõ ãðóïï ê ÷àñòíûì ñëó÷àÿì Ïðåäïîëîæåíèÿ ïðîñòûå: ìîæíî âûáðàòü ðàçóìíóþ áàçó ôàêòîðèçàöèè p1, . . . , ps , äëÿ êîòîðîé ìíîãèå ýëåìåíòû áóäóò ïðåäñòàâëÿòüñÿ â âèäå k k r = p1 p2 1 2 k . . . ps s . Äëÿ ÷èñåë ýòî ëåãêî: áåð¼ì ïðîñòûå ÷èñëà, ìåíüøèå B ; ¾ìíîãèå¿ ýòî â òî÷íîñòè B -ãëàäêèå ýëåìåíòû.  äàëüíåéøåì áóäåì ñ÷èòàòü, ÷òî ìû ðàáîòàåì íàä Zp . Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 26. Ââåäåíèå. Îñíîâíàÿ èäåÿ n-ìåòîäû Ïðîâåðêà íà ãëàäêîñòü îäíîãî ÷èñëà Àëãîðèòìû index calculus: ïåðâàÿ ôàçà Ïðîâåðêà íà ãëàäêîñòü ìíîãèõ ÷èñåë Îáùàÿ èäåÿ index calculus Àëãîðèòì index calculus î÷åíü ïîõîæ íà àëãîðèòì ôàêòîðèçàöèè, èñïîëüçóþùèé êâàäðàòè÷íîå ðåøåòî. Òàê ÷òî çàîäíî â êàêîì-òî ñìûñëå è ïîâòîðèì ïðîøëóþ ëåêöèþ. Ìû çíàåì ñâîéñòâà ëîãàðèôìà, à èìåííî logg (ab) = logg a + logg b, logg (ae ) = e logg a. Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 27. Ââåäåíèå. Îñíîâíàÿ èäåÿ n-ìåòîäû Ïðîâåðêà íà ãëàäêîñòü îäíîãî ÷èñëà Àëãîðèòìû index calculus: ïåðâàÿ ôàçà Ïðîâåðêà íà ãëàäêîñòü ìíîãèõ ÷èñåë Îáùàÿ èäåÿ index calculus Îáùàÿ èäåÿ: ëîãàðèôì ãëàäêîãî ýëåìåíòà ìîæíî ïðåäñòàâèòü êàê logg r ≡ k1 logg p1 + k2 logg p2 + . . . + ks logg ps (mod p − 1). Åñëè ìû çíàåì logg r (íàïðèìåð, ñàìè âûáèðàëè u è âû÷èñëÿëè r = g u ) è íàáåð¼ì äîñòàòî÷íî ìíîãî òàêèõ ñîîòíîøåíèé, ó íàñ ïîëó÷èòñÿ ëèíåéíàÿ ñèñòåìà íà logg pi . ż ìîæíî ðåøèòü è íàéòè logg pi , à çàòåì ñ èõ ïîìîùüþ íàéòè logg y . Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 28. Ââåäåíèå. Îñíîâíàÿ èäåÿ n-ìåòîäû Ïðîâåðêà íà ãëàäêîñòü îäíîãî ÷èñëà Àëãîðèòìû index calculus: ïåðâàÿ ôàçà Ïðîâåðêà íà ãëàäêîñòü ìíîãèõ ÷èñåë Îáùàÿ èäåÿ index calculus Èòàê, ïîëó÷àþòñÿ òðè ôàçû. 1 Íàéòè äîñòàòî÷íî ìíîãî ñîîòíîøåíèé íà logg pi . 2 Ðåøèòü ëèíåéíóþ ñèñòåìó. 3 Íàéòè ëîãàðèôì èíòåðåñóþùåãî íàñ y , çíàÿ ëîãàðèôìû pi . Ëèíåéíûå ñèñòåìû áóäåì ðåøàòü òàê æå, êàê â àëãîðèòìå ôàêòîðèçàöèè. À îñòàëüíûå ôàçû ñåé÷àñ ðàññìîòðèì. Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 29. Ââåäåíèå. Îñíîâíàÿ èäåÿ n-ìåòîäû Ïðîâåðêà íà ãëàäêîñòü îäíîãî ÷èñëà Àëãîðèòìû index calculus: ïåðâàÿ ôàçà Ïðîâåðêà íà ãëàäêîñòü ìíîãèõ ÷èñåë Ãëàäêèå ÷èñëà Íàì íóæíî âûáðàòü ãðàíèöó ãëàäêîñòè B , à çàòåì íàéòè êó÷ó ñîîòíîøåíèé íà logg pi , pi ≤ B , ïðè ïîìîùè ãëàäêèõ ÷èñåë u. Èíà÷å ãîâîðÿ, íóæíî ïðîâåðèòü êó÷ó ÷èñåë íà ãëàäêîñòü. Ìû íà÷í¼ì ñ ìåòîäîâ ïðîâåðêè èíäèâèäóàëüíûõ ÷èñåë íà ãëàäêîñòü (òîæå ïðèãîäèòñÿ), à ïîòîì âñïîìíèì ìåòîä ïîëèíîìèàëüíîãî ðåøåòà. Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 30. Ââåäåíèå. Îñíîâíàÿ èäåÿ n-ìåòîäû Ïðîâåðêà íà ãëàäêîñòü îäíîãî ÷èñëà Àëãîðèòìû index calculus: ïåðâàÿ ôàçà Ïðîâåðêà íà ãëàäêîñòü ìíîãèõ ÷èñåë Ìåòîä Ïîëëàðäà Åñëè ïðîñòî ïðîâåðÿòü íà B -ãëàäêîñòü ïåðåáîðîì, ñëîæíîñòü áóäåò ïîðÿäêà O (π(B )). Ìîæíî âîñïîëüçîâàòüñÿ ìåòîäîì, î÷åíü ïîõîæèì íà ρ-ìåòîä Ïîëëàðäà: îïðåäåëèì ïîñëåäîâàòåëüíîñòü ÷èñåë ai +1 ≡ ai2 + 1 (mod n), ãäå n èíòåðåñóþùåå íàñ ÷èñëî. Ïî birthday paradox, îíà íà÷í¼ò ïîâòîðÿòüñÿ â ñðåäíåì ÷åðåç O (√n). Áîëåå òîãî, åñëè ó n åñòü ïðîñòîé äåëèòåëü q, òî â ñðåäíåì ÷åðåç O (√n) íà÷í¼ò ïîâòîðÿòüñÿ ïîñëåäîâàòåëüíîñòü ai (mod q ). Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 31. Ââåäåíèå. Îñíîâíàÿ èäåÿ n-ìåòîäû Ïðîâåðêà íà ãëàäêîñòü îäíîãî ÷èñëà Àëãîðèòìû index calculus: ïåðâàÿ ôàçà Ïðîâåðêà íà ãëàäêîñòü ìíîãèõ ÷èñåë Ìåòîä Ïîëëàðäà Ìû íå çíàåì q, íî ìîæåì ïðîâåðÿòü ïðîñòî êàæäûé ðàç ai è a2i , íå äà¼ò ëè gcd(n, a2i − ai ) èëè gcd(n, a2i + ai ) ÷åãî-íèáóäü èíòåðåñíîãî. Ïðè òàêîì ïîäõîäå ìû îæèäàåì íàéòè äåëèòåëü n çà O (√q), ãäå q íàèìåíüøèé ïðîñòîé äåëèòåëü n. √ Çíà÷èò, íà ãëàäêîñòü ïðîâåðèòü îæèäàåì çà O ( B ); åñëè √ ÷åðåç O ( B ) øàãîâ ñîâïàäåíèé íå íàéäåíî, ìîæíî ïðîñòî ïðåäïîëîæèòü ñ áîëüøîé âåðîÿòíîñòüþ, ÷òî íå ãëàäêîå. Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 32. Ââåäåíèå. Îñíîâíàÿ èäåÿ n-ìåòîäû Ïðîâåðêà íà ãëàäêîñòü îäíîãî ÷èñëà Àëãîðèòìû index calculus: ïåðâàÿ ôàçà Ïðîâåðêà íà ãëàäêîñòü ìíîãèõ ÷èñåë Àëãîðèòì Ëåíñòðû Ìû çíàåì ýôôåêòèâíûå àëãîðèòìû ðàçëîæåíèÿ ÷èñåë íà ìíîæèòåëè. √ Ó íàñ áûëè àëãîðèòìû, ðàáîòàþùèå çà âðåìÿ Ln 1 ; 2 è 2 äàæå Ln 1 ; 1 . 2 Íî íåïîíÿòíî, êàê èõ îáîáùèòü òàê, ÷òîáû îöåíêà çàâèñåëà îò ðàçìåðà ïðîñòûõ äåëèòåëåé (îò B ), à íå îò n. Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 33. Ââåäåíèå. Îñíîâíàÿ èäåÿ n-ìåòîäû Ïðîâåðêà íà ãëàäêîñòü îäíîãî ÷èñëà Àëãîðèòìû index calculus: ïåðâàÿ ôàçà Ïðîâåðêà íà ãëàäêîñòü ìíîãèõ ÷èñåë Àëãîðèòì Ëåíñòðû Àëãîðèòì Ëåíñòðû (ECM, elliptic curve method) äåëàåò êàê ðàç ýòî. Îí îñíîâàí íà ýëëèïòè÷åñêèõ êðèâûõ, è ìû åãî ðàçáèðàòü íå áóäåì. Âàæíî, ÷òî ðàáîòàåò îí çà âðåìÿ √ 1√ O e (2+o (1)) log B log log B (log n)2 = LB ; 2 . 2 Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 34. Ââåäåíèå. Îñíîâíàÿ èäåÿ n-ìåòîäû Ïðîâåðêà íà ãëàäêîñòü îäíîãî ÷èñëà Àëãîðèòìû index calculus: ïåðâàÿ ôàçà Ïðîâåðêà íà ãëàäêîñòü ìíîãèõ ÷èñåë Èòîãè Èòàê, ó íàñ åñòü äâà ðàçóìíûõ ïîäõîäà ê ïðîâåðêå îäíîãî ÷èñëà íà ãëàäêîñòü: √ ìåòîä Ïîëëàðäà ïðîâåðÿåò íà B -ãëàäêîñòü çà O ( B ); ECM ïðîâåðÿåò íà√B -ãëàäêîñòü çà √ LB 1 ; 2 = O e (2+o (1)) log B log log B . 2 Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 35. Ââåäåíèå. Îñíîâíàÿ èäåÿ n-ìåòîäû Ïðîâåðêà íà ãëàäêîñòü îäíîãî ÷èñëà Àëãîðèòìû index calculus: ïåðâàÿ ôàçà Ïðîâåðêà íà ãëàäêîñòü ìíîãèõ ÷èñåë Çàäà÷à Íàì íóæíî íà ïåðâîé ôàçå ïîðîäèòü ìíîãî ñîîòíîøåíèé âèäà logg r = k1 logg p1 + k2 logg p2 + . . . + ks logg ps , pi ≤ B . Äëÿ ýòîãî íóæíî ïðîâåðèòü ìàññó ÷èñåë íà B -ãëàäêîñòü. Âîîáùå ãîâîðÿ, ìû äîëæíû âûáðàòü ìíîãî ñëó÷àéíûõ u, à ïîòîì ïðîâåðèòü g u (mod p) íà B -ãëàäêîñòü. Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 36. Ââåäåíèå. Îñíîâíàÿ èäåÿ n-ìåòîäû Ïðîâåðêà íà ãëàäêîñòü îäíîãî ÷èñëà Àëãîðèòìû index calculus: ïåðâàÿ ôàçà Ïðîâåðêà íà ãëàäêîñòü ìíîãèõ ÷èñåë Êâàäðàòè÷íîå ðåøåòî Ìû äëÿ ïîäîáíîé çàäà÷è çíàåì ìåòîä êâàäðàòè÷íîãî ðåøåòà. Ðàññìîòðèì ïîñëåäîâàòåëüíîñòü Q (x ) = x 2 − n äëÿ x = x0 = n , x0 + 1, . . .. √ Åñëè n êâàäðàò ïî ìîäóëþ p, òî x 2 − n ≡ 0 (mod n) i x ≡ a èëè b (mod p), ãäå a è b êîðíè èç n ïî ìîäóëþ p. Åñëè n íå êâàäðàò (mod p), òî äåëèòüñÿ íèêîãäà íå áóäåò. Çíà÷èò, ìîæíî ïðîñòî òàê æå âû÷¼ðêèâàòü òå Q (x ), äëÿ êîòîðûõ x äåëèòñÿ íà a èëè b. Ïðè÷¼ì ýòîò àëãîðèòì ìîæíî ïðèìåíèòü ê ëþáîìó ìíîãî÷ëåíó (íàì íóæíû áóäóò êâàäðàòè÷íûå è ëèíåéíûå). Ñëîæíîñòü ýòîãî àëãîðèòìà: O π(B )(1 + log B )o (1) + N log log B , ãäå N êîëè÷åñòâî ïðîâåðÿåìûõ ÷èñåë. Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 37. Ââåäåíèå. Îñíîâíàÿ èäåÿ n-ìåòîäû Ïðîâåðêà íà ãëàäêîñòü îäíîãî ÷èñëà Àëãîðèòìû index calculus: ïåðâàÿ ôàçà Ïðîâåðêà íà ãëàäêîñòü ìíîãèõ ÷èñåë Ïðîáëåìà Íî ñåé÷àñ ó íàñ íå âñ¼ òàê ïðîñòî. Åñëè âûáèðàòü u, òî g u , êîòîðûå íóæíî ïðîâåðÿòü íà ãëàäêîñòü, íå ïîõîæè íè íà êàêîé ìíîãî÷ëåí, è òàê ïðîñòî âñ¼ íå ïîëó÷èòñÿ. Êàê îáîéòè ýòó ïðîáëåìó? Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 38. Ââåäåíèå. Îñíîâíàÿ èäåÿ n-ìåòîäû Ïðîâåðêà íà ãëàäêîñòü îäíîãî ÷èñëà Àëãîðèòìû index calculus: ïåðâàÿ ôàçà Ïðîâåðêà íà ãëàäêîñòü ìíîãèõ ÷èñåë Ðåøåíèå Ðàññìîòðèì H = √p è áóäåì ðàññìàòðèâàòü ïîñëåäîâàòåëüíîñòü (H + c1)(H + c2) äëÿ ìàëåíüêèõ c1 è c2. Òîãäà äëÿ pi ≤ B ïîëó÷àþòñÿ ñîîòíîøåíèÿ âèäà logg (H + c1)(H + c2) = k1 logg p1 + k2 logg p2 + . . . + ks logg ps . Åñëè H 2 = p + J , òî (H + c1 )(H + c2 ) ≡ J + (c1 + c2 )H + c1 c2 (mod p ), è ýòî ëèíåéíûé ìíîãî÷ëåí, ê êîòîðîìó ìîæíî ïðèìåíèòü ðåøåòî (åñëè â êàæäûé êîíêðåòíûé ìîìåíò ôèêñèðîâàòü c1 è âàðüèðîâàòü c2 ). Íî âåäü ìû ïî ïðåæíåìó íå çíàåì logg (H + c1)(H + c2), è îòäåëüíûõ logg (H + c1) òîæå íå çíàåì. :) ×åì æå íàì ñòàëî ëó÷øå? Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 39. Ââåäåíèå. Îñíîâíàÿ èäåÿ n-ìåòîäû Ïðîâåðêà íà ãëàäêîñòü îäíîãî ÷èñëà Àëãîðèòìû index calculus: ïåðâàÿ ôàçà Ïðîâåðêà íà ãëàäêîñòü ìíîãèõ ÷èñåë Ðåøåíèå Íàì ñòàëî ëó÷øå òåì, ÷òî òåïåðü ñ îäíèìè è òåìè æå c1 è c2 ïîëó÷àþòñÿ ñðàçó ìíîãî ñîîòíîøåíèé! Ìû ïðîñòî äîáàâëÿåì logg (H + ci ) êàê íîâûå íåèçâåñòíûå. Íî êîëè÷åñòâî óðàâíåíèé ðàñò¼ò áûñòðåå, ÷åì êîëè÷åñòâî íåèçâåñòíûõ, è íà ïðàêòèêå ïîëó÷àåòñÿ, ÷òî äëÿ áàçû B íóæíî íå áîëüøå 4π(B ) óðàâíåíèé. À çàòåì ìû èõ ðåøèì ïðè ïîìîùè àëãîðèòìà Âèäåìàííà, çà âðåìÿ π(B )2. Áóäåì âàðüèðîâàòü 0 ≤ c1 c2 ≤ C , C âûáåðåì ïîçæå. Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 40. Ââåäåíèå. Îñíîâíàÿ èäåÿ n-ìåòîäû Ïðîâåðêà íà ãëàäêîñòü îäíîãî ÷èñëà Àëãîðèòìû index calculus: ïåðâàÿ ôàçà Ïðîâåðêà íà ãëàäêîñòü ìíîãèõ ÷èñåë Ñïàñèáî çà âíèìàíèå! Lecture notes è ñëàéäû áóäóò ïîÿâëÿòüñÿ íà ìîåé homepage: http://logic.pdmi.ras.ru/∼sergey/ Ïðèñûëàéòå ëþáûå çàìå÷àíèÿ, ðåøåíèÿ óïðàæíåíèé, íîâûå ÷èñëåííûå ïðèìåðû è ïðî÷åå ïî àäðåñàì: sergey@logic.pdmi.ras.ru, snikolenko@gmail.com Çàõîäèòå â ÆÆ smartnik. Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà