Protokoły o zerowej wiedzy Wykład XV
Transkrypt
Protokoły o zerowej wiedzy Wykład XV
WSTP DO KRYPTOGRAFII Grzegorz Szkibiel Jesie« 2012/13 Spis tre±ci 1 Protokoªy o zerowej wiedzy i przekazy nierozró»nialne 3 1.1 Kolorowanie mapy 3 1.2 Logarytm dyskretny . . . . . . . . . . . . . . . . . . . . . . . 5 1.3 Przekazy nierozró»nialne . . . . . . . . . . . . . . . . . . . . . 6 1.4 Dowód faktoryzacji . . . . . . . . . . . . . . . . . . . . . . . . 8 . . . . . . . . . . . . . . . . . . . . . . . . 2 Rozdziaª 1 Protokoªy o zerowej wiedzy i przekazy nierozró»nialne Poj¦cie zerowej wiedzy pojawiªo si¦ w kryptograi na pocz¡tku lat osiemdziesi¡tych. Zostaªo ono sprowokowane rozwojem rynku nansowego, a w szczególno±ci poª¡czeniem rynku usªug bankowych z rynkiem usªug telekomunikacyjnych. Dokªadnie, wyobra¹my sobie sytuacj¦, gdy klient znajduj¡cy si¦ na Karaibach chce dokona¢ operacji w banku, który jest w Szwajcarii. W tym celu u»ywa linii telefonicznej i zleca t¡ drog¡ wykonanie operacji. Problemem jest potwierdzenie to»samo±ci zleceniodawcy. Oczywi±cie mo»e on poda¢ jakie± hasªo, które go zidentykuje. Tylko, »e hasªo to zna¢ b¦dzie od tej pory urz¦dnik bankowy oraz kilka innych osób, które w danej chwili przysªuchuj¡ si¦ rozmowie. Zleceniodawca chciaªby wi¦c nie tyle poda¢ hasªo co u d o w o d n i ¢ fakt, »e to hasªo zna. Po przeprowadzeniu takiego dowodu, urz¦dnik bankowy powinien by¢ pewien to»samo±ci zleceniodawcy, ale jego wiedza na temat tajnego hasªa powinna by¢ taka sama jak przed rozmow¡. Jak konkretnie przeprowadzi¢ dowód o zerowej wiedzy wytªumaczymy w oparciu o dwa poni»sze przykªady. 1.1 Kolorowanie mapy Jest udowodnione, »e ka»d¡ map¦ na pªaszczy¹nie mo»na pokolorowa¢ u»ywaj¡c czterech kolorów. Niektóre mapy mo»na pokolorowa¢ u»ywaj¡c tylko trzech kolorów. Przypu±¢my, »e Urszuli udaªo si¦ pokolorowa¢ pewn¡ dosy¢ skomplikowan¡ map¦ trzema kolorami czerwonym, niebieskim i zielonym. 3 Chce ona przekona¢ Stefana, »e istotnie potra ona pokolorowa¢ dan¡ map¦, ale jednocze±nie nie chce pokazywa¢ mapy. Aby przeprowadzi¢ dowód o zerowej wiedzy musimy przeªo»y¢ map¦ na j¦zyk matematyczny, a dokªadnie na j¦zyk teorii grafów. Grafem nazywamy par¦ zbiorów zbiory dwuelementowe {u, v} (V, E), gdzie elementami zbioru E s¡ u, v ∈ V . Elementy zbioru V na- przy czym zywamy wierzchoªkami i interpretujemy je geometrycznie jako punkty, a elementy zbioru E nazywamy kraw¦dziami i interpretujemy jako odcinki. c, n, z , je±li istnieje tylko {u, v} ∈ E . Mówimy, »e graf jest pokolorowany kolorami f : V → {c, n, z} taka, »e f (u) 6= f (v) je»eli funkcja Map¦ uto»samiamy z grafem w ten sposób, »e zbiór pa«stw staje si¦ zbiorem V, a do zbioru E nale»¡ te i tylko te pary pa«stw, które maj¡ wspóln¡ granic¦. Tak wi¦c zakªadamy, »e Urszula pokolorowaªa pewien graf i b¦dzie teraz udowadnia¢ Stefanowi, »e dokonaªa tego w sposób prawidªowy. Wyobra¹my sobie wierzchoªki tego grafu jako maªe, biaªe kuleczki, a kraw¦dzie jako pr¦ty. W ±rodku kuleczek znajduj¡ si¦ trzy lampki: czerwona, niebieska i zielona. Urszula posiada dwa urz¡dzenia: A, które uaktywnia lampk¦ o wybranym kolorze w ka»dym z wierzchoªku; B, które po naci±ni¦ciu przycisku wybiera losow¡ permutacj¦ trzech kolorów i zmienia kolor aktywnej lampki w ka»dym wierzchoªku zgodnie z t¡ permutacj¡. Zaªó»my, »e lampki wewn¡trz wierzchoªków zapalaj¡ si¦ je±li kto± chwyci za pr¦t ª¡cz¡cy te dwa wierzchoªki. Urszula konstruuje 3kolorowanie grafu i za pomoc¡ urz¡dzania A uaktywnia lampki w ka»dym z wierzchoªków. A oto procedura, któr¡ wykonuje Stefan: 1. Stefan mo»e chwyci¢ za jeden pr¦t i zapali¢ lampki na jego ko«cach. Je±li graf jest pokolorowany prawidªowo, wierzchoªki rozbªyskuj¡ róo»nymi kolorami. 2. Urszula naciska przycisk urz¡dzenia B i permutuje kolory. 3. Kroki 1. i 2. s¡ powtarzane tak dªugo, a» Stefan nie przekona si¦, »e graf jest pokolorowany prawidªowo. 4 Zauwa»my, »e je±li graf nie jest pokolorowany prawidªowo, to w pewnym momencie Stefan chwyci za pr¦t, którego wierzchoªki zapal¡ si¦ tym samym kolorem. Po drugie, z uwagi na ci¡gªe permutowanie kolorów, Stefan nie jest w stanie odtworzy¢ pokolorowania grafu. Istotnie, gdyby Urszula znaªaby Stefana na tyle, »e byªaby w stanie przwidzie¢, który pr¦t on chwyci, nie musiaªaby w ogóle kolorowa¢ grafu, tylko po prostu zadbaªaby o to, by na ko«cach pr¦ta, który zamierza chwyci¢ Stefan aktywne byªy lampki ró»nych kolorów. 1.2 Logarytm dyskretny Przyjmiemy tu, »e mamy dane pewne ciaªo sko«czone Fq oraz generator g ∗ jego grupy multyplikatywnej. Niech y ∈ Fq . Przypu±¢my, »e Urszula znalax zªa rozwi¡zanie równania g = y , czyli logarytm dyskretny o podstawnie g z elementu y. Chce ona teraz przekona¢ Stefana, i» faktycznie zna ona loga- rytm dyskretny, ale nie chce podawa¢ warto±ci liczbowej i Stefan znaj¡ ciaªo sko«czone Fq x. Oboje, Urszula oraz rz¡d jego grupy multyplikatywnej. Oto ci¡g kroków, które wykonuj¡ w celu przeprowadzenia dowodu o zerowej wiedzy: Krok 1. Urszula generuje losow¡ liczb¦ dodatni¡ nowi element e < q−1 i wysyªa Stefa- b = ge. Krok 2. Stefan decyduje, któr¡ z poni»szych czynno±ci ma wykona¢ (mo»e wykona¢ dokªadnie jedn¡ z nich): Krok 2a. Stefan prosi Urszul¦ o ujawnienie sprawdza obliczaj¡c ge e. Jej prawdomówno±¢ i porównuj¡c to z otrzyman¡ liczb¡ Krok 2b. Stefan prosi Urszul¦ o wskazanie reszty przez q − 1. Je±li Urszula faktycznie zna x r z dzielenia b. x+e (a próbuje ona to udowodni¢), to znalezienie tej reszty nie powinno jej przysporzy¢ r problemu. Stefan sprawdza prawdomówno±¢ Urszuli obliczaj¡c g x e x+e r i przyrównuj¡c to do yb. Zauwa»my, »e yb = g g = g =g . Krok 3. Kroki 1. oraz 2. s¡ powtarzane tak dªugo, a» Stefan jest caªkowicie przekonany, »e Urszula zna x. Zauwa»my najpierw, »e Stefan nie mo»e domaga¢ si¦ od Urszuli obu informacji z podpunktów 2a. oraz 2b. Gdyby poznaª on jednocze±nie 5 e oraz r, to poznaªby te» x = r − e. Nast¦pnie zauwa»my, »e znajomo±¢ x nie jest Urszuli potrzebna je»eli Stefan decyduje si¦ na 2a. Jednak»e mo»e on zdecydowa¢ si¦ na krok 2b., a tu ju» znajomo±¢ x jest potrzebna. Po co wi¦c jest ge w kroku potrzebny krok 2a.? Gdyby go nie byªo, Urszula mogªaby wysªa¢ y 1., a w kroku 2b. po prostu e. Krok 2a. zapobiega takiej mo»liwo±ci. W powy»szym dowodzie istotnie wyst¦puje zerowa wiedza. Je±li bowiem kto± nie zna liczby x, ale jest w stanie przewidzie¢ post¦powanie Stefana, tzn. wie, co on wybierze w nast¦pnym kroku, to bez trudu mo»e go oszuka¢. Mianowicie, je±li wiadomo, »e Stefan zdecyduje si¦ na 2a., to nale»y mu e przesªa¢ g w kroku 1. oraz e w kroku 2a. Je»eli natomiast wiemy, »e Stefan ge zdecyduje si¦ na 2b., to wysyªamy mu w kroku 1. oraz e w kroku 2b. y 1.1 Przykªad. Ponownie wykorzystamy F16129 g = a + 2, x logarytmu g e = 111a + z generatorem 2 a + 1 = 0. Urszula udowodni Stefanowi, »e zna warto±¢ y = 96a + 106. W tym celu generuje e i wysyªa 120. Je±li Stefan poprosi o e, Urszula wy±le mu 41 i Stefan sprawdzi, »e (a + 2)41 = 111a + 120. Urszula ponownie generuje e i tym razem wysyªa 82a + 62. Przypu±¢my, »e Stefan poprosi tym razem o reszt¦ z dzielenia x + e przez 16128. Wtedy Urszula wysyªa mu liczb¦ 15276, a Stefan sprawdza, 15276 czy (a + 2) = (82a + 62)(96a + 106). Czynno±ci te powtarzaj¡ a» Stefan uzna, »e Urszula istotnie zna warto±¢ x gdzie dyskretnego z 1.3 Przekazy nierozró»nialne Powy»ej przedstawione dowody byªy dowodami interaktywnymi, tzn. podczas uzasadniania Urszula oraz Stefan kontaktowali si¦ ze sob¡. Kanaª przekazów nierozró»nialnych sªu»y do konstruowania nieinteraktywnych dowodów o zerowej wiedzy. Przebiega on zatem w jedn¡ stron¦ w kierunku sprawdzaj¡cego. Dopuszczamy tu jednak mo»liwo±¢, »e pewne informacje mog¡ by¢ przesªane w drug¡ stron¦, ale ju» nie kanaªem tylko ,,publicznie. Dokªadnie, kanaª przekazów nierozró»nialnych umo»liwia Urszuli przekazanie Stefanowi dwóch pakietów zaszyfrowanych informacji przy czym speªnione musz¡ by¢ nast¦puj¡ce warunki: 1. Stefan mo»e rozszyfrowa¢ dokªadnie jeden z przesªanych dwóch pakietów. 2. Urszula nie wie, który z pakietów zostanie rozszyfrowany. 6 3. Stefan oraz Urszula s¡ pewni, »e warunki 1) oraz 2) s¡ speªnione. Opiszmy przykªad kanaªu przekazów nierozró»nialnych oparty na problemie logarytmu dyskretnego. Potrzebne nam b¦dzie (du»e) ciaªo sko«czone Fq ∗ x y oraz ustalony element b ∈ Fq taki, »e je±li znamy b oraz b , to trudno jest obxy liczy¢ b (czyli speªnione jest zaªo»enie DiegoHellmana). Dalej, potrzebne n nam b¦dzie przeksztaªcenie ψ : Fq → F2 . Przy czym warto±ci zarówno przeksztaªcenia ψ jak i przeksztaªcenia odwrotnego mog¡ by¢ obliczone w ªatwy sposób. Zaªó»my, »e wszystkie ci¡gi n-bitowe maj¡ce na ko«cu 0 nale»¡ do ψ . Je±li q = pf oraz elementy Fq uto»samimy z liczbami przeciwdziedziny caªkowitymi zapisanymi w systemie o podstawie p, to ψ mo»e odwzorowywa¢ te elementy przypisuj¡c im ci¡g bitów wyst¦puj¡cych w zapisie dwójkowym odpowiadaj¡cych liczb. Przypu±¢my, »e jednostkami tekstu s¡ ci¡gi Potrzebny nam jeszcze b¦dzie ustalony element nbitów, tzn. elementy Fn2 . C ∈ F∗q taki, »e nikt nie zna jego logarytmu dyskretnego. Kanaª przekazów nierozró»nialnych dziaªa w nast¦puj¡cy sposób. Stefan 0 < x < q − 1 oraz 1 ∈ {1, 2}. Nast¦pnie tworzy (β1 , β2 ), gdzie βi = bx oraz β3−i = bCx . Dopuszczamy tu wybiera losowo liczby swój klucz publiczny mo»liwo±¢ utworzenia serii tego rodzaju kluczy publicznych. B¦d¡ one znane Urszuli (tak jak i wszystkim innym). rytmu dyskretnego liczby liczby β3−i Zauwa»my, »e Stefan nie zna loga- poniewa» nikt nie zna logarytmu dyskretnego C. Urszula wybiera teraz teksty kietom. m1 m2 , które przypisuje dwóm pay1 , y2 ∈ {0, 1, . . . , q − 1} i wysyªa oraz Wybiera ona te» liczby losowe Stefanowi dwa pakiety: by1 , α1 = m1 + ψ(β1y1 ) βiyi = (bx )yi , a yi wyznaczy¢ ψ(βi ), a co Poniewa» oraz by2 , α2 = m2 + ψ(β2y2 ). Stefan zna zarówno by 1 oraz x, wi¦c mo»e on ªatwo yi za tym idzie, tak»e wyznaczy¢ mi = αi + ψ(βi ). Odczytanie wiadomo±ci m3−i jest jednak niemo»liwe, poniewa» znajomo±¢ y3−i by3−i oraz C nie jest wystarczaj¡ca do znalezienia β3−i (zaªo»enie Diego Hellmana). Tak wi¦c Stefan mo»e odczyta¢ dokªadnie jedn¡ z przesªanych wiadomo±ci. Urszula mo»e bez trudu sprawdzi¢, »e β1 β2 = C , wi¦c β1 oraz β2 . zna¢ logarytmów dyskretnych z obu elementów interesie le»y posiadanie jak najwi¦cej informacji. Stefan nie mo»e Jednak»e w jego Urszula mo»e wi¦c by¢ pewna, »e Stefan zna logarytm dyskretny dokªadnie jednej z liczb 7 β1 , β2 . Nie ma jednak sposobu na to, by zdecydowa¢ jednoznacznie z którego elementu zna Stefan logarytm dyskretny. Tak wi¦c warunki 2) oraz 3) denicji kanaªu przekazów nierozró»nialnych s¡ speªnione. 1.4 Dowód faktoryzacji Opiszemy procedur¦ nieiteraktywnego dowodu o zerowej wiedzy, za pomoc¡ którego Urszula przekona stefana, »e zna ona rozkªad na czynniki liczby caªkowitej n. Wykorzystamy tu fakt, »e znajomo±¢ faktoryzacji liczby n jest równz nowa»na umiej¦tno±ci znajdywania pierwiastków kwadratowych modulo n na iloczyn liczb pierwszych p oraz q i mamy rozwi¡za¢ kongruencj¦ y ≡ x2 (mod n), to rozwi¡zujemy 2 2 dwie kongruencje y ≡ x (mod p) oraz y ≡ x (mod q) a nast¦pnie stosujemy dowolnej liczby. Istotnie, je±li znamy rozkªad chi«skie twierdzenie o resztach dostaj¡c cztery pierwiastki wyj±ciowej kon2 gruencji. Je±li natomiast potramy rozwi¡za¢ kongruencj¦ y ≡ x (mod n), 2 2 czyli znale¹¢ ±x1 oraz ±x2 , takie, »e x1 ≡ x2 (mod n), to znajdziemy te» nietrywialny dzielnik liczby n, który jest równy NWD(x1 + x2 , n). Opiszemy teraz procedur¦ dowodu o zerowej wiedzy. Zakªadamy tutaj, »e nad wszystkim czuwa niezale»ny arbiter okre±lany mianem Centrum, który dostarcza te» pewnych informacji zarówno dla Urszuli jak i dla Stefana. 1. Centrum generuje losow¡ liczb¦ y = x2 mod n. x i wysyªa do Urszuli i do Stefana liczb¦ 2. Urszula oblicza cztery pierwiastki kwadratowe ±x1 oraz ±x2 z liczby y. Jeden z nich nazywa x0 . Nast¦pnie wybiera losow¡ liczb¦ r i ozna2 cza s = r mod n. Potem kªadzie m1 = r mod n oraz m2 = x0 r mod n. Ostatecznie Urszula wysyªa Stefanowi za pomoc¡ kanaªu prze- kazów nierozró»nialnych wiadomo±ci przekazuje mu m1 oraz m2 , a drog¡ publiczn¡ s. 3. Stefan jest w stanie odczyta¢ tylko jedn¡ wiadomo±¢. Sprawdza, czy jej kwadrat przystaje modulo n do s, czy do ys. 4. Czynno±ci 1.3. s¡ powtarzane dopóty, dopóki nie sko«cz¡ si¦ wszystkie klucze publiczne (β1 , β2 ) Stefana u»ywane do aktywacji kanaªu przeka- Je±li byªo T kluczy, to Stefan jest pewny z −T prawdopodobie«stwem 1 − 2 , »e Urszula zna rozkªad liczby n na zów nierozró»nialnych. czynniki. 8 Przeprowad¹my teraz zwykª¡ dyskusj¦ na temat, czy powy»szy protokóª jest istotnie dowodem o zerowej wiedzy. Zastanówmy si¦ najpierw, w jaki sposób Urszula mogªaby oszuka¢ Stefana. Wiadomo±¢ wiastka z y, ale wiadomo±¢ m2 zawiera pierwiastek z m1 nie zawiera piery i nie mo»na nic na to poradzi¢. Jedyn¡ szans¡ uszustwa byªoby wi¦c tutaj przesyªanie dwóch identycznych wiadomo±ci m1 . Szybko jednak Stefan nabraªby podejrze«, po- niewa» za ka»dym razem przy sprawdzaniu otrzymywaªby s, a taki (β1 , β2 ) przydarza si¦ tylko wówczas, gdy przy generowaniu klucza losow¡ i ukªad liczb¡ jest zawsze 1. Czy Stefan odtworzyªby wszystkie pierwiastki kwa- y ? Tak¡ mo»liwo±¢ daje mu tylko wiadomo±¢ m2 . Poniewa» jednak liczba r nie jest mu znana, wi¦c nie mo»e on obliczy¢ x0 znaj¡c tylko x0 r mod n oraz r2 mod n. Tak wi¦c Stefan nie jest w stanie znale¹¢ nawet 2 jednego pierwiastka kongruencji y ≡ x (mod n). dratowe z 9