WST P 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 (V, E), gdzie elementami zbioru E s zbiory dwuelementowe {u, v} przy czym u, v V. Elementy zbioru V nazywamy wierzchoªkami i interpretujemy je geometrycznie jako punkty, a elementy zbioru E nazywamy kraw dziami i interpretujemy jako odcinki. Mówimy,»e graf jest pokolorowany kolorami c, n, z, je±li istnieje funkcja f : V {c, n, z} taka,»e f(u) f(v) je»eli tylko {u, v} E. 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 F q oraz generator g jego grupy multyplikatywnej. Niech y F q. Przypu± my,»e Urszula znalazªa rozwi zanie równania g x = y, czyli logarytm dyskretny o podstawnie g z elementu y. Chce ona teraz przekona Stefana, i» faktycznie zna ona logarytm dyskretny, ale nie chce podawa warto±ci liczbowej x. Oboje, Urszula i Stefan znaj ciaªo sko«czone F q 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 e < q 1 i wysyªa Stefanowi element b = g e. 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 e. Jej prawdomówno± sprawdza obliczaj c g e i porównuj c to z otrzyman liczb b. Krok 2b. Stefan prosi Urszul o wskazanie reszty r z dzielenia x + e przez q 1. Je±li Urszula faktycznie zna x (a próbuje ona to udowodni ), to znalezienie tej reszty nie powinno jej przysporzy problemu. Stefan sprawdza prawdomówno± Urszuli obliczaj c g r i przyrównuj c to do yb. Zauwa»my,»e yb = g x g e = g x+e = g r. 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 e oraz r, 5
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 potrzebny krok 2a.? Gdyby go nie byªo, Urszula mogªaby wysªa ge w kroku 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 przesªa g e w kroku 1. oraz e w kroku 2a. Je»eli natomiast wiemy,»e Stefan zdecyduje si na 2b., to wysyªamy mu ge w kroku 1. oraz e w kroku 2b. y 1.1 Przykªad. Ponownie wykorzystamy F 16129 z generatorem g = a + 2, gdzie a 2 + 1 = 0. Urszula udowodni Stefanowi,»e zna warto± x logarytmu dyskretnego z y = 96a + 106. W tym celu generuje e i wysyªa g e = 111a + 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, czy (a + 2) 15276 = (82a + 62)(96a + 106). Czynno±ci te powtarzaj a» Stefan uzna,»e Urszula istotnie zna warto± x 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 F q oraz ustalony element b F q taki,»e je±li znamy b x oraz b y, to trudno jest obliczy b xy (czyli speªnione jest zaªo»enie DiegoHellmana). Dalej, potrzebne nam b dzie przeksztaªcenie ψ : F q F n 2. 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 przeciwdziedziny ψ. Je±li q = p f oraz elementy F q uto»samimy z liczbami 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 nbitów, tzn. elementy F n 2. Potrzebny nam jeszcze b dzie ustalony element 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 wybiera losowo liczby 0 < x < q 1 oraz 1 {1, 2}. Nast pnie tworzy swój klucz publiczny (β 1, β 2 ), gdzie β i = b x oraz β 3 i = C. Dopuszczamy tu b x mo»liwo± utworzenia serii tego rodzaju kluczy publicznych. B d one znane Urszuli (tak jak i wszystkim innym). Zauwa»my,»e Stefan nie zna logarytmu dyskretnego liczby β 3 i poniewa» nikt nie zna logarytmu dyskretnego liczby C. Urszula wybiera teraz teksty m 1 oraz m 2, które przypisuje dwóm pakietom. Wybiera ona te» liczby losowe y 1, y 2 {0, 1,..., q 1} i wysyªa Stefanowi dwa pakiety: b y 1, α 1 = m 1 + ψ(β y 1 1 ) oraz b y 2, α 2 = m 2 + ψ(β y 2 2 ). Poniewa» β y i i = (b x ) y i, a Stefan zna zarówno b y 1 oraz x, wi c mo»e on ªatwo wyznaczy ψ(β y i i ), a co za tym idzie, tak»e wyznaczy m i = α i + ψ(β y i i ). Odczytanie wiadomo±ci m 3 i jest jednak niemo»liwe, poniewa» znajomo± b y 3 i oraz C nie jest wystarczaj ca do znalezienia β y 3 i 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 Stefan nie mo»e zna logarytmów dyskretnych z obu elementów β 1 oraz β 2. Jednak»e w jego interesie le»y posiadanie jak najwi cej informacji. Urszula mo»e wi c by pewna,»e Stefan zna logarytm dyskretny dokªadnie jednej z liczb β 1, β 2. Nie 7
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ównowa»na umiej tno±ci znajdywania pierwiastków kwadratowych modulo n z dowolnej liczby. Istotnie, je±li znamy rozkªad n na iloczyn liczb pierwszych p oraz q i mamy rozwi za kongruencj y x 2 (mod n), to rozwi zujemy dwie kongruencje y x 2 (mod p) oraz y x 2 (mod q) a nast pnie stosujemy chi«skie twierdzenie o resztach dostaj c cztery pierwiastki wyj±ciowej kongruencji. Je±li natomiast potramy rozwi za kongruencj y x 2 (mod n), czyli znale¹ ±x 1 oraz ±x 2, takie,»e x 2 1 x 2 2 (mod n), to znajdziemy te» nietrywialny dzielnik liczby n, który jest równy NWD(x 1 + x 2, 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 x i wysyªa do Urszuli i do Stefana liczb y = x 2 mod n. 2. Urszula oblicza cztery pierwiastki kwadratowe ±x 1 oraz ±x 2 z liczby y. Jeden z nich nazywa x 0. Nast pnie wybiera losow liczb r i oznacza s = r 2 mod n. Potem kªadzie m 1 = r mod n oraz m 2 = x 0 r mod n. Ostatecznie Urszula wysyªa Stefanowi za pomoc kanaªu przekazów nierozró»nialnych wiadomo±ci m 1 oraz m 2, a drog publiczn przekazuje mu 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 przekazów nierozró»nialnych. Je±li byªo T kluczy, to Stefan jest pewny z prawdopodobie«stwem 1 2 T,»e Urszula zna rozkªad liczby n na 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± m 1 nie zawiera pierwiastka z y, ale wiadomo± m 2 zawiera pierwiastek z y i nie mo»na nic na to poradzi. Jedyn szans uszustwa byªoby wi c tutaj przesyªanie dwóch identycznych wiadomo±ci m 1. Szybko jednak Stefan nabraªby podejrze«, poniewa» za ka»dym razem przy sprawdzaniu otrzymywaªby s, a taki ukªad przydarza si tylko wówczas, gdy przy generowaniu klucza (β 1, β 2 ) liczb losow i jest zawsze 1. Czy Stefan odtworzyªby wszystkie pierwiastki kwadratowe z y? Tak mo»liwo± daje mu tylko wiadomo± m 2. Poniewa» jednak liczba r nie jest mu znana, wi c nie mo»e on obliczy x 0 znaj c tylko x 0 r mod n oraz r 2 mod n. Tak wi c Stefan nie jest w stanie znale¹ nawet jednego pierwiastka kongruencji y x 2 (mod n). 9