SlideShare a Scribd company logo
1 of 54
Download to read offline
Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë
    Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà




         Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì




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

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



                      Ñåðãåé Íèêîëåíêî    Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë   Àðèôìåòèêà
          Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà    Ñòåïåíè è êîðíè
                                                Äèñêðåòíûé ëîãàðèôì

Outline




  1   Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë
        Àðèôìåòèêà
        Ñòåïåíè è êîðíè
        Äèñêðåòíûé ëîãàðèôì
  2   Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà
        RSA
        Êðèïòîñèñòåìà Ðàáèíà


                            Ñåðãåé Íèêîëåíêî    Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë   Àðèôìåòèêà
       Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà    Ñòåïåíè è êîðíè
                                             Äèñêðåòíûé ëîãàðèôì

Àðèôìåòèêà ïî ìîäóëþ                  n

      Z+
       n  ýòî ãðóïïà ïî ñëîæåíèþ.
      Z∗  ýòî ãðóïïà ïî óìíîæåíèþ.
       n
      Ñêîëüêî ýëåìåíòîâ â Z∗ ?
                           n




                         Ñåðãåé Íèêîëåíêî    Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë   Àðèôìåòèêà
       Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà    Ñòåïåíè è êîðíè
                                             Äèñêðåòíûé ëîãàðèôì

Àðèôìåòèêà ïî ìîäóëþ                  n

      Z+
       n  ýòî ãðóïïà ïî ñëîæåíèþ.
      Z∗  ýòî ãðóïïà ïî óìíîæåíèþ.
       n
      Ñêîëüêî ýëåìåíòîâ â Z∗ ?
                             n
      Îáðàòèìûå ýëåìåíòû â Zn  ýòî âçàèìíî ïðîñòûå ñ n.
      Èõ âñåãî φ(n)  ôóíêöèÿ Ýéëåðà. Åñëè p è q ïðîñòûå, òî
              φ(p ) = p − 1,   φ(pq ) = (p − 1)(q − 1).




                         Ñåðãåé Íèêîëåíêî    Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë   Àðèôìåòèêà
       Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà    Ñòåïåíè è êîðíè
                                             Äèñêðåòíûé ëîãàðèôì

Àðèôìåòèêà ïî ìîäóëþ                  n

      Z+
       n  ýòî ãðóïïà ïî ñëîæåíèþ.
      Z∗  ýòî ãðóïïà ïî óìíîæåíèþ.
       n
      Ñêîëüêî ýëåìåíòîâ â Z∗ ?
                            n
      Åñëè p  ïðîñòîå, òî Zp  ýòî ïîëå: ó êàæäîãî ýëåìåíòà,
      êðîìå íóëÿ, åñòü îáðàòíûé ïî óìíîæåíèþ.
      Íàä ïîëåì âåðíû ïîëåçíûå ôàêòû èç àëãåáðû: íàïðèìåð,
      íàä ïîëåì ìíîãî÷ëåí ñòåïåíè d èìååò íå áîëåå d êîðíåé.




                         Ñåðãåé Íèêîëåíêî    Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë           Àðèôìåòèêà
       Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà            Ñòåïåíè è êîðíè
                                                     Äèñêðåòíûé ëîãàðèôì

Àðèôìåòèêà ïî ìîäóëþ                  n

      Íà âñÿêèé ñëó÷àé åù¼ âñïîìíèì, ÷òî áûâàþò êîíå÷íûå
      ïîëÿ ñ pm ýëåìåíòàìè.
      Èõ ìîæíî ðàññìàòðèâàòü êàê ïîëÿ ìíîãî÷ëåíîâ ïî ìîäóëþ
      òîãî èëè èíîãî íåïðèâîäèìîãî ìíîãî÷ëåíà.
      Íàïðèìåð, ïîëå F16 ñîñòîèò èç ñëåäóþùèõ ýëåìåíòîâ:
            0, x 2            x
                                3         2
                                         x +x
                                               3

            1      x +1
                    2         x +1
                                3        x +x +1
                                          2    3

               x         x
                             2
                            +x               x
                                                 3
                                                +x              x
                                                                    3
                                                                   + x2 + x
               1
               x   +     x12+x +     1       x
                                               3+x +   1         3    2
                                                                x +x +x +


      Îïåðàöèè ïðîèçâîäÿòñÿ ïî ìîäóëþ x 4 + x + 1 (èëè
      x + x + 1, èëè x + x + x + 1  ïîëó÷èòñÿ îäíî è òî æå
       4     3        4   3    2

      ïîëå).
                         Ñåðãåé Íèêîëåíêî            Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë   Àðèôìåòèêà
       Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà    Ñòåïåíè è êîðíè
                                             Äèñêðåòíûé ëîãàðèôì

Ìàëàÿ òåîðåìà Ôåðìà




      Åñëè p ïðîñòîå, òî äëÿ ëþáîãî a ap ≡ a (mod p), à äëÿ
      ëþáîãî a, âçàèìíî ïðîñòîãî ñ p, ap−1 ≡ 1 (mod p).
      Ñîîòâåòñòâåííî, äëÿ ïðîñòîãî p è ëþáûõ m è n
         åñëè m ≡ n (mod p − 1), òî ∀a am ≡ an (mod p).
      Òåîðåìà Ýéëåðà  äëÿ ëþáîãî n è ëþáîãî a, âçàèìíî
      ïðîñòîãî ñ n,
                         a
                           φ(n)
                                ≡ 1 (mod n).




                         Ñåðãåé Íèêîëåíêî    Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë   Àðèôìåòèêà
       Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà    Ñòåïåíè è êîðíè
                                             Äèñêðåòíûé ëîãàðèôì

Àëãîðèòì Åâêëèäà


      Àëãîðèòì Åâêëèäà: êëàññè÷åñêèé  âû÷èñëÿåò gcd.
      Êðîìå d = gcd(a, b), âû÷èñëÿåò åù¼ äâà ÷èñëà x è y ,
      òàêèå, ÷òî ax + by = d .
      Êàê ïðèìåíèòü àëãîðèòì Åâêëèäà, ÷òîáû íàéòè a−1
      (mod n)?




                         Ñåðãåé Íèêîëåíêî    Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë   Àðèôìåòèêà
       Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà    Ñòåïåíè è êîðíè
                                             Äèñêðåòíûé ëîãàðèôì

Àëãîðèòì Åâêëèäà


      Àëãîðèòì Åâêëèäà: êëàññè÷åñêèé  âû÷èñëÿåò gcd.
      Êðîìå d = gcd(a, b), âû÷èñëÿåò åù¼ äâà ÷èñëà x è y ,
      òàêèå, ÷òî ax + by = d .
      Êàê ïðèìåíèòü àëãîðèòì Åâêëèäà, ÷òîáû íàéòè a−1
      (mod n)?
      Íàéòè òàêèå x è y , ÷òî ax + ny = d , ãäå d = gcd(a, n).
      Åñëè d  1, òî a íåîáðàòèìî â Zp ; åñëè d = 1, òî x = a−1
      (mod n).




                         Ñåðãåé Íèêîëåíêî    Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë   Àðèôìåòèêà
        Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà    Ñòåïåíè è êîðíè
                                              Äèñêðåòíûé ëîãàðèôì

Âîçâåäåíèå â ñòåïåíü




       Åñëè åñòü äâà ÷èñëà a è b ïî ìîäóëþ n, è ìû õîòèì
       âû÷èñëèòü ab (mod n), òî ìîæíî âû÷èñëèòü
                     a
                       2
                         (mod n), a3 (mod n), . . .

       Çäåñü b − 1 óìíîæåíèå ïî ìîäóëþ n.
       Ìîæíî ëè ëó÷øå?



                          Ñåðãåé Íèêîëåíêî    Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë       Àðèôìåòèêà
        Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà        Ñòåïåíè è êîðíè
                                                  Äèñêðåòíûé ëîãàðèôì

Repeated squarings




       Ìîæíî ñäåëàòü òàê: çàïèøåì b êàê ñòðîêó áèòîâ. Ïîòîì
       áóäåì âîçâîäèòü a â êâàäðàò, äîìíîæàÿ íà a òàì, ãäå ó b
       áèòû ðàâíû 1. Íàïðèìåð:
         b = 910 = 10012   ⇒ ab = ((a2 )2 )2 · a, 4 óìíîæåíèÿ.


         b   =   6553710 = 100000000000000012                    ⇒
                            ⇒      a
                                       b
                                           = (((a2 )2 ) . . .)2 · a,   17 óìíîæåíèé.
       17 çíà÷èòåëüíî ìåíüøå, ÷åì 65536.

                          Ñåðãåé Íèêîëåíêî        Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë   Àðèôìåòèêà
       Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà    Ñòåïåíè è êîðíè
                                             Äèñêðåòíûé ëîãàðèôì

Êâàäðàòíûå êîðíè




      Òåïåðü äàâàéòå íàîáîðîò. Êàê ïî x 2 (mod p) íàéòè x
      (mod p )?
      Âî-ïåðâûõ, íå âñÿêîå ÷èñëî ÿâëÿåòñÿ êâàäðàòîì ïî ìîäóëþ
      p . Òå, êîòîðûå ÿâëÿþòñÿ, íàçûâàþòñÿ êâàäðàòè÷íûìè
      âû÷åòàìè.

       Z∗ âû÷åòîâ ñòîëüêî æå, ñêîëüêî íåâû÷åòîâ, à èìåííî
           p
        2 . Ïî÷åìó?
      p −1




                         Ñåðãåé Íèêîëåíêî    Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë   Àðèôìåòèêà
       Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà    Ñòåïåíè è êîðíè
                                             Äèñêðåòíûé ëîãàðèôì

Êâàäðàòíûå êîðíè




                                             2
      Ðàññìîòðèì 12, 22, . . . , p−1 .
                                  2
      Ïîñêîëüêó n 2 ≡ (p − n)2 (mod n), âñåãî âû÷åòîâ íå áîëüøå

        2 .
      p −1

      Ïóñòü èõ ìåíüøå. Òîãäà äëÿ íåêîòîðûõ 1 ≤ i , j ≤ p−1
                                                        2

                   2          2    2
                  i ≡ (−i ) ≡ j ≡ (−j )
                                          2
                                            (mod p ).

      Èíà÷å ãîâîðÿ, ó óðàâíåíèÿ x 2 ≡ i 2 (mod p) ÷åòûðå ðàçíûõ
      êîðíÿ.
      Íî Zp  ïîëå, è ó íåãî íå ìîæåò áûòü áîëüøå äâóõ êîðíåé.

                         Ñåðãåé Íèêîëåíêî    Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë   Àðèôìåòèêà
       Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà    Ñòåïåíè è êîðíè
                                             Äèñêðåòíûé ëîãàðèôì

Ñèìâîë Ëåæàíäðà




      Ñèìâîë Ëåæàíäðà:
                 
               0 a ≡ 0 (mod p),
                  ,
                 
                 
           = 1,      a ≡ 0 (mod p ), è äëÿ íåêîòîðîãî x x 2 ≡ 0,
        a

       p     
             
             −1, a ≡ 0 (mod p ), è òàêîãî x íå ñóùåñòâóåò.

      Äëÿ ïðîñòîãî p
                               a

                               p
                                     ≡ a(p−1)/2    (mod p).


                         Ñåðãåé Íèêîëåíêî    Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë       Àðèôìåòèêà
       Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà        Ñòåïåíè è êîðíè
                                                 Äèñêðåòíûé ëîãàðèôì

Ñèìâîë Ëåæàíäðà




      Êðîìå òîãî,
                                    ab            a              b
                                             =                       ,
                                    p             p              p



                       q
                                1 21 21 q .
                                p
                                     = (− )
                                         p
                                                 p   −   q   −




      Ýòî ïîçâîëÿåò ïîñòðîèòü àëãîðèòì äëÿ âû÷èñëåíèÿ
      ñèìâîëà Ëåæàíäðà p :a


            ðàçëîæèòü p â ïðîèçâåäåíèå pp . . . ppm ;
                        a                                        1

            çàìåíèòü íà pi (mod p), ïåðåâåðíóòü, ïîâòîðèòü.


                         Ñåðãåé Íèêîëåíêî        Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë     Àðèôìåòèêà
       Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà      Ñòåïåíè è êîðíè
                                               Äèñêðåòíûé ëîãàðèôì

Êâàäðàòíûé êîðåíü


      Òåïåðü âîçâðàùàåìñÿ ê êâàäðàòíîìó êîðíþ. Ïóñòü äàíî
      ïðîñòîå p è a ∈ Zp .
      Åñëè p ≡ 3 (mod 4), òî êîðåíü èùåòñÿ êàê
                        x ≡ a
                              (p +1)/4
                                       (mod n).

      Äåéñòâèòåëüíî,
                            1=      a

                                    p
                                          ≡ a(p−1)/2    (mod p).
      Çíà÷èò,
                  x
                      2
                          ≡ a(p+1)/2 ≡ a · a(p−1)/2 ≡ a        (mod p).

                            Ñåðãåé Íèêîëåíêî   Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë   Àðèôìåòèêà
       Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà    Ñòåïåíè è êîðíè
                                             Äèñêðåòíûé ëîãàðèôì

Êâàäðàòíûé êîðåíü


      Äëÿ p ≡ 1 (mod 4)  âåðîÿòíîñòíûé àëãîðèòì.
      Ðàññìîòðèì ìíîãî÷ëåí x (p−1)/2 − 1. Îí ñòåïåíè p−1 , åãî
                                                            2
      êîðíè  âñå êâàäðàòè÷íûå âû÷åòû ïî ìîäóëþ p, è òîëüêî
      îíè.
      Òåïåðü ðàññìîòðèì ìíîãî÷ëåí
      f (x ) ≡ x − a ≡ (x − r )(x + r ) (mod p ). Ïîäñòàâèì
                 2


              f (x − δ) ≡ (x − (δ − r ))(x − (δ + r )) (mod p ).

      Ôàêò (áåç äîêàçàòåëüñòâà): äëÿ ïîëîâèíû δ îäíî èç
      çíà÷åíèé (δ − r ), (δ + r ) ÿâëÿåòñÿ âû÷åòîì, à äðóãîå  íåò.
      Âûáåðåì δ ñëó÷àéíî è ïîäñ÷èòàåì
      gcd(f (x − δ), x (p−1)/2 − 1) (êàê ìíîãî÷ëåíîâ).
      Òîãäà ñ âåðîÿòíîñòüþ 1/2 ìû ïîëó÷èì êîðåíü èç a.
                         Ñåðãåé Íèêîëåíêî    Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë   Àðèôìåòèêà
       Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà    Ñòåïåíè è êîðíè
                                             Äèñêðåòíûé ëîãàðèôì

Äëÿ ñîñòàâíûõ         n



      Ïóñòü, íàïðèìåð, n = pq. Àëãîðèòì âû÷èñëåíèÿ
      êâàäðàòíîãî êîðíÿ èç a ïî ìîäóëþ n.
         1   Íàéòè êîðíè (r , −r ) ÷èñëà a ïî ìîäóëþ p.
         2   Íàéòè êîðíè (s , −s ) ÷èñëà a ïî ìîäóëþ q.
         3   Íàéòè àëãîðèòìîì Åâêëèäà òàêèå c è d , ÷òî cp + dq = 1.
         4   Âû÷èñëèòü x = rdq + scp (mod n) è y = rdq − scp (mod n).
         5   Âåðíóòü (±x , ±y ).
      Èíà÷å ãîâîðÿ, ìû ìîæåì âû÷èñëÿòü êâàäðàòíûå êîðíè,
      åñëè óìååì ðàñêëàäûâàòü n íà ìíîæèòåëè.


                          Ñåðãåé Íèêîëåíêî   Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë   Àðèôìåòèêà
       Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà    Ñòåïåíè è êîðíè
                                             Äèñêðåòíûé ëîãàðèôì

Îáñóæäåíèå àëãîðèòìà




      Âû÷èñëåíèå êâàäðàòíîãî êîðíÿ ïîòðåáîâàëî óìåòü
      ðàñêëàäûâàòü a íà ìíîæèòåëè.
      Áåç ýòîãî äàæå íå ïðîâåðèòü, ÿâëÿåòñÿ ëè a âû÷åòîì.
      À ìîæíî ëè íàîáîðîò? Ìîæíî ëè ðàçëîæèòü ÷èñëî íà
      ìíîæèòåëè, óìåÿ âû÷èñëÿòü êâàäðàòíûå êîðíè ïî åãî
      ìîäóëþ?



                         Ñåðãåé Íèêîëåíêî    Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë   Àðèôìåòèêà
       Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà    Ñòåïåíè è êîðíè
                                             Äèñêðåòíûé ëîãàðèôì
                                                   √
Ðàçëîæåíèå íà ìíîæèòåëè ÷åðåç                          a

      Ìîæíî! Ïðåäïîëîæèì, ÷òî ìû óìååì âûäàâàòü íåêèé
      êâàäðàòíûé êîðåíü ïî ìîäóëþ n.
      Âîçüì¼ì ñëó÷àéíîå x , âû÷èñëèì a = x 2 è ïîäàäèì
      àëãîðèòìó.
      Åñëè ìû ïîëó÷èëè ±x , ïîâòîðèì îïåðàöèþ. À åñëè
      ïîëó÷èëè y = ±x , òî ïîëó÷èëîñü, ÷òî
                2
               x ≡ y
                     2
                          (mod n), íî y = ±x (mod n).

      Ýòî çíà÷èò, ÷òî n äåëèò x 2 − y 2 = (x − y )(x + y ), íî ïðè
      ýòîì íå äåëèò ëèáî x − y , ëèáî x + y .
      Çíà÷èò, gcd(x − y , n)  íåòðèâèàëüíûé äåëèòåëü n.
                         Ñåðãåé Íèêîëåíêî    Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë   Àðèôìåòèêà
       Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà    Ñòåïåíè è êîðíè
                                             Äèñêðåòíûé ëîãàðèôì

Ïîñòàíîâêà çàäà÷è




      Òåïåðü ïîñòàâèì áîëåå ñëîæíóþ çàäà÷ó  íàéòè
      ëîãàðèôì.
      Äèñêðåòíûé ëîãàðèôì: ïî ïðîñòîìó ÷èñëó p , ÷èñëó
      a ∈ Zp , ïîðîæäàþùåìó Zp , è ÷èñëó b ∈ Zp íàéòè òàêîå
           ∗                   ∗               ∗

      0 ≤ x ≤ p − 2, ÷òî
                             x
                            a ≡ b  (mod p ).

      Îáîáù¼ííûé äèñêðåòíûé ëîãàðèôì: òî æå â ïðîèçâîëüíîé
      öèêëè÷åñêîé ãðóïïå G : ïî ãåíåðàòîðó a ∈ G è b ∈ G íàéòè
      òàêîé x , ÷òî ax = b.

                         Ñåðãåé Íèêîëåíêî    Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë   Àðèôìåòèêà
       Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà    Ñòåïåíè è êîðíè
                                             Äèñêðåòíûé ëîãàðèôì

Çàìå÷àíèÿ


      Ñëîæíîñòü íå çàâèñèò îò ãåíåðàòîðà a; äëÿ äðóãîãî
      ãåíåðàòîðà a
            x
           a = b = a
                     y
                       = (az )y , è loga b = loga b(loga a )−1 .

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




                         Ñåðãåé Íèêîëåíêî    Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë   Àðèôìåòèêà
       Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà    Ñòåïåíè è êîðíè
                                             Äèñêðåòíûé ëîãàðèôì

Çàìå÷àíèÿ


      Ñëîæíîñòü íå çàâèñèò îò ãåíåðàòîðà a; äëÿ äðóãîãî
      ãåíåðàòîðà a
            x
           a = b = a
                     y
                       = (az )y , è loga b = loga b(loga a )−1 .

      Íî ñëîæíîñòü çàâèñèò îò ïðåäñòàâëåíèÿ ãðóïïû, ò.å. äëÿ
      èçîìîðôíûõ ãðóïï ñëîæíîñòü äèñêðåòíîãî ëîãàðèôìà
      ìîæåò áûòü ðàçíîé. Ïî÷åìó?
      Ïîòîìó ÷òî ëþáàÿ öèêëè÷åñêàÿ ãðóïïà èçîìîðôíà Z+ äëÿ   n
      íåêîòîðîãî n.
      Äèñêðåòíûé ëîãàðèôì â Z+  ýòî çíà÷èò íàéòè òàêîé x ,
                                  n
      ÷òî ax = b (mod n). Íàâåðíîå, ýòî íå òàê óæ ñëîæíî...

                         Ñåðãåé Íèêîëåíêî    Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë   Àðèôìåòèêà
       Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà    Ñòåïåíè è êîðíè
                                             Äèñêðåòíûé ëîãàðèôì

Çàìå÷àíèÿ


      Àëãîðèòìû äëÿ çàäà÷è äèñêðåòíîãî ëîãàðèôìà äåëÿòñÿ íà
      òðè ãðóïïû:
         1   Ðàáîòàþùèå äëÿ ëþáûõ ãðóïï.
         2   Ðàáîòàþùèå äëÿ ëþáûõ ãðóïï, íî ýôôåêòèâíûå äëÿ
             ¾ãëàäêèõ¿ (êîãäà ïîðÿäîê ãðóïïû èìååò ìàëåíüêèå
             ïðîñòûå äåëèòåëè).
         3   Ýôôåêòèâíûå òîëüêî äëÿ íåêîòîðûõ ãðóïï.
      Ìû áóäåì èõ èçó÷àòü â ýòîì êóðñå, íî ïîçæå.




                         Ñåðãåé Íèêîëåíêî    Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë   Àðèôìåòèêà
       Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà    Ñòåïåíè è êîðíè
                                             Äèñêðåòíûé ëîãàðèôì

Èòîãè ïðèñêàçêè




      Ìû òåïåðü óìååì â Zn :
            áûñòðî âîçâîäèòü â ñòåïåíü;
            íàõîäèòü a−1 ;
            èñïîëüçîâàòü àëãîðèòì Åâêëèäà;
            ïðèìåíÿòü ðàâåíñòâî aφ(n) ≡ 1 (mod n).
      Ìû âûÿñíèëè, ÷òî óìååì ðàñêëàäûâàòü n íà ìíîæèòåëè
      òîãäà è òîëüêî òîãäà, êîãäà óìååì âû÷èñëÿòü ïî ìîäóëþ n
      êâàäðàòíûå êîðíè.
      È óçíàëè î çàäà÷å äèñêðåòíîãî ëîãàðèôìà.


                         Ñåðãåé Íèêîëåíêî    Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë   RSA
          Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà    Êðèïòîñèñòåìà Ðàáèíà


Outline




  1   Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë
        Àðèôìåòèêà
        Ñòåïåíè è êîðíè
        Äèñêðåòíûé ëîãàðèôì
  2   Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà
        RSA
        Êðèïòîñèñòåìà Ðàáèíà


                            Ñåðãåé Íèêîëåíêî    Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë   RSA
       Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà    Êðèïòîñèñòåìà Ðàáèíà


Ïðèíöèï ðàáîòû




      Ó êàæäîãî ó÷àñòíèêà  äâà êëþ÷à, ñåêðåòíûé è
      ïóáëè÷íûé.




                         Ñåðãåé Íèêîëåíêî    Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë   RSA
       Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà    Êðèïòîñèñòåìà Ðàáèíà


RSA: èñòîðèÿ




      1973: Cliord Cocks èçîáð¼ë RSA, íî íå îïóáëèêîâàë
      (ðàáîòàë íà ðàçâåäêó).
      1978: Ron Rivest, Adi Shamir, Leonard Adleman.
      1983: MIT ïîëó÷èë ïàòåíò íà RSA; ñðîê äåéñòâèÿ èñòåêàë â
      2003, íî â 2000 àëãîðèòì óæå áûë âûíåñåí â public domain.
      Èäåÿ  êîäèðîâàòü ñîîáùåíèÿ òàê, ÷òîáû ðàñêîäèðîâàíèå
      èõ îïèðàëîñü íà êàêóþ-íèáóäü ñëîæíóþ âû÷èñëèòåëüíóþ
      ïðîáëåìó.


                         Ñåðãåé Íèêîëåíêî    Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë   RSA
       Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà    Êðèïòîñèñòåìà Ðàáèíà


RSA: êëþ÷è




      Àëãîðèòì ãåíåðàöèè êëþ÷åé.
         1   Ñãåíåðèðîâàòü äâà áîëüøèõ ñëó÷àéíûõ ðàçëè÷íûõ ïðîñòûõ
             ÷èñëà p è q ïðèìåðíî îäíîãî ðàçìåðà.
         2   Âû÷èñëèòü n = pq è φ = (p − 1)(q − 1).
         3   Âûáðàòü ñëó÷àéíîå ÷èñëî 1  e  φ, âçàèìíî ïðîñòîå ñ φ.
         4   Àëãîðèòìîì Åâêëèäà íàéòè d ≡ e −1 (mod φ).
         5   Âûäàòü (n, e ) êàê ïóáëè÷íûé êëþ÷; ñîõðàíèòü d êàê
             ñåêðåòíûé êëþ÷.



                         Ñåðãåé Íèêîëåíêî    Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë   RSA
        Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà    Êðèïòîñèñòåìà Ðàáèíà


RSA: êîäèðîâàíèå è äåêîäèðîâàíèå


       Êîäèðîâàíèå (ñîîáùåíèÿ m ñ ïóáëè÷íûì êëþ÷îì (n, e )).
          1   Ïðåäñòàâèòü ñîîáùåíèå êàê ÷èñëî 0 ≤ m ≤ n − 1.
          2   Âû÷èñëèòü c = me (mod n) è âûäàòü c êàê êîä.
       Äåêîäèðîâàíèå.
          1   Âû÷èñëèòü m = c d (mod n).
       Ïî÷åìó äåêîäèðîâàíèå ðàáîòàåò?




                          Ñåðãåé Íèêîëåíêî    Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë   RSA
        Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà    Êðèïòîñèñòåìà Ðàáèíà


RSA: êîäèðîâàíèå è äåêîäèðîâàíèå


       Êîäèðîâàíèå (ñîîáùåíèÿ m ñ ïóáëè÷íûì êëþ÷îì (n, e )).
          1   Ïðåäñòàâèòü ñîîáùåíèå êàê ÷èñëî 0 ≤ m ≤ n − 1.
          2   Âû÷èñëèòü c = me (mod n) è âûäàòü c êàê êîä.
       Äåêîäèðîâàíèå.
          1   Âû÷èñëèòü m = c d (mod n).
       Ïî÷åìó äåêîäèðîâàíèå ðàáîòàåò?
       Ïîòîìó ÷òî
                d
               c ≡ m
                     ed
                          (mod n), è, ò.ê. ed = 1 + k φ,

                    m
                      ed
                         ≡ m1+k φ ≡ m (mod n).




                          Ñåðãåé Íèêîëåíêî    Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë   RSA
       Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà    Êðèïòîñèñòåìà Ðàáèíà


RSA: ïðîñòûå ÷èñëà




      Ìû òóò âñ¼ óìååì äåëàòü, êðîìå îäíîãî: êàê èñêàòü
      ïðîñòûå ÷èñëà?
      Åñëè ïðîâåðÿòü n íà ïðîñòîòó, äåëÿ íà âñå ÷èñëà äî √n,
      èøàê óìð¼ò ïåðâûì.
      Íàì ïîìîæåò ìàëàÿ òåîðåìà Ôåðìà: äëÿ ïðîñòîãî p è
      ëþáîãî 0  a  p
                         a
                           p −1
                                ≡ 1 (mod p ).

      Êàê îíà ìîæåò íàì ïîìî÷ü?

                         Ñåðãåé Íèêîëåíêî    Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë   RSA
       Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà    Êðèïòîñèñòåìà Ðàáèíà


RSA: ïðîñòûå ÷èñëà




      Èäåÿ: áóäåì âûáèðàòü ñëó÷àéíûå ÷èñëà a  n è ïðîâåðÿòü,
      âåðíî ëè, ÷òî
                          a
                            n −1
                                 ≡ 1 (mod n).
      Åñëè íåò, òî n òî÷íî ñîñòàâíîå. Åñëè äà, òî n, ñêîðåå
      âñåãî, ïðîñòîå.
      Åñëè n è a âûáðàíû ñëó÷àéíî, òî âåðîÿòíîñòü òîãî, ÷òî n
      ñîñòàâíîå, íî an−1 ≡ 1 (mod n), îêîëî 10−13.
      Íî âñ¼-òàêè áûâàåò; õóæå òîãî, áûâàþò ÷èñëà Êàðìàéêëà
      (Carmichael numbers), êîòîðûå íå ÿâëÿþòñÿ ïðîñòûìè, íî
      ïðè ýòîì äëÿ âñåõ a âåðíî an−1 ≡ 1 (mod n).
      Ïðèä¼òñÿ ÷óòü ìîäèôèöèðîâàòü.
                         Ñåðãåé Íèêîëåíêî    Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë   RSA
       Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà    Êðèïòîñèñòåìà Ðàáèíà


RSA: ïðîñòûå ÷èñëà


      Òåñò Ìèëëåðà-Ðàáèíà  : âûðàçèì n − 1 = 2b c , äåëÿ ïîïîëàì.
      Òåïåðü áóäåì áðàòü ñëó÷àéíûå a è âû÷èñëÿòü ñíà÷àëà ac , à
      ïîòîì ïîñëåäîâàòåëüíî âîçâîäèòü â êâàäðàò.
      Åñëè ac ≡ 1 (mod n), íî an−1 ≡ 1 (mod n), çíà÷èò, íà
      êàêîì-òî øàãå ìû íàøëè ÷èñëî, êîòîðîå íå ñðàâíèìî ñ 1, à
      åãî êâàäðàò  ñðàâíèì.
      Åñëè ýòî ÷èñëî íå ñðàâíèìî ñ −1, òî ìû íàøëè
      íåòðèâèàëüíûé êâàäðàòíûé êîðåíü èç 1; ñëåäîâàòåëüíî, n
      ñîñòàâíîå.
      Ýòîò àëãîðèòì äëÿ ñîñòàâíûõ n âûÿâëÿåò ýòîò ôàêò ñ
      âåðîÿòíîñòüþ 4 (ïî a).
                    3

      Òó æå èäåþ ìîæíî èñïîëüçîâàòü òàê, ÷òîáû ïîëó÷èëñÿ
      àëãîðèòì âû÷èñëåíèÿ êâàäðàòíîãî êîðíÿ íå èç 1, à èç
      ïðîèçâîëüíîãî ÷èñëà (óïðàæíåíèå).
                         Ñåðãåé Íèêîëåíêî    Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë        RSA
        Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà         Êðèïòîñèñòåìà Ðàáèíà


RSA: î ñòîéêîñòè


       Âî-ïåðâûõ, åñëè óìåòü ðàñêëàäûâàòü ÷èñëà íà ìíîæèòåëè,
       òî RSA ðåøèòü ëåãêî (ìîæíî âû÷èñëèòü ñåêðåòíûé êëþ÷
       òàê æå, êàê ïðè ãåíåðàöèè êëþ÷åé).
       Âî-âòîðûõ, åñëè âðàã ïîëó÷èò ñåêðåòíûé êëþ÷ d , îí
       ñìîæåò ðàçëîæèòü n íà ìíîæèòåëè: ò.ê. ed ≡ 1 (mod φ),
       òî ed − 1 = k φ, è aed −1 ≡ 1 (mod n) äëÿ âñåõ a. Âûðàçèì
       ed − 1 = 2 t äëÿ íå÷¼òíîãî t .
                  s

       Ôàêò: ñóùåñòâóåò 1 ≤ i ≤ s , äëÿ êîòîðîãî
                 2 1t
                      ≡ ±1 (mod n), íî a2 t ≡ 1 (mod n)
                    i   −                                   i

               a

       äëÿ ïî êðàéíåé ìåðå ïîëîâèíû a ∈ Z∗ . n
       Âðàãó äîñòàòî÷íî âûáèðàòü1 a ñëó÷àéíî, èñêàòü òàêîé i , è
       êàê òîëüêî íàéä¼ò, gcd(a2 t , n) áóäåò íåòðèâèàëüíûì
                                           i   −


       äåëèòåëåì n.
                            Ñåðãåé Íèêîëåíêî       Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë   RSA
        Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà    Êðèïòîñèñòåìà Ðàáèíà


RSA: î ñòîéêîñòè


       Èíà÷å ãîâîðÿ, ðàçëîæåíèå n íà ìíîæèòåëè âû÷èñëèòåëüíî
       ýêâèâàëåíòíî òîìó, ÷òîáû íàéòè ñåêðåòíûé êëþ÷ d â
       êðèïòîñèñòåìå RSA.
       Íî íà ñàìîì äåëå âðàãó íå íàäî èñêàòü d , åìó íàäî
       ðàñêîäèðîâàòü ñîîáùåíèå.
       RSA problem: ïî äàííûì n , e è c íàéòè òàêîå m , ÷òî
       m ≡ c (mod n ).
         e

       Òî åñòü âû÷èñëèòü êîðåíü e -é ñòåïåíè ïî ñîñòàâíîìó
       ìîäóëþ n.
       Ñ÷èòàåòñÿ, ÷òî ýòà çàäà÷à òîæå âû÷èñëèòåëüíî ñëîæíà, íî
       íå èçâåñòíî, ýêâèâàëåíòíà ëè îíà ðàçëîæåíèþ n íà
       ìíîæèòåëè.
       Òåïåðü ïåðåéä¼ì ê áîëåå êîíêðåòíûì ïðîáëåìàì RSA.
                          Ñåðãåé Íèêîëåíêî    Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë   RSA
        Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà    Êðèïòîñèñòåìà Ðàáèíà


RSA: î ñòîéêîñòè


       Êàêèå äîëæíû áûòü ïðîñòûå ÷èñëà p è q?
       Âî-ïåðâûõ, p è q íå äîëæíû áûòü ñëèøêîì ìàëåíüêèìè
       (ïðèìåðíî îäíîé äëèíû â áèòàõ), èíà÷å áûñòðûå
       àëãîðèòìû ñòàíóò åù¼ áûñòðåå.
       Íî, âî-âòîðûõ, p è q íå äîëæíû áûòü ñëèøêîì áëèçêè
       äðóã ê äðóãó; èíà÷å ìîæíî ïåðåáèðàòü ÷èñëà îêîëî √n.
       Ñèëüíûå ïðîñòûå ÷èñëà (strong primes): p  ñèëüíîå
       ïðîñòîå, åñëè
             ó p − 1 åñòü áîëüøîé ïðîñòîé äåëèòåëü r ;
             ó p + 1 åñòü áîëüøîé ïðîñòîé äåëèòåëü;
             ó r − 1 åñòü áîëüøîé ïðîñòîé äåëèòåëü.


                          Ñåðãåé Íèêîëåíêî    Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë   RSA
        Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà    Êðèïòîñèñòåìà Ðàáèíà


RSA: î ñòîéêîñòè


       Êàêîé âûáèðàòü e ? Îêàçûâàåòñÿ, ÷òî ñòîéêîñòü RSA îò e
       íå çàâèñèò.
       Ïîýòîìó ÷àñòî âûáèðàþò e = 3 èëè e = 65537, ÷òîáû ëåã÷å
       áûëî êîäèðîâàòü (2 è 17 óìíîæåíèé ñîîòâåòñòâåííî).
       Ò.å. ìîæíî ïðîñòî âûáðàòü òàêèå p è q, ÷òîáû
       (p − 1)(q − 1) íå äåëèëîñü íà 3, à ïîòîì âçÿòü e = 3.
       Íî ïðè ýòîì åñòü ïðîáëåìà. Ïðåäñòàâèì, ÷òî Àëèñà
       ïîñëàëà îäíî è òî æå ïèñüìî òðîèì äðóçüÿì...
       ×òî çäåñü áóäåò íå òàê?



                          Ñåðãåé Íèêîëåíêî    Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë   RSA
        Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà    Êðèïòîñèñòåìà Ðàáèíà


RSA: î ñòîéêîñòè


       Ïóñòü Àëèñà ïîñëàëà òðè îäèíàêîâûõ ïèñüìà m òð¼ì
       äðóçüÿì ñ ìîäóëÿìè n1, n2 è n3 è ïóáëè÷íûìè êëþ÷àìè
       e = 3.

       Òîãäà ïåðåõâàòèâøèé ñîîáùåíèÿ âðàã çíàåò ïðî ñîîáùåíèå
       âåëè÷èíû m3 (mod n1), m3 (mod n2) è m3 (mod n3).
       Îí ìîæåò ïî êèòàéñêîé òåîðåìå îá îñòàòêàõ âû÷èñëèòü m3
       (mod n1 n2 n3 ).
       Íî m3  n1n2n3. Çíà÷èò, îí ïðîñòî ïîëó÷èë íàñòîÿùåå m3,
       è åìó îñòà¼òñÿ òîëüêî âçÿòü îáû÷íûé (íå äèñêðåòíûé)
       êóáè÷åñêèé êîðåíü.
       Çíà÷èò, ñîîáùåíèÿ íóæíî äîïîëíÿòü ñëó÷àéíûìè
       âåëè÷èíàìè, ÷òîáû íå ïîñûëàòü îäíî è òî æå.
                          Ñåðãåé Íèêîëåíêî    Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë   RSA
        Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà    Êðèïòîñèñòåìà Ðàáèíà


RSA: î ñòîéêîñòè


       Åù¼ ïðîùå: ïî òîìó æå ïðèíöèïó, íåëüçÿ âûáèðàòü òàêèå
       m , ÷òî m  n , èíà÷å ìîæíî ïðîñòî ïîäñ÷èòàòü îáû÷íûé
                e

       êîðåíü.
       Çíà÷èò, äëÿ e = 3 íóæíî äîïèñûâàòü ÷òî-òî ñïåðåäè
       ñîîáùåíèÿ.
       Ðåàëüíûå ïðîòîêîëû ýòî è äåëàþò.




                          Ñåðãåé Íèêîëåíêî    Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë   RSA
        Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà    Êðèïòîñèñòåìà Ðàáèíà


RSA: î ñòîéêîñòè


       Çàìå÷àíèå: âî âñåõ àëãîðèòìàõ ñ ïóáëè÷íûì êëþ÷îì âðàã
       ìîæåò ñàì êîäèðîâàòü.
       Çíà÷èò, åñëè îí ìîæåò ïåðåáðàòü âñå âîçìîæíûå
       ñîîáùåíèÿ, îí ìîæåò íàéòè m.
       Ïîýòîìó íóæíî èñïîëüçîâàòü salt (ñëó÷àéíîå ÷èñëî,
       äîïèñûâàåìîå ê ñîîáùåíèþ).




                          Ñåðãåé Íèêîëåíêî    Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë   RSA
        Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà    Êðèïòîñèñòåìà Ðàáèíà


RSA: î ñòîéêîñòè


       Äàëåå: ïðåäñòàâèì, ÷òî n âûáèðàåò êàêîé-íèáóäü ñåðâåð è
       ðàçäà¼ò åãî ñâîèì ïîëüçîâàòåëÿì.
       Ýòî çàìàí÷èâî, ïîòîìó ÷òî èñêàòü õîðîøèå p è q íå òàê
       ëåãêî.
       Ïî÷åìó ýòî íå ñðàáîòàåò?




                          Ñåðãåé Íèêîëåíêî    Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë   RSA
        Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà    Êðèïòîñèñòåìà Ðàáèíà


RSA: î ñòîéêîñòè


       Äàëåå: ïðåäñòàâèì, ÷òî n âûáèðàåò êàêîé-íèáóäü ñåðâåð è
       ðàçäà¼ò åãî ñâîèì ïîëüçîâàòåëÿì.
       Ýòî çàìàí÷èâî, ïîòîìó ÷òî èñêàòü õîðîøèå p è q íå òàê
       ëåãêî.
       Ïî÷åìó ýòî íå ñðàáîòàåò?
       Ïîòîìó ÷òî òîãäà ëþáîé ïîëüçîâàòåëü ñìîæåò ðàçëîæèòü
       n íà ìíîæèòåëè è ïðî÷åñòü ñîîáùåíèÿ âñåõ îñòàëüíûõ
       ïîëüçîâàòåëåé. ×èñëî n äîëæíî áûòü ó êàæäîãî ñâî¼.




                          Ñåðãåé Íèêîëåíêî    Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë   RSA
        Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà    Êðèïòîñèñòåìà Ðàáèíà


Chosen ciphertext àòàêè



       Ìû ãîâîðèëè îá àòàêàõ âèäîâ ciphertext only, known
       plaintext è chosen plaintext.
        êðèïòîãðàôèè ñ îòêðûòûì êëþ÷îì chosen plaintext
       äîñòóïåí âñåãäà, à ïðèõîäèòñÿ ðàññìàòðèâàòü è åù¼ áîëåå
       ñòðàøíûå àòàêè.
       Chosen ciphertext: ×àðëè âûáèðàåò íåñêîëüêî øèôðîâ è
       ïðîñèò Àëèñó èõ ðàñøèôðîâàòü. Ïîòîì ×àðëè äîñòà¼òñÿ
       êîäèðîâàííîå ñîîáùåíèå c , è îí ïûòàåòñÿ åãî
       ðàñøèôðîâàòü ñàì.
       Adaptive chosen ciphertext: ×àðëè ñíà÷àëà ïîëó÷àåò c , à
       ïîòîì ìîæåò ñïðîñèòü Àëèñó ïðî íåñêîëüêî øèôðîâ;
       åäèíñòâåííîå îãðàíè÷åíèå  ×àðëè íå ìîæåò ñïðàøèâàòü
       ïðî ñàì øèôð c .
                          Ñåðãåé Íèêîëåíêî    Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë   RSA
        Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà    Êðèïòîñèñòåìà Ðàáèíà


RSA ïðîòèâ adaptive chosen ciphertext


       RSA ãîìîìîðôíà, ò.å. êîä ñîîáùåíèÿ m1m2  ýòî c1c2.
       Ïîýòîìó ïðîòèâ adaptive chosen ciphertext RSA áåññèëüíà:
       ïîëó÷èâ c , ×àðëè âûáèðàåò ñëó÷àéíîå ÷èñëî r è
       ñïðàøèâàåò Àëèñó ïðî c = cr e (mod n).
       Îòâåò Àëèñû  ýòî mr , íóæíî òîëüêî ðàçäåëèòü íà r .
       Êàê ñ ýòèì áîðîòüñÿ íà ïðàêòèêå?




                          Ñåðãåé Íèêîëåíêî    Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë   RSA
        Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà    Êðèïòîñèñòåìà Ðàáèíà


RSA ïðîòèâ adaptive chosen ciphertext


       RSA ãîìîìîðôíà, ò.å. êîä ñîîáùåíèÿ m1m2  ýòî c1c2.
       Ïîýòîìó ïðîòèâ adaptive chosen ciphertext RSA áåññèëüíà:
       ïîëó÷èâ c , ×àðëè âûáèðàåò ñëó÷àéíîå ÷èñëî r è
       ñïðàøèâàåò Àëèñó ïðî c = cr e (mod n).
       Îòâåò Àëèñû  ýòî mr , íóæíî òîëüêî ðàçäåëèòü íà r .
       Êàê ñ ýòèì áîðîòüñÿ íà ïðàêòèêå?
       Íàïðèìåð, ìîæíî ïî çàïðîñàì âñÿêèõ òàì ×àðëè
       ðàñøèôðîâûâàòü ñîîáùåíèÿ òîëüêî îïðåäåë¼ííîãî âèäà,
       ïîòîìó ÷òî ×àðëèí c áóäåò ðàñøèôðîâûâàòüñÿ â êàêóþ-òî
       ñëó÷àéíóþ ñòðî÷êó; Àëèñà íå äîëæíà ïî çàïðîñó
       ðàñøèôðîâûâàòü íåëåãèòèìíûå ñîîáùåíèÿ.

                          Ñåðãåé Íèêîëåíêî    Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë   RSA
       Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà    Êðèïòîñèñòåìà Ðàáèíà


Èäåÿ


       RSA îñíîâàíà íà ðàçëîæåíèè ÷èñåë.
       Íî âçëîì RSA (RSA problem) íå ýêâèâàëåíòåí ðàçëîæåíèþ
       n ; ïî êðàéíåé ìåðå, ìû îá ýòîì íå çíàåì.

       Ìîæíî ëè ïðèäóìàòü ñèñòåìó, âçëîì êîòîðîé áóäåò
       äîêàçóåìî ýêâèâàëåíòåí ðàçëîæåíèþ áîëüøîãî ÷èñëà íà
       ïðîñòûå ìíîæèòåëè? Íà ÷¼ì ìîæåò áûòü îñíîâàíà òàêàÿ
       ñèñòåìà?




                         Ñåðãåé Íèêîëåíêî    Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë   RSA
       Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà    Êðèïòîñèñòåìà Ðàáèíà


Èäåÿ


       RSA îñíîâàíà íà ðàçëîæåíèè ÷èñåë.
       Íî âçëîì RSA (RSA problem) íå ýêâèâàëåíòåí ðàçëîæåíèþ
       n ; ïî êðàéíåé ìåðå, ìû îá ýòîì íå çíàåì.

       Ìîæíî ëè ïðèäóìàòü ñèñòåìó, âçëîì êîòîðîé áóäåò
       äîêàçóåìî ýêâèâàëåíòåí ðàçëîæåíèþ áîëüøîãî ÷èñëà íà
       ïðîñòûå ìíîæèòåëè? Íà ÷¼ì ìîæåò áûòü îñíîâàíà òàêàÿ
       ñèñòåìà?
       Íà çàäà÷å âû÷èñëåíèÿ êâàäðàòíîãî êîðíÿ.




                         Ñåðãåé Íèêîëåíêî    Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë   RSA
       Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà    Êðèïòîñèñòåìà Ðàáèíà


Êðèïòîñèñòåìà Ðàáèíà: êëþ÷è




      Àëãîðèòì ïîðîæäåíèÿ êëþ÷åé.
         1   Ñãåíåðèðîâàòü äâà áîëüøèõ ïðîñòûõ ÷èñëà p è q (êàê è â
             RSA, ëó÷øå ñèëüíûõ).
         2   Âû÷èñëèòü n = pq.
         3   Ïóáëè÷íûé êëþ÷  n, ñåêðåòíûé  (p, q).




                         Ñåðãåé Íèêîëåíêî    Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë   RSA
        Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà    Êðèïòîñèñòåìà Ðàáèíà


Êðèïòîñèñòåìà Ðàáèíà: [äå]êîäèðîâàíèå




       Àëãîðèòì êîäèðîâàíèÿ (âõîä: ïóáëè÷íûé êëþ÷ n,
       ñîîáùåíèå m).
          1   Ïðåäñòàâèòü m êàê ÷èñëî, 0 ≤ m ≤ n − 1.
          2   Âû÷èñëèòü c = m2 (mod n).
       Àëãîðèòì êîäèðîâàíèÿ (âõîä: ñåêðåòíûé êëþ÷ (p, q),
       øèôð c ).
          1   Âû÷èñëèòü ÷åòûðå êâàäðàòíûõ êîðíÿ èç c (àëãîðèòì áûë
              âûøå).
          2   Êàê-íèáóäü èç íèõ âûáðàòü.


                          Ñåðãåé Íèêîëåíêî    Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë   RSA
        Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà    Êðèïòîñèñòåìà Ðàáèíà


Êðèïòîñèñòåìà Ðàáèíà: î ñòîéêîñòè




       Çàäà÷à, ñòîÿùàÿ ïåðåä ïàññèâíûì âðàãîì,  ýòî â
       òî÷íîñòè çàäà÷à âû÷èñëåíèÿ êâàäðàòíîãî êîðíÿ.
       Îíà ýêâèâàëåíòíà ðàçëîæåíèþ n íà ìíîæèòåëè.
       Ò.å. ìû ïîñòðîèëè ñèñòåìó, âçëîì êîòîðîé äîêàçóåìî
       ñâîäèòñÿ ê ðåøåíèþ çàäà÷è ðàçëîæåíèÿ.
       Ýòî êðèïòîãðàôû íàçûâàþò provable security.
       Êðèïòîñèñòåìà Ðàáèíà ïîäâåðæåíà òåì æå àòàêàì, ÷òî
       RSA, åñëè îíè óïðîùàþò ðàçëîæåíèå n; ïîýòîìó íàäî
       âûáèðàòü ñòîéêèå ÷èñëà è ò.ï.

                          Ñåðãåé Íèêîëåíêî    Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë   RSA
        Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà    Êðèïòîñèñòåìà Ðàáèíà


Êðèïòîñèñòåìà Ðàáèíà: î ñòîéêîñòè




       Íî ïðîòèâ chosen ciphertext äåëà ïëîõè.
       Âðàã ìîæåò èñïîëüçîâàòü êðèïòîñèñòåìó êàê îðàêóëà â òîì
       ñàìîì ñâåäåíèè è ðàçëîæèòü n. Íàïîìíèì:
             âðàã âûáèðàåò ñëó÷àéíîå ÷èñëî m, ïîäà¼ò ñèñòåìå m2 ;
             ñèñòåìà âûäà¼ò êàêîé-òî êâàäðàòíûé êîðåíü;
             ïîñêîëüêó ñèñòåìà íå çíàåò m, ñ âåðîÿòíîñòüþ 1 âðàã
                                                          2
             ïîëó÷àåò äðóãîé êâàäðàòíûé êîðåíü è ðàñêëàäûâàåò n íà
             ìíîæèòåëè.
       Êàê ñ ýòèì ñïðàâèòüñÿ?


                          Ñåðãåé Íèêîëåíêî    Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë   RSA
        Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà    Êðèïòîñèñòåìà Ðàáèíà


Êðèïòîñèñòåìà Ðàáèíà: î ñòîéêîñòè




       Ìîæíî ïðîñòî ïîòðåáîâàòü, ÷òîáû ñîîáùåíèå ñîäåðæàëî
       êàêèå-íèáóäü îñîáåííîñòè.
       Íàïðèìåð, îïðåäåë¼ííàÿ ÷àñòü ñîîáùåíèÿ äîëæíà áûòü
       ïîâòîðåíà äâà ðàçà.
       Óáèâàåì äâóõ çàéöåâ. Âî-ïåðâûõ, ðåøàåòñÿ ïðîáëåìà ñ
       àòàêîé: òåïåðü ñ ïîäàâëÿþùåé âåðîÿòíîñòüþ âðàãó ëèáî
       íè÷åãî íå ñêàæóò, ëèáî (åñëè îí áóäåò ïîäàâàòü ïðàâèëüíî
       îôîðìëåííûå ñîîáùåíèÿ) ñêàæóò åãî æå ñîîáùåíèå.
       Âî-âòîðûõ, ðåøàåòñÿ ïðîáëåìà òîãî, êàêîé èç ÷åòûð¼õ
       êîðíåé âûáðàòü Àëèñå.

                          Ñåðãåé Íèêîëåíêî    Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë   RSA
     Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà    Êðèïòîñèñòåìà Ðàáèíà




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

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



                       Ñåðãåé Íèêîëåíêî    Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì

More Related Content

What's hot

ბანკები და ფინანსები #428
ბანკები და ფინანსები #428ბანკები და ფინანსები #428
ბანკები და ფინანსები #428BFM2015
 
ბანკები და ფინანსები #535
ბანკები და ფინანსები #535ბანკები და ფინანსები #535
ბანკები და ფინანსები #535BFM2015
 
ბანკები და ფინანსები #536
ბანკები და ფინანსები #536ბანკები და ფინანსები #536
ბანკები და ფინანსები #536BFM2015
 
ბანკები და ფინანსები #442
ბანკები და ფინანსები #442ბანკები და ფინანსები #442
ბანკები და ფინანსები #442BFM2015
 
B&F #587
B&F #587B&F #587
B&F #587BFM2015
 
ბანკები და ფინანსები #509
ბანკები და ფინანსები #509ბანკები და ფინანსები #509
ბანკები და ფინანსები #509BFM2015
 
Ilya Trofimov - Distributed Coordinate Descent for L1-regularized Logistic Re...
Ilya Trofimov - Distributed Coordinate Descent for L1-regularized Logistic Re...Ilya Trofimov - Distributed Coordinate Descent for L1-regularized Logistic Re...
Ilya Trofimov - Distributed Coordinate Descent for L1-regularized Logistic Re...AIST
 
ბანკები და ფინანსები #443
ბანკები და ფინანსები #443ბანკები და ფინანსები #443
ბანკები და ფინანსები #443BFM2015
 
ბანკები და ფინანსები #508
ბანკები და ფინანსები #508ბანკები და ფინანსები #508
ბანკები და ფინანსები #508BFM2015
 
زندھه ڌيءَ کوھه ۾ اڇلي ڇڏي
زندھه ڌيءَ کوھه ۾ اڇلي ڇڏيزندھه ڌيءَ کوھه ۾ اڇلي ڇڏي
زندھه ڌيءَ کوھه ۾ اڇلي ڇڏيIlyas Qadri Ziaee
 
ბანკები და ფინანსები #484
ბანკები და ფინანსები #484ბანკები და ფინანსები #484
ბანკები და ფინანსები #484BFM2015
 
Maal wirasat main khayanat na kijiay.sindhi
Maal wirasat main khayanat na kijiay.sindhiMaal wirasat main khayanat na kijiay.sindhi
Maal wirasat main khayanat na kijiay.sindhidawateislami
 

What's hot (14)

ბანკები და ფინანსები #428
ბანკები და ფინანსები #428ბანკები და ფინანსები #428
ბანკები და ფინანსები #428
 
ბანკები და ფინანსები #535
ბანკები და ფინანსები #535ბანკები და ფინანსები #535
ბანკები და ფინანსები #535
 
ბანკები და ფინანსები #536
ბანკები და ფინანსები #536ბანკები და ფინანსები #536
ბანკები და ფინანსები #536
 
ბანკები და ფინანსები #442
ბანკები და ფინანსები #442ბანკები და ფინანსები #442
ბანკები და ფინანსები #442
 
best automotive
best automotivebest automotive
best automotive
 
B&F #587
B&F #587B&F #587
B&F #587
 
ბანკები და ფინანსები #509
ბანკები და ფინანსები #509ბანკები და ფინანსები #509
ბანკები და ფინანსები #509
 
Ilya Trofimov - Distributed Coordinate Descent for L1-regularized Logistic Re...
Ilya Trofimov - Distributed Coordinate Descent for L1-regularized Logistic Re...Ilya Trofimov - Distributed Coordinate Descent for L1-regularized Logistic Re...
Ilya Trofimov - Distributed Coordinate Descent for L1-regularized Logistic Re...
 
ბანკები და ფინანსები #443
ბანკები და ფინანსები #443ბანკები და ფინანსები #443
ბანკები და ფინანსები #443
 
ბანკები და ფინანსები #508
ბანკები და ფინანსები #508ბანკები და ფინანსები #508
ბანკები და ფინანსები #508
 
زندھه ڌيءَ کوھه ۾ اڇلي ڇڏي
زندھه ڌيءَ کوھه ۾ اڇلي ڇڏيزندھه ڌيءَ کوھه ۾ اڇلي ڇڏي
زندھه ڌيءَ کوھه ۾ اڇلي ڇڏي
 
Zbirka za 5 razred
Zbirka za 5 razredZbirka za 5 razred
Zbirka za 5 razred
 
ბანკები და ფინანსები #484
ბანკები და ფინანსები #484ბანკები და ფინანსები #484
ბანკები და ფინანსები #484
 
Maal wirasat main khayanat na kijiay.sindhi
Maal wirasat main khayanat na kijiay.sindhiMaal wirasat main khayanat na kijiay.sindhi
Maal wirasat main khayanat na kijiay.sindhi
 

Viewers also liked

Mobiilisti omniassa suunnittelua_2011
Mobiilisti omniassa suunnittelua_2011Mobiilisti omniassa suunnittelua_2011
Mobiilisti omniassa suunnittelua_2011Pauliina Venho
 
Programación cuartos de final vi campeonato nacional femenino sub 19
Programación cuartos de final vi campeonato nacional femenino sub 19Programación cuartos de final vi campeonato nacional femenino sub 19
Programación cuartos de final vi campeonato nacional femenino sub 19alcaldiadetamesis
 
Zavádějte službu jako projekt!
Zavádějte službu jako projekt!Zavádějte službu jako projekt!
Zavádějte službu jako projekt!KISK FF MU
 
User Experience 2008: Платежные терминалы глазами пользователей
User Experience 2008: Платежные терминалы глазами пользователейUser Experience 2008: Платежные терминалы глазами пользователей
User Experience 2008: Платежные терминалы глазами пользователейMaria Chaykina
 
Bi quyet tu duy trieu phu
Bi quyet tu duy trieu phuBi quyet tu duy trieu phu
Bi quyet tu duy trieu phuTruong Tho
 
Mobiilioppimista viheralalla
Mobiilioppimista viheralallaMobiilioppimista viheralalla
Mobiilioppimista viheralallaPauliina Venho
 
Nueva ley de delitos informaticos
Nueva ley de delitos informaticosNueva ley de delitos informaticos
Nueva ley de delitos informaticosCYNTIA
 
Tomáš Hajzler v Bloku expertů
Tomáš Hajzler v Bloku expertůTomáš Hajzler v Bloku expertů
Tomáš Hajzler v Bloku expertůKISK FF MU
 
WebExpo 2008 Spravnykrok
WebExpo 2008 SpravnykrokWebExpo 2008 Spravnykrok
WebExpo 2008 SpravnykrokWebExpo
 
One piece volume 48(460-470)
One piece volume 48(460-470)One piece volume 48(460-470)
One piece volume 48(460-470)Marcos Donato
 
User Experience 2010: Где купить фоторужье, или как с помощью карточной сорти...
User Experience 2010: Где купить фоторужье, или как с помощью карточной сорти...User Experience 2010: Где купить фоторужье, или как с помощью карточной сорти...
User Experience 2010: Где купить фоторужье, или как с помощью карточной сорти...Maria Chaykina
 
User Experience 2011: Принципы композиции и модульные сетки при проектировани...
User Experience 2011: Принципы композиции и модульные сетки при проектировани...User Experience 2011: Принципы композиции и модульные сетки при проектировани...
User Experience 2011: Принципы композиции и модульные сетки при проектировани...Maria Chaykina
 
Mobiilineuvojan työ ja roolit
Mobiilineuvojan työ ja roolitMobiilineuvojan työ ja roolit
Mobiilineuvojan työ ja roolitPauliina Venho
 
Treinamento Testes Unitários - parte 2
Treinamento Testes Unitários - parte 2Treinamento Testes Unitários - parte 2
Treinamento Testes Unitários - parte 2Diego Pacheco
 

Viewers also liked (20)

Mobiilisti omniassa suunnittelua_2011
Mobiilisti omniassa suunnittelua_2011Mobiilisti omniassa suunnittelua_2011
Mobiilisti omniassa suunnittelua_2011
 
Programación cuartos de final vi campeonato nacional femenino sub 19
Programación cuartos de final vi campeonato nacional femenino sub 19Programación cuartos de final vi campeonato nacional femenino sub 19
Programación cuartos de final vi campeonato nacional femenino sub 19
 
PoltWERTgeist
PoltWERTgeistPoltWERTgeist
PoltWERTgeist
 
Zavádějte službu jako projekt!
Zavádějte službu jako projekt!Zavádějte službu jako projekt!
Zavádějte službu jako projekt!
 
User Experience 2008: Платежные терминалы глазами пользователей
User Experience 2008: Платежные терминалы глазами пользователейUser Experience 2008: Платежные терминалы глазами пользователей
User Experience 2008: Платежные терминалы глазами пользователей
 
Bi quyet tu duy trieu phu
Bi quyet tu duy trieu phuBi quyet tu duy trieu phu
Bi quyet tu duy trieu phu
 
Partidos de semifinal
Partidos de semifinalPartidos de semifinal
Partidos de semifinal
 
Mobiilioppimista viheralalla
Mobiilioppimista viheralallaMobiilioppimista viheralalla
Mobiilioppimista viheralalla
 
Nueva ley de delitos informaticos
Nueva ley de delitos informaticosNueva ley de delitos informaticos
Nueva ley de delitos informaticos
 
Tomáš Hajzler v Bloku expertů
Tomáš Hajzler v Bloku expertůTomáš Hajzler v Bloku expertů
Tomáš Hajzler v Bloku expertů
 
slideshare
slideshareslideshare
slideshare
 
Sunsets
SunsetsSunsets
Sunsets
 
WebExpo 2008 Spravnykrok
WebExpo 2008 SpravnykrokWebExpo 2008 Spravnykrok
WebExpo 2008 Spravnykrok
 
күз
күзкүз
күз
 
One piece volume 48(460-470)
One piece volume 48(460-470)One piece volume 48(460-470)
One piece volume 48(460-470)
 
Mama
MamaMama
Mama
 
User Experience 2010: Где купить фоторужье, или как с помощью карточной сорти...
User Experience 2010: Где купить фоторужье, или как с помощью карточной сорти...User Experience 2010: Где купить фоторужье, или как с помощью карточной сорти...
User Experience 2010: Где купить фоторужье, или как с помощью карточной сорти...
 
User Experience 2011: Принципы композиции и модульные сетки при проектировани...
User Experience 2011: Принципы композиции и модульные сетки при проектировани...User Experience 2011: Принципы композиции и модульные сетки при проектировани...
User Experience 2011: Принципы композиции и модульные сетки при проектировани...
 
Mobiilineuvojan työ ja roolit
Mobiilineuvojan työ ja roolitMobiilineuvojan työ ja roolit
Mobiilineuvojan työ ja roolit
 
Treinamento Testes Unitários - parte 2
Treinamento Testes Unitários - parte 2Treinamento Testes Unitários - parte 2
Treinamento Testes Unitários - parte 2
 

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
 

20090927 cryptoprotocols nikolenko_lecture01

  • 1. Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì Ñåðãåé Íèêîëåíêî Êðèïòîãðàôèÿ CS Club, îñåíü 2009 Ñåðãåé Íèêîëåíêî Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
  • 2. Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë Àðèôìåòèêà Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà Ñòåïåíè è êîðíè Äèñêðåòíûé ëîãàðèôì Outline 1 Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë Àðèôìåòèêà Ñòåïåíè è êîðíè Äèñêðåòíûé ëîãàðèôì 2 Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà RSA Êðèïòîñèñòåìà Ðàáèíà Ñåðãåé Íèêîëåíêî Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
  • 3. Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë Àðèôìåòèêà Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà Ñòåïåíè è êîðíè Äèñêðåòíûé ëîãàðèôì Àðèôìåòèêà ïî ìîäóëþ n Z+ n ýòî ãðóïïà ïî ñëîæåíèþ. Z∗ ýòî ãðóïïà ïî óìíîæåíèþ. n Ñêîëüêî ýëåìåíòîâ â Z∗ ? n Ñåðãåé Íèêîëåíêî Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
  • 4. Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë Àðèôìåòèêà Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà Ñòåïåíè è êîðíè Äèñêðåòíûé ëîãàðèôì Àðèôìåòèêà ïî ìîäóëþ n Z+ n ýòî ãðóïïà ïî ñëîæåíèþ. Z∗ ýòî ãðóïïà ïî óìíîæåíèþ. n Ñêîëüêî ýëåìåíòîâ â Z∗ ? n Îáðàòèìûå ýëåìåíòû â Zn ýòî âçàèìíî ïðîñòûå ñ n. Èõ âñåãî φ(n) ôóíêöèÿ Ýéëåðà. Åñëè p è q ïðîñòûå, òî φ(p ) = p − 1, φ(pq ) = (p − 1)(q − 1). Ñåðãåé Íèêîëåíêî Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
  • 5. Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë Àðèôìåòèêà Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà Ñòåïåíè è êîðíè Äèñêðåòíûé ëîãàðèôì Àðèôìåòèêà ïî ìîäóëþ n Z+ n ýòî ãðóïïà ïî ñëîæåíèþ. Z∗ ýòî ãðóïïà ïî óìíîæåíèþ. n Ñêîëüêî ýëåìåíòîâ â Z∗ ? n Åñëè p ïðîñòîå, òî Zp ýòî ïîëå: ó êàæäîãî ýëåìåíòà, êðîìå íóëÿ, åñòü îáðàòíûé ïî óìíîæåíèþ. Íàä ïîëåì âåðíû ïîëåçíûå ôàêòû èç àëãåáðû: íàïðèìåð, íàä ïîëåì ìíîãî÷ëåí ñòåïåíè d èìååò íå áîëåå d êîðíåé. Ñåðãåé Íèêîëåíêî Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
  • 6. Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë Àðèôìåòèêà Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà Ñòåïåíè è êîðíè Äèñêðåòíûé ëîãàðèôì Àðèôìåòèêà ïî ìîäóëþ n Íà âñÿêèé ñëó÷àé åù¼ âñïîìíèì, ÷òî áûâàþò êîíå÷íûå ïîëÿ ñ pm ýëåìåíòàìè. Èõ ìîæíî ðàññìàòðèâàòü êàê ïîëÿ ìíîãî÷ëåíîâ ïî ìîäóëþ òîãî èëè èíîãî íåïðèâîäèìîãî ìíîãî÷ëåíà. Íàïðèìåð, ïîëå F16 ñîñòîèò èç ñëåäóþùèõ ýëåìåíòîâ: 0, x 2 x 3 2 x +x 3 1 x +1 2 x +1 3 x +x +1 2 3 x x 2 +x x 3 +x x 3 + x2 + x 1 x + x12+x + 1 x 3+x + 1 3 2 x +x +x + Îïåðàöèè ïðîèçâîäÿòñÿ ïî ìîäóëþ x 4 + x + 1 (èëè x + x + 1, èëè x + x + x + 1 ïîëó÷èòñÿ îäíî è òî æå 4 3 4 3 2 ïîëå). Ñåðãåé Íèêîëåíêî Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
  • 7. Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë Àðèôìåòèêà Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà Ñòåïåíè è êîðíè Äèñêðåòíûé ëîãàðèôì Ìàëàÿ òåîðåìà Ôåðìà Åñëè p ïðîñòîå, òî äëÿ ëþáîãî a ap ≡ a (mod p), à äëÿ ëþáîãî a, âçàèìíî ïðîñòîãî ñ p, ap−1 ≡ 1 (mod p). Ñîîòâåòñòâåííî, äëÿ ïðîñòîãî p è ëþáûõ m è n åñëè m ≡ n (mod p − 1), òî ∀a am ≡ an (mod p). Òåîðåìà Ýéëåðà äëÿ ëþáîãî n è ëþáîãî a, âçàèìíî ïðîñòîãî ñ n, a φ(n) ≡ 1 (mod n). Ñåðãåé Íèêîëåíêî Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
  • 8. Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë Àðèôìåòèêà Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà Ñòåïåíè è êîðíè Äèñêðåòíûé ëîãàðèôì Àëãîðèòì Åâêëèäà Àëãîðèòì Åâêëèäà: êëàññè÷åñêèé âû÷èñëÿåò gcd. Êðîìå d = gcd(a, b), âû÷èñëÿåò åù¼ äâà ÷èñëà x è y , òàêèå, ÷òî ax + by = d . Êàê ïðèìåíèòü àëãîðèòì Åâêëèäà, ÷òîáû íàéòè a−1 (mod n)? Ñåðãåé Íèêîëåíêî Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
  • 9. Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë Àðèôìåòèêà Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà Ñòåïåíè è êîðíè Äèñêðåòíûé ëîãàðèôì Àëãîðèòì Åâêëèäà Àëãîðèòì Åâêëèäà: êëàññè÷åñêèé âû÷èñëÿåò gcd. Êðîìå d = gcd(a, b), âû÷èñëÿåò åù¼ äâà ÷èñëà x è y , òàêèå, ÷òî ax + by = d . Êàê ïðèìåíèòü àëãîðèòì Åâêëèäà, ÷òîáû íàéòè a−1 (mod n)? Íàéòè òàêèå x è y , ÷òî ax + ny = d , ãäå d = gcd(a, n). Åñëè d 1, òî a íåîáðàòèìî â Zp ; åñëè d = 1, òî x = a−1 (mod n). Ñåðãåé Íèêîëåíêî Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
  • 10. Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë Àðèôìåòèêà Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà Ñòåïåíè è êîðíè Äèñêðåòíûé ëîãàðèôì Âîçâåäåíèå â ñòåïåíü Åñëè åñòü äâà ÷èñëà a è b ïî ìîäóëþ n, è ìû õîòèì âû÷èñëèòü ab (mod n), òî ìîæíî âû÷èñëèòü a 2 (mod n), a3 (mod n), . . . Çäåñü b − 1 óìíîæåíèå ïî ìîäóëþ n. Ìîæíî ëè ëó÷øå? Ñåðãåé Íèêîëåíêî Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
  • 11. Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë Àðèôìåòèêà Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà Ñòåïåíè è êîðíè Äèñêðåòíûé ëîãàðèôì Repeated squarings Ìîæíî ñäåëàòü òàê: çàïèøåì b êàê ñòðîêó áèòîâ. Ïîòîì áóäåì âîçâîäèòü a â êâàäðàò, äîìíîæàÿ íà a òàì, ãäå ó b áèòû ðàâíû 1. Íàïðèìåð: b = 910 = 10012 ⇒ ab = ((a2 )2 )2 · a, 4 óìíîæåíèÿ. b = 6553710 = 100000000000000012 ⇒ ⇒ a b = (((a2 )2 ) . . .)2 · a, 17 óìíîæåíèé. 17 çíà÷èòåëüíî ìåíüøå, ÷åì 65536. Ñåðãåé Íèêîëåíêî Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
  • 12. Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë Àðèôìåòèêà Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà Ñòåïåíè è êîðíè Äèñêðåòíûé ëîãàðèôì Êâàäðàòíûå êîðíè Òåïåðü äàâàéòå íàîáîðîò. Êàê ïî x 2 (mod p) íàéòè x (mod p )? Âî-ïåðâûõ, íå âñÿêîå ÷èñëî ÿâëÿåòñÿ êâàäðàòîì ïî ìîäóëþ p . Òå, êîòîðûå ÿâëÿþòñÿ, íàçûâàþòñÿ êâàäðàòè÷íûìè âû÷åòàìè.  Z∗ âû÷åòîâ ñòîëüêî æå, ñêîëüêî íåâû÷åòîâ, à èìåííî p 2 . Ïî÷åìó? p −1 Ñåðãåé Íèêîëåíêî Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
  • 13. Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë Àðèôìåòèêà Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà Ñòåïåíè è êîðíè Äèñêðåòíûé ëîãàðèôì Êâàäðàòíûå êîðíè 2 Ðàññìîòðèì 12, 22, . . . , p−1 . 2 Ïîñêîëüêó n 2 ≡ (p − n)2 (mod n), âñåãî âû÷åòîâ íå áîëüøå 2 . p −1 Ïóñòü èõ ìåíüøå. Òîãäà äëÿ íåêîòîðûõ 1 ≤ i , j ≤ p−1 2 2 2 2 i ≡ (−i ) ≡ j ≡ (−j ) 2 (mod p ). Èíà÷å ãîâîðÿ, ó óðàâíåíèÿ x 2 ≡ i 2 (mod p) ÷åòûðå ðàçíûõ êîðíÿ. Íî Zp ïîëå, è ó íåãî íå ìîæåò áûòü áîëüøå äâóõ êîðíåé. Ñåðãåé Íèêîëåíêî Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
  • 14. Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë Àðèôìåòèêà Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà Ñòåïåíè è êîðíè Äèñêðåòíûé ëîãàðèôì Ñèìâîë Ëåæàíäðà Ñèìâîë Ëåæàíäðà:  0 a ≡ 0 (mod p),  ,   = 1, a ≡ 0 (mod p ), è äëÿ íåêîòîðîãî x x 2 ≡ 0, a p   −1, a ≡ 0 (mod p ), è òàêîãî x íå ñóùåñòâóåò. Äëÿ ïðîñòîãî p a p ≡ a(p−1)/2 (mod p). Ñåðãåé Íèêîëåíêî Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
  • 15. Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë Àðèôìåòèêà Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà Ñòåïåíè è êîðíè Äèñêðåòíûé ëîãàðèôì Ñèìâîë Ëåæàíäðà Êðîìå òîãî, ab a b = , p p p q 1 21 21 q . p = (− ) p p − q − Ýòî ïîçâîëÿåò ïîñòðîèòü àëãîðèòì äëÿ âû÷èñëåíèÿ ñèìâîëà Ëåæàíäðà p :a ðàçëîæèòü p â ïðîèçâåäåíèå pp . . . ppm ; a 1 çàìåíèòü íà pi (mod p), ïåðåâåðíóòü, ïîâòîðèòü. Ñåðãåé Íèêîëåíêî Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
  • 16. Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë Àðèôìåòèêà Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà Ñòåïåíè è êîðíè Äèñêðåòíûé ëîãàðèôì Êâàäðàòíûé êîðåíü Òåïåðü âîçâðàùàåìñÿ ê êâàäðàòíîìó êîðíþ. Ïóñòü äàíî ïðîñòîå p è a ∈ Zp . Åñëè p ≡ 3 (mod 4), òî êîðåíü èùåòñÿ êàê x ≡ a (p +1)/4 (mod n). Äåéñòâèòåëüíî, 1= a p ≡ a(p−1)/2 (mod p). Çíà÷èò, x 2 ≡ a(p+1)/2 ≡ a · a(p−1)/2 ≡ a (mod p). Ñåðãåé Íèêîëåíêî Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
  • 17. Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë Àðèôìåòèêà Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà Ñòåïåíè è êîðíè Äèñêðåòíûé ëîãàðèôì Êâàäðàòíûé êîðåíü Äëÿ p ≡ 1 (mod 4) âåðîÿòíîñòíûé àëãîðèòì. Ðàññìîòðèì ìíîãî÷ëåí x (p−1)/2 − 1. Îí ñòåïåíè p−1 , åãî 2 êîðíè âñå êâàäðàòè÷íûå âû÷åòû ïî ìîäóëþ p, è òîëüêî îíè. Òåïåðü ðàññìîòðèì ìíîãî÷ëåí f (x ) ≡ x − a ≡ (x − r )(x + r ) (mod p ). Ïîäñòàâèì 2 f (x − δ) ≡ (x − (δ − r ))(x − (δ + r )) (mod p ). Ôàêò (áåç äîêàçàòåëüñòâà): äëÿ ïîëîâèíû δ îäíî èç çíà÷åíèé (δ − r ), (δ + r ) ÿâëÿåòñÿ âû÷åòîì, à äðóãîå íåò. Âûáåðåì δ ñëó÷àéíî è ïîäñ÷èòàåì gcd(f (x − δ), x (p−1)/2 − 1) (êàê ìíîãî÷ëåíîâ). Òîãäà ñ âåðîÿòíîñòüþ 1/2 ìû ïîëó÷èì êîðåíü èç a. Ñåðãåé Íèêîëåíêî Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
  • 18. Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë Àðèôìåòèêà Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà Ñòåïåíè è êîðíè Äèñêðåòíûé ëîãàðèôì Äëÿ ñîñòàâíûõ n Ïóñòü, íàïðèìåð, n = pq. Àëãîðèòì âû÷èñëåíèÿ êâàäðàòíîãî êîðíÿ èç a ïî ìîäóëþ n. 1 Íàéòè êîðíè (r , −r ) ÷èñëà a ïî ìîäóëþ p. 2 Íàéòè êîðíè (s , −s ) ÷èñëà a ïî ìîäóëþ q. 3 Íàéòè àëãîðèòìîì Åâêëèäà òàêèå c è d , ÷òî cp + dq = 1. 4 Âû÷èñëèòü x = rdq + scp (mod n) è y = rdq − scp (mod n). 5 Âåðíóòü (±x , ±y ). Èíà÷å ãîâîðÿ, ìû ìîæåì âû÷èñëÿòü êâàäðàòíûå êîðíè, åñëè óìååì ðàñêëàäûâàòü n íà ìíîæèòåëè. Ñåðãåé Íèêîëåíêî Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
  • 19. Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë Àðèôìåòèêà Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà Ñòåïåíè è êîðíè Äèñêðåòíûé ëîãàðèôì Îáñóæäåíèå àëãîðèòìà Âû÷èñëåíèå êâàäðàòíîãî êîðíÿ ïîòðåáîâàëî óìåòü ðàñêëàäûâàòü a íà ìíîæèòåëè. Áåç ýòîãî äàæå íå ïðîâåðèòü, ÿâëÿåòñÿ ëè a âû÷åòîì. À ìîæíî ëè íàîáîðîò? Ìîæíî ëè ðàçëîæèòü ÷èñëî íà ìíîæèòåëè, óìåÿ âû÷èñëÿòü êâàäðàòíûå êîðíè ïî åãî ìîäóëþ? Ñåðãåé Íèêîëåíêî Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
  • 20. Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë Àðèôìåòèêà Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà Ñòåïåíè è êîðíè Äèñêðåòíûé ëîãàðèôì √ Ðàçëîæåíèå íà ìíîæèòåëè ÷åðåç a Ìîæíî! Ïðåäïîëîæèì, ÷òî ìû óìååì âûäàâàòü íåêèé êâàäðàòíûé êîðåíü ïî ìîäóëþ n. Âîçüì¼ì ñëó÷àéíîå x , âû÷èñëèì a = x 2 è ïîäàäèì àëãîðèòìó. Åñëè ìû ïîëó÷èëè ±x , ïîâòîðèì îïåðàöèþ. À åñëè ïîëó÷èëè y = ±x , òî ïîëó÷èëîñü, ÷òî 2 x ≡ y 2 (mod n), íî y = ±x (mod n). Ýòî çíà÷èò, ÷òî n äåëèò x 2 − y 2 = (x − y )(x + y ), íî ïðè ýòîì íå äåëèò ëèáî x − y , ëèáî x + y . Çíà÷èò, gcd(x − y , n) íåòðèâèàëüíûé äåëèòåëü n. Ñåðãåé Íèêîëåíêî Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
  • 21. Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë Àðèôìåòèêà Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà Ñòåïåíè è êîðíè Äèñêðåòíûé ëîãàðèôì Ïîñòàíîâêà çàäà÷è Òåïåðü ïîñòàâèì áîëåå ñëîæíóþ çàäà÷ó íàéòè ëîãàðèôì. Äèñêðåòíûé ëîãàðèôì: ïî ïðîñòîìó ÷èñëó p , ÷èñëó a ∈ Zp , ïîðîæäàþùåìó Zp , è ÷èñëó b ∈ Zp íàéòè òàêîå ∗ ∗ ∗ 0 ≤ x ≤ p − 2, ÷òî x a ≡ b (mod p ). Îáîáù¼ííûé äèñêðåòíûé ëîãàðèôì: òî æå â ïðîèçâîëüíîé öèêëè÷åñêîé ãðóïïå G : ïî ãåíåðàòîðó a ∈ G è b ∈ G íàéòè òàêîé x , ÷òî ax = b. Ñåðãåé Íèêîëåíêî Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
  • 22. Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë Àðèôìåòèêà Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà Ñòåïåíè è êîðíè Äèñêðåòíûé ëîãàðèôì Çàìå÷àíèÿ Ñëîæíîñòü íå çàâèñèò îò ãåíåðàòîðà a; äëÿ äðóãîãî ãåíåðàòîðà a x a = b = a y = (az )y , è loga b = loga b(loga a )−1 . Íî ñëîæíîñòü çàâèñèò îò ïðåäñòàâëåíèÿ ãðóïïû, ò.å. äëÿ èçîìîðôíûõ ãðóïï ñëîæíîñòü äèñêðåòíîãî ëîãàðèôìà ìîæåò áûòü ðàçíîé. Ïî÷åìó? Ñåðãåé Íèêîëåíêî Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
  • 23. Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë Àðèôìåòèêà Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà Ñòåïåíè è êîðíè Äèñêðåòíûé ëîãàðèôì Çàìå÷àíèÿ Ñëîæíîñòü íå çàâèñèò îò ãåíåðàòîðà a; äëÿ äðóãîãî ãåíåðàòîðà a x a = b = a y = (az )y , è loga b = loga b(loga a )−1 . Íî ñëîæíîñòü çàâèñèò îò ïðåäñòàâëåíèÿ ãðóïïû, ò.å. äëÿ èçîìîðôíûõ ãðóïï ñëîæíîñòü äèñêðåòíîãî ëîãàðèôìà ìîæåò áûòü ðàçíîé. Ïî÷åìó? Ïîòîìó ÷òî ëþáàÿ öèêëè÷åñêàÿ ãðóïïà èçîìîðôíà Z+ äëÿ n íåêîòîðîãî n. Äèñêðåòíûé ëîãàðèôì â Z+ ýòî çíà÷èò íàéòè òàêîé x , n ÷òî ax = b (mod n). Íàâåðíîå, ýòî íå òàê óæ ñëîæíî... Ñåðãåé Íèêîëåíêî Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
  • 24. Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë Àðèôìåòèêà Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà Ñòåïåíè è êîðíè Äèñêðåòíûé ëîãàðèôì Çàìå÷àíèÿ Àëãîðèòìû äëÿ çàäà÷è äèñêðåòíîãî ëîãàðèôìà äåëÿòñÿ íà òðè ãðóïïû: 1 Ðàáîòàþùèå äëÿ ëþáûõ ãðóïï. 2 Ðàáîòàþùèå äëÿ ëþáûõ ãðóïï, íî ýôôåêòèâíûå äëÿ ¾ãëàäêèõ¿ (êîãäà ïîðÿäîê ãðóïïû èìååò ìàëåíüêèå ïðîñòûå äåëèòåëè). 3 Ýôôåêòèâíûå òîëüêî äëÿ íåêîòîðûõ ãðóïï. Ìû áóäåì èõ èçó÷àòü â ýòîì êóðñå, íî ïîçæå. Ñåðãåé Íèêîëåíêî Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
  • 25. Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë Àðèôìåòèêà Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà Ñòåïåíè è êîðíè Äèñêðåòíûé ëîãàðèôì Èòîãè ïðèñêàçêè Ìû òåïåðü óìååì â Zn : áûñòðî âîçâîäèòü â ñòåïåíü; íàõîäèòü a−1 ; èñïîëüçîâàòü àëãîðèòì Åâêëèäà; ïðèìåíÿòü ðàâåíñòâî aφ(n) ≡ 1 (mod n). Ìû âûÿñíèëè, ÷òî óìååì ðàñêëàäûâàòü n íà ìíîæèòåëè òîãäà è òîëüêî òîãäà, êîãäà óìååì âû÷èñëÿòü ïî ìîäóëþ n êâàäðàòíûå êîðíè. È óçíàëè î çàäà÷å äèñêðåòíîãî ëîãàðèôìà. Ñåðãåé Íèêîëåíêî Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
  • 26. Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë RSA Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà Êðèïòîñèñòåìà Ðàáèíà Outline 1 Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë Àðèôìåòèêà Ñòåïåíè è êîðíè Äèñêðåòíûé ëîãàðèôì 2 Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà RSA Êðèïòîñèñòåìà Ðàáèíà Ñåðãåé Íèêîëåíêî Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
  • 27. Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë RSA Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà Êðèïòîñèñòåìà Ðàáèíà Ïðèíöèï ðàáîòû Ó êàæäîãî ó÷àñòíèêà äâà êëþ÷à, ñåêðåòíûé è ïóáëè÷íûé. Ñåðãåé Íèêîëåíêî Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
  • 28. Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë RSA Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà Êðèïòîñèñòåìà Ðàáèíà RSA: èñòîðèÿ 1973: Cliord Cocks èçîáð¼ë RSA, íî íå îïóáëèêîâàë (ðàáîòàë íà ðàçâåäêó). 1978: Ron Rivest, Adi Shamir, Leonard Adleman. 1983: MIT ïîëó÷èë ïàòåíò íà RSA; ñðîê äåéñòâèÿ èñòåêàë â 2003, íî â 2000 àëãîðèòì óæå áûë âûíåñåí â public domain. Èäåÿ êîäèðîâàòü ñîîáùåíèÿ òàê, ÷òîáû ðàñêîäèðîâàíèå èõ îïèðàëîñü íà êàêóþ-íèáóäü ñëîæíóþ âû÷èñëèòåëüíóþ ïðîáëåìó. Ñåðãåé Íèêîëåíêî Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
  • 29. Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë RSA Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà Êðèïòîñèñòåìà Ðàáèíà RSA: êëþ÷è Àëãîðèòì ãåíåðàöèè êëþ÷åé. 1 Ñãåíåðèðîâàòü äâà áîëüøèõ ñëó÷àéíûõ ðàçëè÷íûõ ïðîñòûõ ÷èñëà p è q ïðèìåðíî îäíîãî ðàçìåðà. 2 Âû÷èñëèòü n = pq è φ = (p − 1)(q − 1). 3 Âûáðàòü ñëó÷àéíîå ÷èñëî 1 e φ, âçàèìíî ïðîñòîå ñ φ. 4 Àëãîðèòìîì Åâêëèäà íàéòè d ≡ e −1 (mod φ). 5 Âûäàòü (n, e ) êàê ïóáëè÷íûé êëþ÷; ñîõðàíèòü d êàê ñåêðåòíûé êëþ÷. Ñåðãåé Íèêîëåíêî Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
  • 30. Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë RSA Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà Êðèïòîñèñòåìà Ðàáèíà RSA: êîäèðîâàíèå è äåêîäèðîâàíèå Êîäèðîâàíèå (ñîîáùåíèÿ m ñ ïóáëè÷íûì êëþ÷îì (n, e )). 1 Ïðåäñòàâèòü ñîîáùåíèå êàê ÷èñëî 0 ≤ m ≤ n − 1. 2 Âû÷èñëèòü c = me (mod n) è âûäàòü c êàê êîä. Äåêîäèðîâàíèå. 1 Âû÷èñëèòü m = c d (mod n). Ïî÷åìó äåêîäèðîâàíèå ðàáîòàåò? Ñåðãåé Íèêîëåíêî Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
  • 31. Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë RSA Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà Êðèïòîñèñòåìà Ðàáèíà RSA: êîäèðîâàíèå è äåêîäèðîâàíèå Êîäèðîâàíèå (ñîîáùåíèÿ m ñ ïóáëè÷íûì êëþ÷îì (n, e )). 1 Ïðåäñòàâèòü ñîîáùåíèå êàê ÷èñëî 0 ≤ m ≤ n − 1. 2 Âû÷èñëèòü c = me (mod n) è âûäàòü c êàê êîä. Äåêîäèðîâàíèå. 1 Âû÷èñëèòü m = c d (mod n). Ïî÷åìó äåêîäèðîâàíèå ðàáîòàåò? Ïîòîìó ÷òî d c ≡ m ed (mod n), è, ò.ê. ed = 1 + k φ, m ed ≡ m1+k φ ≡ m (mod n). Ñåðãåé Íèêîëåíêî Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
  • 32. Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë RSA Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà Êðèïòîñèñòåìà Ðàáèíà RSA: ïðîñòûå ÷èñëà Ìû òóò âñ¼ óìååì äåëàòü, êðîìå îäíîãî: êàê èñêàòü ïðîñòûå ÷èñëà? Åñëè ïðîâåðÿòü n íà ïðîñòîòó, äåëÿ íà âñå ÷èñëà äî √n, èøàê óìð¼ò ïåðâûì. Íàì ïîìîæåò ìàëàÿ òåîðåìà Ôåðìà: äëÿ ïðîñòîãî p è ëþáîãî 0 a p a p −1 ≡ 1 (mod p ). Êàê îíà ìîæåò íàì ïîìî÷ü? Ñåðãåé Íèêîëåíêî Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
  • 33. Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë RSA Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà Êðèïòîñèñòåìà Ðàáèíà RSA: ïðîñòûå ÷èñëà Èäåÿ: áóäåì âûáèðàòü ñëó÷àéíûå ÷èñëà a n è ïðîâåðÿòü, âåðíî ëè, ÷òî a n −1 ≡ 1 (mod n). Åñëè íåò, òî n òî÷íî ñîñòàâíîå. Åñëè äà, òî n, ñêîðåå âñåãî, ïðîñòîå. Åñëè n è a âûáðàíû ñëó÷àéíî, òî âåðîÿòíîñòü òîãî, ÷òî n ñîñòàâíîå, íî an−1 ≡ 1 (mod n), îêîëî 10−13. Íî âñ¼-òàêè áûâàåò; õóæå òîãî, áûâàþò ÷èñëà Êàðìàéêëà (Carmichael numbers), êîòîðûå íå ÿâëÿþòñÿ ïðîñòûìè, íî ïðè ýòîì äëÿ âñåõ a âåðíî an−1 ≡ 1 (mod n). Ïðèä¼òñÿ ÷óòü ìîäèôèöèðîâàòü. Ñåðãåé Íèêîëåíêî Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
  • 34. Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë RSA Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà Êðèïòîñèñòåìà Ðàáèíà RSA: ïðîñòûå ÷èñëà Òåñò Ìèëëåðà-Ðàáèíà : âûðàçèì n − 1 = 2b c , äåëÿ ïîïîëàì. Òåïåðü áóäåì áðàòü ñëó÷àéíûå a è âû÷èñëÿòü ñíà÷àëà ac , à ïîòîì ïîñëåäîâàòåëüíî âîçâîäèòü â êâàäðàò. Åñëè ac ≡ 1 (mod n), íî an−1 ≡ 1 (mod n), çíà÷èò, íà êàêîì-òî øàãå ìû íàøëè ÷èñëî, êîòîðîå íå ñðàâíèìî ñ 1, à åãî êâàäðàò ñðàâíèì. Åñëè ýòî ÷èñëî íå ñðàâíèìî ñ −1, òî ìû íàøëè íåòðèâèàëüíûé êâàäðàòíûé êîðåíü èç 1; ñëåäîâàòåëüíî, n ñîñòàâíîå. Ýòîò àëãîðèòì äëÿ ñîñòàâíûõ n âûÿâëÿåò ýòîò ôàêò ñ âåðîÿòíîñòüþ 4 (ïî a). 3 Òó æå èäåþ ìîæíî èñïîëüçîâàòü òàê, ÷òîáû ïîëó÷èëñÿ àëãîðèòì âû÷èñëåíèÿ êâàäðàòíîãî êîðíÿ íå èç 1, à èç ïðîèçâîëüíîãî ÷èñëà (óïðàæíåíèå). Ñåðãåé Íèêîëåíêî Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
  • 35. Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë RSA Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà Êðèïòîñèñòåìà Ðàáèíà RSA: î ñòîéêîñòè Âî-ïåðâûõ, åñëè óìåòü ðàñêëàäûâàòü ÷èñëà íà ìíîæèòåëè, òî RSA ðåøèòü ëåãêî (ìîæíî âû÷èñëèòü ñåêðåòíûé êëþ÷ òàê æå, êàê ïðè ãåíåðàöèè êëþ÷åé). Âî-âòîðûõ, åñëè âðàã ïîëó÷èò ñåêðåòíûé êëþ÷ d , îí ñìîæåò ðàçëîæèòü n íà ìíîæèòåëè: ò.ê. ed ≡ 1 (mod φ), òî ed − 1 = k φ, è aed −1 ≡ 1 (mod n) äëÿ âñåõ a. Âûðàçèì ed − 1 = 2 t äëÿ íå÷¼òíîãî t . s Ôàêò: ñóùåñòâóåò 1 ≤ i ≤ s , äëÿ êîòîðîãî 2 1t ≡ ±1 (mod n), íî a2 t ≡ 1 (mod n) i − i a äëÿ ïî êðàéíåé ìåðå ïîëîâèíû a ∈ Z∗ . n Âðàãó äîñòàòî÷íî âûáèðàòü1 a ñëó÷àéíî, èñêàòü òàêîé i , è êàê òîëüêî íàéä¼ò, gcd(a2 t , n) áóäåò íåòðèâèàëüíûì i − äåëèòåëåì n. Ñåðãåé Íèêîëåíêî Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
  • 36. Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë RSA Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà Êðèïòîñèñòåìà Ðàáèíà RSA: î ñòîéêîñòè Èíà÷å ãîâîðÿ, ðàçëîæåíèå n íà ìíîæèòåëè âû÷èñëèòåëüíî ýêâèâàëåíòíî òîìó, ÷òîáû íàéòè ñåêðåòíûé êëþ÷ d â êðèïòîñèñòåìå RSA. Íî íà ñàìîì äåëå âðàãó íå íàäî èñêàòü d , åìó íàäî ðàñêîäèðîâàòü ñîîáùåíèå. RSA problem: ïî äàííûì n , e è c íàéòè òàêîå m , ÷òî m ≡ c (mod n ). e Òî åñòü âû÷èñëèòü êîðåíü e -é ñòåïåíè ïî ñîñòàâíîìó ìîäóëþ n. Ñ÷èòàåòñÿ, ÷òî ýòà çàäà÷à òîæå âû÷èñëèòåëüíî ñëîæíà, íî íå èçâåñòíî, ýêâèâàëåíòíà ëè îíà ðàçëîæåíèþ n íà ìíîæèòåëè. Òåïåðü ïåðåéä¼ì ê áîëåå êîíêðåòíûì ïðîáëåìàì RSA. Ñåðãåé Íèêîëåíêî Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
  • 37. Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë RSA Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà Êðèïòîñèñòåìà Ðàáèíà RSA: î ñòîéêîñòè Êàêèå äîëæíû áûòü ïðîñòûå ÷èñëà p è q? Âî-ïåðâûõ, p è q íå äîëæíû áûòü ñëèøêîì ìàëåíüêèìè (ïðèìåðíî îäíîé äëèíû â áèòàõ), èíà÷å áûñòðûå àëãîðèòìû ñòàíóò åù¼ áûñòðåå. Íî, âî-âòîðûõ, p è q íå äîëæíû áûòü ñëèøêîì áëèçêè äðóã ê äðóãó; èíà÷å ìîæíî ïåðåáèðàòü ÷èñëà îêîëî √n. Ñèëüíûå ïðîñòûå ÷èñëà (strong primes): p ñèëüíîå ïðîñòîå, åñëè ó p − 1 åñòü áîëüøîé ïðîñòîé äåëèòåëü r ; ó p + 1 åñòü áîëüøîé ïðîñòîé äåëèòåëü; ó r − 1 åñòü áîëüøîé ïðîñòîé äåëèòåëü. Ñåðãåé Íèêîëåíêî Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
  • 38. Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë RSA Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà Êðèïòîñèñòåìà Ðàáèíà RSA: î ñòîéêîñòè Êàêîé âûáèðàòü e ? Îêàçûâàåòñÿ, ÷òî ñòîéêîñòü RSA îò e íå çàâèñèò. Ïîýòîìó ÷àñòî âûáèðàþò e = 3 èëè e = 65537, ÷òîáû ëåã÷å áûëî êîäèðîâàòü (2 è 17 óìíîæåíèé ñîîòâåòñòâåííî). Ò.å. ìîæíî ïðîñòî âûáðàòü òàêèå p è q, ÷òîáû (p − 1)(q − 1) íå äåëèëîñü íà 3, à ïîòîì âçÿòü e = 3. Íî ïðè ýòîì åñòü ïðîáëåìà. Ïðåäñòàâèì, ÷òî Àëèñà ïîñëàëà îäíî è òî æå ïèñüìî òðîèì äðóçüÿì... ×òî çäåñü áóäåò íå òàê? Ñåðãåé Íèêîëåíêî Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
  • 39. Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë RSA Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà Êðèïòîñèñòåìà Ðàáèíà RSA: î ñòîéêîñòè Ïóñòü Àëèñà ïîñëàëà òðè îäèíàêîâûõ ïèñüìà m òð¼ì äðóçüÿì ñ ìîäóëÿìè n1, n2 è n3 è ïóáëè÷íûìè êëþ÷àìè e = 3. Òîãäà ïåðåõâàòèâøèé ñîîáùåíèÿ âðàã çíàåò ïðî ñîîáùåíèå âåëè÷èíû m3 (mod n1), m3 (mod n2) è m3 (mod n3). Îí ìîæåò ïî êèòàéñêîé òåîðåìå îá îñòàòêàõ âû÷èñëèòü m3 (mod n1 n2 n3 ). Íî m3 n1n2n3. Çíà÷èò, îí ïðîñòî ïîëó÷èë íàñòîÿùåå m3, è åìó îñòà¼òñÿ òîëüêî âçÿòü îáû÷íûé (íå äèñêðåòíûé) êóáè÷åñêèé êîðåíü. Çíà÷èò, ñîîáùåíèÿ íóæíî äîïîëíÿòü ñëó÷àéíûìè âåëè÷èíàìè, ÷òîáû íå ïîñûëàòü îäíî è òî æå. Ñåðãåé Íèêîëåíêî Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
  • 40. Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë RSA Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà Êðèïòîñèñòåìà Ðàáèíà RSA: î ñòîéêîñòè Åù¼ ïðîùå: ïî òîìó æå ïðèíöèïó, íåëüçÿ âûáèðàòü òàêèå m , ÷òî m n , èíà÷å ìîæíî ïðîñòî ïîäñ÷èòàòü îáû÷íûé e êîðåíü. Çíà÷èò, äëÿ e = 3 íóæíî äîïèñûâàòü ÷òî-òî ñïåðåäè ñîîáùåíèÿ. Ðåàëüíûå ïðîòîêîëû ýòî è äåëàþò. Ñåðãåé Íèêîëåíêî Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
  • 41. Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë RSA Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà Êðèïòîñèñòåìà Ðàáèíà RSA: î ñòîéêîñòè Çàìå÷àíèå: âî âñåõ àëãîðèòìàõ ñ ïóáëè÷íûì êëþ÷îì âðàã ìîæåò ñàì êîäèðîâàòü. Çíà÷èò, åñëè îí ìîæåò ïåðåáðàòü âñå âîçìîæíûå ñîîáùåíèÿ, îí ìîæåò íàéòè m. Ïîýòîìó íóæíî èñïîëüçîâàòü salt (ñëó÷àéíîå ÷èñëî, äîïèñûâàåìîå ê ñîîáùåíèþ). Ñåðãåé Íèêîëåíêî Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
  • 42. Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë RSA Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà Êðèïòîñèñòåìà Ðàáèíà RSA: î ñòîéêîñòè Äàëåå: ïðåäñòàâèì, ÷òî n âûáèðàåò êàêîé-íèáóäü ñåðâåð è ðàçäà¼ò åãî ñâîèì ïîëüçîâàòåëÿì. Ýòî çàìàí÷èâî, ïîòîìó ÷òî èñêàòü õîðîøèå p è q íå òàê ëåãêî. Ïî÷åìó ýòî íå ñðàáîòàåò? Ñåðãåé Íèêîëåíêî Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
  • 43. Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë RSA Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà Êðèïòîñèñòåìà Ðàáèíà RSA: î ñòîéêîñòè Äàëåå: ïðåäñòàâèì, ÷òî n âûáèðàåò êàêîé-íèáóäü ñåðâåð è ðàçäà¼ò åãî ñâîèì ïîëüçîâàòåëÿì. Ýòî çàìàí÷èâî, ïîòîìó ÷òî èñêàòü õîðîøèå p è q íå òàê ëåãêî. Ïî÷åìó ýòî íå ñðàáîòàåò? Ïîòîìó ÷òî òîãäà ëþáîé ïîëüçîâàòåëü ñìîæåò ðàçëîæèòü n íà ìíîæèòåëè è ïðî÷åñòü ñîîáùåíèÿ âñåõ îñòàëüíûõ ïîëüçîâàòåëåé. ×èñëî n äîëæíî áûòü ó êàæäîãî ñâî¼. Ñåðãåé Íèêîëåíêî Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
  • 44. Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë RSA Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà Êðèïòîñèñòåìà Ðàáèíà Chosen ciphertext àòàêè Ìû ãîâîðèëè îá àòàêàõ âèäîâ ciphertext only, known plaintext è chosen plaintext.  êðèïòîãðàôèè ñ îòêðûòûì êëþ÷îì chosen plaintext äîñòóïåí âñåãäà, à ïðèõîäèòñÿ ðàññìàòðèâàòü è åù¼ áîëåå ñòðàøíûå àòàêè. Chosen ciphertext: ×àðëè âûáèðàåò íåñêîëüêî øèôðîâ è ïðîñèò Àëèñó èõ ðàñøèôðîâàòü. Ïîòîì ×àðëè äîñòà¼òñÿ êîäèðîâàííîå ñîîáùåíèå c , è îí ïûòàåòñÿ åãî ðàñøèôðîâàòü ñàì. Adaptive chosen ciphertext: ×àðëè ñíà÷àëà ïîëó÷àåò c , à ïîòîì ìîæåò ñïðîñèòü Àëèñó ïðî íåñêîëüêî øèôðîâ; åäèíñòâåííîå îãðàíè÷åíèå ×àðëè íå ìîæåò ñïðàøèâàòü ïðî ñàì øèôð c . Ñåðãåé Íèêîëåíêî Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
  • 45. Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë RSA Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà Êðèïòîñèñòåìà Ðàáèíà RSA ïðîòèâ adaptive chosen ciphertext RSA ãîìîìîðôíà, ò.å. êîä ñîîáùåíèÿ m1m2 ýòî c1c2. Ïîýòîìó ïðîòèâ adaptive chosen ciphertext RSA áåññèëüíà: ïîëó÷èâ c , ×àðëè âûáèðàåò ñëó÷àéíîå ÷èñëî r è ñïðàøèâàåò Àëèñó ïðî c = cr e (mod n). Îòâåò Àëèñû ýòî mr , íóæíî òîëüêî ðàçäåëèòü íà r . Êàê ñ ýòèì áîðîòüñÿ íà ïðàêòèêå? Ñåðãåé Íèêîëåíêî Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
  • 46. Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë RSA Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà Êðèïòîñèñòåìà Ðàáèíà RSA ïðîòèâ adaptive chosen ciphertext RSA ãîìîìîðôíà, ò.å. êîä ñîîáùåíèÿ m1m2 ýòî c1c2. Ïîýòîìó ïðîòèâ adaptive chosen ciphertext RSA áåññèëüíà: ïîëó÷èâ c , ×àðëè âûáèðàåò ñëó÷àéíîå ÷èñëî r è ñïðàøèâàåò Àëèñó ïðî c = cr e (mod n). Îòâåò Àëèñû ýòî mr , íóæíî òîëüêî ðàçäåëèòü íà r . Êàê ñ ýòèì áîðîòüñÿ íà ïðàêòèêå? Íàïðèìåð, ìîæíî ïî çàïðîñàì âñÿêèõ òàì ×àðëè ðàñøèôðîâûâàòü ñîîáùåíèÿ òîëüêî îïðåäåë¼ííîãî âèäà, ïîòîìó ÷òî ×àðëèí c áóäåò ðàñøèôðîâûâàòüñÿ â êàêóþ-òî ñëó÷àéíóþ ñòðî÷êó; Àëèñà íå äîëæíà ïî çàïðîñó ðàñøèôðîâûâàòü íåëåãèòèìíûå ñîîáùåíèÿ. Ñåðãåé Íèêîëåíêî Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
  • 47. Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë RSA Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà Êðèïòîñèñòåìà Ðàáèíà Èäåÿ RSA îñíîâàíà íà ðàçëîæåíèè ÷èñåë. Íî âçëîì RSA (RSA problem) íå ýêâèâàëåíòåí ðàçëîæåíèþ n ; ïî êðàéíåé ìåðå, ìû îá ýòîì íå çíàåì. Ìîæíî ëè ïðèäóìàòü ñèñòåìó, âçëîì êîòîðîé áóäåò äîêàçóåìî ýêâèâàëåíòåí ðàçëîæåíèþ áîëüøîãî ÷èñëà íà ïðîñòûå ìíîæèòåëè? Íà ÷¼ì ìîæåò áûòü îñíîâàíà òàêàÿ ñèñòåìà? Ñåðãåé Íèêîëåíêî Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
  • 48. Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë RSA Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà Êðèïòîñèñòåìà Ðàáèíà Èäåÿ RSA îñíîâàíà íà ðàçëîæåíèè ÷èñåë. Íî âçëîì RSA (RSA problem) íå ýêâèâàëåíòåí ðàçëîæåíèþ n ; ïî êðàéíåé ìåðå, ìû îá ýòîì íå çíàåì. Ìîæíî ëè ïðèäóìàòü ñèñòåìó, âçëîì êîòîðîé áóäåò äîêàçóåìî ýêâèâàëåíòåí ðàçëîæåíèþ áîëüøîãî ÷èñëà íà ïðîñòûå ìíîæèòåëè? Íà ÷¼ì ìîæåò áûòü îñíîâàíà òàêàÿ ñèñòåìà? Íà çàäà÷å âû÷èñëåíèÿ êâàäðàòíîãî êîðíÿ. Ñåðãåé Íèêîëåíêî Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
  • 49. Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë RSA Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà Êðèïòîñèñòåìà Ðàáèíà Êðèïòîñèñòåìà Ðàáèíà: êëþ÷è Àëãîðèòì ïîðîæäåíèÿ êëþ÷åé. 1 Ñãåíåðèðîâàòü äâà áîëüøèõ ïðîñòûõ ÷èñëà p è q (êàê è â RSA, ëó÷øå ñèëüíûõ). 2 Âû÷èñëèòü n = pq. 3 Ïóáëè÷íûé êëþ÷ n, ñåêðåòíûé (p, q). Ñåðãåé Íèêîëåíêî Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
  • 50. Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë RSA Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà Êðèïòîñèñòåìà Ðàáèíà Êðèïòîñèñòåìà Ðàáèíà: [äå]êîäèðîâàíèå Àëãîðèòì êîäèðîâàíèÿ (âõîä: ïóáëè÷íûé êëþ÷ n, ñîîáùåíèå m). 1 Ïðåäñòàâèòü m êàê ÷èñëî, 0 ≤ m ≤ n − 1. 2 Âû÷èñëèòü c = m2 (mod n). Àëãîðèòì êîäèðîâàíèÿ (âõîä: ñåêðåòíûé êëþ÷ (p, q), øèôð c ). 1 Âû÷èñëèòü ÷åòûðå êâàäðàòíûõ êîðíÿ èç c (àëãîðèòì áûë âûøå). 2 Êàê-íèáóäü èç íèõ âûáðàòü. Ñåðãåé Íèêîëåíêî Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
  • 51. Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë RSA Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà Êðèïòîñèñòåìà Ðàáèíà Êðèïòîñèñòåìà Ðàáèíà: î ñòîéêîñòè Çàäà÷à, ñòîÿùàÿ ïåðåä ïàññèâíûì âðàãîì, ýòî â òî÷íîñòè çàäà÷à âû÷èñëåíèÿ êâàäðàòíîãî êîðíÿ. Îíà ýêâèâàëåíòíà ðàçëîæåíèþ n íà ìíîæèòåëè. Ò.å. ìû ïîñòðîèëè ñèñòåìó, âçëîì êîòîðîé äîêàçóåìî ñâîäèòñÿ ê ðåøåíèþ çàäà÷è ðàçëîæåíèÿ. Ýòî êðèïòîãðàôû íàçûâàþò provable security. Êðèïòîñèñòåìà Ðàáèíà ïîäâåðæåíà òåì æå àòàêàì, ÷òî RSA, åñëè îíè óïðîùàþò ðàçëîæåíèå n; ïîýòîìó íàäî âûáèðàòü ñòîéêèå ÷èñëà è ò.ï. Ñåðãåé Íèêîëåíêî Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
  • 52. Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë RSA Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà Êðèïòîñèñòåìà Ðàáèíà Êðèïòîñèñòåìà Ðàáèíà: î ñòîéêîñòè Íî ïðîòèâ chosen ciphertext äåëà ïëîõè. Âðàã ìîæåò èñïîëüçîâàòü êðèïòîñèñòåìó êàê îðàêóëà â òîì ñàìîì ñâåäåíèè è ðàçëîæèòü n. Íàïîìíèì: âðàã âûáèðàåò ñëó÷àéíîå ÷èñëî m, ïîäà¼ò ñèñòåìå m2 ; ñèñòåìà âûäà¼ò êàêîé-òî êâàäðàòíûé êîðåíü; ïîñêîëüêó ñèñòåìà íå çíàåò m, ñ âåðîÿòíîñòüþ 1 âðàã 2 ïîëó÷àåò äðóãîé êâàäðàòíûé êîðåíü è ðàñêëàäûâàåò n íà ìíîæèòåëè. Êàê ñ ýòèì ñïðàâèòüñÿ? Ñåðãåé Íèêîëåíêî Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
  • 53. Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë RSA Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà Êðèïòîñèñòåìà Ðàáèíà Êðèïòîñèñòåìà Ðàáèíà: î ñòîéêîñòè Ìîæíî ïðîñòî ïîòðåáîâàòü, ÷òîáû ñîîáùåíèå ñîäåðæàëî êàêèå-íèáóäü îñîáåííîñòè. Íàïðèìåð, îïðåäåë¼ííàÿ ÷àñòü ñîîáùåíèÿ äîëæíà áûòü ïîâòîðåíà äâà ðàçà. Óáèâàåì äâóõ çàéöåâ. Âî-ïåðâûõ, ðåøàåòñÿ ïðîáëåìà ñ àòàêîé: òåïåðü ñ ïîäàâëÿþùåé âåðîÿòíîñòüþ âðàãó ëèáî íè÷åãî íå ñêàæóò, ëèáî (åñëè îí áóäåò ïîäàâàòü ïðàâèëüíî îôîðìëåííûå ñîîáùåíèÿ) ñêàæóò åãî æå ñîîáùåíèå. Âî-âòîðûõ, ðåøàåòñÿ ïðîáëåìà òîãî, êàêîé èç ÷åòûð¼õ êîðíåé âûáðàòü Àëèñå. Ñåðãåé Íèêîëåíêî Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì
  • 54. Ïðèñêàçêà: ñîâñåì íåìíîæêî òåîðèè ÷èñåë RSA Ñêàçêà: RSA è êðèïòîñèñòåìà Ðàáèíà Êðèïòîñèñòåìà Ðàáèíà Ñïàñèáî çà âíèìàíèå! Lecture notes è ñëàéäû áóäóò ïîÿâëÿòüñÿ íà ìîåé homepage: http://logic.pdmi.ras.ru/∼sergey/ Ïðèñûëàéòå ëþáûå çàìå÷àíèÿ, ðåøåíèÿ óïðàæíåíèé, íîâûå ÷èñëåííûå ïðèìåðû è ïðî÷åå ïî àäðåñàì: sergey@logic.pdmi.ras.ru, snikolenko@gmail.com Çàõîäèòå â ÆÆ smartnik. Ñåðãåé Íèêîëåíêî Êðèïòîãðàôèÿ ñ îòêðûòûì êëþ÷îì