SlideShare a Scribd company logo
1 of 54
Download to read offline
Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè
                        Èäåè äðóãèõ àëãîðèòìîâ




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

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

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



                            Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè   Òðåòüÿ ôàçà index calculus: ïîèñê ëîãàðèôìà
                          Èäåè äðóãèõ àëãîðèòìîâ   Àíàëèç ñëîæíîñòè: ãëàäêèå ÷èñëà è ãðóáàÿ îöåíêà
                                                   Àíàëèç ñëîæíîñòè: òî÷íàÿ îöåíêà

Outline


   1   Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè
         Òðåòüÿ ôàçà index calculus: ïîèñê ëîãàðèôìà
         Àíàëèç ñëîæíîñòè: ãëàäêèå ÷èñëà è ãðóáàÿ îöåíêà
         Àíàëèç ñëîæíîñòè: òî÷íàÿ îöåíêà
   2   Èäåè äðóãèõ àëãîðèòìîâ
         Number eld sieve
         Îò ðåøåòà ê ðåø¼òêå
         Àëãîðèòì Âèäåìàííà


                              Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè   Òðåòüÿ ôàçà index calculus: ïîèñê ëîãàðèôìà
                         Èäåè äðóãèõ àëãîðèòìîâ   Àíàëèç ñëîæíîñòè: ãëàäêèå ÷èñëà è ãðóáàÿ îöåíêà
                                                  Àíàëèç ñëîæíîñòè: òî÷íàÿ îöåíêà

Ïðîìåæóòî÷íûé èòîã



        Èòàê, ïî èòîãàì ïåðâûõ äâóõ ôàç ìû âû÷èñëèëè logg pi
        äëÿ pi ≤ B . Êàê òåïåðü íàéòè logg y ?
        Ìû áóäåì áðàòü ñëó÷àéíûå ÷èñëà w , ïîêà yg w íå ñòàíåò
        äîñòàòî÷íî ãëàäêèì.
        Íî çäåñü ¾äîñòàòî÷íî¿ íå B -ãëàäêîñòè, à U -ãëàäêîñòè äëÿ
        íåêîòîðîãî U  B (âñå êîíñòàíòû âûáåðåì ïîòîì, êîãäà
        áóäåì ñëîæíîñòü îöåíèâàòü).



                             Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè   Òðåòüÿ ôàçà index calculus: ïîèñê ëîãàðèôìà
                         Èäåè äðóãèõ àëãîðèòìîâ   Àíàëèç ñëîæíîñòè: ãëàäêèå ÷èñëà è ãðóáàÿ îöåíêà
                                                  Àíàëèç ñëîæíîñòè: òî÷íàÿ îöåíêà

Èäåÿ òðåòüåé ôàçû
        Èòàê, âûáèðàåì w è ïðîâåðÿåì yg w íà U -ãëàäêîñòü
        (çàîäíî ðàñêëàäûâàÿ íà ìíîæèòåëè).
        Çàòåì, êîãäà yg w ñòàíåò U -ãëàäêèì, çàäà÷à ñâåä¼òñÿ ê
        ëîãàðèôìèðîâàíèþ íåñêîëüêèõ ïðîñòûõ ÷èñåë ¾ñðåäíåãî
        ðàçìåðà¿ (îò B äî U ). Òàêîå ïðîñòîå m ìû
        ëîãàðèôìèðóåì òàê.
           1   Íà÷èíàÿ ñ u = p/m è óâåëè÷èâàÿ u, íàéä¼ì B -ãëàäêîå
                           √
               u.
           2   Íà÷èíàÿ ñ v = H = √p è óâåëè÷èâàÿ v , íàéä¼ì
               B -ãëàäêîå
                                   n ≡ uvm (mod p).
           3   Òåïåðü logg m = logg n − logg u − logg v , è âñå ëîãàðèôìû
               ñïðàâà ìû çíàåì.
        Îáà ÷èñëà u è v ìîæíî íàéòè ïîëèíîìèàëüíûì ðåøåòîì
        (îáà ìíîãî÷ëåíà ëèíåéíûå).
                             Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè   Òðåòüÿ ôàçà index calculus: ïîèñê ëîãàðèôìà
                         Èäåè äðóãèõ àëãîðèòìîâ   Àíàëèç ñëîæíîñòè: ãëàäêèå ÷èñëà è ãðóáàÿ îöåíêà
                                                  Àíàëèç ñëîæíîñòè: òî÷íàÿ îöåíêà

Î ðàâíîìåðíîé ñëîæíîñòè äèñêðåòíîãî ëîãàðèôìà

        Îáðàòèòå âíèìàíèå: âñå äèñêðåòíûå ëîãàðèôìû èñêàòü
        îäèíàêîâî òðóäíî.
        Åñëè êàêîé-íèáóäü logg y áûëî áû òðóäíåå âû÷èñëèòü, ÷åì
        äëÿ áîëüøèíñòâà äðóãèõ y , äîñòàòî÷íî áûëî áû áðàòü
        ñëó÷àéíûå w , ïîêà yg w íå ñòàëî áû ëåãêî
        ëîãàðèôìèðîâàòü.
        À ëîãàðèôìû ïî äðóãîìó îñíîâàíèþ, åñëè óìååì èñêàòü
        ëîãàðèôìû ïî îñíîâàíèþ g , òîæå èñêàòü íåñëîæíî, âåäü
                                log a
                       logh a ≡ logg h (mod p − 1).
                                   g


                             Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè   Òðåòüÿ ôàçà index calculus: ïîèñê ëîãàðèôìà
                         Èäåè äðóãèõ àëãîðèòìîâ   Àíàëèç ñëîæíîñòè: ãëàäêèå ÷èñëà è ãðóáàÿ îöåíêà
                                                  Àíàëèç ñëîæíîñòè: òî÷íàÿ îöåíêà

Êàêèå åñòü ïàðàìåòðû


        Èòàê, ìû õîòèì íàéòè îïòèìàëüíûå ïàðàìåòðû äëÿ
        àëãîðèòìà index calculus.
        Ïàðàìåòðû  ýòî:
               B  áàçîâàÿ îöåíêà ãëàäêîñòè;
               C  ÷èñëî, äî êîòîðîãî âàðüèðóþòñÿ 0 ≤ c1  c2 ≤ C â
               ðåøåòå;
               U  íîâàÿ îöåíêà ãëàäêîñòè íà ïîñëåäíåì ýòàïå.
        Äëÿ íà÷àëà ïðåäïîëîæèì, ÷òî òðåòüÿ ôàçà áûñòðåå
        ïåðâûõ äâóõ, è ñîïòèìèçèðóåì B è C .


                             Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè     Òðåòüÿ ôàçà index calculus: ïîèñê ëîãàðèôìà
                          Èäåè äðóãèõ àëãîðèòìîâ     Àíàëèç ñëîæíîñòè: ãëàäêèå ÷èñëà è ãðóáàÿ îöåíêà
                                                     Àíàëèç ñëîæíîñòè: òî÷íàÿ îöåíêà

×èñëà Lp [s ; c ]



         Âñïîìíèì îáîçíà÷åíèÿ:
                                                         s               1−s
                                 Lp [s ; c ] = e c (log n) (log log n)         .

         Ìû ñåé÷àñ âñ¼ áóäåì äåëàòü â òåðìèíàõ Lp [s ; c ], ïîýòîìó
         ñíà÷àëà óñòàíîâèì ïðîñòûå ñâîéñòâà Lp [s ; c ].
         Çàìå÷àíèå: ìû áóäåì âêëþ÷àòü âñå êîíñòàíòíûå
         ìíîæèòåëè âíóòðü Lp , ò.å. ÷èòàòü Lp êàê O (. . .).



                              Ñåðãåé Íèêîëåíêî       Ïîèñê äèñêðåòíîãî ëîãàðèôìà
Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè   Òðåòüÿ ôàçà index calculus: ïîèñê ëîãàðèôìà
                          Èäåè äðóãèõ àëãîðèòìîâ   Àíàëèç ñëîæíîñòè: ãëàäêèå ÷èñëà è ãðóáàÿ îöåíêà
                                                   Àíàëèç ñëîæíîñòè: òî÷íàÿ îöåíêà

×èñëà Lp [s ; c ]
         Êðàéíèå ñëó÷àè:
         åñëè s = 0,Lp [s ; c ] = (log p)c (ïîëèíîìèàëüíàÿ ñëîæíîñòü);
         åñëè s = 1,Lp [s ; c ] = e c log p (ýêñïîíåíöèàëüíàÿ ñëîæíîñòü).
         Ñóììà:
            Lp [s1 ; c1 ] + Lp [s2 ; c2 ] = Lp [max{s1 , s2 }; max{c1 , c2 } + o (1)]
         (íà ñàìîì äåëå max{c1, c2}  ýòî òîëüêî äëÿ ñëó÷àÿ s1 = s2,
         íî â ëþáîì ñëó÷àå ýòî âåðõíÿÿ îöåíêà, è íàì å¼ õâàòèò).
         Ïðîèçâåäåíèå:
               Lp [s1 ; c1 ] · Lp [s2 ; c2 ] = Lp [max{s1 , s2 }; c1 + c2 + o (1)]
         (òî æå çàìå÷àíèå ïðî c1 + c2).
                              Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè   Òðåòüÿ ôàçà index calculus: ïîèñê ëîãàðèôìà
                         Èäåè äðóãèõ àëãîðèòìîâ   Àíàëèç ñëîæíîñòè: ãëàäêèå ÷èñëà è ãðóáàÿ îöåíêà
                                                  Àíàëèç ñëîæíîñòè: òî÷íàÿ îöåíêà

Êîëè÷åñòâî ãëàäêèõ ÷èñåë


        Èòàê, áóäåì îïòèìèçèðîâàòü B è C .
        Ñíà÷àëà ïîâòîðèì è ðàñøèðèì íåêîòîðûå ðàññóæäåíèÿ èç
        ïðîøëîé ëåêöèè.
        Òåîðåìà èç òåîðèè ÷èñåë (áåç äîêàçàòåëüñòâà): äëÿ ëþáîãî
           0, åñëè X → ∞, u → ∞, ïðè÷¼ì X 1/u  (log X )1+ , òî

                                  ψ(X , X 1/u )
                                                  = u −(1+o (1))u ,
                                         X
        ãäå ψ(X , B )  êîëè÷åñòâî B -ãëàäêèõ ÷èñåë îò 1 äî X .
        Åñëè B = X 1/u , çíà÷èò, u = log X .
                                     log B



                             Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè          Òðåòüÿ ôàçà index calculus: ïîèñê ëîãàðèôìà
                         Èäåè äðóãèõ àëãîðèòìîâ          Àíàëèç ñëîæíîñòè: ãëàäêèå ÷èñëà è ãðóáàÿ îöåíêà
                                                         Àíàëèç ñëîæíîñòè: òî÷íàÿ îöåíêà

Êîëè÷åñòâî ãëàäêèõ ÷èñåë
        Íàñ èíòåðåñóþò B è X âèäà Lp [s ; c ]; ïîäñòàâèì X = Lp [s ; c ]
        è B = Lp [sB ; cB ] â ýòó ôîðìóëó:
            ψ(X , B )
                          = u −(1+o (1))u =
                 X
                                                                   c (log p)s (log log p)1−s +o (u )
                   c (log p)s (log log p)1−s                 −
                                                                 cB (log p)s (log log p)1−sB
                                                                            B
                  cB (log p)s (log log p)1−sB
           =                                                                                           =
                            B
                          c            s −sB (log log p )−s +sB (log log p +O (log log log p ))
               e (s −sB ) cB (log p)                                                              =
                                                                                     c
                                                  Lp s − sB ; −(s − sB )
                                                                                    cB
                                                                                                1
                                                                                         + o( ) .

        Ýòî âåðîÿòíîñòü òîãî, ÷òî ñëó÷àéíîå ÷èñëî îò 1 äî X
        áóäåò B -ãëàäêèì. Êàê îáû÷íî, ïðî çíà÷åíèÿ ìíîãî÷ëåíîâ
        ìû íè÷åãî íå çíàåì, òîëüêî ïðåäïîëàãàåì.
                              Ñåðãåé Íèêîëåíêî           Ïîèñê äèñêðåòíîãî ëîãàðèôìà
Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè     Òðåòüÿ ôàçà index calculus: ïîèñê ëîãàðèôìà
                         Èäåè äðóãèõ àëãîðèòìîâ     Àíàëèç ñëîæíîñòè: ãëàäêèå ÷èñëà è ãðóáàÿ îöåíêà
                                                    Àíàëèç ñëîæíîñòè: òî÷íàÿ îöåíêà

Êîëè÷åñòâî ãëàäêèõ ÷èñåë

        Âñåãî â íàøåé áàçå ôàêòîðèçàöèè π(B ) ≈ log B ïðîñòûõ
                                                  B
        ÷èñåë.
        Èòîãî, åñëè íàì íóæíû log B ñîîòíîøåíèé, à ãëàäêèì
                               DB
        áóäåì êàæäîå uu ÷èñëî, ìû äîëæíû âûïîëíèòü
                                                  DBu u
                                                  log B
        òåñòîâ íà ãëàäêîñòü.
        Çäåñü ìû, êîíå÷íî, âîñïîëüçóåìñÿ ðåøåòîì è ïîëó÷èì, ÷òî
        îáùåå âðåìÿ íà ãåíåðàöèþ ñèñòåìû ñîîòíîøåíèé ðàâíî
                           DBu u
                           log B log log B .
        Íàéä¼ì ìèíèìóì ýòîãî çíà÷åíèÿ ïî B .
                             Ñåðãåé Íèêîëåíêî       Ïîèñê äèñêðåòíîãî ëîãàðèôìà
Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè   Òðåòüÿ ôàçà index calculus: ïîèñê ëîãàðèôìà
                         Èäåè äðóãèõ àëãîðèòìîâ   Àíàëèç ñëîæíîñòè: ãëàäêèå ÷èñëà è ãðóáàÿ îöåíêà
                                                  Àíàëèç ñëîæíîñòè: òî÷íàÿ îöåíêà

Îïòèìèçàöèÿ

        Ïåðåéä¼ì ê ëîãàðèôìó: ìèíèìèçèðóåì òåïåðü
             log D + log B + u log u − log log B + log log log B .
        Âîçüì¼ì ïðîèçâîäíóþ ïî B è ïðèðàâíÿåì íóëþ:
                          1 + du log u + du = 0.
                                   B      dB            dB
        Âñïîìíèì, ÷òî u = log X :
                            log B

                  1 − log X log u − log X = 0,
                  B B (log B )2 B (log B )2
               log X (1 + log log X − log log B ) = (log B )2.
                             Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè   Òðåòüÿ ôàçà index calculus: ïîèñê ëîãàðèôìà
                         Èäåè äðóãèõ àëãîðèòìîâ   Àíàëèç ñëîæíîñòè: ãëàäêèå ÷èñëà è ãðóáàÿ îöåíêà
                                                  Àíàëèç ñëîæíîñòè: òî÷íàÿ îöåíêà

Îöåíêà
        Ìû ïîëó÷èëè, ÷òî
                 log X (1 + log log X − log log B ) = (log B )2.
        Ïîñêîëüêó 1  log log B  log log X ,
        log X  log X (1 + log log X − log log B )  log X log log X , è
                                   √                  √
                                       log X              log X log log X
                               e               Be                         .
        Ðàç óæ ìû èùåì B â âèäå Lp [sB ; cB ], ýòî çíà÷èò, ÷òî
        îïòèìàëüíûé âûáîð  ÷òî-òî â äóõå
                                     1
                            B = Lp ; cB
                                     2
        äëÿ íåêîòîðîãî cB .
                             Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè      Òðåòüÿ ôàçà index calculus: ïîèñê ëîãàðèôìà
                         Èäåè äðóãèõ àëãîðèòìîâ      Àíàëèç ñëîæíîñòè: ãëàäêèå ÷èñëà è ãðóáàÿ îöåíêà
                                                     Àíàëèç ñëîæíîñòè: òî÷íàÿ îöåíêà

Ñêîëüêî æå íà ñàìîì äåëå ïðîâåðîê

        Ìû òàì íè÷åãî íå ãîâîðèëè î D ; à îíî ñâÿçàíî ñ C è, â
        êîíå÷íîì ñ÷¼òå, B .
        Ïîýòîìó ñåé÷àñ îöåíèì ïîòî÷íåå. Ïóñòü
        B = Lp [sB ; cB + o (1)], C = Lp [sC ; cC + o (1)]; íàïîìèíàþ,
        ÷òî C  ýòî îöåíêà íà c1 è c2.
        Ìû ïðîâåðÿåì âñå 0 ≤ c1  c2 ≤ C , òî åñòü âñåãî áóäåò
        ïðîâåðîê
                            1 C 2 = L [s ; 2c + o (1)].
                            2        p C C
        À âñåãî ãëàäêèõ ÷èñåë íóæíî íàéòè
           B +C                              1
                     = Lp [sB ; cB + o ( )] + Lp [sC ; cC + o ( )] =     1
                                       = Lp [     max{sB , sC }; max{cB , cB } + o (1)].
                             Ñåðãåé Íèêîëåíêî        Ïîèñê äèñêðåòíîãî ëîãàðèôìà
Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè   Òðåòüÿ ôàçà index calculus: ïîèñê ëîãàðèôìà
                         Èäåè äðóãèõ àëãîðèòìîâ   Àíàëèç ñëîæíîñòè: ãëàäêèå ÷èñëà è ãðóáàÿ îöåíêà
                                                  Àíàëèç ñëîæíîñòè: òî÷íàÿ îöåíêà

Âûâîä òî÷íîé îöåíêè

        Åñëè Psm  âåðîÿòíîñòü îáíàðóæèòü ãëàäêîå ÷èñëî, òî
        íóæíî âûáðàòü B è C òàê, ÷òîáû
                              1 C 2P ≥ B + C .
                              2 sm
        Êàêîãî ïîðÿäêà áóäóò ýòè ÷èñëà? Ìû áðàëè ÷èñëà âèäà
        x = (H + c1 )(H + c2 ), ãäå H = √p = Lp 1; 1 .
                                                   2
        Ïîñêîëüêó J = H 2 − p ≤ 2H :
           x = J + (c1 + c2 )H + c1 c2 ≤ (2 + c1 + c2 )H + c1 c2 ≤
         ≤   2Lp [sC ; cC +o (1)]Lp 1; 1 +Lp [sC ; 2cC +o (1)] = Lp 1; 1 + o (1)
                                       2                               2                            .


                             Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè   Òðåòüÿ ôàçà index calculus: ïîèñê ëîãàðèôìà
                         Èäåè äðóãèõ àëãîðèòìîâ   Àíàëèç ñëîæíîñòè: ãëàäêèå ÷èñëà è ãðóáàÿ îöåíêà
                                                  Àíàëèç ñëîæíîñòè: òî÷íàÿ îöåíêà

Âûâîä òî÷íîé îöåíêè
        À âåðîÿòíîñòü Psm , êàê ìû óæå ãîâîðèëè,
                       ψ(x , B )                −(1 − sB )
                                 = Lp 1 − sB ;
               Psm =
                           x                         2cB + o (1) .
        Òîãäà óñëîâèå 1 C 2P ≥ B + C ïðåâðàùàåòñÿ â
                         2

                                            −(1 − sB )
          Lp [sC ; 2cC + o (1)]Lp 1 − sB ;
                                               2cB + o (1) ≥
                       ≥ Lp [max{sB , sC }; max{cB , cB } + o (1)], òî åñòü

           Lp [sC ; 2cC + o (1)] ≥
             max{sB , sC }; max{cB , cC }+o (1)]Lp 1 − sB ; (1 2c sB ) + o (1)
         ≥ Lp [
                                                               −
                                                                                                    .
                                                                 B
        Îòñþäà, êàê ìèíèìóì (òî÷íåå ïîçæå),
        sC ≥ max{sB , sC , 1 − sB }.
                             Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè   Òðåòüÿ ôàçà index calculus: ïîèñê ëîãàðèôìà
                         Èäåè äðóãèõ àëãîðèòìîâ   Àíàëèç ñëîæíîñòè: ãëàäêèå ÷èñëà è ãðóáàÿ îöåíêà
                                                  Àíàëèç ñëîæíîñòè: òî÷íàÿ îöåíêà

Îïòèìèçàöèÿ

        Ñ äðóãîé ñòîðîíû, äàâàéòå âåðí¼ìñÿ ê âðåìåíè ðàáîòû.
        Ðåøåòî íàøå C ðàç ïðîâåðÿåò ïî C ÷èñåë (ôèêñèðóåò c1 è
        âàðüèðóåò c2), òî åñòü ðàáîòàåò âðåìÿ
           C·     π(B )( + 1 log B )o (1) + C log log B           =
                         = Lp [sC ; cC ] (Lp [sB ; cB ] + Lp [sC ; cC ]) =
                             max{sB , sC }; cC + max{cB , cC } + o (1)].
                               = Lp [

        À íà ëèíåéíóþ àëãåáðó íóæíî âðåìÿ
             (B + C )2 = Lp [max{sB , sC }; max{2cB , 2cC } + o (1)].


                             Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè   Òðåòüÿ ôàçà index calculus: ïîèñê ëîãàðèôìà
                         Èäåè äðóãèõ àëãîðèòìîâ   Àíàëèç ñëîæíîñòè: ãëàäêèå ÷èñëà è ãðóáàÿ îöåíêà
                                                  Àíàëèç ñëîæíîñòè: òî÷íàÿ îöåíêà

Îïòèìèçàöèÿ


        Â èòîãå ïåðâàÿ è âòîðàÿ ôàçû çàíèìàþò
                   Lp [max{sB , sC }; max{2cB , 2cC } + o (1)].
        Íóæíî ìèíèìèçèðîâàòü â ïåðâóþ î÷åðåäü max{sB , sC } ïðè
        óñëîâèè
                           sC ≥ max{sB , 1 − sB }.
        Ïîëó÷àåòñÿ sB = sC = 2 . Ïðè ýòîì
                                 1


                          −(1 − sB )                    1 1 + o (1)
        Psm = Lp 1 − sB ;              + o (1) = Lp ; −
                             2cB                        2 4cB                                .



                             Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè   Òðåòüÿ ôàçà index calculus: ïîèñê ëîãàðèôìà
                         Èäåè äðóãèõ àëãîðèòìîâ   Àíàëèç ñëîæíîñòè: ãëàäêèå ÷èñëà è ãðóáàÿ îöåíêà
                                                  Àíàëèç ñëîæíîñòè: òî÷íàÿ îöåíêà

Îïòèìèçàöèÿ



        Ò.ê. Psm = Lp 1 ; − 4c1B + o (1) , óñëîâèå íà äîñòàòî÷íîå
                          2
        êîëè÷åñòâî ãëàäêèõ ÷èñåë 1 C 2P ≥ B + C ïðåâðàùàåòñÿ â
                                      2

            1                    1                         1 1 + o (1)
        Lp [ ; 2cC +o (1)] ≥ Lp ; max{cB , cC } + o (1) Lp ;
            2                    2                         2 4cB                                    ,

                                                       1
                        òî åñòü 2cC ≥ max{cB , cC } + 4c .
                                                        B




                             Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè   Òðåòüÿ ôàçà index calculus: ïîèñê ëîãàðèôìà
                         Èäåè äðóãèõ àëãîðèòìîâ   Àíàëèç ñëîæíîñòè: ãëàäêèå ÷èñëà è ãðóáàÿ îöåíêà
                                                  Àíàëèç ñëîæíîñòè: òî÷íàÿ îöåíêà

Îïòèìèçàöèÿ


        À ñóììàðíîå âðåìÿ ðàáîòû àëãîðèòìà ïðåâðàùàåòñÿ â
                  Lp [max{sB , sC }; max{2cB , 2cC } + o (1)].
        Îïòèìèçèðóÿ ýòî ïðè óñëîâèè 2cC ≥ max{cB , cC } + 4c1B ,
        ïîëó÷èì cB = cC = 1 .
                           2
        Â èòîãå B = C = Lp 2 ; 1 + o (1) , à ñóììàðíîå âðåìÿ
                             1
                                 2
        ðàáîòû ïåðâîé è âòîðîé ôàç ñîñòàâëÿåò
                                   1
                             Lp ; 1 + o (1) .
                                   2

                             Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè   Òðåòüÿ ôàçà index calculus: ïîèñê ëîãàðèôìà
                         Èäåè äðóãèõ àëãîðèòìîâ   Àíàëèç ñëîæíîñòè: ãëàäêèå ÷èñëà è ãðóáàÿ îöåíêà
                                                  Àíàëèç ñëîæíîñòè: òî÷íàÿ îöåíêà

Âðåìÿ ðàáîòû òðåòüåé ôàçû àëãîðèòìà


        Ìû ïðåäïîëàãàëè, ÷òî òðåòüÿ ôàçà áóäåò áûñòðåå ïåðâûõ
        äâóõ. Âåðíî ëè ýòî?
        Íàïîìèíàþ, ÷òî ìû âûáèðàåì w è ïðîâåðÿåì yg w íà
        U -ãëàäêîñòü, ïîêà íå ïîïàä¼ì.
        Äàâàéòå îöåíèì; ó íàñ òåïåðü íîâûé ïàðàìåòð
        U = Lp [sU ; cU + o (1)], à âåðîÿòíîñòü íàéòè ïîäõîäÿùåå
        ÷èñëî w áóäåò Pw :
               P =
                       ψ(p , U )
                                 = L 1 − s ;−
                                                1 − sU + o (1) .
                     w                        p       U
                                 p                             cU


                             Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè     Òðåòüÿ ôàçà index calculus: ïîèñê ëîãàðèôìà
                         Èäåè äðóãèõ àëãîðèòìîâ     Àíàëèç ñëîæíîñòè: ãëàäêèå ÷èñëà è ãðóáàÿ îöåíêà
                                                    Àíàëèç ñëîæíîñòè: òî÷íàÿ îöåíêà

Âðåìÿ ðàáîòû òðåòüåé ôàçû àëãîðèòìà

        Åñëè ìû ïîëüçóåìñÿ ECM, òî êàæäîå ÷èñëî ïðîâåðÿåòñÿ çà
               √
           e       (2+o (1)) log U log log U
                                               log n)2 =
                                               (
                                                               sU
                                                     = Lp
                                                             2 ; 2sU cU + o (1) .
        À íàì íóæíî ïðîâåñòè P1W                   òàêèõ òåñòîâ, ò.å. îáùåå âðåìÿ
        íà ïîèñê w ðàâíî
                    sU                               1 − sU
           Lp
                     2 ; 2sU cU + o (1) · Lp 1 − sU ; cU + o (1) =
                                 sU
                      = Lp max{ , 1 − sU };
                                             1 − sU + 2s c + o (1)
                                  2            c           U U
                                                           U
                                                                                           .


                               Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè   Òðåòüÿ ôàçà index calculus: ïîèñê ëîãàðèôìà
                         Èäåè äðóãèõ àëãîðèòìîâ   Àíàëèç ñëîæíîñòè: ãëàäêèå ÷èñëà è ãðóáàÿ îöåíêà
                                                  Àíàëèç ñëîæíîñòè: òî÷íàÿ îöåíêà

Âðåìÿ ðàáîòû òðåòüåé ôàçû àëãîðèòìà

        Èòàê, íóæíî îïòèìèçèðîâàòü
                      s
              Lp max{ U , 1 − sU };
                                    1 − sU + 2s c + o (1) .
                       2              cU         U U

        Ìèíèìèçèðóÿ max{ s2U , 1 − sU }, ïîëó÷èì sU = 2 , à
                                                      3
        ìèíèìèçèðóÿ 3c1U + 2 cU /3, ïîëó÷èì cU = 1 1/3. Èòàê:
                                                      3

                              2 ; 1 1/3 + o (1) ,
                               U = Lp
                              3 3
        à îáùåå âðåìÿ ðàáîòû òðåòüåé ôàçû ñîñòàâëÿåò
                              1
                          Lp ; 31/3 + o (1) .
                              3
                             Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè   Òðåòüÿ ôàçà index calculus: ïîèñê ëîãàðèôìà
                         Èäåè äðóãèõ àëãîðèòìîâ   Àíàëèç ñëîæíîñòè: ãëàäêèå ÷èñëà è ãðóáàÿ îöåíêà
                                                  Àíàëèç ñëîæíîñòè: òî÷íàÿ îöåíêà

Àíàëèç


     Ó íàñ ïîëó÷èëîñü Lp 1 ; 31/3 + o (1) , ÷òî ãîðàçäî áûñòðåå,
                            3
     ÷åì Lp 2 ; 1 + o (1) (âðåìÿ ïåðâîé è âòîðîé ôàçû).
             1

     Íî òàê ïîëó÷èëîñü òîëüêî áëàãîäàðÿ ECM; åñëè
     èñïîëüçîâàòü äëÿ ïðîâåðêè íà ãëàäêîñòü ìåòîä Ïîëëàðäà,
     ïîëó÷èòñÿ òî æå ñàìîå Lp 1 ; 1 + o (1) , à ñ òðèâèàëüíûì
                                 2
     àëãîðèòìîì ïðîâåðêè (ïðîáíûì äåëåíèåì) è âîâñå
           √
     Lp 1 ; 2 + o (1) .
         2

  Óïðàæíåíèå. Äîêàçàòü ýòè îöåíêè.




                             Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè   Òðåòüÿ ôàçà index calculus: ïîèñê ëîãàðèôìà
                         Èäåè äðóãèõ àëãîðèòìîâ   Àíàëèç ñëîæíîñòè: ãëàäêèå ÷èñëà è ãðóáàÿ îöåíêà
                                                  Àíàëèç ñëîæíîñòè: òî÷íàÿ îöåíêà

Íî ýòî åù¼ íå âñ¼

        Íóæíî åù¼ îöåíèòü ëîãàðèôìèðîâàíèå ¾ñðåäíåãî
        ðàçìåðà¿ ïðîñòûõ ÷èñåë.
        Íàì√ êàæäîãî òàêîãî ïðîñòîãî m íàäî íàéòè B -ãëàäêîå
             äëÿ
        u  p/m. Çäåñü u  ÷èñëî ïîðÿäêà Lp [1; 1 ], à
                                                   2
        âåðîÿòíîñòü âûáðàòü ãëàäêîå u  Lp 2 ; − 1 + o (1) .
                                              1
                                                  2
        Ò.å. íóæíî ïðîãíàòü ÷åðåç ðåøåòî Lp 2 ; 1 + o (1)
                                              1
                                                2
        âàðèàíòîâ; ýòî áûñòðåå ïåðâîé è âòîðîé ôàçû.
        À ñàìûé ïîñëåäíèé øàã  íàéòè òàêîå v  √p, ÷òî uvm
        (mod p ) áóäåò B -ãëàäêèì. Çäåñü v òîæå ïîðÿäêà Lp [1; 2 ], è
                                                               1

        òî÷íî òàê æå ïîëó÷àåòñÿ ñëîæíîñòü Lp 2 ; 2 + o (1) .
                                                1 1

        Òàê ÷òî ýòîò øàã îêàçàëñÿ ñëîæíåå, ÷åì ¾îñíîâíàÿ ÷àñòü¿
        òðåòüåé ôàçû, íî âñ¼ ðàâíî áûñòðåå ïåðâîé è âòîðîé ôàçû.
                             Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè   Òðåòüÿ ôàçà index calculus: ïîèñê ëîãàðèôìà
                         Èäåè äðóãèõ àëãîðèòìîâ   Àíàëèç ñëîæíîñòè: ãëàäêèå ÷èñëà è ãðóáàÿ îöåíêà
                                                  Àíàëèç ñëîæíîñòè: òî÷íàÿ îöåíêà

Òåïåðü âñ¼




        Òåïåðü âñ¼. Óôôô.
        Âàæíîå çàìå÷àíèå: îäíè è òå æå ðåçóëüòàòû ïåðâîé è
        âòîðîé ôàçû ìîæíî èñïîëüçîâàòü äëÿ âû÷èñëåíèÿ ìíîãèõ
        äèñêðåòíûõ ëîãàðèôìîâ; êàæäûé íîâûé ëîãàðèôì áóäåò
        ñòîèòü êàê òðåòüÿ ôàçà, à íå êàê ïåðâàÿ+âòîðàÿ, ÷òî
        äåøåâëå.



                             Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè   Number eld sieve
                          Èäåè äðóãèõ àëãîðèòìîâ   Îò ðåøåòà ê ðåø¼òêå
                                                   Àëãîðèòì Âèäåìàííà

Outline


   1   Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè
         Òðåòüÿ ôàçà index calculus: ïîèñê ëîãàðèôìà
         Àíàëèç ñëîæíîñòè: ãëàäêèå ÷èñëà è ãðóáàÿ îöåíêà
         Àíàëèç ñëîæíîñòè: òî÷íàÿ îöåíêà
   2   Èäåè äðóãèõ àëãîðèòìîâ
         Number eld sieve
         Îò ðåøåòà ê ðåø¼òêå
         Àëãîðèòì Âèäåìàííà


                              Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè   Number eld sieve
                         Èäåè äðóãèõ àëãîðèòìîâ   Îò ðåøåòà ê ðåø¼òêå
                                                  Àëãîðèòì Âèäåìàííà

Ðåøåòî ÷èñëîâîãî ïîëÿ



        Ïîëèíîìèàëüíîå ðåøåòî  íå ïðåäåë ìå÷òàíèé.
        Åù¼ ýôôåêòèâíåå îêàçûâàåòñÿ ìåòîä ðåøåòà ÷èñëîâîãî
        ïîëÿ (number eld sieve).
        Ïî ñóòè ìåòîä àíàëîãè÷åí êâàäðàòè÷íîìó ðåøåòó, íî
        òåïåðü âñ¼ ïðîèñõîäèò íàä äðóãèìè êîëüöàìè.
        Ìû ðàññìîòðèì òîëüêî îñíîâíóþ èäåþ, áåçî âñÿêèõ
        äîêàçàòåëüñòâ.



                             Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè   Number eld sieve
                         Èäåè äðóãèõ àëãîðèòìîâ   Îò ðåøåòà ê ðåø¼òêå
                                                  Àëãîðèòì Âèäåìàííà

Èäåÿ


        Ìû ðàññìîòðèì ðåøåòî ÷èñëîâîãî ïîëÿ äëÿ çàäà÷è
        ðàçëîæåíèÿ ÷èñåë íà ìíîæèòåëè.
        Ìû õîòèì ðàçëîæèòü n. Ïðåäïîëîæèì, ÷òî ó íàñ åñòü
        íåïðèâîäèìûé ìíîãî÷ëåí f (x ) è ÷èñëî m, òàêîå, ÷òî
        f (m) ≡ 0 (mod n).
        Ðàññìîòðèì êîìïëåêñíûé êîðåíü α ìíîãî÷ëåíà f (x ) è
        êîëüöî Z[α].
        f (m) ≡ 0 (mod n) è f (α) = 0, ñëåäîâàòåëüíî, åñòü
        åñòåñòâåííûé ãîìîìîðôèçì êîëåö ϕ : Z[α] → Zn , êîòîðûé
        îòîáðàæàåò α â m.

                             Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè   Number eld sieve
                         Èäåè äðóãèõ àëãîðèòìîâ   Îò ðåøåòà ê ðåø¼òêå
                                                  Àëãîðèòì Âèäåìàííà

Èäåÿ

        Òåïåðü ïðåäïîëîæèì, ÷òî ó íàñ åñòü ìíîæåñòâî òàêèõ ïàð
        ÷èñåë (a, b), ÷òî:
               ïðîèçâåäåíèå âñåõ (a − αb)  êâàäðàò â êîëüöå Z [α],
               ñêàæåì, γ2 ;
               ïðîèçâåäåíèå âñåõ (a − mb)  êâàäðàò â Z, ñêàæåì, v 2 .
        Çàìåíèì â âûðàæåíèè äëÿ γ α íà m; ïîëó÷èì ϕ(γ) ≡ u
        mod n. Òåïåðü
           u 2 ≡ ϕ(γ)2 = ϕ           γ2 = ϕ           (a − αb) =

                      =        (ϕ (a − αb)) =      mod n),
                                                        (a − mb) = v 2 (

        è ìû òåì ñàìûì ñìîæåì ðàçëîæèòü n íà ìíîæèòåëè.
                             Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè   Number eld sieve
                         Èäåè äðóãèõ àëãîðèòìîâ   Îò ðåøåòà ê ðåø¼òêå
                                                  Àëãîðèòì Âèäåìàííà

Ìíîãî÷ëåí f



        Íî îòêóäà âçÿòü f ? Îí ñàì ñîáîé ïîÿâèòñÿ.
               Âûáåðåì ñòåïåíü d , ïîëîæèì m = n1/d .
               Çàïèøåì n ïî îñíîâàíèþ m: n = md + cd −1 md −1 + . . . + c0 .
               Âîò è ìíîãî÷ëåí: f (x ) = x d + cd −1 x d −1 + . . . + c0 .
        Îòäåëüíûé âîïðîñ: áóäåò ëè îí íåïðèâîäèìûì? Åñëè íå
        áóäåò, òî n = f (m) = g (m)h(m), è ìû óæå (ñ âûñîêîé
        âåðîÿòíîñòüþ) ðàçëîæèëè n. Òàê ÷òî áóäåò. :)



                             Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè   Number eld sieve
                         Èäåè äðóãèõ àëãîðèòìîâ   Îò ðåøåòà ê ðåø¼òêå
                                                  Àëãîðèòì Âèäåìàííà

×èñëà a è b


        Îòêóäà âçÿòü a è b? Èç òàêîãî æå ðåøåòà.
        ×òîáû (a − mb) áûëî êâàäðàòîì, íóæíî ðåøèòü
        ëèíåéíóþ ñèñòåìó íà êîýôôèöèåíòû, êàê ðàíüøå.
        ×òîáû (a − αb) áûëî êâàäðàòîì, íóæíî ðåøèòü
        ëèíåéíóþ ñèñòåìó íà êîýôôèöèåíòû â êîëüöå Z[α], åñëè
        ýòî õîðîøåå êîëüöî (ñ åäèíñòâåííîñòüþ ðàçëîæåíèÿ).
        Õîðîøåå êîëüöî ìîæíî äîáûòü (áåç ä-âà).
        Òåïåðü ìîæíî ïðîñòî îáúåäèíèòü äâå ñèñòåìû  íàì
        íóæíî, ÷òîáû îáà ñâîéñòâà âûïîëíÿëèñü.


                             Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè   Number eld sieve
                         Èäåè äðóãèõ àëãîðèòìîâ   Îò ðåøåòà ê ðåø¼òêå
                                                  Àëãîðèòì Âèäåìàííà

Îöåíêà ñëîæíîñòè
        ×åì õîðîøî ðåøåòî ÷èñëîâîãî ïîëÿ?
        Íàøè îöåíêè áûëè îñíîâàíû íà X  êîëè÷åñòâå ÷èñåë, èç
        êîòîðûõ ìîæíî ñäåëàòü êâàäðàò.
        Ó íàñ áûëî X = n1/2+ .
        À â number eld sieve ïîëó÷àåòñÿ X = e c (log n)2 3(log log n)1 3 ,
                                                                        /       /


        ÷òî äà¼ò îáùóþ îöåíêó ñëîæíîñòè
                      1
                   Ln ; c = e (c +o (1))(log n) (log log n) .
                                               1 3         2 3
                                                           /            /

                      3
        Òåîðåòè÷åñêèé ðåêîðä: c ≈ 1, 902, èç àíàëèçà íàøåãî
        àëãîðèòìà ïîëó÷èëîñü áû
             Lp ;
                  1 64 1/3 + o (1) ≈ L 1 ; 1, 923 + o (1) .
                  3 9                        p
                                                3
        Íî ãëàâíîå  îñíîâíàÿ àñèìïòîòèêà ñòàëà ëó÷øå.
                             Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè   Number eld sieve
                         Èäåè äðóãèõ àëãîðèòìîâ   Îò ðåøåòà ê ðåø¼òêå
                                                  Àëãîðèòì Âèäåìàííà

Number eld sieve äëÿ äèñêðåòíîãî ëîãàðèôìà



        Àíàëîãè÷íûå ñîîáðàæåíèÿ ïðîõîäÿò è äëÿ çàäà÷è
        äèñêðåòíîãî ëîãàðèôìà, è òîæå âðåìÿ ðàáîòû ïîëó÷àåòñÿ
              Lp ;
                  1 64 1/3 + o (1) ≈ L 1 ; 1, 923 + o (1) .
                  3 9                   p
                                           3
        Íà ïðàêòèêå ðåøåòî ÷èñëîâîãî ïîëÿ íà÷èíàåò âûèãðûâàòü,
        ãäå-òî íà÷èíàÿ ñî 100-çíà÷íûõ ÷èñåë.



                             Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè   Number eld sieve
                         Èäåè äðóãèõ àëãîðèòìîâ   Îò ðåøåòà ê ðåø¼òêå
                                                  Àëãîðèòì Âèäåìàííà

Ðåø¼òêè


        Ìû óæå ãîâîðèëè, íàñêîëüêî âàæíû â êðèïòîãðàôèè
        ðåø¼òêè, à òî÷íåå, çàäà÷à ïîèñêà êðàò÷àéøåãî âåêòîðà.
        Îêàçûâàåòñÿ, ñ èõ ïîìîùüþ ìîæíî è ÷èñëà ðàñêëàäûâàòü!
        Schnorr, 1993; Adleman, 1995; Schnorr, 2008.
        Ïîêà (êàæåòñÿ) ýòî íåäîñòàòî÷íî ïðàêòè÷íûé ñïîñîá, õóæå
        number eld sieve, íî êòî çíàåò, ê ÷åìó ïðèä¼ò...
        Ìû âêðàòöå îïèøåì ìåòîä, áåç ïîäðîáíûõ äîêàçàòåëüñòâ
        è îöåíîê ñëîæíîñòè.


                             Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè   Number eld sieve
                         Èäåè äðóãèõ àëãîðèòìîâ   Îò ðåøåòà ê ðåø¼òêå
                                                  Àëãîðèòì Âèäåìàííà

Ðåø¼òêè



        Áóäåì îáîçíà÷àòü ñêàëÿðíîå ïðîèçâåäåíèå êàê x , y .
        Ïóñòü B = {b1, . . . , bm }  íàáîð ëèíåéíî íåçàâèñèìûõ
        âåêòîðîâ â Rn . Òîãäà ðåø¼òêà ðàçìåðíîñòè m  ýòî íàáîð
        ëèíåéíûõ êîìáèíàöèé bi ñ öåëûìè êîýôôèöèåíòàìè:
                                L = Zb1 + Zb2 + . . . + Zbm .




                             Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè   Number eld sieve
                         Èäåè äðóãèõ àëãîðèòìîâ   Îò ðåøåòà ê ðåø¼òêå
                                                  Àëãîðèòì Âèäåìàííà

Ðåø¼òêè




     Âîò òèïè÷íàÿ ðåø¼òêà.




                             Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè   Number eld sieve
                         Èäåè äðóãèõ àëãîðèòìîâ   Îò ðåøåòà ê ðåø¼òêå
                                                  Àëãîðèòì Âèäåìàííà

Ðåø¼òêè


     Âîò òèïè÷íàÿ ðåø¼òêà.
     Áàçèñ ðåø¼òêè  ýòî
     ìíîæåñòâî ëèíåéíî
     íåçàâèñèìûõ âåêòîðîâ, å¼
     ïîðîæäàþùèõ.




                             Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè   Number eld sieve
                         Èäåè äðóãèõ àëãîðèòìîâ   Îò ðåøåòà ê ðåø¼òêå
                                                  Àëãîðèòì Âèäåìàííà

Ðåø¼òêè

     Âîò òèïè÷íàÿ ðåø¼òêà.
     Áàçèñ ðåø¼òêè  ýòî
     ìíîæåñòâî ëèíåéíî
     íåçàâèñèìûõ âåêòîðîâ, å¼
     ïîðîæäàþùèõ.
     Âîò äðóãîé áàçèñ òîé æå
     ðåø¼òêè.




                             Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè   Number eld sieve
                         Èäåè äðóãèõ àëãîðèòìîâ   Îò ðåøåòà ê ðåø¼òêå
                                                  Àëãîðèòì Âèäåìàííà

Ðåø¼òêè

     Âîò òèïè÷íàÿ ðåø¼òêà.
     Áàçèñ ðåø¼òêè  ýòî
     ìíîæåñòâî ëèíåéíî
     íåçàâèñèìûõ âåêòîðîâ, å¼
     ïîðîæäàþùèõ.
     Âîò äðóãîé áàçèñ òîé æå
     ðåø¼òêè.
     À âîò åù¼ îäèí.




                             Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè   Number eld sieve
                         Èäåè äðóãèõ àëãîðèòìîâ   Îò ðåøåòà ê ðåø¼òêå
                                                  Àëãîðèòì Âèäåìàííà

Ðåø¼òêè

     Áàçèñ ìîæåò ñîñòîÿòü èç
     î÷åíü äëèííûõ âåêòîðîâ,
     äàæå åñëè â ðåø¼òêå åñòü
     êîðîòêèå.
     Íàéòè êîðîòêèé âåêòîð
     ðåø¼òêè  ñëîæíàÿ
     çàäà÷à; èìåííî îíà íàì
     ñåé÷àñ è ïîíàäîáèòñÿ.




                             Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè   Number eld sieve
                         Èäåè äðóãèõ àëãîðèòìîâ   Îò ðåøåòà ê ðåø¼òêå
                                                  Àëãîðèòì Âèäåìàííà

Àëãîðèòì L3

        Ìû èçó÷àëè àëãîðèòì LLL ñ êîíñòàíòíûì ïàðàìåòðîì δ,
        êîòîðûé óìååò ðåøàòün çàäà÷ó ïîèñêà êðàò÷àéøåãî âåêòîðà
                               1
        ñ òî÷íîñòüþ δ − 1 − 2 .
                                          −

                        4
                                        n
        Ìîæíî ðàññìîòðåòü δ = 1 + 3 n 1 è ïîëó÷èòü òî÷íîñòü
              n                  4   4
                                                       −


          √2
            3
                .
        Åñòü åù¼ àëãîðèòì Øíîððà, êîòîðûé äîñòèãàåò  2
                                       O n log log n
                                          „            «
                                                            (       )

        ñóáýêñïîíåíöèàëüíîé òî÷íîñòè: 2      log n
                                                         .
        Òåïåðü  ïðè ÷¼ì òóò ôàêòîðèçàöèÿ.



                             Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè       Number eld sieve
                         Èäåè äðóãèõ àëãîðèòìîâ       Îò ðåøåòà ê ðåø¼òêå
                                                      Àëãîðèòì Âèäåìàííà

Ôàêòîðèçàöèÿ ÷åðåç äèîôàíòîâû ïðèáëèæåíèÿ

        Ïóñòü íàì íóæíî ðàçëîæèòü n.
        Âûïèøåì ñïèñîê ïðîñòûõ ÷èñåë p1, . . . , pt , ìåíüøèõ
        (log n)α (ýòî áûñòðî).
        Ïðåäïîëîæèì, ÷òî ìû ìîæåì íàéòè t + 2 òàêèõ âåêòîðà
        e = (e1 , . . . , et ) ∈ Zt , ÷òî
                      t
                            ei log pi − log n              o (1)
                                                    ≤ n−c pt ,
                     i =1
                                 t
                                       |ei   log pi | ≤ (2c − 1) log n + 2 log pt
                                i =1
        (ò.å. îíè êîðîòêèå è õîðîøî ïðèáëèæàþò (log n, . . . , log n)).
                              Ñåðãåé Íèêîëåíêî        Ïîèñê äèñêðåòíîãî ëîãàðèôìà
Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè              Number eld sieve
                         Èäåè äðóãèõ àëãîðèòìîâ              Îò ðåøåòà ê ðåø¼òêå
                                                             Àëãîðèòì Âèäåìàííà

Ôàêòîðèçàöèÿ ÷åðåç äèîôàíòîâû ïðèáëèæåíèÿ
        Ðàññìîòðèì äëÿ êàæäîãî âåêòîðà e = (e1, . . . , et ) äâà
        ÷èñëà:               e                |e |
                               u=              pj j ,           v=            pj j .
                                       ej 0                          ej 0
        Òîãäà (êàê ïîêàçàë Øíîðð; áåç ä-âà) u õîðîøî ïðèáëèæàåò
        vn:
                                      1+o (1)
                                        |u − vn| ≤ pt                     ,
        à çíà÷èò, |u − vn| áóäåò pt -ãëàäêèì!
        Ðàçëîæèâ, ìû íàéä¼ì (ñêîðåå âñåãî) íåòðèâèàëüíîå
        ñîîòíîøåíèå
                                                         t
                                       pjej = ±                pjbj   (mod n).
                               ej 0                    j =1
                             Ñåðãåé Íèêîëåíêî                Ïîèñê äèñêðåòíîãî ëîãàðèôìà
Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè      Number eld sieve
                         Èäåè äðóãèõ àëãîðèòìîâ      Îò ðåøåòà ê ðåø¼òêå
                                                     Àëãîðèòì Âèäåìàííà

Ôàêòîðèçàöèÿ ÷åðåç äèîôàíòîâû ïðèáëèæåíèÿ

        Èòàê, ìû íàøëè ïî õîðîøåìó âåêòîðó ñîîòíîøåíèå
                                                      t
                                   pjej       1
                                          = (− )b0          pjbj   mod n).
                                                                   (
                           ej 0                     j =1

        Åñëè ìû íàéä¼ì t + 2 õîðîøèõ âåêòîðà, ìû ñìîæåì
        ðåøèòü ñèñòåìó è íàéòè íåòðèâèàëüíîå ñîîòíîøåíèå ïî
        ìîäóëþ äâà ìåæäó âåêòîðàìè ýêñïîíåíò
        (a0 , . . . , at ) + (b0 , . . . , bt ), ãäå a0 = 0, aj = [ej  0]ej .
        À ýòî ïîçâîëèò íàì íàéòè íåòðèâèàëüíîå ðàâåíñòâî
        x 2 ≡ y 2 (mod n), òî÷íî êàê â ìåòîäå Êðàé÷èêà; îòñþäà è
        ïîÿâèòñÿ ðàçëîæåíèå n.
                             Ñåðãåé Íèêîëåíêî        Ïîèñê äèñêðåòíîãî ëîãàðèôìà
Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè   Number eld sieve
                         Èäåè äðóãèõ àëãîðèòìîâ   Îò ðåøåòà ê ðåø¼òêå
                                                  Àëãîðèòì Âèäåìàííà

Ôàêòîðèçàöèÿ ÷åðåç ðåø¼òêè


        Íî êàê íàéòè òàêèå ïðèáëèæåíèÿ?
        Âûïèøåì ñïèñîê ïðîñòûõ ÷èñåë p1, . . . , pt , ìåíüøèõ
        (log n)α (ýòî áûñòðî).
        Ðàññìîòðèì ðåø¼òêó Lα,c ⊂ Rt +2:
                 
                   log 2 0 0 . . . 0 nc log 2 
                  0     log 3 0 . . . 0 nc log 3 
                  0       0 log 5 . . . 0 nc log 5 
                                                             
                  .       ...           ...
                  .
                                                             
                     .
                                                              
                                                              
                     0 0 0 . . . log pt n            c log pt



                             Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè   Number eld sieve
                         Èäåè äðóãèõ àëãîðèòìîâ   Îò ðåøåòà ê ðåø¼òêå
                                                  Àëãîðèòì Âèäåìàííà

Ôàêòîðèçàöèÿ ÷åðåç ðåø¼òêè



        Çàòåì ìû â ýòîé ðåø¼òêå íàéä¼ì t + 2 âåêòîðà,
        äîñòàòî÷íî áëèçêèõ ê
                          (0, 0, . . . , 0, nc log n).

        Øíîðð ïîêàçàë, ÷òî ìîæíî òàê ïîäîáðàòü ïàðàìåòðû
        ¾áëèçîñòè âåêòîðîâ¿, ÷òî îíè ïîâëåêóò êàê ðàç òðåáóåìîå
        ðàçëîæåíèå.



                             Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè   Number eld sieve
                         Èäåè äðóãèõ àëãîðèòìîâ   Îò ðåøåòà ê ðåø¼òêå
                                                  Àëãîðèòì Âèäåìàííà

Àëãîðèòì Âèäåìàííà




        È íàïîñëåäîê ïîâòîðèì àëãîðèòì Âèäåìàííà ñ
        îáúÿñíåíèåì àëãîðèòìà Áåðëåêàìïà-Ìåññè (ïîòîìó ÷òî íå
        óñïåëè ðàçîáðàòü Áåðëåêàìïà-Ìåññè ðàíüøå).




                             Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè   Number eld sieve
                         Èäåè äðóãèõ àëãîðèòìîâ   Îò ðåøåòà ê ðåø¼òêå
                                                  Àëãîðèòì Âèäåìàííà

Àëãîðèòì Âèäåìàííà




        Çàäà÷à: íàéòè òàêîé âåêòîð w, ÷òî Aw = 0.
        Ðàññìîòðèì ñëó÷àéíûå âåêòîðû x è z, à òàêæå y = Az.
        Ðàññìîòðèì
                              x y, x      Ay, x A2 y, x A3 y, . . .




                             Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè    Number eld sieve
                         Èäåè äðóãèõ àëãîðèòìîâ    Îò ðåøåòà ê ðåø¼òêå
                                                   Àëãîðèòì Âèäåìàííà

Ìèíèìàëüíûé ìíîãî÷ëåí


        Âñïîìíèì ëèíåéíóþ àëãåáðó: ó ìàòðèöû A ðàçìåðà n × n
        åñòü ìèíèìàëüíûé ìíîãî÷ëåí p ñòåïåíè n0 ≤ n, äëÿ
        êîòîðîãî p(A) = 0.
        Ïóñòü ìèíèìàëüíûé ìíîãî÷ëåí p: n=0 pi Ai = 0. Çíà÷èò,
                                         i
                                           0


                                         n0
                                               pi x Ai y = 0,
                                        i =0
        è ýòîò ìíîãî÷ëåí òàêæå ïîðîæäàåò è íàøó
        ïîñëåäîâàòåëüíîñòü.
        Êàê íàéòè ïîðîæäàþùèé ìíîãî÷ëåí?

                             Ñåðãåé Íèêîëåíêî      Ïîèñê äèñêðåòíîãî ëîãàðèôìà
Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè   Number eld sieve
                         Èäåè äðóãèõ àëãîðèòìîâ   Îò ðåøåòà ê ðåø¼òêå
                                                  Àëãîðèòì Âèäåìàííà

Àëãîðèòì Áåðëåêàìïà-Ìåññè


        Ðàññìîòðèì ïîñëåäîâàòåëüíîñòü s äëèíû n + 1:
        s n+1 = s0 s1 . . . sn−1 sn .
        Ïóñòü (ïî ïðåäïîëîæåíèþ èíäóêöèè)
        p(X ) = 1 + c1 X + . . . + cn X L ïîðîæäàåò
        ïîñëåäîâàòåëüíîñòü s n = s0s1 . . . sn−1 íà ïðåäûäóùåì øàãå.
        Ðàññìîòðèì ðàçíèöó
                                                    L
                                      dn = sn ⊕          ci sN −i .
                                                  i =1



                             Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè   Number eld sieve
                         Èäåè äðóãèõ àëãîðèòìîâ   Îò ðåøåòà ê ðåø¼òêå
                                                  Àëãîðèòì Âèäåìàííà

Àëãîðèòì Áåðëåêàìïà-Ìåññè

        Åñëè dn = 0, âñ¼ õîðîøî, áåð¼ì L(s n+1) = L.
        Åñëè dn = 1, ðàññìîòðèì áëèæàéøèé ïðåäûäóùèé
        ìíîãî÷ëåí q, êîòîðûé îòëè÷àëñÿ, ò.å. ìàêñèìàëüíîå òàêîå
        m  n, ÷òî deg(ps m )  deg(ps n ).
        Òåïåðü, åñëè deg p  n/2, òî p = p, à åñëè deg p ≤ n/2, òî
        deg p = n + 1 − deg p, è
                               p (X ) = p(X ) + q (X ) · X n−m .

  Óïðàæíåíèå.  Äîêàçàòü, ÷òî â ðåçóëüòàòå äåéñòâèòåëüíî
  ïîëó÷àåòñÿ ìíîãî÷ëåí, ïîðîæäàþùèé s n .

                             Ñåðãåé Íèêîëåíêî     Ïîèñê äèñêðåòíîãî ëîãàðèôìà
Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè    Number eld sieve
                         Èäåè äðóãèõ àëãîðèòìîâ    Îò ðåøåòà ê ðåø¼òêå
                                                   Àëãîðèòì Âèäåìàííà

Àëãîðèòì Âèäåìàííà

        Èòàê, ìû ïðèìåíÿåì àëãîðèòì Áåðëåêàìïà-Ìåññè è
        ïîëó÷àåì òàêèå êîýôôèöèåíòû qi , ÷òî
                                         n0
                                               qi x Ai y = 0.
                                        i =0
        Ìû íàäååìñÿ, ÷òî ïðè ýòîì çàîäíî è
               n0                                                  n0
                     qi Ai y = 0,   è, ò.ê. y = Az, M                    qi Ai z    0
                                                                                   = ,
              i =0                                                i =0
        è ìû íàäååìñÿ, ÷òî w = n=0 qi Ai z = 0, âåäü òîãäà ýòî è
                                i
                                  0

        åñòü ðåøåíèå.
        Íàøè íàäåæäû ÷àñòî (ïî x è y) áóäóò îïðàâäûâàòüñÿ.
                             Ñåðãåé Íèêîëåíêî      Ïîèñê äèñêðåòíîãî ëîãàðèôìà
Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè   Number eld sieve
                        Èäåè äðóãèõ àëãîðèòìîâ   Îò ðåøåòà ê ðåø¼òêå
                                                 Àëãîðèòì Âèäåìàííà




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

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



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

More Related Content

What's hot

20080921 introductorycourse itsykson_lecture01
20080921 introductorycourse itsykson_lecture0120080921 introductorycourse itsykson_lecture01
20080921 introductorycourse itsykson_lecture01Computer Science Club
 
Cong thuc-toan-9-day-du-cong-thuc-toan-9-day-du
Cong thuc-toan-9-day-du-cong-thuc-toan-9-day-duCong thuc-toan-9-day-du-cong-thuc-toan-9-day-du
Cong thuc-toan-9-day-du-cong-thuc-toan-9-day-duNgok Gah
 
tom tat toan bo cong thuc toan
tom tat toan bo cong thuc toantom tat toan bo cong thuc toan
tom tat toan bo cong thuc toanMaloda
 
20090510 hardnessvsrandomness itsykson_lecture11
20090510 hardnessvsrandomness itsykson_lecture1120090510 hardnessvsrandomness itsykson_lecture11
20090510 hardnessvsrandomness itsykson_lecture11Computer Science Club
 
20081109 auctions nikolenko_lecture08
20081109 auctions nikolenko_lecture0820081109 auctions nikolenko_lecture08
20081109 auctions nikolenko_lecture08Computer Science Club
 
Ly thuyet do tin cay
Ly thuyet do tin cayLy thuyet do tin cay
Ly thuyet do tin cayOFFSHORE VN
 
Tv tlcm 01_131
Tv tlcm 01_131Tv tlcm 01_131
Tv tlcm 01_131Phi Phi
 

What's hot (10)

20080921 introductorycourse itsykson_lecture01
20080921 introductorycourse itsykson_lecture0120080921 introductorycourse itsykson_lecture01
20080921 introductorycourse itsykson_lecture01
 
Cong thuc-toan-9-day-du-cong-thuc-toan-9-day-du
Cong thuc-toan-9-day-du-cong-thuc-toan-9-day-duCong thuc-toan-9-day-du-cong-thuc-toan-9-day-du
Cong thuc-toan-9-day-du-cong-thuc-toan-9-day-du
 
tom tat toan bo cong thuc toan
tom tat toan bo cong thuc toantom tat toan bo cong thuc toan
tom tat toan bo cong thuc toan
 
цахим ном
цахим номцахим ном
цахим ном
 
20090510 hardnessvsrandomness itsykson_lecture11
20090510 hardnessvsrandomness itsykson_lecture1120090510 hardnessvsrandomness itsykson_lecture11
20090510 hardnessvsrandomness itsykson_lecture11
 
20081109 auctions nikolenko_lecture08
20081109 auctions nikolenko_lecture0820081109 auctions nikolenko_lecture08
20081109 auctions nikolenko_lecture08
 
Ly thuyet do tin cay
Ly thuyet do tin cayLy thuyet do tin cay
Ly thuyet do tin cay
 
Đường dây truyến sóng
Đường dây truyến sóngĐường dây truyến sóng
Đường dây truyến sóng
 
Baitap C
Baitap CBaitap C
Baitap C
 
Tv tlcm 01_131
Tv tlcm 01_131Tv tlcm 01_131
Tv tlcm 01_131
 

Viewers also liked

WebExpo 2008 Newstin
WebExpo 2008 NewstinWebExpo 2008 Newstin
WebExpo 2008 NewstinWebExpo
 
Agile Australia 2016 - Rescuing Legacy Software from Impending Doom
Agile Australia 2016 - Rescuing Legacy Software from Impending DoomAgile Australia 2016 - Rescuing Legacy Software from Impending Doom
Agile Australia 2016 - Rescuing Legacy Software from Impending DoomJacques De Vos
 
214 walter kehuarucho calefacción de una vivienda utilizando colectores sol...
214 walter kehuarucho   calefacción de una vivienda utilizando colectores sol...214 walter kehuarucho   calefacción de una vivienda utilizando colectores sol...
214 walter kehuarucho calefacción de una vivienda utilizando colectores sol...GVEP International LAC
 
talking about health and fitness in French.
talking about health and fitness in French.talking about health and fitness in French.
talking about health and fitness in French.alice ayel
 
Claves de la comunicación interna
Claves de la comunicación internaClaves de la comunicación interna
Claves de la comunicación internaMASmedios com
 
20120414 videorecognition konushin_lecture03
20120414 videorecognition konushin_lecture0320120414 videorecognition konushin_lecture03
20120414 videorecognition konushin_lecture03Computer Science Club
 
Н. Иготти. Виртуализация и виртуальные машины. Лекция 02
Н. Иготти. Виртуализация и виртуальные машины. Лекция 02Н. Иготти. Виртуализация и виртуальные машины. Лекция 02
Н. Иготти. Виртуализация и виртуальные машины. Лекция 02Computer Science Club
 
Técnicas de difusión del Proyecto_1
Técnicas de difusión del Proyecto_1Técnicas de difusión del Proyecto_1
Técnicas de difusión del Proyecto_1Justo Cánovas
 
Carta de Referencia Miguel Merino Gil
Carta de Referencia Miguel Merino GilCarta de Referencia Miguel Merino Gil
Carta de Referencia Miguel Merino GilJuan Barral
 
3D Photorealistic Architectural Visualization
3D Photorealistic Architectural Visualization3D Photorealistic Architectural Visualization
3D Photorealistic Architectural Visualizationayman diab
 
Storytelling
StorytellingStorytelling
StorytellingDrew Skau
 

Viewers also liked (20)

Planet of the APPS
Planet of the APPSPlanet of the APPS
Planet of the APPS
 
WebExpo 2008 Newstin
WebExpo 2008 NewstinWebExpo 2008 Newstin
WebExpo 2008 Newstin
 
Agile Australia 2016 - Rescuing Legacy Software from Impending Doom
Agile Australia 2016 - Rescuing Legacy Software from Impending DoomAgile Australia 2016 - Rescuing Legacy Software from Impending Doom
Agile Australia 2016 - Rescuing Legacy Software from Impending Doom
 
214 walter kehuarucho calefacción de una vivienda utilizando colectores sol...
214 walter kehuarucho   calefacción de una vivienda utilizando colectores sol...214 walter kehuarucho   calefacción de una vivienda utilizando colectores sol...
214 walter kehuarucho calefacción de una vivienda utilizando colectores sol...
 
Actores
ActoresActores
Actores
 
talking about health and fitness in French.
talking about health and fitness in French.talking about health and fitness in French.
talking about health and fitness in French.
 
правила дорожного движения
правила дорожного движенияправила дорожного движения
правила дорожного движения
 
Démythification des croyances
Démythification des croyancesDémythification des croyances
Démythification des croyances
 
Claves de la comunicación interna
Claves de la comunicación internaClaves de la comunicación interna
Claves de la comunicación interna
 
20120414 videorecognition konushin_lecture03
20120414 videorecognition konushin_lecture0320120414 videorecognition konushin_lecture03
20120414 videorecognition konushin_lecture03
 
European Schoolnet #Tabletscourse MOOC
European Schoolnet #Tabletscourse MOOCEuropean Schoolnet #Tabletscourse MOOC
European Schoolnet #Tabletscourse MOOC
 
Н. Иготти. Виртуализация и виртуальные машины. Лекция 02
Н. Иготти. Виртуализация и виртуальные машины. Лекция 02Н. Иготти. Виртуализация и виртуальные машины. Лекция 02
Н. Иготти. Виртуализация и виртуальные машины. Лекция 02
 
Técnicas de difusión del Proyecto_1
Técnicas de difusión del Proyecto_1Técnicas de difusión del Proyecto_1
Técnicas de difusión del Proyecto_1
 
Bài 8
Bài 8Bài 8
Bài 8
 
Carta de Referencia Miguel Merino Gil
Carta de Referencia Miguel Merino GilCarta de Referencia Miguel Merino Gil
Carta de Referencia Miguel Merino Gil
 
Prezentit
PrezentitPrezentit
Prezentit
 
3D Photorealistic Architectural Visualization
3D Photorealistic Architectural Visualization3D Photorealistic Architectural Visualization
3D Photorealistic Architectural Visualization
 
Boletin prensa04 12-2012
Boletin prensa04 12-2012Boletin prensa04 12-2012
Boletin prensa04 12-2012
 
Las nubes.samuel matínez
Las nubes.samuel matínezLas nubes.samuel matínez
Las nubes.samuel matínez
 
Storytelling
StorytellingStorytelling
Storytelling
 

Similar to 20091129 cryptoprotocols nikolenko_lecture09

20081104 auctions nikolenko_lecture05
20081104 auctions nikolenko_lecture0520081104 auctions nikolenko_lecture05
20081104 auctions nikolenko_lecture05Computer Science Club
 
Chuyen de hinh hoc giai tich trong khong gian
Chuyen de hinh hoc giai tich trong khong gianChuyen de hinh hoc giai tich trong khong gian
Chuyen de hinh hoc giai tich trong khong gianHuynh ICT
 
20081005 auctions nikolenko_lecture01
20081005 auctions nikolenko_lecture0120081005 auctions nikolenko_lecture01
20081005 auctions nikolenko_lecture01Computer Science Club
 
Tong hop bai_tap_xac_suat_thong_ke_co_giai
Tong hop bai_tap_xac_suat_thong_ke_co_giaiTong hop bai_tap_xac_suat_thong_ke_co_giai
Tong hop bai_tap_xac_suat_thong_ke_co_giaiJing Ruan
 
Mot so bai_tap_xac_suat_thong_ke_co_loi_giai
Mot so bai_tap_xac_suat_thong_ke_co_loi_giaiMot so bai_tap_xac_suat_thong_ke_co_loi_giai
Mot so bai_tap_xac_suat_thong_ke_co_loi_giaiHoàng Lưu
 
Tiet 1 truc toa do va he truc toa do
Tiet 1 truc toa do va he truc toa doTiet 1 truc toa do va he truc toa do
Tiet 1 truc toa do va he truc toa doPham Son
 
Bai 5 nc truc toa do va he truc toa do (tiet 1)
Bai 5 nc truc toa do va he truc toa do (tiet 1)Bai 5 nc truc toa do va he truc toa do (tiet 1)
Bai 5 nc truc toa do va he truc toa do (tiet 1)Pham Son
 
Bài tập xác suất thống kê
Bài tập xác suất thống kêBài tập xác suất thống kê
Bài tập xác suất thống kêHọc Huỳnh Bá
 
Truyền dữ liệu không dây
Truyền dữ liệu không dâyTruyền dữ liệu không dây
Truyền dữ liệu không dâyViet Len Xanh
 
Danh gia thanh_qua_quan_ly_cao_hoc_5133
Danh gia thanh_qua_quan_ly_cao_hoc_5133Danh gia thanh_qua_quan_ly_cao_hoc_5133
Danh gia thanh_qua_quan_ly_cao_hoc_5133eminh123
 
Tich cua vecto voi mot so1
Tich cua vecto voi mot so1Tich cua vecto voi mot so1
Tich cua vecto voi mot so1Pham Son
 
tổng hợp kiến thức và các dạng toán ôn thi chuyển cấp 9 lên 10
tổng hợp kiến thức và các dạng toán ôn thi chuyển cấp 9 lên 10tổng hợp kiến thức và các dạng toán ôn thi chuyển cấp 9 lên 10
tổng hợp kiến thức và các dạng toán ôn thi chuyển cấp 9 lên 10Hoàng Thái Việt
 
Phương pháp số và lập trình - Tính sai số
Phương pháp số và lập trình - Tính sai sốPhương pháp số và lập trình - Tính sai số
Phương pháp số và lập trình - Tính sai sốHajunior9x
 
Giao Trinh Excel Nang Cao
Giao Trinh Excel Nang CaoGiao Trinh Excel Nang Cao
Giao Trinh Excel Nang Caonguyentuyenkgg
 

Similar to 20091129 cryptoprotocols nikolenko_lecture09 (16)

20081104 auctions nikolenko_lecture05
20081104 auctions nikolenko_lecture0520081104 auctions nikolenko_lecture05
20081104 auctions nikolenko_lecture05
 
Chuyen de hinh hoc giai tich trong khong gian
Chuyen de hinh hoc giai tich trong khong gianChuyen de hinh hoc giai tich trong khong gian
Chuyen de hinh hoc giai tich trong khong gian
 
20081005 auctions nikolenko_lecture01
20081005 auctions nikolenko_lecture0120081005 auctions nikolenko_lecture01
20081005 auctions nikolenko_lecture01
 
Tong hop bai_tap_xac_suat_thong_ke_co_giai
Tong hop bai_tap_xac_suat_thong_ke_co_giaiTong hop bai_tap_xac_suat_thong_ke_co_giai
Tong hop bai_tap_xac_suat_thong_ke_co_giai
 
Bai tap xac suat thong ke
Bai tap xac suat thong keBai tap xac suat thong ke
Bai tap xac suat thong ke
 
Mot so bai_tap_xac_suat_thong_ke_co_loi_giai
Mot so bai_tap_xac_suat_thong_ke_co_loi_giaiMot so bai_tap_xac_suat_thong_ke_co_loi_giai
Mot so bai_tap_xac_suat_thong_ke_co_loi_giai
 
Tiet 1 truc toa do va he truc toa do
Tiet 1 truc toa do va he truc toa doTiet 1 truc toa do va he truc toa do
Tiet 1 truc toa do va he truc toa do
 
Bai 5 nc truc toa do va he truc toa do (tiet 1)
Bai 5 nc truc toa do va he truc toa do (tiet 1)Bai 5 nc truc toa do va he truc toa do (tiet 1)
Bai 5 nc truc toa do va he truc toa do (tiet 1)
 
Bài tập xác suất thống kê
Bài tập xác suất thống kêBài tập xác suất thống kê
Bài tập xác suất thống kê
 
Truyền dữ liệu không dây
Truyền dữ liệu không dâyTruyền dữ liệu không dây
Truyền dữ liệu không dây
 
Danh gia thanh_qua_quan_ly_cao_hoc_5133
Danh gia thanh_qua_quan_ly_cao_hoc_5133Danh gia thanh_qua_quan_ly_cao_hoc_5133
Danh gia thanh_qua_quan_ly_cao_hoc_5133
 
Tich cua vecto voi mot so1
Tich cua vecto voi mot so1Tich cua vecto voi mot so1
Tich cua vecto voi mot so1
 
tổng hợp kiến thức và các dạng toán ôn thi chuyển cấp 9 lên 10
tổng hợp kiến thức và các dạng toán ôn thi chuyển cấp 9 lên 10tổng hợp kiến thức và các dạng toán ôn thi chuyển cấp 9 lên 10
tổng hợp kiến thức và các dạng toán ôn thi chuyển cấp 9 lên 10
 
Chapter6
Chapter6Chapter6
Chapter6
 
Phương pháp số và lập trình - Tính sai số
Phương pháp số và lập trình - Tính sai sốPhương pháp số và lập trình - Tính sai số
Phương pháp số và lập trình - Tính sai số
 
Giao Trinh Excel Nang Cao
Giao Trinh Excel Nang CaoGiao Trinh Excel Nang Cao
Giao Trinh Excel Nang Cao
 

More from 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
 

More from 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_lecture09

  • 1. Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè Èäåè äðóãèõ àëãîðèòìîâ Ïîèñê äèñêðåòíîãî ëîãàðèôìà Ñåðãåé Íèêîëåíêî Êðèïòîãðàôèÿ CS Club, îñåíü 2009 Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 2. Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè Òðåòüÿ ôàçà index calculus: ïîèñê ëîãàðèôìà Èäåè äðóãèõ àëãîðèòìîâ Àíàëèç ñëîæíîñòè: ãëàäêèå ÷èñëà è ãðóáàÿ îöåíêà Àíàëèç ñëîæíîñòè: òî÷íàÿ îöåíêà Outline 1 Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè Òðåòüÿ ôàçà index calculus: ïîèñê ëîãàðèôìà Àíàëèç ñëîæíîñòè: ãëàäêèå ÷èñëà è ãðóáàÿ îöåíêà Àíàëèç ñëîæíîñòè: òî÷íàÿ îöåíêà 2 Èäåè äðóãèõ àëãîðèòìîâ Number eld sieve Îò ðåøåòà ê ðåø¼òêå Àëãîðèòì Âèäåìàííà Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 3. Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè Òðåòüÿ ôàçà index calculus: ïîèñê ëîãàðèôìà Èäåè äðóãèõ àëãîðèòìîâ Àíàëèç ñëîæíîñòè: ãëàäêèå ÷èñëà è ãðóáàÿ îöåíêà Àíàëèç ñëîæíîñòè: òî÷íàÿ îöåíêà Ïðîìåæóòî÷íûé èòîã Èòàê, ïî èòîãàì ïåðâûõ äâóõ ôàç ìû âû÷èñëèëè logg pi äëÿ pi ≤ B . Êàê òåïåðü íàéòè logg y ? Ìû áóäåì áðàòü ñëó÷àéíûå ÷èñëà w , ïîêà yg w íå ñòàíåò äîñòàòî÷íî ãëàäêèì. Íî çäåñü ¾äîñòàòî÷íî¿ íå B -ãëàäêîñòè, à U -ãëàäêîñòè äëÿ íåêîòîðîãî U B (âñå êîíñòàíòû âûáåðåì ïîòîì, êîãäà áóäåì ñëîæíîñòü îöåíèâàòü). Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 4. Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè Òðåòüÿ ôàçà index calculus: ïîèñê ëîãàðèôìà Èäåè äðóãèõ àëãîðèòìîâ Àíàëèç ñëîæíîñòè: ãëàäêèå ÷èñëà è ãðóáàÿ îöåíêà Àíàëèç ñëîæíîñòè: òî÷íàÿ îöåíêà Èäåÿ òðåòüåé ôàçû Èòàê, âûáèðàåì w è ïðîâåðÿåì yg w íà U -ãëàäêîñòü (çàîäíî ðàñêëàäûâàÿ íà ìíîæèòåëè). Çàòåì, êîãäà yg w ñòàíåò U -ãëàäêèì, çàäà÷à ñâåä¼òñÿ ê ëîãàðèôìèðîâàíèþ íåñêîëüêèõ ïðîñòûõ ÷èñåë ¾ñðåäíåãî ðàçìåðà¿ (îò B äî U ). Òàêîå ïðîñòîå m ìû ëîãàðèôìèðóåì òàê. 1 Íà÷èíàÿ ñ u = p/m è óâåëè÷èâàÿ u, íàéä¼ì B -ãëàäêîå √ u. 2 Íà÷èíàÿ ñ v = H = √p è óâåëè÷èâàÿ v , íàéä¼ì B -ãëàäêîå n ≡ uvm (mod p). 3 Òåïåðü logg m = logg n − logg u − logg v , è âñå ëîãàðèôìû ñïðàâà ìû çíàåì. Îáà ÷èñëà u è v ìîæíî íàéòè ïîëèíîìèàëüíûì ðåøåòîì (îáà ìíîãî÷ëåíà ëèíåéíûå). Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 5. Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè Òðåòüÿ ôàçà index calculus: ïîèñê ëîãàðèôìà Èäåè äðóãèõ àëãîðèòìîâ Àíàëèç ñëîæíîñòè: ãëàäêèå ÷èñëà è ãðóáàÿ îöåíêà Àíàëèç ñëîæíîñòè: òî÷íàÿ îöåíêà Î ðàâíîìåðíîé ñëîæíîñòè äèñêðåòíîãî ëîãàðèôìà Îáðàòèòå âíèìàíèå: âñå äèñêðåòíûå ëîãàðèôìû èñêàòü îäèíàêîâî òðóäíî. Åñëè êàêîé-íèáóäü logg y áûëî áû òðóäíåå âû÷èñëèòü, ÷åì äëÿ áîëüøèíñòâà äðóãèõ y , äîñòàòî÷íî áûëî áû áðàòü ñëó÷àéíûå w , ïîêà yg w íå ñòàëî áû ëåãêî ëîãàðèôìèðîâàòü. À ëîãàðèôìû ïî äðóãîìó îñíîâàíèþ, åñëè óìååì èñêàòü ëîãàðèôìû ïî îñíîâàíèþ g , òîæå èñêàòü íåñëîæíî, âåäü log a logh a ≡ logg h (mod p − 1). g Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 6. Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè Òðåòüÿ ôàçà index calculus: ïîèñê ëîãàðèôìà Èäåè äðóãèõ àëãîðèòìîâ Àíàëèç ñëîæíîñòè: ãëàäêèå ÷èñëà è ãðóáàÿ îöåíêà Àíàëèç ñëîæíîñòè: òî÷íàÿ îöåíêà Êàêèå åñòü ïàðàìåòðû Èòàê, ìû õîòèì íàéòè îïòèìàëüíûå ïàðàìåòðû äëÿ àëãîðèòìà index calculus. Ïàðàìåòðû ýòî: B áàçîâàÿ îöåíêà ãëàäêîñòè; C ÷èñëî, äî êîòîðîãî âàðüèðóþòñÿ 0 ≤ c1 c2 ≤ C â ðåøåòå; U íîâàÿ îöåíêà ãëàäêîñòè íà ïîñëåäíåì ýòàïå. Äëÿ íà÷àëà ïðåäïîëîæèì, ÷òî òðåòüÿ ôàçà áûñòðåå ïåðâûõ äâóõ, è ñîïòèìèçèðóåì B è C . Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 7. Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè Òðåòüÿ ôàçà index calculus: ïîèñê ëîãàðèôìà Èäåè äðóãèõ àëãîðèòìîâ Àíàëèç ñëîæíîñòè: ãëàäêèå ÷èñëà è ãðóáàÿ îöåíêà Àíàëèç ñëîæíîñòè: òî÷íàÿ îöåíêà ×èñëà Lp [s ; c ] Âñïîìíèì îáîçíà÷åíèÿ: s 1−s Lp [s ; c ] = e c (log n) (log log n) . Ìû ñåé÷àñ âñ¼ áóäåì äåëàòü â òåðìèíàõ Lp [s ; c ], ïîýòîìó ñíà÷àëà óñòàíîâèì ïðîñòûå ñâîéñòâà Lp [s ; c ]. Çàìå÷àíèå: ìû áóäåì âêëþ÷àòü âñå êîíñòàíòíûå ìíîæèòåëè âíóòðü Lp , ò.å. ÷èòàòü Lp êàê O (. . .). Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 8. Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè Òðåòüÿ ôàçà index calculus: ïîèñê ëîãàðèôìà Èäåè äðóãèõ àëãîðèòìîâ Àíàëèç ñëîæíîñòè: ãëàäêèå ÷èñëà è ãðóáàÿ îöåíêà Àíàëèç ñëîæíîñòè: òî÷íàÿ îöåíêà ×èñëà Lp [s ; c ] Êðàéíèå ñëó÷àè: åñëè s = 0,Lp [s ; c ] = (log p)c (ïîëèíîìèàëüíàÿ ñëîæíîñòü); åñëè s = 1,Lp [s ; c ] = e c log p (ýêñïîíåíöèàëüíàÿ ñëîæíîñòü). Ñóììà: Lp [s1 ; c1 ] + Lp [s2 ; c2 ] = Lp [max{s1 , s2 }; max{c1 , c2 } + o (1)] (íà ñàìîì äåëå max{c1, c2} ýòî òîëüêî äëÿ ñëó÷àÿ s1 = s2, íî â ëþáîì ñëó÷àå ýòî âåðõíÿÿ îöåíêà, è íàì å¼ õâàòèò). Ïðîèçâåäåíèå: Lp [s1 ; c1 ] · Lp [s2 ; c2 ] = Lp [max{s1 , s2 }; c1 + c2 + o (1)] (òî æå çàìå÷àíèå ïðî c1 + c2). Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 9. Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè Òðåòüÿ ôàçà index calculus: ïîèñê ëîãàðèôìà Èäåè äðóãèõ àëãîðèòìîâ Àíàëèç ñëîæíîñòè: ãëàäêèå ÷èñëà è ãðóáàÿ îöåíêà Àíàëèç ñëîæíîñòè: òî÷íàÿ îöåíêà Êîëè÷åñòâî ãëàäêèõ ÷èñåë Èòàê, áóäåì îïòèìèçèðîâàòü B è C . Ñíà÷àëà ïîâòîðèì è ðàñøèðèì íåêîòîðûå ðàññóæäåíèÿ èç ïðîøëîé ëåêöèè. Òåîðåìà èç òåîðèè ÷èñåë (áåç äîêàçàòåëüñòâà): äëÿ ëþáîãî 0, åñëè X → ∞, u → ∞, ïðè÷¼ì X 1/u (log X )1+ , òî ψ(X , X 1/u ) = u −(1+o (1))u , X ãäå ψ(X , B ) êîëè÷åñòâî B -ãëàäêèõ ÷èñåë îò 1 äî X . Åñëè B = X 1/u , çíà÷èò, u = log X . log B Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 10. Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè Òðåòüÿ ôàçà index calculus: ïîèñê ëîãàðèôìà Èäåè äðóãèõ àëãîðèòìîâ Àíàëèç ñëîæíîñòè: ãëàäêèå ÷èñëà è ãðóáàÿ îöåíêà Àíàëèç ñëîæíîñòè: òî÷íàÿ îöåíêà Êîëè÷åñòâî ãëàäêèõ ÷èñåë Íàñ èíòåðåñóþò B è X âèäà Lp [s ; c ]; ïîäñòàâèì X = Lp [s ; c ] è B = Lp [sB ; cB ] â ýòó ôîðìóëó: ψ(X , B ) = u −(1+o (1))u = X c (log p)s (log log p)1−s +o (u ) c (log p)s (log log p)1−s − cB (log p)s (log log p)1−sB B cB (log p)s (log log p)1−sB = = B c s −sB (log log p )−s +sB (log log p +O (log log log p )) e (s −sB ) cB (log p) = c Lp s − sB ; −(s − sB ) cB 1 + o( ) . Ýòî âåðîÿòíîñòü òîãî, ÷òî ñëó÷àéíîå ÷èñëî îò 1 äî X áóäåò B -ãëàäêèì. Êàê îáû÷íî, ïðî çíà÷åíèÿ ìíîãî÷ëåíîâ ìû íè÷åãî íå çíàåì, òîëüêî ïðåäïîëàãàåì. Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 11. Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè Òðåòüÿ ôàçà index calculus: ïîèñê ëîãàðèôìà Èäåè äðóãèõ àëãîðèòìîâ Àíàëèç ñëîæíîñòè: ãëàäêèå ÷èñëà è ãðóáàÿ îöåíêà Àíàëèç ñëîæíîñòè: òî÷íàÿ îöåíêà Êîëè÷åñòâî ãëàäêèõ ÷èñåë Âñåãî â íàøåé áàçå ôàêòîðèçàöèè π(B ) ≈ log B ïðîñòûõ B ÷èñåë. Èòîãî, åñëè íàì íóæíû log B ñîîòíîøåíèé, à ãëàäêèì DB áóäåì êàæäîå uu ÷èñëî, ìû äîëæíû âûïîëíèòü DBu u log B òåñòîâ íà ãëàäêîñòü. Çäåñü ìû, êîíå÷íî, âîñïîëüçóåìñÿ ðåøåòîì è ïîëó÷èì, ÷òî îáùåå âðåìÿ íà ãåíåðàöèþ ñèñòåìû ñîîòíîøåíèé ðàâíî DBu u log B log log B . Íàéä¼ì ìèíèìóì ýòîãî çíà÷åíèÿ ïî B . Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 12. Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè Òðåòüÿ ôàçà index calculus: ïîèñê ëîãàðèôìà Èäåè äðóãèõ àëãîðèòìîâ Àíàëèç ñëîæíîñòè: ãëàäêèå ÷èñëà è ãðóáàÿ îöåíêà Àíàëèç ñëîæíîñòè: òî÷íàÿ îöåíêà Îïòèìèçàöèÿ Ïåðåéä¼ì ê ëîãàðèôìó: ìèíèìèçèðóåì òåïåðü log D + log B + u log u − log log B + log log log B . Âîçüì¼ì ïðîèçâîäíóþ ïî B è ïðèðàâíÿåì íóëþ: 1 + du log u + du = 0. B dB dB Âñïîìíèì, ÷òî u = log X : log B 1 − log X log u − log X = 0, B B (log B )2 B (log B )2 log X (1 + log log X − log log B ) = (log B )2. Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 13. Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè Òðåòüÿ ôàçà index calculus: ïîèñê ëîãàðèôìà Èäåè äðóãèõ àëãîðèòìîâ Àíàëèç ñëîæíîñòè: ãëàäêèå ÷èñëà è ãðóáàÿ îöåíêà Àíàëèç ñëîæíîñòè: òî÷íàÿ îöåíêà Îöåíêà Ìû ïîëó÷èëè, ÷òî log X (1 + log log X − log log B ) = (log B )2. Ïîñêîëüêó 1 log log B log log X , log X log X (1 + log log X − log log B ) log X log log X , è √ √ log X log X log log X e Be . Ðàç óæ ìû èùåì B â âèäå Lp [sB ; cB ], ýòî çíà÷èò, ÷òî îïòèìàëüíûé âûáîð ÷òî-òî â äóõå 1 B = Lp ; cB 2 äëÿ íåêîòîðîãî cB . Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 14. Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè Òðåòüÿ ôàçà index calculus: ïîèñê ëîãàðèôìà Èäåè äðóãèõ àëãîðèòìîâ Àíàëèç ñëîæíîñòè: ãëàäêèå ÷èñëà è ãðóáàÿ îöåíêà Àíàëèç ñëîæíîñòè: òî÷íàÿ îöåíêà Ñêîëüêî æå íà ñàìîì äåëå ïðîâåðîê Ìû òàì íè÷åãî íå ãîâîðèëè î D ; à îíî ñâÿçàíî ñ C è, â êîíå÷íîì ñ÷¼òå, B . Ïîýòîìó ñåé÷àñ îöåíèì ïîòî÷íåå. Ïóñòü B = Lp [sB ; cB + o (1)], C = Lp [sC ; cC + o (1)]; íàïîìèíàþ, ÷òî C ýòî îöåíêà íà c1 è c2. Ìû ïðîâåðÿåì âñå 0 ≤ c1 c2 ≤ C , òî åñòü âñåãî áóäåò ïðîâåðîê 1 C 2 = L [s ; 2c + o (1)]. 2 p C C À âñåãî ãëàäêèõ ÷èñåë íóæíî íàéòè B +C 1 = Lp [sB ; cB + o ( )] + Lp [sC ; cC + o ( )] = 1 = Lp [ max{sB , sC }; max{cB , cB } + o (1)]. Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 15. Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè Òðåòüÿ ôàçà index calculus: ïîèñê ëîãàðèôìà Èäåè äðóãèõ àëãîðèòìîâ Àíàëèç ñëîæíîñòè: ãëàäêèå ÷èñëà è ãðóáàÿ îöåíêà Àíàëèç ñëîæíîñòè: òî÷íàÿ îöåíêà Âûâîä òî÷íîé îöåíêè Åñëè Psm âåðîÿòíîñòü îáíàðóæèòü ãëàäêîå ÷èñëî, òî íóæíî âûáðàòü B è C òàê, ÷òîáû 1 C 2P ≥ B + C . 2 sm Êàêîãî ïîðÿäêà áóäóò ýòè ÷èñëà? Ìû áðàëè ÷èñëà âèäà x = (H + c1 )(H + c2 ), ãäå H = √p = Lp 1; 1 . 2 Ïîñêîëüêó J = H 2 − p ≤ 2H : x = J + (c1 + c2 )H + c1 c2 ≤ (2 + c1 + c2 )H + c1 c2 ≤ ≤ 2Lp [sC ; cC +o (1)]Lp 1; 1 +Lp [sC ; 2cC +o (1)] = Lp 1; 1 + o (1) 2 2 . Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 16. Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè Òðåòüÿ ôàçà index calculus: ïîèñê ëîãàðèôìà Èäåè äðóãèõ àëãîðèòìîâ Àíàëèç ñëîæíîñòè: ãëàäêèå ÷èñëà è ãðóáàÿ îöåíêà Àíàëèç ñëîæíîñòè: òî÷íàÿ îöåíêà Âûâîä òî÷íîé îöåíêè À âåðîÿòíîñòü Psm , êàê ìû óæå ãîâîðèëè, ψ(x , B ) −(1 − sB ) = Lp 1 − sB ; Psm = x 2cB + o (1) . Òîãäà óñëîâèå 1 C 2P ≥ B + C ïðåâðàùàåòñÿ â 2 −(1 − sB ) Lp [sC ; 2cC + o (1)]Lp 1 − sB ; 2cB + o (1) ≥ ≥ Lp [max{sB , sC }; max{cB , cB } + o (1)], òî åñòü Lp [sC ; 2cC + o (1)] ≥ max{sB , sC }; max{cB , cC }+o (1)]Lp 1 − sB ; (1 2c sB ) + o (1) ≥ Lp [ − . B Îòñþäà, êàê ìèíèìóì (òî÷íåå ïîçæå), sC ≥ max{sB , sC , 1 − sB }. Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 17. Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè Òðåòüÿ ôàçà index calculus: ïîèñê ëîãàðèôìà Èäåè äðóãèõ àëãîðèòìîâ Àíàëèç ñëîæíîñòè: ãëàäêèå ÷èñëà è ãðóáàÿ îöåíêà Àíàëèç ñëîæíîñòè: òî÷íàÿ îöåíêà Îïòèìèçàöèÿ Ñ äðóãîé ñòîðîíû, äàâàéòå âåðí¼ìñÿ ê âðåìåíè ðàáîòû. Ðåøåòî íàøå C ðàç ïðîâåðÿåò ïî C ÷èñåë (ôèêñèðóåò c1 è âàðüèðóåò c2), òî åñòü ðàáîòàåò âðåìÿ C· π(B )( + 1 log B )o (1) + C log log B = = Lp [sC ; cC ] (Lp [sB ; cB ] + Lp [sC ; cC ]) = max{sB , sC }; cC + max{cB , cC } + o (1)]. = Lp [ À íà ëèíåéíóþ àëãåáðó íóæíî âðåìÿ (B + C )2 = Lp [max{sB , sC }; max{2cB , 2cC } + o (1)]. Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 18. Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè Òðåòüÿ ôàçà index calculus: ïîèñê ëîãàðèôìà Èäåè äðóãèõ àëãîðèòìîâ Àíàëèç ñëîæíîñòè: ãëàäêèå ÷èñëà è ãðóáàÿ îöåíêà Àíàëèç ñëîæíîñòè: òî÷íàÿ îöåíêà Îïòèìèçàöèÿ  èòîãå ïåðâàÿ è âòîðàÿ ôàçû çàíèìàþò Lp [max{sB , sC }; max{2cB , 2cC } + o (1)]. Íóæíî ìèíèìèçèðîâàòü â ïåðâóþ î÷åðåäü max{sB , sC } ïðè óñëîâèè sC ≥ max{sB , 1 − sB }. Ïîëó÷àåòñÿ sB = sC = 2 . Ïðè ýòîì 1 −(1 − sB ) 1 1 + o (1) Psm = Lp 1 − sB ; + o (1) = Lp ; − 2cB 2 4cB . Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 19. Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè Òðåòüÿ ôàçà index calculus: ïîèñê ëîãàðèôìà Èäåè äðóãèõ àëãîðèòìîâ Àíàëèç ñëîæíîñòè: ãëàäêèå ÷èñëà è ãðóáàÿ îöåíêà Àíàëèç ñëîæíîñòè: òî÷íàÿ îöåíêà Îïòèìèçàöèÿ Ò.ê. Psm = Lp 1 ; − 4c1B + o (1) , óñëîâèå íà äîñòàòî÷íîå 2 êîëè÷åñòâî ãëàäêèõ ÷èñåë 1 C 2P ≥ B + C ïðåâðàùàåòñÿ â 2 1 1 1 1 + o (1) Lp [ ; 2cC +o (1)] ≥ Lp ; max{cB , cC } + o (1) Lp ; 2 2 2 4cB , 1 òî åñòü 2cC ≥ max{cB , cC } + 4c . B Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 20. Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè Òðåòüÿ ôàçà index calculus: ïîèñê ëîãàðèôìà Èäåè äðóãèõ àëãîðèòìîâ Àíàëèç ñëîæíîñòè: ãëàäêèå ÷èñëà è ãðóáàÿ îöåíêà Àíàëèç ñëîæíîñòè: òî÷íàÿ îöåíêà Îïòèìèçàöèÿ À ñóììàðíîå âðåìÿ ðàáîòû àëãîðèòìà ïðåâðàùàåòñÿ â Lp [max{sB , sC }; max{2cB , 2cC } + o (1)]. Îïòèìèçèðóÿ ýòî ïðè óñëîâèè 2cC ≥ max{cB , cC } + 4c1B , ïîëó÷èì cB = cC = 1 . 2  èòîãå B = C = Lp 2 ; 1 + o (1) , à ñóììàðíîå âðåìÿ 1 2 ðàáîòû ïåðâîé è âòîðîé ôàç ñîñòàâëÿåò 1 Lp ; 1 + o (1) . 2 Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 21. Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè Òðåòüÿ ôàçà index calculus: ïîèñê ëîãàðèôìà Èäåè äðóãèõ àëãîðèòìîâ Àíàëèç ñëîæíîñòè: ãëàäêèå ÷èñëà è ãðóáàÿ îöåíêà Àíàëèç ñëîæíîñòè: òî÷íàÿ îöåíêà Âðåìÿ ðàáîòû òðåòüåé ôàçû àëãîðèòìà Ìû ïðåäïîëàãàëè, ÷òî òðåòüÿ ôàçà áóäåò áûñòðåå ïåðâûõ äâóõ. Âåðíî ëè ýòî? Íàïîìèíàþ, ÷òî ìû âûáèðàåì w è ïðîâåðÿåì yg w íà U -ãëàäêîñòü, ïîêà íå ïîïàä¼ì. Äàâàéòå îöåíèì; ó íàñ òåïåðü íîâûé ïàðàìåòð U = Lp [sU ; cU + o (1)], à âåðîÿòíîñòü íàéòè ïîäõîäÿùåå ÷èñëî w áóäåò Pw : P = ψ(p , U ) = L 1 − s ;− 1 − sU + o (1) . w p U p cU Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 22. Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè Òðåòüÿ ôàçà index calculus: ïîèñê ëîãàðèôìà Èäåè äðóãèõ àëãîðèòìîâ Àíàëèç ñëîæíîñòè: ãëàäêèå ÷èñëà è ãðóáàÿ îöåíêà Àíàëèç ñëîæíîñòè: òî÷íàÿ îöåíêà Âðåìÿ ðàáîòû òðåòüåé ôàçû àëãîðèòìà Åñëè ìû ïîëüçóåìñÿ ECM, òî êàæäîå ÷èñëî ïðîâåðÿåòñÿ çà √ e (2+o (1)) log U log log U log n)2 = ( sU = Lp 2 ; 2sU cU + o (1) . À íàì íóæíî ïðîâåñòè P1W òàêèõ òåñòîâ, ò.å. îáùåå âðåìÿ íà ïîèñê w ðàâíî sU 1 − sU Lp 2 ; 2sU cU + o (1) · Lp 1 − sU ; cU + o (1) = sU = Lp max{ , 1 − sU }; 1 − sU + 2s c + o (1) 2 c U U U . Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 23. Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè Òðåòüÿ ôàçà index calculus: ïîèñê ëîãàðèôìà Èäåè äðóãèõ àëãîðèòìîâ Àíàëèç ñëîæíîñòè: ãëàäêèå ÷èñëà è ãðóáàÿ îöåíêà Àíàëèç ñëîæíîñòè: òî÷íàÿ îöåíêà Âðåìÿ ðàáîòû òðåòüåé ôàçû àëãîðèòìà Èòàê, íóæíî îïòèìèçèðîâàòü s Lp max{ U , 1 − sU }; 1 − sU + 2s c + o (1) . 2 cU U U Ìèíèìèçèðóÿ max{ s2U , 1 − sU }, ïîëó÷èì sU = 2 , à 3 ìèíèìèçèðóÿ 3c1U + 2 cU /3, ïîëó÷èì cU = 1 1/3. Èòàê: 3 2 ; 1 1/3 + o (1) , U = Lp 3 3 à îáùåå âðåìÿ ðàáîòû òðåòüåé ôàçû ñîñòàâëÿåò 1 Lp ; 31/3 + o (1) . 3 Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 24. Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè Òðåòüÿ ôàçà index calculus: ïîèñê ëîãàðèôìà Èäåè äðóãèõ àëãîðèòìîâ Àíàëèç ñëîæíîñòè: ãëàäêèå ÷èñëà è ãðóáàÿ îöåíêà Àíàëèç ñëîæíîñòè: òî÷íàÿ îöåíêà Àíàëèç Ó íàñ ïîëó÷èëîñü Lp 1 ; 31/3 + o (1) , ÷òî ãîðàçäî áûñòðåå, 3 ÷åì Lp 2 ; 1 + o (1) (âðåìÿ ïåðâîé è âòîðîé ôàçû). 1 Íî òàê ïîëó÷èëîñü òîëüêî áëàãîäàðÿ ECM; åñëè èñïîëüçîâàòü äëÿ ïðîâåðêè íà ãëàäêîñòü ìåòîä Ïîëëàðäà, ïîëó÷èòñÿ òî æå ñàìîå Lp 1 ; 1 + o (1) , à ñ òðèâèàëüíûì 2 àëãîðèòìîì ïðîâåðêè (ïðîáíûì äåëåíèåì) è âîâñå √ Lp 1 ; 2 + o (1) . 2 Óïðàæíåíèå. Äîêàçàòü ýòè îöåíêè. Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 25. Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè Òðåòüÿ ôàçà index calculus: ïîèñê ëîãàðèôìà Èäåè äðóãèõ àëãîðèòìîâ Àíàëèç ñëîæíîñòè: ãëàäêèå ÷èñëà è ãðóáàÿ îöåíêà Àíàëèç ñëîæíîñòè: òî÷íàÿ îöåíêà Íî ýòî åù¼ íå âñ¼ Íóæíî åù¼ îöåíèòü ëîãàðèôìèðîâàíèå ¾ñðåäíåãî ðàçìåðà¿ ïðîñòûõ ÷èñåë. Íàì√ êàæäîãî òàêîãî ïðîñòîãî m íàäî íàéòè B -ãëàäêîå äëÿ u p/m. Çäåñü u ÷èñëî ïîðÿäêà Lp [1; 1 ], à 2 âåðîÿòíîñòü âûáðàòü ãëàäêîå u Lp 2 ; − 1 + o (1) . 1 2 Ò.å. íóæíî ïðîãíàòü ÷åðåç ðåøåòî Lp 2 ; 1 + o (1) 1 2 âàðèàíòîâ; ýòî áûñòðåå ïåðâîé è âòîðîé ôàçû. À ñàìûé ïîñëåäíèé øàã íàéòè òàêîå v √p, ÷òî uvm (mod p ) áóäåò B -ãëàäêèì. Çäåñü v òîæå ïîðÿäêà Lp [1; 2 ], è 1 òî÷íî òàê æå ïîëó÷àåòñÿ ñëîæíîñòü Lp 2 ; 2 + o (1) . 1 1 Òàê ÷òî ýòîò øàã îêàçàëñÿ ñëîæíåå, ÷åì ¾îñíîâíàÿ ÷àñòü¿ òðåòüåé ôàçû, íî âñ¼ ðàâíî áûñòðåå ïåðâîé è âòîðîé ôàçû. Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 26. Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè Òðåòüÿ ôàçà index calculus: ïîèñê ëîãàðèôìà Èäåè äðóãèõ àëãîðèòìîâ Àíàëèç ñëîæíîñòè: ãëàäêèå ÷èñëà è ãðóáàÿ îöåíêà Àíàëèç ñëîæíîñòè: òî÷íàÿ îöåíêà Òåïåðü âñ¼ Òåïåðü âñ¼. Óôôô. Âàæíîå çàìå÷àíèå: îäíè è òå æå ðåçóëüòàòû ïåðâîé è âòîðîé ôàçû ìîæíî èñïîëüçîâàòü äëÿ âû÷èñëåíèÿ ìíîãèõ äèñêðåòíûõ ëîãàðèôìîâ; êàæäûé íîâûé ëîãàðèôì áóäåò ñòîèòü êàê òðåòüÿ ôàçà, à íå êàê ïåðâàÿ+âòîðàÿ, ÷òî äåøåâëå. Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 27. Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè Number eld sieve Èäåè äðóãèõ àëãîðèòìîâ Îò ðåøåòà ê ðåø¼òêå Àëãîðèòì Âèäåìàííà Outline 1 Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè Òðåòüÿ ôàçà index calculus: ïîèñê ëîãàðèôìà Àíàëèç ñëîæíîñòè: ãëàäêèå ÷èñëà è ãðóáàÿ îöåíêà Àíàëèç ñëîæíîñòè: òî÷íàÿ îöåíêà 2 Èäåè äðóãèõ àëãîðèòìîâ Number eld sieve Îò ðåøåòà ê ðåø¼òêå Àëãîðèòì Âèäåìàííà Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 28. Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè Number eld sieve Èäåè äðóãèõ àëãîðèòìîâ Îò ðåøåòà ê ðåø¼òêå Àëãîðèòì Âèäåìàííà Ðåøåòî ÷èñëîâîãî ïîëÿ Ïîëèíîìèàëüíîå ðåøåòî íå ïðåäåë ìå÷òàíèé. Åù¼ ýôôåêòèâíåå îêàçûâàåòñÿ ìåòîä ðåøåòà ÷èñëîâîãî ïîëÿ (number eld sieve). Ïî ñóòè ìåòîä àíàëîãè÷åí êâàäðàòè÷íîìó ðåøåòó, íî òåïåðü âñ¼ ïðîèñõîäèò íàä äðóãèìè êîëüöàìè. Ìû ðàññìîòðèì òîëüêî îñíîâíóþ èäåþ, áåçî âñÿêèõ äîêàçàòåëüñòâ. Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 29. Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè Number eld sieve Èäåè äðóãèõ àëãîðèòìîâ Îò ðåøåòà ê ðåø¼òêå Àëãîðèòì Âèäåìàííà Èäåÿ Ìû ðàññìîòðèì ðåøåòî ÷èñëîâîãî ïîëÿ äëÿ çàäà÷è ðàçëîæåíèÿ ÷èñåë íà ìíîæèòåëè. Ìû õîòèì ðàçëîæèòü n. Ïðåäïîëîæèì, ÷òî ó íàñ åñòü íåïðèâîäèìûé ìíîãî÷ëåí f (x ) è ÷èñëî m, òàêîå, ÷òî f (m) ≡ 0 (mod n). Ðàññìîòðèì êîìïëåêñíûé êîðåíü α ìíîãî÷ëåíà f (x ) è êîëüöî Z[α]. f (m) ≡ 0 (mod n) è f (α) = 0, ñëåäîâàòåëüíî, åñòü åñòåñòâåííûé ãîìîìîðôèçì êîëåö ϕ : Z[α] → Zn , êîòîðûé îòîáðàæàåò α â m. Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 30. Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè Number eld sieve Èäåè äðóãèõ àëãîðèòìîâ Îò ðåøåòà ê ðåø¼òêå Àëãîðèòì Âèäåìàííà Èäåÿ Òåïåðü ïðåäïîëîæèì, ÷òî ó íàñ åñòü ìíîæåñòâî òàêèõ ïàð ÷èñåë (a, b), ÷òî: ïðîèçâåäåíèå âñåõ (a − αb) êâàäðàò â êîëüöå Z [α], ñêàæåì, γ2 ; ïðîèçâåäåíèå âñåõ (a − mb) êâàäðàò â Z, ñêàæåì, v 2 . Çàìåíèì â âûðàæåíèè äëÿ γ α íà m; ïîëó÷èì ϕ(γ) ≡ u mod n. Òåïåðü u 2 ≡ ϕ(γ)2 = ϕ γ2 = ϕ (a − αb) = = (ϕ (a − αb)) = mod n), (a − mb) = v 2 ( è ìû òåì ñàìûì ñìîæåì ðàçëîæèòü n íà ìíîæèòåëè. Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 31. Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè Number eld sieve Èäåè äðóãèõ àëãîðèòìîâ Îò ðåøåòà ê ðåø¼òêå Àëãîðèòì Âèäåìàííà Ìíîãî÷ëåí f Íî îòêóäà âçÿòü f ? Îí ñàì ñîáîé ïîÿâèòñÿ. Âûáåðåì ñòåïåíü d , ïîëîæèì m = n1/d . Çàïèøåì n ïî îñíîâàíèþ m: n = md + cd −1 md −1 + . . . + c0 . Âîò è ìíîãî÷ëåí: f (x ) = x d + cd −1 x d −1 + . . . + c0 . Îòäåëüíûé âîïðîñ: áóäåò ëè îí íåïðèâîäèìûì? Åñëè íå áóäåò, òî n = f (m) = g (m)h(m), è ìû óæå (ñ âûñîêîé âåðîÿòíîñòüþ) ðàçëîæèëè n. Òàê ÷òî áóäåò. :) Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 32. Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè Number eld sieve Èäåè äðóãèõ àëãîðèòìîâ Îò ðåøåòà ê ðåø¼òêå Àëãîðèòì Âèäåìàííà ×èñëà a è b Îòêóäà âçÿòü a è b? Èç òàêîãî æå ðåøåòà. ×òîáû (a − mb) áûëî êâàäðàòîì, íóæíî ðåøèòü ëèíåéíóþ ñèñòåìó íà êîýôôèöèåíòû, êàê ðàíüøå. ×òîáû (a − αb) áûëî êâàäðàòîì, íóæíî ðåøèòü ëèíåéíóþ ñèñòåìó íà êîýôôèöèåíòû â êîëüöå Z[α], åñëè ýòî õîðîøåå êîëüöî (ñ åäèíñòâåííîñòüþ ðàçëîæåíèÿ). Õîðîøåå êîëüöî ìîæíî äîáûòü (áåç ä-âà). Òåïåðü ìîæíî ïðîñòî îáúåäèíèòü äâå ñèñòåìû íàì íóæíî, ÷òîáû îáà ñâîéñòâà âûïîëíÿëèñü. Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 33. Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè Number eld sieve Èäåè äðóãèõ àëãîðèòìîâ Îò ðåøåòà ê ðåø¼òêå Àëãîðèòì Âèäåìàííà Îöåíêà ñëîæíîñòè ×åì õîðîøî ðåøåòî ÷èñëîâîãî ïîëÿ? Íàøè îöåíêè áûëè îñíîâàíû íà X êîëè÷åñòâå ÷èñåë, èç êîòîðûõ ìîæíî ñäåëàòü êâàäðàò. Ó íàñ áûëî X = n1/2+ . À â number eld sieve ïîëó÷àåòñÿ X = e c (log n)2 3(log log n)1 3 , / / ÷òî äà¼ò îáùóþ îöåíêó ñëîæíîñòè 1 Ln ; c = e (c +o (1))(log n) (log log n) . 1 3 2 3 / / 3 Òåîðåòè÷åñêèé ðåêîðä: c ≈ 1, 902, èç àíàëèçà íàøåãî àëãîðèòìà ïîëó÷èëîñü áû Lp ; 1 64 1/3 + o (1) ≈ L 1 ; 1, 923 + o (1) . 3 9 p 3 Íî ãëàâíîå îñíîâíàÿ àñèìïòîòèêà ñòàëà ëó÷øå. Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 34. Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè Number eld sieve Èäåè äðóãèõ àëãîðèòìîâ Îò ðåøåòà ê ðåø¼òêå Àëãîðèòì Âèäåìàííà Number eld sieve äëÿ äèñêðåòíîãî ëîãàðèôìà Àíàëîãè÷íûå ñîîáðàæåíèÿ ïðîõîäÿò è äëÿ çàäà÷è äèñêðåòíîãî ëîãàðèôìà, è òîæå âðåìÿ ðàáîòû ïîëó÷àåòñÿ Lp ; 1 64 1/3 + o (1) ≈ L 1 ; 1, 923 + o (1) . 3 9 p 3 Íà ïðàêòèêå ðåøåòî ÷èñëîâîãî ïîëÿ íà÷èíàåò âûèãðûâàòü, ãäå-òî íà÷èíàÿ ñî 100-çíà÷íûõ ÷èñåë. Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 35. Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè Number eld sieve Èäåè äðóãèõ àëãîðèòìîâ Îò ðåøåòà ê ðåø¼òêå Àëãîðèòì Âèäåìàííà Ðåø¼òêè Ìû óæå ãîâîðèëè, íàñêîëüêî âàæíû â êðèïòîãðàôèè ðåø¼òêè, à òî÷íåå, çàäà÷à ïîèñêà êðàò÷àéøåãî âåêòîðà. Îêàçûâàåòñÿ, ñ èõ ïîìîùüþ ìîæíî è ÷èñëà ðàñêëàäûâàòü! Schnorr, 1993; Adleman, 1995; Schnorr, 2008. Ïîêà (êàæåòñÿ) ýòî íåäîñòàòî÷íî ïðàêòè÷íûé ñïîñîá, õóæå number eld sieve, íî êòî çíàåò, ê ÷åìó ïðèä¼ò... Ìû âêðàòöå îïèøåì ìåòîä, áåç ïîäðîáíûõ äîêàçàòåëüñòâ è îöåíîê ñëîæíîñòè. Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 36. Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè Number eld sieve Èäåè äðóãèõ àëãîðèòìîâ Îò ðåøåòà ê ðåø¼òêå Àëãîðèòì Âèäåìàííà Ðåø¼òêè Áóäåì îáîçíà÷àòü ñêàëÿðíîå ïðîèçâåäåíèå êàê x , y . Ïóñòü B = {b1, . . . , bm } íàáîð ëèíåéíî íåçàâèñèìûõ âåêòîðîâ â Rn . Òîãäà ðåø¼òêà ðàçìåðíîñòè m ýòî íàáîð ëèíåéíûõ êîìáèíàöèé bi ñ öåëûìè êîýôôèöèåíòàìè: L = Zb1 + Zb2 + . . . + Zbm . Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 37. Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè Number eld sieve Èäåè äðóãèõ àëãîðèòìîâ Îò ðåøåòà ê ðåø¼òêå Àëãîðèòì Âèäåìàííà Ðåø¼òêè Âîò òèïè÷íàÿ ðåø¼òêà. Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 38. Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè Number eld sieve Èäåè äðóãèõ àëãîðèòìîâ Îò ðåøåòà ê ðåø¼òêå Àëãîðèòì Âèäåìàííà Ðåø¼òêè Âîò òèïè÷íàÿ ðåø¼òêà. Áàçèñ ðåø¼òêè ýòî ìíîæåñòâî ëèíåéíî íåçàâèñèìûõ âåêòîðîâ, å¼ ïîðîæäàþùèõ. Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 39. Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè Number eld sieve Èäåè äðóãèõ àëãîðèòìîâ Îò ðåøåòà ê ðåø¼òêå Àëãîðèòì Âèäåìàííà Ðåø¼òêè Âîò òèïè÷íàÿ ðåø¼òêà. Áàçèñ ðåø¼òêè ýòî ìíîæåñòâî ëèíåéíî íåçàâèñèìûõ âåêòîðîâ, å¼ ïîðîæäàþùèõ. Âîò äðóãîé áàçèñ òîé æå ðåø¼òêè. Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 40. Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè Number eld sieve Èäåè äðóãèõ àëãîðèòìîâ Îò ðåøåòà ê ðåø¼òêå Àëãîðèòì Âèäåìàííà Ðåø¼òêè Âîò òèïè÷íàÿ ðåø¼òêà. Áàçèñ ðåø¼òêè ýòî ìíîæåñòâî ëèíåéíî íåçàâèñèìûõ âåêòîðîâ, å¼ ïîðîæäàþùèõ. Âîò äðóãîé áàçèñ òîé æå ðåø¼òêè. À âîò åù¼ îäèí. Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 41. Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè Number eld sieve Èäåè äðóãèõ àëãîðèòìîâ Îò ðåøåòà ê ðåø¼òêå Àëãîðèòì Âèäåìàííà Ðåø¼òêè Áàçèñ ìîæåò ñîñòîÿòü èç î÷åíü äëèííûõ âåêòîðîâ, äàæå åñëè â ðåø¼òêå åñòü êîðîòêèå. Íàéòè êîðîòêèé âåêòîð ðåø¼òêè ñëîæíàÿ çàäà÷à; èìåííî îíà íàì ñåé÷àñ è ïîíàäîáèòñÿ. Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 42. Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè Number eld sieve Èäåè äðóãèõ àëãîðèòìîâ Îò ðåøåòà ê ðåø¼òêå Àëãîðèòì Âèäåìàííà Àëãîðèòì L3 Ìû èçó÷àëè àëãîðèòì LLL ñ êîíñòàíòíûì ïàðàìåòðîì δ, êîòîðûé óìååò ðåøàòün çàäà÷ó ïîèñêà êðàò÷àéøåãî âåêòîðà 1 ñ òî÷íîñòüþ δ − 1 − 2 . − 4 n Ìîæíî ðàññìîòðåòü δ = 1 + 3 n 1 è ïîëó÷èòü òî÷íîñòü n 4 4 − √2 3 . Åñòü åù¼ àëãîðèòì Øíîððà, êîòîðûé äîñòèãàåò 2 O n log log n „ « ( ) ñóáýêñïîíåíöèàëüíîé òî÷íîñòè: 2 log n . Òåïåðü ïðè ÷¼ì òóò ôàêòîðèçàöèÿ. Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 43. Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè Number eld sieve Èäåè äðóãèõ àëãîðèòìîâ Îò ðåøåòà ê ðåø¼òêå Àëãîðèòì Âèäåìàííà Ôàêòîðèçàöèÿ ÷åðåç äèîôàíòîâû ïðèáëèæåíèÿ Ïóñòü íàì íóæíî ðàçëîæèòü n. Âûïèøåì ñïèñîê ïðîñòûõ ÷èñåë p1, . . . , pt , ìåíüøèõ (log n)α (ýòî áûñòðî). Ïðåäïîëîæèì, ÷òî ìû ìîæåì íàéòè t + 2 òàêèõ âåêòîðà e = (e1 , . . . , et ) ∈ Zt , ÷òî t ei log pi − log n o (1) ≤ n−c pt , i =1 t |ei log pi | ≤ (2c − 1) log n + 2 log pt i =1 (ò.å. îíè êîðîòêèå è õîðîøî ïðèáëèæàþò (log n, . . . , log n)). Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 44. Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè Number eld sieve Èäåè äðóãèõ àëãîðèòìîâ Îò ðåøåòà ê ðåø¼òêå Àëãîðèòì Âèäåìàííà Ôàêòîðèçàöèÿ ÷åðåç äèîôàíòîâû ïðèáëèæåíèÿ Ðàññìîòðèì äëÿ êàæäîãî âåêòîðà e = (e1, . . . , et ) äâà ÷èñëà: e |e | u= pj j , v= pj j . ej 0 ej 0 Òîãäà (êàê ïîêàçàë Øíîðð; áåç ä-âà) u õîðîøî ïðèáëèæàåò vn: 1+o (1) |u − vn| ≤ pt , à çíà÷èò, |u − vn| áóäåò pt -ãëàäêèì! Ðàçëîæèâ, ìû íàéä¼ì (ñêîðåå âñåãî) íåòðèâèàëüíîå ñîîòíîøåíèå t pjej = ± pjbj (mod n). ej 0 j =1 Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 45. Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè Number eld sieve Èäåè äðóãèõ àëãîðèòìîâ Îò ðåøåòà ê ðåø¼òêå Àëãîðèòì Âèäåìàííà Ôàêòîðèçàöèÿ ÷åðåç äèîôàíòîâû ïðèáëèæåíèÿ Èòàê, ìû íàøëè ïî õîðîøåìó âåêòîðó ñîîòíîøåíèå t pjej 1 = (− )b0 pjbj mod n). ( ej 0 j =1 Åñëè ìû íàéä¼ì t + 2 õîðîøèõ âåêòîðà, ìû ñìîæåì ðåøèòü ñèñòåìó è íàéòè íåòðèâèàëüíîå ñîîòíîøåíèå ïî ìîäóëþ äâà ìåæäó âåêòîðàìè ýêñïîíåíò (a0 , . . . , at ) + (b0 , . . . , bt ), ãäå a0 = 0, aj = [ej 0]ej . À ýòî ïîçâîëèò íàì íàéòè íåòðèâèàëüíîå ðàâåíñòâî x 2 ≡ y 2 (mod n), òî÷íî êàê â ìåòîäå Êðàé÷èêà; îòñþäà è ïîÿâèòñÿ ðàçëîæåíèå n. Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 46. Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè Number eld sieve Èäåè äðóãèõ àëãîðèòìîâ Îò ðåøåòà ê ðåø¼òêå Àëãîðèòì Âèäåìàííà Ôàêòîðèçàöèÿ ÷åðåç ðåø¼òêè Íî êàê íàéòè òàêèå ïðèáëèæåíèÿ? Âûïèøåì ñïèñîê ïðîñòûõ ÷èñåë p1, . . . , pt , ìåíüøèõ (log n)α (ýòî áûñòðî). Ðàññìîòðèì ðåø¼òêó Lα,c ⊂ Rt +2:  log 2 0 0 . . . 0 nc log 2   0 log 3 0 . . . 0 nc log 3   0 0 log 5 . . . 0 nc log 5     . ... ...  .   .   0 0 0 . . . log pt n c log pt Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 47. Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè Number eld sieve Èäåè äðóãèõ àëãîðèòìîâ Îò ðåøåòà ê ðåø¼òêå Àëãîðèòì Âèäåìàííà Ôàêòîðèçàöèÿ ÷åðåç ðåø¼òêè Çàòåì ìû â ýòîé ðåø¼òêå íàéä¼ì t + 2 âåêòîðà, äîñòàòî÷íî áëèçêèõ ê (0, 0, . . . , 0, nc log n). Øíîðð ïîêàçàë, ÷òî ìîæíî òàê ïîäîáðàòü ïàðàìåòðû ¾áëèçîñòè âåêòîðîâ¿, ÷òî îíè ïîâëåêóò êàê ðàç òðåáóåìîå ðàçëîæåíèå. Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 48. Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè Number eld sieve Èäåè äðóãèõ àëãîðèòìîâ Îò ðåøåòà ê ðåø¼òêå Àëãîðèòì Âèäåìàííà Àëãîðèòì Âèäåìàííà È íàïîñëåäîê ïîâòîðèì àëãîðèòì Âèäåìàííà ñ îáúÿñíåíèåì àëãîðèòìà Áåðëåêàìïà-Ìåññè (ïîòîìó ÷òî íå óñïåëè ðàçîáðàòü Áåðëåêàìïà-Ìåññè ðàíüøå). Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 49. Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè Number eld sieve Èäåè äðóãèõ àëãîðèòìîâ Îò ðåøåòà ê ðåø¼òêå Àëãîðèòì Âèäåìàííà Àëãîðèòì Âèäåìàííà Çàäà÷à: íàéòè òàêîé âåêòîð w, ÷òî Aw = 0. Ðàññìîòðèì ñëó÷àéíûå âåêòîðû x è z, à òàêæå y = Az. Ðàññìîòðèì x y, x Ay, x A2 y, x A3 y, . . . Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 50. Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè Number eld sieve Èäåè äðóãèõ àëãîðèòìîâ Îò ðåøåòà ê ðåø¼òêå Àëãîðèòì Âèäåìàííà Ìèíèìàëüíûé ìíîãî÷ëåí Âñïîìíèì ëèíåéíóþ àëãåáðó: ó ìàòðèöû A ðàçìåðà n × n åñòü ìèíèìàëüíûé ìíîãî÷ëåí p ñòåïåíè n0 ≤ n, äëÿ êîòîðîãî p(A) = 0. Ïóñòü ìèíèìàëüíûé ìíîãî÷ëåí p: n=0 pi Ai = 0. Çíà÷èò, i 0 n0 pi x Ai y = 0, i =0 è ýòîò ìíîãî÷ëåí òàêæå ïîðîæäàåò è íàøó ïîñëåäîâàòåëüíîñòü. Êàê íàéòè ïîðîæäàþùèé ìíîãî÷ëåí? Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 51. Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè Number eld sieve Èäåè äðóãèõ àëãîðèòìîâ Îò ðåøåòà ê ðåø¼òêå Àëãîðèòì Âèäåìàííà Àëãîðèòì Áåðëåêàìïà-Ìåññè Ðàññìîòðèì ïîñëåäîâàòåëüíîñòü s äëèíû n + 1: s n+1 = s0 s1 . . . sn−1 sn . Ïóñòü (ïî ïðåäïîëîæåíèþ èíäóêöèè) p(X ) = 1 + c1 X + . . . + cn X L ïîðîæäàåò ïîñëåäîâàòåëüíîñòü s n = s0s1 . . . sn−1 íà ïðåäûäóùåì øàãå. Ðàññìîòðèì ðàçíèöó L dn = sn ⊕ ci sN −i . i =1 Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 52. Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè Number eld sieve Èäåè äðóãèõ àëãîðèòìîâ Îò ðåøåòà ê ðåø¼òêå Àëãîðèòì Âèäåìàííà Àëãîðèòì Áåðëåêàìïà-Ìåññè Åñëè dn = 0, âñ¼ õîðîøî, áåð¼ì L(s n+1) = L. Åñëè dn = 1, ðàññìîòðèì áëèæàéøèé ïðåäûäóùèé ìíîãî÷ëåí q, êîòîðûé îòëè÷àëñÿ, ò.å. ìàêñèìàëüíîå òàêîå m n, ÷òî deg(ps m ) deg(ps n ). Òåïåðü, åñëè deg p n/2, òî p = p, à åñëè deg p ≤ n/2, òî deg p = n + 1 − deg p, è p (X ) = p(X ) + q (X ) · X n−m . Óïðàæíåíèå. Äîêàçàòü, ÷òî â ðåçóëüòàòå äåéñòâèòåëüíî ïîëó÷àåòñÿ ìíîãî÷ëåí, ïîðîæäàþùèé s n . Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 53. Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè Number eld sieve Èäåè äðóãèõ àëãîðèòìîâ Îò ðåøåòà ê ðåø¼òêå Àëãîðèòì Âèäåìàííà Àëãîðèòì Âèäåìàííà Èòàê, ìû ïðèìåíÿåì àëãîðèòì Áåðëåêàìïà-Ìåññè è ïîëó÷àåì òàêèå êîýôôèöèåíòû qi , ÷òî n0 qi x Ai y = 0. i =0 Ìû íàäååìñÿ, ÷òî ïðè ýòîì çàîäíî è n0 n0 qi Ai y = 0, è, ò.ê. y = Az, M qi Ai z 0 = , i =0 i =0 è ìû íàäååìñÿ, ÷òî w = n=0 qi Ai z = 0, âåäü òîãäà ýòî è i 0 åñòü ðåøåíèå. Íàøè íàäåæäû ÷àñòî (ïî x è y) áóäóò îïðàâäûâàòüñÿ. Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà
  • 54. Index calculus: òðåòüÿ ôàçà è îöåíêà ñëîæíîñòè Number eld sieve Èäåè äðóãèõ àëãîðèòìîâ Îò ðåøåòà ê ðåø¼òêå Àëãîðèòì Âèäåìàííà Ñïàñèáî çà âíèìàíèå! Lecture notes è ñëàéäû áóäóò ïîÿâëÿòüñÿ íà ìîåé homepage: http://logic.pdmi.ras.ru/∼sergey/ Ïðèñûëàéòå ëþáûå çàìå÷àíèÿ, ðåøåíèÿ óïðàæíåíèé, íîâûå ÷èñëåííûå ïðèìåðû è ïðî÷åå ïî àäðåñàì: sergey@logic.pdmi.ras.ru, snikolenko@gmail.com Çàõîäèòå â ÆÆ smartnik. Ñåðãåé Íèêîëåíêî Ïîèñê äèñêðåòíîãî ëîãàðèôìà