Univerzita Karlova v Praze Matematicko-fyzik´aln´ı fakulta
´ RSK ˇ ´ PRACE ´ BAKALA A
Jana Kuˇcerov´a Interaktivn´ı d˚ ukazy Katedra algebry
Vedouc´ı bakal´aˇrsk´e pr´ace: Doc. RNDr. Jiˇr´ı T˚ uma, DrSc. Studijn´ı program: Matematika Studijn´ı obor: Matematick´e metody informaˇcn´ı bezpeˇcnosti
2006
Dˇekuji doc. RNDr. Jiˇr´ımu T˚ umovi, DrSc. za veden´ı m´e pr´ace a za jeho cenn´e pˇripom´ınky.
Prohlaˇsuji, ˇze jsem svou bakal´aˇrskou pr´aci napsala samostatnˇe a v´ yhradnˇe s pouˇzit´ım citovan´ ych pramen˚ u. Souhlas´ım se zap˚ ujˇcov´an´ım pr´ace a jej´ım zveˇrejˇ nov´an´ım. V Praze dne 2. 8. 2006
Jana Kuˇcerov´a
2
Obsah ´ 1 Uvod
5
2 Protokol
6
3 Matematick´ e z´ aklady 3.1 Probl´emy z teorie ˇc´ısel, jednosmˇern´e funkce 3.1.1 Faktorizace . . . . . . . . . . . . . . 3.1.2 Modul´arn´ı odmocnina . . . . . . . . 3.1.3 Probl´em diskr´etn´ıho logaritmu . . . . 3.2 Probl´emy z teorie sloˇzitosti . . . . . . . . . . 3.3 Prokazateln´a bezpeˇcnost . . . . . . . . . . . 3.4 Pouˇzit´a tvrzen´ı a algoritmy . . . . . . . . . 4 Stavebn´ı prvky protokol˚ u 4.1 Haˇsovac´ı funkce . . . . . 4.2 Digit´aln´ı podpis . . . . . 4.3 RSA . . . . . . . . . . . 4.4 Rabin˚ uv kryptosyst´em .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . . . . .
. . . .
. . . . . . .
. . . .
. . . . . . .
. . . .
. . . . . . .
. . . .
. . . . . . .
. . . .
. . . . . . .
. . . .
. . . . . . .
. . . .
. . . . . . .
. . . .
. . . . . . .
. . . .
. . . . . . .
. . . .
. . . . . . .
. . . .
. . . . . . .
7 7 7 8 8 9 9 10
. . . .
14 14 15 15 16
5 Turingovy stroje
19
6 Interaktivn´ı d˚ ukazy 6.1 Identifikace zaloˇzen´a na kryptografii s veˇrejn´ ym kl´ıˇcem . . . . . . 6.2 Fiat-Shamirovo identifikaˇcn´ı sch´ema . . . . . . . . . . . . . . . . . 6.3 Faktorizace n = pq pomoc´ı algoritmu na hled´an´ı druh´e odmocniny z kvadratick´eho rezidua . . . . . . . . . . . . . . . . . . . . . . . . 6.4 Rozˇs´ıˇren´e Fiat-Shamirovo identifikaˇcn´ı sch´ema . . . . . . . . . . . 6.5 Schnorr-Okamotovo identifikaˇcn´ı sch´ema . . . . . . . . . . . . . .
23 26 27
Literatura
34
3
30 30 31
N´azev pr´ace: Interaktivn´ı d˚ ukazy Autor: Jana Kuˇcerov´a Katedra (´ ustav): Katedra algebry Vedouc´ı bakal´aˇrsk´e pr´ace: Doc.RNDr. Jiˇr´ı T˚ uma,DrSc. e-mail vedouc´ıho:
[email protected] Abstrakt: Pˇredloˇzen´a pr´ace se vˇenuje kryptografick´ ym protokol˚ um pro interaktivn´ı d˚ ukazy. Protoˇze tyto protokoly jsou jedny ze sloˇzitˇejˇs´ıch, jsou v prvn´ı ˇca´sti pr´ace pops´ana nˇekter´a jednoduˇsˇs´ı kryptografick´a sch´emata, kter´a jsou pozdˇeji vyuˇzita jako stavebn´ı prvky tˇechto protokol˚ u. V t´eto pr´aci jsou interaktivn´ı d˚ ukazy nejprve definov´any jako v´ ypoˇcet spojen´e dvojice interaktivn´ıch Turingov´ ych stroj˚ u. Pozdˇeji je uvedena souvislost takto definovan´eho interaktivn´ıho d˚ ukazu s interaktivn´ım d˚ ukazem znalosti dokazovatelova tajemstv´ı v identifikaˇcn´ıch protokolech. Na pˇr´ıkladu nˇekolika identifikaˇcn´ıch protokol˚ u je uk´az´ano, jak´ ym zp˚ usobem lze rozhodnout, zda se jedn´a o d˚ ukaz s nulovou znalost´ı nebo zda je dan´ y protokol prokazatelnˇe bezpeˇcn´ y. Kl´ıˇcov´a slova: kryptografick´ y protokol, Turing˚ uv stroj, prokazateln´a bezpeˇcnost, d˚ ukaz s nulovou znalost´ı
Title: Interactive proofs Author: Jana Kuˇcerov´a Department: Department of Algebra Supervisor: Doc.RNDr. Jiˇr´ı T˚ uma,DrSc. Supervisor’s e-mail address:
[email protected] Abstract: The main topic of the present work is cryptographic protocols for interactive proofs. Because of complexity of these protocols, at first we describe some cryptographic elements, which we will use later as building blocs of interactive proof protocols. In this work, we define interactive proofs as a joint computation of a linked pair of two interactive Turing machines. Later, we explain the relation between this definition and an interactive proof of knowledge of a prover’s secret in identification protocols. We present examples of several identification protocols and demonstrate how we can determine, if the given protocol is provably secure or if it is a zero-knowledge proof. Keywords: cryptographic protocol, Turing machine, provable security, zero-knowledge proof
4
Kapitola 1 ´ Uvod Kryptografick´e protokoly se pouˇz´ıvaj´ı k ˇreˇsen´ı r˚ uzn´ ych probl´em˚ u, jako je napˇr. v´ ymˇena kl´ıˇce pro symetrick´e ˇsifrovac´ı sch´ema, autentizace uˇzivatele nebo elektronick´e volby. Tato pr´ace se zab´ yv´a protokoly pro interaktivn´ı d˚ ukazy, zejm´ena pro d˚ ukazy identity uˇzivatele (neboli autentizaci). Identita se v identifikaˇcn´ıch protokolech prokazuje d˚ ukazem znalosti urˇcit´eho tajemstv´ı, kter´e zn´a pouze dan´ y uˇzivatel. Aby tomu tak z˚ ustalo i po probˇehnut´ı protokolu, je vhodn´e, aby o tomto tajemstv´ı neunikla ˇza´dn´a netrivi´aln´ı informace, kter´a by mohla v´est k jeho odhalen´ı. To zajiˇst’uj´ı tzv. d˚ ukazy s nulovou znalost´ı. Jak se ale uk´aˇze, nˇekter´e d˚ ukazy s nulovou znalost´ı jsou nevhodn´e z jin´ ych d˚ uvod˚ u — neposkytuj´ı sice ˇza´dnou netrivi´aln´ı informaci o uˇzivatelovˇe tajemstv´ı, ale nezaruˇcuj´ı bezpeˇcnost z jin´eho hlediska. V t´eto pr´aci nejprve uvedeme matematick´e z´aklady nutn´e k pochopen´ı dalˇs´ıho textu. D´ale uvedeme jednoduch´a kryptografick´a sch´emata, kter´a pozdˇeji pouˇzijeme jako stavebn´ı prvky identifikaˇcn´ıch protokol˚ u. Pˇres definici interaktivn´ıch d˚ ukaz˚ u pomoc´ı interaktivn´ıch Turingov´ ych stroj˚ u se dopracujeme k identifikaˇcn´ım protokol˚ um, kter´e zhodnot´ıme z hlediska prokazateln´e bezpeˇcnosti a tak´e u nich rozhodneme, zda se jedn´a o d˚ ukazy s nulovou znalost´ı.
5
Kapitola 2 Protokol Protokol je pˇresnˇe definovan´a posloupnost krok˚ u, zahrnuj´ıc´ı dva nebo v´ıce u ´ˇcastn´ık˚ u navrˇzen´a k vykon´an´ı urˇcit´e u ´lohy, napˇr. v´ ymˇeny kl´ıˇce pro symetrickou ˇsifru, autentizaci uˇzivatele, apod. Kaˇzd´ y krok protokolu mus´ı b´ yt vykonan´ y a poˇrad´ı krok˚ u mus´ı b´ yt dodrˇzen´e. Dals´ı poˇzadavky na protokol jsou: • vz´ajemn´e odsouhlasen´ı — kaˇzd´ y u ´ˇcastn´ık mus´ı b´ yt obezn´amen´ y s cel´ ym protokolem a mus´ı s n´ım souhlasit, • jednoznaˇcnost — kaˇzd´ y krok mus´ı b´ yt dobˇre definovan´ y, aby nemohlo doj´ıt k nedorozumˇen´ı, • u ´plnost — mus´ı b´ yt pˇresnˇe vymezen´e chov´an´ı kaˇzd´eho u ´ˇcastn´ıka v kaˇzd´e situaci. ´ Kryptografick´y protokol je protokol vyuˇz´ıvaj´ıc´ı kryptografii. Ulohou kryptografie v protokolech je zabr´anit nebo odhalit pˇr´ıpadn´ y podvod a zabr´anit u ´ˇcastn´ık˚ um ´ nebo tˇret´ı stranˇe z´ıskat v´ıc informac´ı, neˇz protokol vymezuje. Uroveˇ n bezpeˇcnosti kryptografick´eho protokolu je maxim´alnˇe tak velk´a, jako je bezpeˇcnost j´ım pouˇzit´eho kryptosyst´emu, m˚ uˇze vˇsak b´ yt mnohem niˇzˇs´ı. V t´eto pr´aci se budeme zab´ yvat zejm´ena indentifikaˇcn´ımi protokoly. Ve ˇctvrt´e kapitole uvedeme nekter´a jednoduˇsˇs´ı sch´emata, kter´a budeme pouˇz´ıvat v dalˇs´ıch kapitol´ach pˇri konstrukci sloˇzitˇejˇs´ıch sch´emat.
6
Kapitola 3 Matematick´ e z´ aklady V dalˇs´ım textu budeme pouˇz´ıvat n´asleduj´ıc´ı oznaˇcen´ı: m otevˇren´ y text c ˇsifrov´ y text GCD(a, b) nejvˇetˇs´ı spoleˇcn´ y dˇelitel ˇc´ısel a a b P(A) pravdˇepodobnost jevu A Symbolem Zn budeme oznaˇcovat aditivn´ı Abelovu grupu pˇrirozen´ ych ˇc´ısel modulo n a symbolem Z∗n budeme oznaˇcovat multiplikativn´ı Abelovu grupu vˇsech prvk˚ u Zn , kter´e jsou s n nesoudˇeln´e. ˇ ık´ame, ˇze funkce f : N → R m´ Definice 3.1. Necht’ g je funkce g : N → R. R´ a sloˇzitost O(g) (nebo ˇze leˇz´ı v O(g)), pokud existuje c > 0 takov´e, ˇze pro vˇsechna n ∈ N plat´ı f (n) < c · g(n).
3.1
Probl´ emy z teorie ˇ c´ısel, jednosmˇ ern´ e funkce
Bezpeˇcnost mnoh´ ych kryptografick´ ych protokol˚ u je zaloˇzena na v´ ypoˇcetn´ı nezvl´adnutelnosti nˇekter´ ych matematick´ ych probl´em˚ u. Pojem v´ ypoˇcetn´ı nezvl´adnutelnost znamen´a, ˇze v souˇcasnosti nen´ı zn´am ˇz´adn´ y algoritmus, kter´ y by dok´azal dan´ y probl´em vyˇreˇsit v polynomi´aln´ım ˇcase. O v´ ypoˇcetnˇe nezvl´adnuteln´ ych probl´emech ˇr´ık´ame, ˇze jsou tˇeˇzk´e. Jsou to napˇr´ıklad probl´em faktorizace sloˇzen´ ych ˇc´ısel, probl´em nalezen´ı diskr´etn´ıho logaritmu nebo probl´em nalezen´ı druh´e odmocniny v modul´arn´ı aritmetice. Tyto probl´emy nyn´ı pˇribl´ıˇz´ıme.
3.1.1
Faktorizace
Definice 3.2. Probl´em faktorizace pˇrirozen´ych ˇc´ısel je n´asleduj´ıc´ı: Pro dan´e n ∈ N naleznˇete jeho prvoˇc´ıseln´ y rozklad, tj. vyj´adˇren´ı n = pe11 pe22 . . . pekk , kde pi jsou po dvou r˚ uzn´a prvoˇc´ısla a ei ≥ 1 pro vˇsechna i = 1, . . . , k. Zat´ımco vyn´asoben´ı dvou cel´ ych ˇc´ısel a a b m´a ˇcasovou sloˇzitost O(|a| · |b|), faktorizace sloˇzen´eho ˇc´ısla je povaˇzov´ana za tˇeˇzk´ y probl´em. Mezi nejlepˇs´ı zn´am´e faktorizaˇcn´ı algoritmy patˇr´ı kvadratick´e s´ıto, ˇc´ıseln´e s´ıto a algoritmy zaloˇzen´e na teorii o eliptick´ ych kˇrivk´ach.
7
Pozn´amka 3.3 (D˚ uleˇzit´a). V kryptologii se omezujeme na faktorizaci ˇc´ısel, kter´a jsou souˇcinem dvou r˚ uzn´ ych n´ahodn´ ych (a ve vˇetˇsinˇe pˇr´ıpad˚ u pˇribliˇznˇe stejnˇe velk´ ych) prvoˇc´ısel. V cel´em n´asleduj´ıc´ım textu budou p a q znaˇcit prvoˇc´ısla a n bude znaˇcit souˇcin dvou r˚ uzn´ ych pˇribliˇznˇe stejnˇe velk´ ych lich´ ych prvoˇc´ısel, n = pq. Souˇcasn´ y rekord ve faktorizaci ˇc´ısla, kter´e je souˇcinem dvou pˇribliˇznˇe stejnˇe velk´ ych prvoˇc´ısel, poch´az´ı z kvˇetna roku 2005, kdy bylo pomoc´ı nˇekolika paralelnˇe zapojen´ ych poˇc´ıtaˇc˚ u faktorizov´ano 200-cifern´e (663-bitov´e) ˇc´ıslo. Tato faktorizace trvala 18 mˇes´ıc˚ u a pˇredpokl´ad´a se, ˇze na jednom poˇc´ıtaˇci by trvala 55 let. Pro asymetrick´e ˇsifry (viz. odd´ıl 3.3) vyuˇz´ıvaj´ıc´ı obt´ıˇznosti faktorizace je proto nejˇcastˇejˇs´ı doporuˇcovanou d´elkou modulu n 1024 bit˚ u, coˇz odpov´ıd´a 308-cifern´emu ˇc´ıslu v dekadick´em z´apise.
3.1.2
Modul´ arn´ı odmocnina
ˇ ıslo v nazveme kvadratick´ym reziduem modulo n, jestliˇze existuje Definice 3.4. C´ ˇc´ıslo u ∈ Z∗n , pro kter´e plat´ı v = u2 mod n. Mnoˇzinu vˇsech kvadratick´ ych rezidu´ı modulo n oznaˇcujeme QRn . Lze snadno dok´azat, ˇze mnoˇzina QRn je multiplikativn´ı Abelova grupa. Definice 3.5. Probl´em nalezen´ı modul´arn´ı odmocniny je n´asleduj´ıc´ı: Pro dan´e kvadratick´e reziduum v modulo n naleznˇete u ∈ Z∗n takov´e, ˇze plat´ı v = u2 mod n. Probl´em nalezen´ı druh´e odmocniny modulo ˇc´ıslo n, kter´e je souˇcinem dvou prvoˇc´ısel, n = pq, u ´zce souvis´ı s v´ yˇse uveden´ ym probl´emem faktorizace ˇc´ısla n; pˇresnˇeji ˇreˇceno, je s n´ım ekvivalentn´ı. Pojem ekvivalentn´ı“ zde znamen´a, ” ˇze jsme-li schopni vyˇreˇsit jeden z tˇechto probl´em˚ u se sloˇzitost´ı O(g), pak jsme schopni (s pomoc´ı algoritmu na ˇreˇsen´ı prvn´ıho probl´emu) se sloˇzitost´ı O(g) vyˇreˇsit i druh´ y z nich. Algoritmus na faktorizaci n pomoc´ı algoritmu na hled´an´ı odmocniny modulo n najdeme v odd´ılu 6.3. Na poˇc´ıt´an´ı odmocniny z kvadratick´eho rezidua modulo prvoˇc´ıslo p existuj´ı rychl´e algoritmy (nejlepˇs´ı z nich m´a ˇcasovou n´aroˇcnost O((log p)3 )); nal´ezt je m˚ uˇzeme napˇr. v knize [7] na stranˇe 100. Ve stejn´e knize na stranˇe 102 nalezneme algoritmus na hled´an´ı druh´e odmocniny modulo ˇc´ıslo n, zn´ame-li jeho rozklad.
3.1.3
Probl´ em diskr´ etn´ıho logaritmu
Definice 3.6. Necht’ G je cyklick´a grupa ˇra´du n. Necht’ α je gener´ator grupy G a necht’ β ∈ G. Diskr´etn´ı logaritmus β o z´akladu α, oznaˇcovan´ y logα β, je x pˇrirozen´e ˇc´ıslo x, 0 ≤ x ≤ n − 1 takov´e, ˇze β = α mod n. Definice 3.7. Probl´em nalezen´ı diskr´etn´ıho logaritmu (DLP) je n´asleduj´ıc´ı: Pro dan´e prvoˇc´ıslo p, gener´ator α grupy Z∗p a prvek β ∈ Z∗p naleznˇete cel´e ˇc´ıslo x, 0≤x≤p−2 takov´e, ˇze plat´ı αx ≡ β (mod p). 8
Probl´em nalezen´ı diskr´etn´ıho logaritmu je, podobnˇe jako pˇredchoz´ı dva probl´emy, povaˇzov´an za tˇeˇzk´ y. V´ıce se o tomto probl´emu m˚ uˇzeme doˇc´ıst napˇr. opˇet v knize [7] na stranˇe 103; najdeme v n´ı tak´e dalˇs´ı tˇeˇzk´e matematick´e probl´emy. Uveden´e probl´emy souvis´ı s jednosmˇern´ymi funkcemi (je-li spr´avn´ y pˇredpoklad o jejich v´ ypoˇcetn´ı nezvl´adnutelnosti). Tuto nepˇresnou formulaci objasn´ıme v n´asleduj´ıc´ım odstavci. Jednosmˇern´a funkce f : X → Y je takov´a, ˇze je snadn´e spoˇc´ıtat jej´ı hodnotu f (x) pro libovoln´ y vstup x ∈ X (t.j. existuje polynomi´aln´ı algoritmus, kter´ y m´a pro vstup x v´ ystup f (x)), ale zn´ame-li pouze hodnotu y ∈ Y , pak nejsme schopni v polynomi´aln´ım ˇcase naj´ıt prvek x ∈ X takov´ y, ˇze f (x) = y. N´asleduje form´aln´ı definice obt´ıˇznosti invertovatelnosti funkce. ˇ ık´ame, ˇze funkce f : X → Y je obt´ıˇznˇe invertovateln´a, jestliˇze Definice 3.8. R´ kaˇzd´ y pravdˇepodobnostn´ı polynomi´aln´ı algoritmus (t.j. program pravdˇepodobnostn´ıho polynomi´aln´ıho Turingova stroje (viz. definici 5.6)) na hled´an´ı inverze hodnoty y = f (x), x ∈ X, m˚ uˇze uspˇet pouze se zanedbatelnou (v |y|) pravdˇepodobnost´ı. Posloupnost {sn }n∈N se naz´ yv´a zanedbateln´a v n, jestliˇze pro kaˇzd´ y polynom p(·) a kaˇzd´e dostateˇcnˇe velk´e n plat´ı sn < 1/p(n). Nyn´ı objasn´ıme souvislost jednosmˇern´ ych funkc´ı s uveden´ ymi tˇeˇzk´ ymi probl´emy. V pˇr´ıpadˇe probl´emu faktorizace ˇc´ısla n = pq je funkc´ı f : N × N → N n´asoben´ı, kter´e m´a polynomi´aln´ı ˇcasovou sloˇzitost vzhledem k velikosti souˇcinitel˚ u p a q. Inverzn´ı funkc´ı f −1 je nalezen´ı prvoˇc´ıseln´eho rozkladu ˇc´ısla n. V pˇr´ıpadˇe probl´emu nalezen´ı modul´arn´ı odmocniny z ˇc´ısla v = u2 mod n je funkc´ı f : Z∗n → QRn umocnˇen´ı prvku u ∈ Z∗n na druhou modulo n a inverzn´ı funkc´ı f −1 je pˇri znalosti rezidua v nalezen´ı u. Koneˇcnˇe v pˇr´ıpadˇe probl´emu nalezen´ı diskr´etn´ıho logaritmu x = logα β v grupˇe Z∗p je funkc´ı fα : Z∗p → Z∗p umocnˇen´ı gener´atoru α grupy Z∗p na x-tou modulo p a funkc´ı fα−1 je pˇri znalosti β nalezen´ı ˇc´ısla x.
3.2
Probl´ emy z teorie sloˇ zitosti
Zde uvedeme probl´em grafov´eho izomorfismu. Definice 3.9. Dva grafy G1 = (V1 , E1 ) a G2 = (V2 , E2 ) se naz´ yvaj´ı izomorfn´ı, pokud existuje bijekce π z mnoˇziny vrchol˚ u V1 do mnoˇziny vrchol˚ u V2 takov´a, ˇze pro kaˇzd´e dva vrcholy u, v ∈ V1 plat´ı (u, v) ∈ V1 , pr´avˇe kdyˇz (π(u), π(v)) ∈ V2 . Definice 3.10. Probl´em grafov´eho izomorfismu je n´asleduj´ıc´ı: Rozhodnˇete, zda jsou dva dan´e grafy G1 a G2 izomorfn´ı. Vygenerovat dva izomorfn´ı grafy je snadn´e (staˇc´ı pˇrejmenovat“ vrcholy). ” O rozhodov´an´ı, zda jsou dva dan´e grafy izomorfn´ı se vˇsak pˇredpokl´ad´a, ˇze jde o tˇeˇzk´ y probl´em. V pˇr´ıpadˇe grafov´eho izomorfismu nejde o jednosmˇernou funkci. Proto jej nelze pouˇz´ıt jako z´aklad asymetrick´ ych ˇsifer (viz. odd´ıl 3.3). Ale lze jej pouˇz´ıt napˇr. v identifikaˇcn´ıch sch´ematech (viz. kapitolu 6), kde dokazovatelov´ ym tajemstv´ım je bijekce π z definice 3.9.
3.3
Prokazateln´ a bezpeˇ cnost
ˇ Sifry zaloˇzen´e na obt´ıˇznosti matematick´ ych probl´em˚ u, z nichˇz nˇekter´e jsme zm´ınili v pˇredchoz´ı ˇca´sti, se naz´ yvaj´ı asymetrick´e nebo ˇsifry s veˇrejn´ym kl´ıˇcem. Zat´ımco 9
u symetrick´ ych ˇsifer1 mus´ı odes´ılatel i pˇr´ıjemce sv´e kl´ıˇce chr´anit, aby je nez´ıskala neopr´avnˇen´a osoba, u asymetrick´ ych ˇsifer se nech´av´a v tajnosti pouze deˇsifrovac´ı kl´ıˇc a ˇsifrovac´ı kl´ıˇc se zveˇrejˇ nuje. Deˇsifrovac´ımu kl´ıˇci se ˇr´ık´a soukrom´y nebo tajn´y kl´ıˇc a ˇsifrovac´ımu kl´ıˇci se ˇr´ık´a veˇrejn´y kl´ıˇc. Kdokoliv pak m˚ uˇze zaˇsifrovat zpr´avu pˇr´ıjemcov´ ym veˇrejn´ ym kl´ıˇcem a m˚ uˇze si b´ yt (t´emˇeˇr) jist´ y, ˇze si ji bude schopen pˇreˇc´ıst pouze jej´ı opr´avnˇen´ y pˇr´ıjemce. Soukrom´ y a veˇrejn´ y kl´ıˇc tvoˇr´ı tzv. kl´ıˇcov´y p´ar. Pˇri hodnocen´ı bezpeˇcnosti asymetrick´ ych sch´emat vˇsak nejde jen o neinvertovatelnost pˇr´ısluˇsn´e jednosmˇern´e funkce. K nˇekter´ ym ˇsifr´am totiˇz byly nalezeny u ´toky s menˇs´ı ˇcasovou sloˇzitost´ı, neˇz jakou m´a invertov´an´ı dan´e jednosmˇern´e funkce. Chceme-li tedy uk´azat, ˇze u ´tok na ˇsifru m´a sloˇzitost alespoˇ n takovou jako v´ ypoˇcet inverze pˇr´ısluˇsn´e jednosmˇern´e funkce, m˚ uˇzeme pouˇz´ıt nˇekterou z metod tzv. prokazateln´e bezpeˇcnosti (provable security). Jednou z nich je redukcionistick´ a 2 bezpeˇcnost (reductionist security). Budeme ji pouˇz´ıvat v n´asleduj´ıc´ım tvaru : Definice 3.11 (Redukcionistick´a bezpeˇcnost asymetrick´ ych ˇsifrovac´ıch sch´emat). Kdokoliv, kdo je schopen v dan´em kryptosyst´emu v polynomi´aln´ım ˇcase k ˇsifrov´emu textu c naj´ıt otevˇren´ y text m (pomoc´ı algoritmu A), je schopen s vyuˇzit´ım algoritmu A v polynomi´aln´ım ˇcase vyˇreˇsit pˇr´ısluˇsn´ y matematick´ y probl´em. Je ovˇsem tˇreba si uvˇedomit, ˇze tato metoda zaruˇcuje pouze odolnost v˚ uˇci u ´tok˚ um urˇcit´eho typu (kter´ y si v kaˇzd´em konkr´etn´ım pˇr´ıpadˇe pokusu o d˚ ukaz prokazateln´e bezpeˇcnosti mus´ıme stanovit) a nebere v u ´vahu moˇzn´e nedostatky ´ fyzick´e implementace. Utoky na fyzickou implementaci kryptografick´ ych protokol˚ u se naz´ yvaj´ı u ´toky pomoc´ı postrann´ıch kan´al˚ u (side-channel attacks). Pˇri nich se vyuˇz´ıv´a napˇr. v´ ypoˇcetn´ı ˇcas, elektromagnetick´e z´aˇren´ı, vnucen´e chyby nebo chybov´a hl´aˇsen´ı. To, ˇze je protokol redukcionisticky bezpeˇcn´ y, m˚ uˇze paradoxnˇe znamenat snadnou prolomitelnost syst´emu. Napˇr. Rabin˚ uv kryptosyst´em (viz. odd´ıl 4.4) lze takto prolomit pomoc´ı tzv. u ´toku s v´ybˇerem zpr´avy (chosen-ciphertext attack), kter´ y je rovnˇeˇz uveden v odd´ılu 4.4.
3.4
Pouˇ zit´ a tvrzen´ı a algoritmy
ˇ ınsk´a vˇeta o zbytc´ıch). Necht’ n1 , n2 , . . . , nk jsou kladn´a po dvou Vˇ eta 3.12 (C´ nesoudˇeln´a cel´a ˇc´ısla a necht’ r1 , r2 , . . . , rk jsou libovoln´a cel´a ˇc´ısla. Pak existuje pr´avˇe jedno N (mod n1 n2 . . . nk ) takov´e, ˇze N ≡ ri (mod ni ),
∀i = 1, . . . , k.
D˚ ukaz nalezneme napˇr. v knize [1] na stranˇe 255. 1
Symetrick´e ˇsifry jsou takov´e, ˇze funkˇcn´ı vztah f algoritmu pro ˇsifrov´an´ı EK a algoritmu pro deˇsifrov´ an´ı DK , DK = f (EK ), i jeho inverze f −1 jsou snadno odvoditeln´e. U symetrick´ ych ˇsifer se pro ˇsifrov´ an´ı i deˇsifrov´ an´ı pouˇz´ıv´a stejn´ y kl´ıˇc K. 2 Idea redukce spoˇc´ıv´ a v tom, ˇze m˚ uˇzeme uk´azat, ˇze ze sloˇzitosti jednoho probl´emu P1 plyne sloˇzitost jin´eho probl´emu P2 (nebo ekvivalentnˇe z jednoduchosti probl´emu P2 plyne jednoduchost probl´emu P1 ) tak, ˇze kdokoliv, kdo m´a algoritmus na ˇreˇsen´ı P2 (s ˇcasovou sloˇzitost´ı O(g)) jej m˚ uˇze pouˇz´ıt k ˇreˇsen´ı P1 s relativnˇe mal´ ym zvˇetˇsen´ım u ´sil´ı (tedy opˇet s ˇcasovou sloˇzitost´ı O(g)). V takov´em pˇr´ıpadˇe ˇr´ık´ ame, ˇze se P1 redukuje na P2 .
10
N´asleduj´ıc´ı jednoduch´ y d˚ usledek ˇc´ınsk´e vˇety o zbytc´ıch pouˇzijeme v odd´ılu 4.4 vˇenovan´em Rabinovu kryptosyst´emu. D˚ usledek 3.13. Necht’ n je souˇcin dvou r˚ uzn´ych lich´ych prvoˇc´ısel, n = pq, a necht’ v ∈ QRn . Pak existuj´ı pr´avˇe ˇctyˇri navz´ajem r˚ uzn´e druh´e odmocniny z v modulo n. D˚ ukaz. Z pˇredpokladu vˇety, ˇze v ∈ QRn , je zajiˇstˇena existence u ∈ Z∗n takov´eho, ˇze v = u2 mod n. Oznaˇcme vp := v mod p a vq := v mod q a ukaˇzme, ˇze existuj´ı pr´avˇe dvˇe r˚ uzn´e opdmocniny z vp modulo p a pr´avˇe dvˇe r˚ uzn´e odmocniny z vq modulo q. Postaˇc´ı, kdyˇz se zamˇeˇr´ıme na pˇr´ıpad odmocniny z vp modulo p; v pˇr´ıpadˇe odmocniny z vq modulo q by byl postup obdobn´ y. Vyuˇzijeme zn´am´eho faktu, ˇze polynom stupnˇe s nad tˇelesem T m´a v T nejv´ yˇse s koˇren˚ u. Na hled´an´ı kvadratick´eho rezidua z vp modulo p m˚ uˇzeme totiˇz nahl´ıˇzet jako na hled´an´ı koˇren˚ u 2 ˇ polynomu up − vp nad tˇelesem Zp . C´ısla up , p − up , kde up := u mod p, jsou zˇrejmˇe koˇreny tohoto polynomu. Kdyby platilo up = p − up , pak by bylo p = 2up , coˇz by byl spor s lichost´ı prvoˇc´ısla p. T´ım jsme dok´azali existenci pr´avˇe dvou odmocnin z vp modulo p a pr´avˇe dvou odmocnin z vq modulo q (oznaˇcme uq := u mod q). Jejich vz´ajemnou kom” binac´ı“ z´ısk´ame ˇctyˇri ˇc´ısla, kter´a oznaˇc´ıme u1 , u2 , u3 , u4 . Plat´ı pro nˇe n´asleduj´ıc´ı kongruence: u1 u2 u3 u4
≡ up (mod p), ≡ up (mod p), ≡ −up (mod p), ≡ −up (mod p),
u1 u2 u3 u4
≡ uq (mod q), ≡ −uq (mod q), ≡ uq (mod q), ≡ −uq (mod q).
(3.1)
Podle ˇc´ınsk´e vˇety o zbytc´ıch (3.12) je kaˇzd´e z ˇc´ısel u1 , u2 , u3 , u4 jednoznaˇcnˇe urˇcen´e modulo n. Zb´ yv´a uk´azat, ˇze ˇc´ısla u1 , u2 , u3 , u4 jsou navz´ajem r˚ uzn´a modulo n a ˇze se jedn´a o druh´e odmocniny z u modulo n. Pokud by nˇekter´a z ˇc´ısel u1 , u2 , u3 , u4 byla shodn´a modulo n, byla by shodn´a tak´e modulo p a modulo q, coˇz zˇrejmˇe neplat´ı. Nyn´ı uk´aˇzeme, jak´ ym zp˚ usobem lze spoˇc´ıtat ˇc´ısla u1 , u2 , u3 , u4 a ˇze se jedn´a o druh´e odmocniny z v modulo n. Aby byly splnˇeny vztahy (3.1), mus´ı existovat cel´a ˇc´ısla c1 , d1 , x1 , y1 , . . . , c4 , d4 , x4 , y4 takov´a, ˇze u1 u2 u3 u4
= (up (1 − c1 p) + uq (1 − d1 q)) mod n = (up x1 q + uq y1 p) mod n, = (up (1 − c2 p) − uq (1 − d2 q)) mod n = (up x2 q − uq y2 p) mod n, = (−up (1 − c3 p) + uq (1 − d3 q)) mod n = (−up x3 q + uq y3 p) mod n, = (−up (1 − c4 p) − uq (1 − d4 q)) mod n = (−up x4 q − uq y4 p) mod n.
(3.2)
Tedy ci p + xi q = 1 a yi p + di q = 1 pro vˇsechna i = 1, . . . , 4. Tato ˇc´ısla z´ısk´ame napˇr. pomoc´ı rozˇs´ıˇren´eho Euklidova algoritmu 3.21. Je tedy zˇrejm´e, ˇze m˚ uˇzeme poloˇzit c1 = c2 = c3 = c4 = y1 = y2 = y3 = y4 =: c a d1 = d2 = d3 = d4 = x1 = x2 = x3 = x4 =: d. Pak se vztahy (3.2) zjednoduˇs´ı na 11
u1 = (up dq + uq cp) mod n, u2 = (up dq − uq cp) mod n, u3 = (−up dq + uq cp) mod n, u4 = (−up dq − uq cp) mod n.
(3.3)
Nyn´ı uk´aˇzeme, ˇze ˇc´ıslo u1 je druh´a odmocnina z v modulo n. Pro u2 , u3 a u4 by byl postup obdobn´ y. Zˇrejmˇe existuj´ı cel´a ˇc´ısla l1 , l2 , l3 takov´a, ˇze u1 = (up dq + uq cp) mod n = (u + l1 p)dq + (u + l2 q)cp + l3 pq. Umocn´ıme-li ˇc´ıslo u1 na druhou modulo n, po snadn´ ych u ´prav´ach z´ısk´ame rovnost u21 mod n = ((u + l1 p)dq + (u + l2 q)cp + l3 pq) mod n = u2 (c2 p2 + d2 q 2 ) mod n = = u2 (1 − 2cdpq) mod n = u2 mod n = v, kde jsme vyuˇzili vztahu cp + dq = 1, z kter´eho plyne 1 = (cp + dq)2 = c2 p2 + +2cdpq + d2 q 2 . Pozn´amka 3.14. Pˇredchoz´ı d˚ ukaz d´av´a n´avod, jak n´alezt vˇsechny ˇctyˇri druh´e odmocniny z kvadratick´eho rezidua modulo n, zn´ame-li druh´e odmocniny z vp modulo p a z vq modulo q (jak uˇz je uvedeno v´ yˇse, algoritmus na jejich hled´an´ı nalezneme v knize [7] na stranˇe 100), a to pomoc´ı vztah˚ u (3.3). Algoritmus 3.22 je speci´aln´ım pˇr´ıpadem algoritmu odvozen´eho z tohoto d˚ ukazu. Pozn´amka 3.15. Vˇsimnˇeme si, ˇze v d˚ usledku 3.13 pˇredpokl´ad´ame v ∈ QRn , ∗ z ˇcehoˇz plyne u ∈ Zn , a tedy GCD(u, n) = 1. Kdyby u ∈ Zn \ {0} bylo soudˇeln´e s n, pak by bez u ´jmy na obecnosti GCD(u, n) = p. Potom by z d˚ ukazu pˇredchoz´ıho d˚ usledku plynula existence pouze dvou r˚ uzn´ ych druh´ ych odmocnin z v = u2 modulo n, nebot’ by bylo up = 0. Definice 3.16. Eulerova funkce ϕ : N → N je zobrazen´ı, kter´e pro n ∈ N ud´av´a poˇcet pˇrirozen´ ych ˇc´ısel menˇs´ıch neˇz n, kter´a jsou s n nesoudˇeln´a. K v´ ypoˇctu hodnoty Eulerovy funkce lze pouˇz´ıt n´asleduj´ıc´ı vztah: Y 1 ϕ(n) = n (1 − ), p p|n
kde souˇcin bereme pˇres vˇsechna navz´ajem r˚ uzn´a prvoˇc´ısla, kter´a dˇel´ı n. Pˇ r´ıklad 3.17. Pouˇzit´ım pˇredchoz´ı formule spoˇctˇeme hodnotu Eulerovy funkce ˇc´ısla 36: 1 1 ϕ(36) = ϕ(22 32 ) = 36(1 − )(1 − ) = 12. 2 3 Vˇ eta 3.18 (Mal´a Fermatova vˇeta). Necht’ n je libovoln´e pˇrirozen´e ˇc´ıslo a necht’ a je pˇrirozen´e ˇc´ıslo nesoudˇeln´e s n. Pak plat´ı aϕ(n) ≡ 1 (mod n). D˚ ukaz t´eto vˇety nalezneme napˇr. v knize [1] na stranˇe 254. Pozn´amka 3.19. Pˇredchoz´ı vˇetˇe se tak´e nˇekdy ˇr´ık´a Fermat-Eulerova vˇeta. Algoritmus 3.20 (Euklid˚ uv algoritmus). k VSTUP: Dvˇe nez´aporn´a cel´a ˇc´ısla a a b, a ≥ b. ´ VYSTUP: Nejvˇetˇs´ı spoleˇcn´ y dˇelitel ˇc´ısel a a b. POSTUP: 12
1. Dokud b > 0, dˇelej n´asleduj´ıc´ı: Poloˇz r := a mod b, a := b, b := r. 2. Vrat’ a. Algoritmus 3.21 (Rozˇs´ıˇren´ y Euklid˚ uv algoritmus). k VSTUP: Dvˇe nez´aporn´a cel´a ˇc´ısla a a b, a ≥ b. ´ VYSTUP: d = GCD(a, b) a ˇc´ısla x, y ∈ Z splˇ nuj´ıc´ı ax + by = d. POSTUP: 1. Poloˇz x1 := 0, x2 := 1, y1 := 1, y2 := 0. 2. Dokud b > 0, dˇelej n´asleduj´ıc´ı: (a) Poloˇz q := a div b, r := a − qb, x := x2 − qx1 , y := y2 − qy1 . (b) Poloˇz a := b, b := r, x2 := x1 , x1 := x, y2 := y1 , y1 := y. 3. Poloˇz d := a, x := x2 , y := y2 a vrat’ (d, x, y). Algoritmus 3.22 (V´ ypoˇcet druh´ ych odmocnin modulo n = pq, kde p a q jsou prvoˇc´ısla takov´a, ˇze p ≡ 3 (mod 4) a q ≡ 3 (mod 4)). k VSTUP: Pˇrirozen´e ˇc´ıslo c ∈ Zn . ´ ˇ ri druh´e odmocniny z c modulo n. VYSTUP: Ctyˇ POSTUP: 1. Pouˇzit´ım rozˇs´ıˇren´eho Euklidova algortimu (3.21) najdi ˇc´ısla a, b ∈ Z, pro kter´a plat´ı ap + bq = 1. 2. Poloˇz r := c(p+1)/4 mod p. 3. Poloˇz s := c(q+1)/4 mod q. 4. Poloˇz x := (aps + bqr) mod n. 5. Poloˇz y := (aps − bqr) mod n. 6. Vrat’ (±x mod n, ±y mod n). Pozn´amka 3.23. Algoritmy 3.20 a 3.21 maj´ı ˇcasovou sloˇzitost O(log2 (max{a, b})), algoritmus 3.22 m´a ˇcasovou sloˇzitost O(log3 (max{a, b})).
13
Kapitola 4 Stavebn´ı prvky protokol˚ u ˇ U symetrick´ ych ˇsifer se pro ˇsifrov´an´ı i deˇsifrov´an´ı pouˇz´ıv´a jeden kl´ıˇc K. Sifrovac´ ı transformaci u symetrick´e ˇsifry proto oznaˇcujeme EK (.) a deˇsifrovac´ı transformaci DK (.). U asymetrick´ ych ˇsifer se pouˇz´ıv´a kl´ıˇcov´ y p´ar — veˇrejn´ y kl´ıˇc K1 a soukrom´ y ˇ kl´ıˇc K2 . Sifrovac´ ı transformaci u asymterick´e ˇsifry oznaˇcujeme EK1 (.) a deˇsifrovac´ı transformaci DK2 (.).
4.1
Haˇ sovac´ı funkce
Definice 4.1. Haˇsovac´ı funkce (hash function) H : M → {0, 1}k (kde k ∈ N je pevnˇe dan´e) je funkce, kter´a pro libovoln´ y vstup m ∈ M vrac´ı v´ ystup h zvan´ y hodnota haˇse (hash value) (nebo kr´atce haˇs ), t.j. h = H(m), splˇ nuj´ıc´ı n´asleduj´ıc´ı podm´ınky: 1. pro libvoln´e m ∈ M je snadn´e spoˇc´ıtat H(m), 2. pro dan´e h je v´ ypoˇcetnˇe n´aroˇcn´e naj´ıt m takov´e, ˇze h = H(m), 3. je v´ ypoˇcetnˇe n´aroˇcn´e naj´ıt dvˇe zpr´avy m a m0 takov´e, ˇze H(m) = H(m0 ). Vlastnost 2. z pˇredchoz´ı definice se naz´ yv´a jednosmˇernost a vlastnosti 3. 1 ˇr´ık´ame bezkoliznost . ´ Ulohou haˇsovac´ı funkce je vytvoˇrit jak´ ysi otisk zpr´avy. V kryptografii se nejˇcastˇeji pouˇz´ıv´a u digit´aln´ıch podpis˚ u a k zajiˇstˇen´ı integrity zpr´av. Zajiˇstˇen´ı integrity zpr´avy znamen´a, ˇze pokud s ˇsifrovou zpr´avou c = Ek1 (m) poˇsleme pˇr´ıjemci tak´e haˇs h = H(m), pak v pˇr´ıpadˇe, ˇze nˇejak´ y u ´toˇcn´ık zpr´avu c modifikuje na 0 zpr´avu c , pˇr´ıjemce tuto skuteˇcnost pozn´a, pokud si po deˇsifrov´an´ı Dk2 (c0 ) = m0 spoˇc´ıt´a H(m0 ) = h0 6= h. 1
Rozliˇsujeme dva druhy koliz´ı. Zm´ınˇen´a kolize se naz´ yv´a kolize prvn´ıho ˇr´ adu. Schopnost hledat kolize druh´eho ˇr´ adu znamen´a, ˇze k libovoln´e dan´e zpr´avˇe m jsme schopni nal´ezt zpr´avu m0 takovou, ˇze H(m) = H(m0 ).
14
4.2
Digit´ aln´ı podpis
Definice 4.2. Digit´aln´ı podpisov´e sch´ema (digital signature scheme) je sch´ema pouˇz´ıvaj´ıc´ı metody asymetrick´e kryptografie urˇcen´e k autentizaci zpr´avy. Jedn´a se o dva komplement´arn´ı algoritmy — jeden pro podpis a jeden pro ovˇeˇren´ı jeho pravosti. Podepisovac´ı algoritmus (ve kter´em se pouˇz´ıv´a soukrom´ y kl´ıˇc) budeme znaˇcit Sig a ovˇeˇrovac´ı Ver (v nˇem se pouˇz´ıv´a veˇrejn´ y kl´ıˇc). Digit´aln´ı podpis mus´ı m´ıt n´asleduj´ıc´ı vlastnosti: • Autentizace (authenticity): Lze prok´azat, ˇze dokument skuteˇcnˇe podepsal jeho autor. • Integrita (integrity): Zpr´ava nem˚ uˇze b´ yt zmˇenˇen´a se zachov´an´ım platnosti podpisu. • Nepopiratelnost (non-repudiation): Osoba, kter´a dokument podepsala, to nem˚ uˇze pozdˇeji popˇr´ıt. Digit´aln´ım podpisem naz´ yv´ame v´ yslednou posloupnost bit˚ u. Digit´aln´ı podpisov´e sch´ema se vˇetˇsinou pouˇz´ıv´a ve spojen´ı s haˇsovac´ı funkc´ı2 . D˚ uvodem je to, ˇze v´ ypoˇcet podpisu pro rozs´ahl´e dokumenty trv´a (oproti v´ ypoˇctu haˇse) pˇr´ıliˇs dlouho. Algoritmus Sig digit´aln´ıho podpisu se aplikuje na v´ yslednou haˇs. V´ ystup ovˇeˇrovac´ıho algoritmu pro podpis s = Sig(m) zpr´avy m oznaˇc´ıme Ver(s, m) = 1, je-li podpis v poˇr´adku, a Ver(s, m) = 0, jde-li o podvrˇzen´ y podpis.
4.3
RSA
RSA je asymetrick´a ˇsifra. Popis ˇsifry: Zvol´ıme n´ahodnˇe dvˇe r˚ uzn´a pˇribliˇznˇe stejnˇe velk´a prvoˇc´ısla p a q. Poloˇz´ıme n := pq, zvol´ıme cel´e e takov´e, ˇze 1 < e < ϕ(n) a GCD(e, ϕ(n)) = 1, a pomoc´ı rozˇs´ıˇren´eho Euklidova algoritmu (3.21) spoˇcteme d = e−1 mod ϕ(n). GCD znaˇc´ı funkci nejvˇetˇs´ı spoleˇcn´ y dˇelitel“ a ϕ je Eulerova funkce (viz. definici (3.16)), ” ϕ(n) = (p − 1)(q − 1). Veˇrejn´ ym kl´ıˇcem je p´ar (n, e) a soukrom´ ym kl´ıˇcem je ˇc´ıslo d (pˇr´ıpadnˇe trojice (p, q, d)). ˇ Sifrov´ an´ı je umocˇ nov´an´ı otevˇren´e zpr´avy m ∈ Zn na veˇrejn´ y exponent e modulo n: c = me mod n. Deˇsifrov´an´ı je umocˇ nov´an´ı ˇsifrov´eho textu c na soukrom´ y exponent d modulo n: m = cd mod n. Uk´aˇzeme platnost posledn´ı rovnosti: cd mod n = (me mod n)d mod n = med mod n = m1 =m
k·ϕ(n)+1
mod n = m · m
k·ϕ(n)
mod n
2
(V3.18)
=
mod ϕ(n)
mod n =
m · 1 mod n = m.
Existuje i tzv. sch´ema s obnovou zpr´ avy (neboli RSA podepisovac´ı sch´ema), kde se podepisuje cel´ y dokument, ale to nebudeme uvaˇzovat
15
M´ame-li d´ano n, y a e a hled´ame x takov´e, ˇze y = xe mod n, ˇr´ık´ame, ˇze ˇreˇs´ıme tzv. RSA probl´em. Pˇredpokl´ad´a se, ˇze RSA probl´em je ekvivalentn´ı probl´emu faktorizace modulu n, a tedy ˇze jde o tˇeˇzk´ y probl´em.
4.4
Rabin˚ uv kryptosyst´ em
Rabin˚ uv kryptosyst´em je podobn´ y syst´emu RSA. Jedin´ y rozd´ıl je ten, ˇze nam´ısto ˇc´ısla e nesoudˇeln´eho s ϕ(n) je veˇrejn´ ym exponentem ˇc´ıslo 2. Pˇresnˇeji, zvol´ıme n´ahodnˇe dvˇe r˚ uzn´a pˇribliˇznˇe stejnˇe velk´a prvoˇc´ısla p a q, p ≡ 3 (mod 4), q ≡ 3 (mod 4), a poloˇz´ıme n := pq. Veˇrejn´ ym kl´ıˇcem je modulus n a soukrom´ ym kl´ıˇcem je dvojice (p, q). Pˇri ˇsifrov´an´ı umocˇ nujeme otevˇren´ y text m ∈ Zn na druhou modulo n, c = m2 mod n.
(4.1)
Pˇri deˇsifrov´an´ı najdeme pomoc´ı algoritmu 3.22 vˇsechny ˇctyˇri druh´e odmocniny z c modulo n (viz. d˚ usledek 3.13). Ve velmi m´alo pravdˇepodobn´em pˇr´ıpadˇe, ˇze by GCD(m, n) > 1, by existovaly pouze dvˇe druh´e odmocniny z c modulo n (viz. pozn´amku 3.15). Takto z´ıskan´e zpr´avy oznaˇc´ıme m1 , m2 , m3 a m4 . Jako zpr´avu m vybereme tu, kter´a d´av´a smysl. Jednoznaˇcnosti otevˇren´eho textu m˚ uˇzeme doc´ılit tak´e t´ım, ˇze pˇred zaˇsifrov´an´ım pˇripoj´ıme na konec zpr´avy m nˇejak´ y konstantn´ı ˇretˇezec znak˚ u. Po deˇsifrov´an´ı potom vybereme tu zpr´avu mi , kter´a konˇc´ı t´ımto ˇretˇezcem. Zat´ımco o RSA probl´emu se pouze pˇredpokl´ad´a, ˇze je ekvivalentn´ı faktorizaci modulu, o invertov´an´ı Rabinovy funkce (4.1) to lze dok´azat. Tvrzen´ı 4.3. Jsme-li schopni faktorizovat modulus n v polynomi´aln´ım ˇcase, jsme schopni (pomoc´ı algoritmu na faktorizaci modulu n) v polynomi´aln´ım ˇcase invertovat Rabinovu funkci, a naopak, jsme-li schopni v polynomi´aln´ım ˇcase invertovat Rabinovu funkci, jsme schopni (pomoc´ı algoritmu na invertov´an´ı Rabinovy funkce) v polynomi´aln´ım ˇcase faktorizovat modulus n. D˚ ukaz. Zp˚ usob, jak´ ym lze pˇri znalosti faktor˚ u p, q modulu n invertovat Rabinovu funkci, d´av´a napˇr. algoritmus 3.22, kter´ y bˇeˇz´ı v ˇcase O(log3 (.)). Zb´ yv´a dok´azat druhou implikaci, totiˇz ˇze kdokoliv, kdo je schopen z ˇsifrov´eho textu c naj´ıt otevˇren´ y text m v polynomi´aln´ım ˇcase, je tak´e schopen v polynomi´aln´ım ˇcase faktorizovat n. Invertovat Rabinovu funkci znamen´a nal´ezt nˇekterou ze ˇctyˇr odmocnin z c modulo n. Jsou to ±m (mod n), ±αm (mod n), kde α ≡ 1 (mod p) a α ≡ −1 (mod q). D˚ uvodem platnosti tˇechto kongruenc´ı je to, ˇze c = m2 mod n
a
c = α2 m2 mod n,
a tedy m2 ≡ α2 m2 (mod n), z ˇcehoˇz plyne α2 ≡ 1 (mod n)
α2 − 1 ≡ 0 (mod n).
⇒
Tedy existuje nˇejak´e γ ∈ Z takov´e, ˇze 16
(α − 1)(α + 1) = γpq. Nyn´ı mohou nastat dva pˇr´ıpady: 1. Bud’ α − 1 = σp a α + 1 = %q, kde γ = σ%, σ, % ∈ Z, a tedy plat´ı α ≡ 1 (mod p) a α ≡ −1 (mod q), 2. nebo α − 1 = τ pq (resp. α + 1 = τ pq), kde τ dˇel´ı γ, coˇz znamen´a, ˇze α ≡ 1 (mod n) (resp. α ≡ −1 (mod n)), ale odsud plyne, ˇze existuj´ı pouze dvˇe druh´e odmocniny z kvadratick´eho rezidua x modulo n, coˇz je ve sporu s d˚ usledkem 3.13. S pravdˇepodobnost´ı 1/2 bude inverz´ı Rabinovy funkce ±αm (mod n). V tom pˇr´ıpadˇe vydˇelen´ım spoˇc´ıt´ame ±α mod n a pak rychle (se sloˇzitost´ı O(log2 (.))) faktorizujeme n pomoc´ı Euklidova algoritmu (3.20), nebot’ GCD(n, α − 1) = p. Pokud je inverz´ı Rabinovy funkce ±m, provedeme tento postup s jin´ ym m. Pravdˇepodobnost, ˇze po k kroc´ıch se n´am nepodaˇr´ı faktorizovat n je 2−k , coˇz se limitnˇe bl´ıˇz´ı k nule. Nyn´ı dok´aˇzeme redukcionistickou bezpeˇcnost (viz. odd´ıl 3.3) Rabinova kryptosyst´emu. Tvrzen´ı 4.4 (Redukcionistick´a bezpeˇcnost Rabinova ryptosyst´emu). Kdokoliv, kdo je schopen v polynomi´aln´ım ˇcase (vzhledem k velikosti modulu n) k ˇsifrov´emu textu c naj´ıt otevˇren´y text m (c = m2 mod n), je schopen (pomoc´ı algoritmu na hled´an´ı otevˇren´eho textu m) v polynomi´aln´ım ˇcase faktorizovat n. D˚ ukaz. Ten, kdo je schopen naj´ıt otevˇren´ y text m k ˇsifrov´emu textu c, mus´ı b´ yt schopen naj´ıt vˇsechny ˇctyˇri odmocniny z c modulo n, protoˇze kter´akoliv z nich m˚ uˇze b´ yt hledan´ ym otevˇren´ ym textem m. To znamen´a, ˇze zn´a pˇr´ısluˇsn´e α (viz. d˚ ukaz pˇredchoz´ıho tvrzen´ı), a tedy je schopen faktorizovat n v ˇcase O(log2 (n)). T´ım je tedy dok´azan´a redukcionistick´a bezpeˇcnost Rabinova syst´emu. Jak jsme ale uvedli v odd´ıle 3.3, plyne odsud jeho zranitelnost u ´tokem s v´ ybˇerem zpr´avy. V ˇcl´anku [5] je uveden n´asleduj´ıc´ı u ´tok: Pˇredpokl´adejme, ˇze by u ´toˇcn´ık (Eva) nˇejak´ ym zp˚ usobem pˇrimˇel vlastn´ıka soukrom´eho kl´ıˇce (p, q) (Alici), aby pro nˇej deˇsifroval nˇejakou ˇsifrovou zpr´avu, kterou si u ´toˇcn´ık vybere. Eva si vybere zpr´avu m ∈ Zn a poˇsle Alici ˇsifrov´ y text c = m2 mod n. Alice poˇsle Evˇe (nˇejakou3 ) druhou odmocninu z c. S pravdˇepodobnost´ı 1/2 to bude ±αm. V takov´em pˇr´ıpadˇe Eva snadno faktorizuje n (viz. d˚ ukaz pˇredchoz´ıho tvrzen´ı) a bude schopn´a deˇsifrovat vˇsechny zpr´avy v tomto syst´emu. Pokud j´ı Alice poˇsle ±m, pak Eva provede stejn´ yu ´tok s jin´ ym m. Po −k k pokusech je pravdˇepodobnost u ´spˇeˇsn´eho u ´toku 1 − 2 . Jak m˚ uˇze Eva doc´ılit toho, aby j´ı Alice poslala deˇsifrovan´e zpr´avy? Jedn´ım z takov´ ych pˇr´ıpad˚ u m˚ uˇze b´ yt zhroucen´ı syst´emu, kdy se Eva jev´ı jako opr´avnˇen´ y uˇzivatel, kter´ y se snaˇz´ı obnovit ztracen´a data. Je tedy vidˇet, ˇze stejn´a vlastnost, kter´a d´av´a Rabinovu syst´emu redukcionistickou bezpeˇcnost, vede k jeho tot´aln´ımu kolapsu pˇri konfrontaci s jin´ ym typem 3
Zde je tˇreba si uvˇedomit, ˇze m nen´ı smyslupln´ y text, ale (vˇetˇsinou bin´arn´ı) ˇc´ıslo, kter´e vznikne zak´ odov´ an´ım dan´eho otevˇren´eho textu. Proto Alice nepoˇsle Evˇe nutnˇe ˇc´ıslo m. Dek´ odov´ an´ı z´ıskan´ ych odmocnin z ˇsifrov´eho textu by totiˇz pro ni bylo zbyteˇcnˇe ˇcasovˇe n´aroˇcn´e.
17
u ´toˇcn´ıka. V praxi je ovˇsem takov´ yu ´tok obt´ıˇznˇe realizovateln´ y. Ze strany Alice by vyˇzadoval velkou m´ıru spolupr´ace a hlouposti.
18
Kapitola 5 Turingovy stroje Definice t´ ykaj´ıc´ı se Turingov´ ych stroj˚ u v t´eto a pˇr´ıˇst´ı kapitole jsou pˇrevzaty z text˚ u [2] a [4]. Z´akladn´ı model (jednop´askov´eho) Turingova stroje (TM) se skl´ad´a z hlavy a oboustrannˇe nekoneˇcn´e p´asky rozdˇelen´e na pol´ıˇcka. Pol´ıˇcka mohou b´ yt pr´azdn´a, nebo n´est symboly z nˇejak´e koneˇcn´e mnoˇziny. Hlava m˚ uˇze ˇc´ıst a pˇrepisovat obsah pol´ıˇcka, na kter´em se nach´az´ı a pohybovat se po p´asce vlevo a vpravo. D´ale Turing˚ uv stroj obsahuje vnitˇrn´ı pamˇet’, kter´a m˚ uˇze nab´ yvat koneˇcn´eho poˇctu stav˚ u. Na zaˇca´tku v´ ypoˇctu je p´aska pr´azdn´a aˇz na koneˇcnou souvislou posloupnost pol´ıˇcek. Jejich obsahu ˇr´ık´ame vstup. Matematicky je Turing˚ uv stroj definov´an takto: Definice 5.1. Turing˚ uv stroj je ˇctveˇrice T = (Σ, Q, P, qs ), kde • Σ je nepr´azdn´a koneˇcn´a mnoˇzina symbol˚ u, • Q je nepr´azdn´a koneˇcn´a mnoˇzina stav˚ u, • P je libovoln´a mnoˇzina P ⊆ Q × Σ × Q × Σ × M zvan´a program Turingova stroje. M je mnoˇzina pohyb˚ u {←, →, −}, kde ← znamen´a pohyb o jedno pol´ıˇcko doleva, → o jedno pol´ıˇcko doprava a − znamen´a, ˇze hlava z˚ ustane na aktu´aln´ım pol´ıˇcku, • qs ∈ Q je poˇc´ateˇcn´ı stav stroje. Libovoln´ y prvek (q, s, q 0 , s0 , m) ∈ P se naz´ yv´a instrukce. Instrukci Turingova stroje m˚ uˇzeme interpretovat takto: Pokud jsi ve stavu q a ˇcteˇs symbol s, zmˇen ˇ ho na symbol s0 , pˇrejdi do stavu q 0 a proved’ pohyb m. M´a-li stroj pro kaˇzd´ y vnitˇrn´ı stav (kombinaci stavu q a symbolu s) jedinou instrukci, naz´ yv´a se deterministick´y. V opaˇcn´em pˇr´ıpadˇe se naz´ yv´a nedeterministick´y. Definice 5.2. Mnoˇzinu symbol˚ u Σ naz´ yv´ame abeceda. Mnoˇzinu koneˇcn´ ych po∗ ∗ sloupnost´ı symbol˚ u z abecedy Σ znaˇc´ıme Σ . Prvky mnoˇziny Σ naz´ yv´ame slova. Libovolnou mnoˇzinu slov naz´ yv´ame jazyk.
19
Pro teorii interaktivn´ıch d˚ ukaz˚ u budeme potˇrebovat tak´e definici v´ıcep´askov´eho Turingova stroje. V´ıcep´askov´ y Turing˚ uv stroj je podobn´ y jednop´askov´emu, ale m´a k nez´avisl´ ych p´asek, kde k je konstanta. Kaˇzd´a z p´asek m´a svoji vlastn´ı ˇctec´ı a zapisovac´ı hlavu. Instrukce stroje jsou z´avisl´e na vˇsech k symbolech ˇcten´ ych hlavami na jednotliv´ ych p´ask´ach. k-p´askov´ y TM m´a vˇsak pouze jeden stav. Protoˇze mnoˇzina stav˚ u Q m˚ uˇze b´ yt libovoln´a, m˚ uˇzeme ji ch´apat napˇr´ıklad jako Q = Q1 ×Q2 ×· · ·×Qk . V´ıcep´askov´e Turingovy stroje lze nahradit jednop´askov´ ymi. D˚ uvod pouˇz´ıv´an´ı v´ıcep´askov´ ych TM je zejm´ena ten, ˇze oproti jednop´askov´ ym TM umoˇzn ˇuj´ı pˇrehlednˇejˇs´ı a rychlejˇs´ı v´ ypoˇcet. Form´alnˇe definujeme k-p´askov´ y Turing˚ uv stroj takto: Definice 5.3. k-p´askov´y Turing˚ uv stroj je ˇctveˇrice T = (Σ, Q, P, qs ), kde • Σ je nepr´azdn´a koneˇcn´a mnoˇzina symbol˚ u, • Q je nepr´azdn´a koneˇcn´a mnoˇzina stav˚ u, • program P je libovoln´a mnoˇzina P ⊆ Q × Σk × Q × Σk × Mk , kde M je mnoˇzina pohyb˚ u {←, →, −}, • qs ∈ Q je poˇc´ateˇcn´ı stav stroje. Neobejdeme se ani bez definice interaktivn´ıho Turingova stroje: Definice 5.4 (Interaktivn´ı Turing˚ uv stroj). Interaktivn´ım Turingov´ym strojem (ITM) naz´ yv´ame deterministick´ y sedmip´askov´ y Turing˚ uv stroj s n´asleduj´ıc´ımi p´askami: • jedna veˇrejn´a vstupn´ı p´aska pouze ke ˇcten´ı, • jedna soukrom´a vstupn´ı p´aska pouze ke ˇcten´ı, • jedna pracovn´ı p´aska pro ˇcten´ı i z´apis, • jedna v´ystupn´ı p´aska pouze pro z´apis, • dvojice komunikaˇcn´ıch p´asek — jedna pouze pro z´apis (tu naz´ yv´ame v´ystupn´ı komunikaˇcn´ı p´aska) a druh´a pouze ke ˇcten´ı (tu naz´ yv´ame vstupn´ı komunikaˇcn´ı p´aska), • a jedna stavov´a p´aska pro ˇcten´ı i z´apis sest´avaj´ı z jedin´eho pol´ıˇcka, kter´e m˚ uˇze obsahovat 0 nebo 1 a na zaˇca´tku obsahuje 0. Kaˇzd´emu ITM je pˇriˇrazen samostatn´ y bit σ ∈ {0, 1} naz´ yvan´ y jeho identitou. O ITM ˇrekneme, ˇze je aktivn´ı, pokud je obsah jeho stavov´e p´asky roven jeho identitˇe. V opaˇcn´em pˇr´ıpadˇe ˇr´ık´ame, ˇze je neˇcinn´y. Je-li stroj neˇcinn´ y, nemˇen´ı se jeho stav, polohy hlav na jednotliv´ ych p´ask´ach, ani obsah jeho pˇrepisovateln´ ych p´asek. Obsah veˇrejn´e vstupn´ı p´asky se naz´ yv´a veˇrejn´y vstup, obsah soukrom´e vstupn´ı p´asky se naz´ yv´a n´ahodn´y vstup a obsahu v´ ystupn´ı p´asky po skonˇcen´ı v´ ypoˇctu stroje ˇr´ık´ame v´ystup. Obsah napsan´ y na pˇrepisovatelnou komunikaˇcn´ı p´asku bˇehem ˇcasov´eho u ´seku, kdy je stroj aktivn´ı, se naz´ yv´a zpr´ava poslan´a v tomto ˇcasov´em u ´seku. Obsah pˇreˇcten´ y ze ˇctec´ı komunikaˇcn´ı p´asky bˇehem aktivn´ıho u ´seku se naz´ yv´a zpr´ava pˇrijat´a v tomto ˇcasov´em u ´seku. 20
Pˇri v´ ypoˇctu nikdy neuvaˇzujeme jedin´ y interaktivn´ı stroj, ale dvojici ITM, kter´e spolu sd´ılej´ı nˇekter´e p´asky. Zpr´ava poslan´a jedn´ım strojem je pˇrijatou zpr´avou druh´eho stroje. Aktivn´ı stroj se stane neˇcinn´ ym pˇreps´an´ım obsahu stavov´e p´asky a t´ım se druh´ y stroj (s opaˇcnou identitou) stane aktivn´ım. V´ ypoˇcet takov´e dvojice stroj˚ u sest´av´a ze zpr´av, kter´e stroje stˇr´ıdavˇe pos´ılaj´ı jeden druh´emu v z´avislosti na jejich poˇc´ateˇcn´ım (veˇrejn´em) vstupu, n´ahodn´ ych vstupech a na dosavadn´ıch pˇrijat´ ych zpr´av´ach. ˇ ık´ame, ˇze dva interaktivn´ı stroje Definice 5.5 (Spojen´ y v´ ypoˇcet dvou ITM). R´ jsou spojen´e, pokud • maj´ı opaˇcnou identitu, • sd´ılej´ı veˇrejnou vstupn´ı p´asku, • sd´ılej´ı stavovou p´asku, • vstupn´ı komunikaˇcn´ı p´aska jednoho stroje je v´ ystupn´ı komunikaˇcn´ı p´askou druh´eho stroje a naopak. Zd˚ uraznˇeme, ˇze zbyl´e p´asky tˇechto stroj˚ u (t.j. soukrom´a vstupn´ı, pracovn´ı a v´ ystupn´ı p´aska) jsou r˚ uzn´e. Spojen´y v´ypoˇcet spojen´e dvojice ITM na veˇrejn´em vstupu x je posloupnost p´ar˚ u lok´aln´ıch konfigurac´ı kaˇzd´eho ze stroj˚ u. V kaˇzd´em p´aru lok´aln´ı konfigurace je jeden stroj aktivn´ı a druh´ y neˇcinn´ y. Jak uˇz bylo uvedeno, kdyˇz aktivn´ı stroj dokonˇc´ı sv˚ uj d´ılˇc´ı v´ ypoˇcet, pˇrep´ıˇse obsah stavov´e p´asky na opaˇcnou hodnotu. T´ım se stane neˇcinn´ ym a druh´ y stroj se stane aktivn´ım. Jestliˇze jeden ze stroj˚ u dokonˇc´ı sv˚ uj v´ ypoˇcet, kdyˇz je obsah stavov´e p´asky roven jeho identitˇe, pak ˇr´ık´ame, ˇze oba stroje dokonˇcily v´ ypoˇcet. Definice 5.6. Pravdˇepodobnostn´ı Turing˚ uv stroj je nedeterministick´ y Turing˚ uv stroj spolu s funkc´ı P : (Q × Σ × Q × Σ × M ) → [0, 1] takovou, ˇze pro kaˇzd´e (q, s) ∈ Q × Σ plat´ı X P(q, s, q 0 , s0 , m) = 1, (q 0 ,s0 ,m)∈Q×Σ×M
kde Q je mnoˇzina stav˚ u, Σ mnoˇzina symbol˚ u a M mnoˇzina pohyb˚ u. Pˇredpokl´adejme, ˇze vˇsechny moˇzn´e interakce spojen´ ych stroj˚ u A a B na kaˇzd´em veˇrejn´em vstupu skonˇc´ı po koneˇcn´em poˇctu krok˚ u. Symbolem (A, B)(x) oznaˇcujeme v´ ystup stroje B pˇri interakci se strojem A na veˇrejn´em vstupu x, kde n´ahodn´ y vstup na soukrom´e vstupn´ı p´asce kaˇzd´eho ze stroj˚ u je vybr´an rovnomˇernˇe a nez´avisle z mnoˇziny vˇsech nekoneˇcn´ ych posloupnost´ı bit˚ u. Z t´eto nekoneˇcn´e posloupnosti je pˇri (koneˇcn´em) v´ ypoˇctu pˇreˇcten (a m´a v´ yznam) pouze koneˇcn´ y prefix. V´ yznam soukrom´e vstupn´ı p´asky m˚ uˇzeme ch´apat tak, ˇze dan´ y stroj m´a pro kaˇzdou dvojici (q, s) ∈ Q × Σ dvˇe moˇzn´e instrukce (q, s, q10 , s01 , m1 ) a (q, s, q20 , s02 , m2 ) a kaˇzdou z nich provede s pravdˇepodobnost´ı 1/2 (v z´avislosti na bitu ˇcten´em ze soukrom´e vstupn´ı p´asky). Interaktivn´ı Turing˚ uv stroj je tedy pravdˇepodobnostn´ı.
21
ˇ ık´ame, ˇze interaktivn´ı Definice 5.7 (Sloˇzitost v´ ypoˇctu interaktivn´ıho stroje). R´ stroj B m´a ˇcasovou sloˇzitost t : N → N, jestliˇze pro kaˇzd´ y interaktivn´ı stroj A a kaˇzd´ y vstup x plat´ı, ˇze stroj B pˇri interakci se strojem A na vstupu x vˇzdy (t.j. nez´avisle na obsahu jeho soukrom´e vstupn´ı p´asky a soukrom´e vstupn´ı p´asky stroje A) skonˇc´ı v´ ypoˇcet bˇehem t(|x|) krok˚ u. Zd˚ uraznˇeme, ˇze pr´avˇe definovan´a ˇcasov´a sloˇzitost je funkc´ı pouze vstupu x a je tedy nez´avisl´a na zpr´av´ach, kter´e stroj B pˇrij´ım´a.
22
Kapitola 6 Interaktivn´ı d˚ ukazy Interaktivn´ı d˚ ukaz zahrnuje dvˇe v´ ypoˇcetn´ı u ´lohy — tvorbu d˚ ukazu a ovˇeˇrov´an´ı jeho spr´avnosti. Tyto u ´lohy vykon´avaj´ı dva r˚ uzn´ı u ´ˇcastn´ıci zvan´ı dokazovatel (prover) a ovˇeˇrovatel (verifier). Tˇemito u ´ˇcstn´ıky jsou dva spojen´e interaktivn´ı Turingovy stroje. Dokazovatele oznaˇcujeme P a ovˇeˇrovatele V . Jejich interakce je parametrizovan´a jejich spoleˇcn´ ym veˇrejn´ ym vstupem, kter´ y reprezentuje dokazovan´e tvrzen´ı. V n´asleduj´ıc´ı definici je v´ ystupem ovˇeˇrovatele jeho rozhodnut´ı, zda d˚ ukaz pˇrijme, nebo ne. V´ ystup 1 znamen´a pˇrijet´ı d˚ ukazu a v´ ystup 0 znamen´a jeho odm´ıtnut´ı. Definice 6.1. Dvojici spojen´ ych interaktivn´ıch Turingov´ ych stroj˚ u (P, V ) ˇr´ık´ame interaktivn´ı d˚ ukazov´y syst´em jazyka L, jestliˇze jsou splnˇeny n´asleduj´ıc´ı tˇri podm´ınky: • Efektivita: stroj V pracuje v polymoni´aln´ım ˇcase (vzhledem k d´elce vstupu x), ´ • Uplnost: P[(P, V )(x) = 1 | x ∈ L] ≥ ε, • Spolehlivost: pro kaˇzd´ y interaktivn´ı stroj P ∗ plat´ı P[(P ∗ , V )(x) = 1 | x ∈ / L] ≤ δ, kde ε a δ jsou konstanty splˇ nuj´ıc´ı 1 δ ∈ [0, ). 2
1 ε ∈ ( , 1], 2
Pozn´amka 6.2. Vˇsimnˇeme si, ˇze v definici (6.1) neklademe ˇz´adn´e omezuj´ıc´ı podm´ınky na ˇcasovou sloˇzitost v´ ypoˇctu stroje P . D´ale zd˚ uraznˇeme, ˇze podm´ınka pro spolehlivost se vztahuje ke vˇsem moˇzn´ ym dokazovatel˚ um P ∗ , zat´ımco podm´ınka pro u ´plnost pouze k dan´emu dokazovateli P . Pozn´amka 6.3. Pro u ´ˇcely protokol˚ u pro interaktivn´ı d˚ ukazy pˇrid´ame kaˇzd´emu ITM jednu soukromou pomocnou vstupn´ı p´asku pouze ke ˇcten´ı. Obsah kaˇzd´e z nich bude souviset s vnitˇrn´ı konfigurac´ı pˇr´ısluˇsn´eho stroje pˇred zaˇca´tkem bˇehu protokolu. Dokazovateli tato p´aska umoˇzn´ı efektivn´ı implementaci jeho u ´kolu. 23
Pod pojmem jazyk si m˚ uˇzeme pˇredstavit napˇr. grafov´ y izomorfismus. Vr´at´ıme-li se k definici jazyka (5.2), pak v tomto pˇr´ıpadˇe bude abecedou grafy, slovy budou dvojice izomorfn´ıch graf˚ u a veˇrejn´ ym vstupem bude dvojice graf˚ u, o kter´ ych chceme rozhodnout, zda jsou izomorfn´ı. D´ale rozebereme nˇekolik protokol˚ u pro interaktivn´ı d˚ ukazy z hlediska definice (6.1) a z hlediska dokazateln´e bezpeˇcnosti (viz. odd´ıl 3.3). V protokolech se dokazovateli zpravidla ˇr´ık´a Peggy a ovˇeˇrovateli Viktor. Toho se budeme drˇzet i my. ´ castn´ıky protokolu pro interaktivn´ı d˚ Uˇ ukaz mohou b´ yt dvˇe osoby, osoba a stroj nebo dva stroje. Typicky jsou od sebe fyzicky vzd´aleni, takˇze v´ ypoˇcet na sd´ılen´ ych p´ask´ach spojen´ ych interaktivn´ıch stroj˚ u z definice (5.5) mus´ıme ch´apat tak, ˇze si vz´ajemnˇe pos´ılaj´ı v´ ysledky jednotliv´ ych v´ ypoˇct˚ u. Veˇrejn´ ym vstupem x b´ yv´a v protokolech ˇc´ıslo (nebo mnoˇzina ˇc´ısel), o kter´em dokazovatel tvrd´ı, ˇze pro nˇe zn´a ˇreˇsen´ı nˇejak´eho tˇeˇzk´eho matematick´eho probl´emu, z nichˇz nˇekter´e jsme uvedli v kapitole 3. Tomuto ˇreˇsen´ı ˇr´ık´ame dokazovatelovo tajemstv´ı. Jazykem L b´ yv´a mnoˇzina vˇsech ˇc´ısel, pro kter´e dokazovatel zn´a ˇreˇsen´ı pˇr´ısluˇsn´eho probl´emu. Dokazovatel tedy dokazuje, ˇze pro veˇrejn´ y vstup x zn´a ˇreˇsen´ı nˇejak´eho tˇeˇzk´eho matematick´eho probl´emu; nemus´ı to ovˇsem znamenat, ˇze m´a algoritmus na ˇreˇsen´ı tohoto probl´emu. Napˇr´ıklad pokud je protokol zaloˇzen na obt´ıˇznosti hled´an´ı diskr´etn´ıho logaritmu v grupˇe Z∗p s gener´atorem α, pak dokazovatel dokazuje, ˇze pro konkr´etn´ı veˇrejn´ y vstup x ∈ Z∗p zn´a diskr´etn´ı logaritmus logα x (ne vˇsak, ˇze tento logaritmus um´ı obecnˇe spoˇc´ıtat pro libovoln´e x), tedy ˇze x patˇr´ı do jazyka, j´ımˇz je mnoˇzina vˇsech ˇc´ısel z grupy Z∗p , pro nˇeˇz dokazovatel zn´a diskr´etn´ı logaritmus. Dokazovatel z´ısk´a veˇrejn´e x tak, ˇze si zvol´ı y ∈ {0, 1, . . . , p − 2} a umocn´ı gener´ator α na y-tou modulo p; x := αy mod p. Ovˇeˇrovateli potom poskytne x a snaˇz´ı se mu dok´azat, ˇze zn´a diskr´etn´ı logaritmus y = logα x. Dokazovatel si m˚ uˇze zvolit libovoln´ y poˇcet (kter´ y oznaˇc´ıme k) ˇc´ısel yi ∈ {0, 1, . . . , p − 2}, i = 1, 2, . . . , k, a na kaˇzd´e z nich umocnit gener´ator α; oznaˇcme xi := αyi mod p, i = 1, 2, . . . , k. Ke kaˇzd´emu takto z´ıskan´emu xi dokazovatel zn´a jeho diskr´etn´ı logaritmus yi — tato xi tedy tvoˇr´ı jazyk L. Interaktivn´ı protokoly jsou obvykle formy v´yzva-opovˇed’ (challenge-response), coˇz znamen´a, ˇze oveˇrovatel pos´ıl´a dokazovateli v´ yzvy a ten na nˇe reaguje odpovˇed’mi. Komunikace u ´ˇcastn´ık˚ u (pos´ıl´an´ı zpr´av) prob´ıh´a pomoc´ı veˇrejn´eho komunikaˇcn´ıho kan´alu. Pˇredpokl´ad´ame, ˇze tento kan´al je nezabezpeˇcen´ y, coˇz znamen´a, ˇze pˇr´ıpadn´ y u ´toˇcn´ık m˚ uˇze zachytit (odposlechnout) pos´ılan´e zpr´avy, ˇc´ıst si je a pˇr´ıpadnˇe je i pozmˇen ˇovat. Tˇemto u ´tok˚ um nelze zabr´anit. Pomoc´ı r˚ uzn´ ych kryptografick´ ych metod lze vˇsak sn´ıˇzit jejich u ´spˇeˇsnost. Dalˇs´ım probl´emem je to, ˇze se Viktor m˚ uˇze z komunikace s Peggy dozvˇedˇet nˇejakou netriv´aln´ı informaci o jej´ım tajemstv´ı — nˇeco nav´ıc, co nepotˇrebuje ke sv´emu pˇresvˇedˇcen´ı, ˇze Peggy skuteˇcnˇe zn´a dokazovatelovo tajemstv´ı. Tento probl´em ˇreˇs´ı protokoly s nulovou znalost´ı (viz. definici (6.4)). Tak´e dokazovatel m˚ uˇze cht´ıt z´ıskat nˇejakou v´ yhodu. Napˇr´ıklad se m˚ uˇze snaˇzit o to, aby s co nejvˇetˇs´ı pravdˇepodobnost´ı bylo v´ ysledkem protokolu (P, V )(x) = 1, i kdyby ve skuteˇcnosti x ∈ / L. Takov´ y dokazovatel se naz´ yv´a podv´adˇej´ıc´ı dokae zovatel (cheating prover) a oznaˇcuje se P ; v protokolech mu budeme ˇr´ıkat Eva. Ovˇeˇrovateli, kter´ y se snaˇz´ı z´ıskat nˇejak´e netrivi´aln´ı informace o dokazovatelovˇe tajemstv´ı, ˇr´ık´ame neˇcestn´y ovˇeˇrovatel (dishonest verifier) a oznaˇcujeme jej Ve . Dokazovatel, resp. ovˇeˇrovatel, kter´ y dodrˇzuje chov´an´ı specifikovan´e v protokolu, 24
se naz´ yv´a ˇcestn´y (honest) dokazovatel, resp. ˇcestn´y ovˇeˇrovatel. Kaˇzd´ y dokazovatel i ovˇeˇrovatel, at’ uˇz ˇcestn´ y, nebo ne, mus´ı dodrˇzovat syntax komunikaˇcn´ıho rozhran´ı, protoˇze jej´ı nedodrˇzov´an´ı by bylo bezprostˇrednˇe odhaleno druhou stranou. Mohou tedy podv´adˇet pouze ve sv´ ych soukrom´ ych v´ ypoˇctech a v tom, jak´a data pos´ılaj´ı. Dalˇs´ı uˇziteˇcnou vlastnost´ı interaktivn´ıch d˚ ukaz˚ u (kter´a ovˇsem nen´ı podm´ınkou pro interaktivnost d˚ ukazu) je nulov´ a znalost (zero-knowledge), coˇz v podstatˇe znamen´a, ˇze cokoliv, co je ovˇeˇrovatel schopen efektivnˇe spoˇc´ıtat po probˇehnut´ı protokolu, byl schopen efektivnˇe spoˇc´ıtat i pˇred n´ım. Pravdˇepodobnostn´ı polynomi´aln´ı Turing˚ uv stroj je pravdˇepodobnostn´ı Turing˚ uv stroj (viz. definici 5.6), kter´ y vˇzdy skonˇc´ı sv˚ uj v´ ypoˇcet po polynomi´aln´ım poˇctu krok˚ u (vzhledem k d´elce vstupu). Definice 6.4. Interaktivn´ı d˚ ukazov´ y syst´em (P, V ) jazyka L se naz´ yv´a d˚ ukaz s dokonale nulovou znalost´ı (perfect zero-knowledge proof ) pro jazyk L, jestliˇze pro kaˇzd´ y interaktivn´ı pravdˇepodobnostn´ı polynomi´aln´ı Turing˚ uv stroj V ∗ existuje (obyˇcejn´ y) pravdˇepodobnostn´ı polynomi´aln´ı Turing˚ uv stroj M ∗ takov´ y, ˇze pro kaˇzd´e x ∈ L plat´ı: • S pravdˇepodobnost´ı nejv´ yˇse 1/2 bude v´ ystupem stroje M ∗ speci´aln´ı symbol ⊥. V tom pˇr´ıpadˇe ˇrekneme, ˇze v´ ypoˇcet stroje M ∗ selhal. • Plat´ı {M ∗ (x) | M ∗ (x) 6=⊥}x∈L ∼ {(P, V ∗ )(x)}x∈L , kde M ∗ (x) je v´ ystup stroje M ∗ na vstupu x, (P, V ∗ )(x) je v´ ystup stroje ∗ V po interakci se strojem P na vstupu x. Symbol ∼ oznaˇcuje stejn´e rozdˇelen´ı n´ahodn´ ych veliˇcin. Stroj M ∗ se naz´ yv´a dokonal´y simul´ator pro interakci stroje V ∗ se strojem P . Pˇredchoz´ı definice ˇr´ık´a, ˇze pro kaˇzd´y stroj V ∗ (nejen pro V ) interaguj´ıc´ı se strojem P existuje dokonal´ y simul´ator M ∗ . Tento simul´ator dok´aˇze simulovat interakci V ∗ s P , i kdyˇz nem´a pˇr´ıstup ke stroji P . Z toho je vidˇet, ˇze stroj V ∗ nez´ısk´a od stroje P ˇza´dnou informaci o dokazovatelovˇe tajemstv´ı (aˇz na to, ˇze x ∈ L), protoˇze stejn´ y v´ ystup m˚ uˇze b´ yt vygenerov´an bez pˇr´ıstupu k P . Uvˇedomme si, ˇze zde jiˇz nen´ı v´ ystupem ovˇeˇrovatele pouze jeho rozhodnut´ı o pˇrijet´ı nebo nepˇrijet´ı d˚ ukazu. V´ ystupem (stroje V ∗ po interakci se strojem P a stroje M ∗ ) m˚ uˇze b´ yt ∗ napˇr´ıklad cel´a komunikace (tedy odeslan´e a pˇrijat´e zpr´avy) stroj˚ uP aV . Zd˚ uraznˇeme, ˇze stroj M ∗ dok´aˇze simulovat interakci stroj˚ u P a V ∗ pouze na vstupech x ∈ L (na vstupech x ∈ / L se m˚ uˇze chovat libovolnˇe). Nejbˇeˇznˇejˇs´ı pouˇzit´ı interaktivn´ıch d˚ ukazov´ ych syst´em˚ u je v identifikaˇcn´ıch sch´ematech k prok´az´an´ı dokazovatelovy identity, neboli autentizaci. Pˇredpokl´ad´ame totiˇz, ˇze pouze dokazovatel zn´a dokazovatelovo tajemstv´ı. Nejjednoduˇsˇs´ı identifikaˇcn´ı sch´ema je n´asleduj´ıc´ı: Peggy prokazuje svou identitu tajn´ ym heslem. Jedin´a zpr´ava v tomto protokolu je toto heslo, kter´e Peggy poˇsle Viktorovi. Viktor m´a uloˇzenou haˇs Peggyina hesla (pokud by mˇel heslo v otevˇren´e podobˇe, mohl by je pouˇz´ıt k vyd´av´an´ı se za Peggy), kterou srovn´a s haˇs´ı doruˇcen´eho hesla a pˇrijme Peggyinu identitu, pr´avˇe kdyˇz se tyto dvˇe haˇse shoduj´ı. Toto sch´ema zˇrejmˇe splˇ nuje poˇzadavky pro interaktivn´ı d˚ ukaz, 25
ale m´a tu nev´ yhodu, ˇze kdokoliv, kdo bˇehem komunikace z´ıskal Peggyino heslo (odposlechem nebo jako opr´avnˇen´ y pˇr´ıjemce), je m˚ uˇze pouˇz´ıt a vyd´avat se za Peggy.
6.1
Identifikace zaloˇ zen´ a na kryptografii s veˇ rejn´ ym kl´ıˇ cem
Oznaˇcme Peggyin tajn´ y kl´ıˇc sk a veˇrejn´ y kl´ıˇc pk. Zde je veˇrejn´ ym vstupem kl´ıˇc pk, jazykem mnoˇzina vˇsech veˇrejn´ ych kl´ıˇc˚ u pˇr´ısluˇsn´ ych k Peggyinu soukrom´emu ” kl´ıˇci“ a dokazovatelov´ ym tajemstv´ım kl´ıˇc sk. Peggy prokazuje svoji identitu n´asledovnˇe: 1. Viktor n´ahodnˇe vybere zpr´avu m, zaˇsifruje ji veˇrejn´ ym kl´ıˇcem pk a ˇsifrov´ y text (v´ yzvu) c = Epk (m) poˇsle Peggy. 2. Peggy deˇsifruje c tajn´ ym kl´ıˇcem sk a v´ ysledek (odpovˇed’) m0 = Dsk (c) poˇsle Viktorovi. 3. Viktor pˇrijme Peggyinu identitu, pr´avˇe kdyˇz m = m0 . Tento protokol je efektivn´ı, protoˇze veˇsker´ y Viktor˚ uv v´ ypoˇcet spoˇc´ıv´a ve vygenerov´an´ı a zaˇsifrov´an´ı zpr´avy m (sloˇzitost tohoto v´ ypoˇctu z´avis´ı na konkr´etn´ı pouˇzit´e asymetrick´e ˇsifˇre, ale jistˇe je polynomi´aln´ı, protoˇze jinak by byla dan´a ? ˇsifra prakticky nepouˇziteln´a) a jednoduch´em porovn´an´ı m = m0 (kter´e m´a konstantn´ı sloˇzitost O(1)). ´ Uplnost tohoto protokolu je splnˇena s ε = 1 (pˇredpokl´ad´ame-li, ˇze nedoˇslo k chybˇe pˇri pˇrenosu zpr´av). Spolehlivost plyne z toho, ˇze podv´adˇej´ıc´ı dokazovatel, kter´ y zn´a pouze veˇrejn´ y kl´ıˇc a ˇsifrov´ y text, by musel uhodnout otevˇren´ y text. To vˇsak nastane s pravdˇepodobnost´ı δ = 1/|M |, kde M je prostor vˇsech otevˇren´ ych zpr´av. Toto sch´ema m´a vˇsak n´asleduj´ıc´ı nedostatek: kdyby podv´adˇej´ıc´ı Viktor m´ısto zaˇsifrovan´e n´ahodn´e zpr´avy poslal zpr´avu urˇcenou Peggy, kterou dˇr´ıve zachytil v jej´ı komunikaci s jin´ ym u ´ˇcastn´ıkem a kterou nemohl deˇsifrovat, protoˇze nezn´a jej´ı soukrom´ y kl´ıˇc, Peggy by mu zpr´avu deˇsifrovala a Viktor by z´ıskal pˇr´ısluˇsn´ y otevˇren´ y text. Pˇrid´an´ım jednoho kroku na zaˇc´atek tohoto protokolu lze zabr´anit pr´avˇe zm´ınˇen´emu u ´toku s opakov´an´ım zpr´avy, a to pomoc´ı tzv. jednor´azov´eho ˇc´ısla (v anglick´e literatuˇre se pouˇz´ıv´a n´azev nonce jako zkratka number used once“). Jednor´azov´e ” ˇc´ıslo NP je ˇc´ıslo, kter´e si Peggy na zaˇc´atku bˇehu protokolu n´ahodnˇe zvol´ı a poˇsle je Viktorovi. Stejnˇe jako v z´akladn´ı verzi protokolu, Viktor vybere n´ahodnou zpr´avu m, za kterou pˇripoj´ı obdrˇzen´e jednor´azov´e ˇc´ıslo NP , toto spojen´ı zaˇsifruje a poˇsle Peggy v´ ysledn´ y ˇsifrov´ y text Epk (m||NP ). Peggy zpr´avu deˇsifruje a zkontroluje, jestli je na konci jej´ı jednor´azov´e ˇc´ıslo. Pokud ano, poˇsle Viktorovi zpr´avu, kterou z´ıskala deˇsifrac´ı (ale uˇz bez NP ); pokud ne, ukonˇc´ı komunikaci s Viktorem. Viktor opˇet Peggyin d˚ ukaz pˇrijme pr´avˇe kdyˇz se zpr´ava, kterou od Peggy obdrˇzel, shoduje se zpr´avou m. Pokud Peggy vyb´ır´a svoje jednor´azov´e ˇc´ıslo z dostateˇcnˇe velk´eho rozmez´ı, pak je pravdˇepodobnost toho, ˇze by je Viktor uhodl, zanedbateln´a. Protoˇze Peggy vol´ı na zaˇc´atku kaˇzd´eho protokolu vˇzdy nov´e n´ahodn´e jednor´azov´e ˇc´ıslo, m˚ uˇze si b´ yt 26
jist´a, ˇze ˇsifrov´ y text, kter´ y j´ı Viktor poslal, byl vytvoˇren aˇz po tom, co mu poslala ˇc´ıslo NP . Dalˇs´ı zp˚ usob obrany proti u ´toku s reprodukc´ı zpr´avy je ten, ˇze Viktor pˇripoj´ı ke sv´e zpr´avˇe m aktu´aln´ı ˇcasov´ y u ´daj a poˇsle Peggy zaˇsifrovan´e toto spojen´ı. Peggy text deˇsifruje a z´ıskanou zpr´avu poˇsle Viktorovi zpˇet pouze v pˇr´ıpadˇe, ˇze rozd´ıl jej´ıho syst´emov´eho ˇcasu a ˇcasu, kter´ y j´ı poslal Viktor, je menˇs´ı neˇz pˇredem zvolen´a konstanta κ. K tomu je vˇsak nutn´a synchronizace jejich syst´emov´ ych ˇcas˚ u. Pˇri hodnocen´ı tohoto sch´ematu z hlediska prokazateln´e bezpeˇcnosti je tˇreba br´at ohled na konkr´etn´ı pouˇzitou asymetrickou ˇsifru. Lze pouˇz´ıt napˇr. ˇsifru RSA uvedenou v kapitole 4. Rabin˚ uv syst´em lze pouˇz´ıt pouze v pˇr´ıpadˇe zajiˇstˇen´ı jednoznaˇcnosti deˇsifrov´an´ı, coˇz lze napˇr´ıklad i pouˇzit´ım zm´ınˇen´eho jednor´azov´eho ˇc´ısla. Pˇri pouˇzit´ı ˇsifry RSA nem˚ uˇze b´ yt o redukcionistick´e bezpeˇcnosti tohoto pro’ tokolu ˇreˇc, nebot se zat´ım nepodaˇrilo prok´azat ekvivalenci mezi RSA probl´emem a probl´emem faktorizace modulu n. Pˇri pouˇzit´ı Rabinova kryptosyst´emu se zajiˇstˇen´ım jednoznaˇcnosti deˇsifrov´an´ı jde o redukcionisticky bezpeˇcn´ y protokol. Aby byl podv´adˇej´ıc´ı dokazovatel schopen spr´avnˇe odpovˇedˇet na Viktorovu v´ yzvu, musel by bud’ uhodnout m (coˇz je pro dostateˇcnˇe velk´ y prostor otevˇren´ ych zpr´av M prakticky nemoˇzn´e), nebo by musel b´ yt schopen m spoˇc´ıtat, neboli prolomit Rabin˚ uv kryptosyst´em. Ten je ale, jak jsme uvedli v odd´ılu 4.4 redukcionisticky bezpeˇcn´ y. Odsud plyne redukcionistick´a bezpeˇcnost identifikaˇcn´ıho protokolu zaloˇzen´eho na Rabinovˇe kryptosyst´emu. Tvrzen´ı 6.5. Identifikaˇcn´ı protokol zaloˇzen´y na kryptografii s veˇrejn´ym kl´ıˇcem je (nez´avisle na konkr´etn´ı pouˇzit´e asymetrick´e ˇsifˇre) d˚ ukaz s dokonale nulovou znalost´ı. D˚ ukaz. V´ yˇse jsme uk´azali, ˇze jde o interaktivn´ı d˚ ukaz. D´ale je tˇreba popsat ∗ ˇcinnost simul´atoru M . Jedin´e, ˇc´ım m˚ uˇze ovˇeˇrovatel ovlivnit podobu pos´ılan´ ych zpr´av, je volba zpr´avy m. Simul´ator M ∗ si na zaˇca´tku zvol´ı zpr´avu m (n´ahodnˇe, pokud simuluje komunikaci dokazovatele P s ˇcestn´ ym ovˇeˇrovatelem V ∗ , a speci´alnˇe, pokud simuluje komunikaci s podv´adˇej´ıc´ım dokazovatelem V ∗ ). Komunikace simulovan´a strojem M ∗ m´a n´asleduj´ıc´ı podobu: 1. Ovˇeˇrovatel poˇsle dokazovateli ˇsifrovou zpr´avu c = Epk (m). 2. Dokazovatel poˇsle ovˇeˇrovateli zpr´avu m (aniˇz by musel deˇsifrovat c). Simul´ator M ∗ nikdy neselˇze a vzhledem k tomu, ˇze podoba zpr´av pos´ılan´ ych stroji P a V ∗ z´avis´ı pouze na volbˇe zpr´avy m, v´ ystup stroje M ∗ jistˇe bude patˇrit do stejn´eho rozdˇelen´ı jako v´ ystup stroje P po interakci se strojem V ∗ .
6.2
Fiat-Shamirovo identifikaˇ cn´ı sch´ ema
Toto sch´ema je zaloˇzeno na obt´ıˇznosti hled´an´ı odmocniny modulo n, kter´e je souˇcinem dvou prvoˇc´ısel. Mˇejme uzavˇrenou spoleˇcnost u ´ˇcastn´ık˚ u, v jejichˇz stˇredu je d˚ uvˇeryhodn´a autorita (trusted party), kter´e budeme ˇr´ıkat Trent. Trent vygeneruje dvˇe r˚ uzn´a pˇribliˇznˇe stejnˇe velk´a prvoˇc´ısla p a q a poloˇz´ı n := pq. Faktory p a q si ponech´a 27
v tajnosti a modulus n poskytne vˇsem u ´ˇcastn´ık˚ um (zveˇrejn´ı). Kaˇzd´emu u ´ˇcastn´ıkovi tak´e pˇridˇel´ı jedineˇcn´e identifikaˇcn´ı ˇc´ıslo Id. Kaˇzd´ y u ´ˇcastn´ık si zvol´ı tajn´e v ∈ Z∗n , spoˇc´ıt´a u := v 2 mod n a poˇsle u Trentovi. Trent ovˇeˇr´ı, jestli plat´ı GCD(u, n) = 1, coˇz je ekvivalentn´ı GCD(v, n) = 11 . Pokud ˇc´ısla u vˇsech u ´ˇcastn´ık˚ u spln´ı tuto podm´ınku, Trent ke kaˇzd´emu Id zveˇrejn´ı pˇr´ısluˇsn´e u a d´ale uˇz se procesu nez´ uˇcastˇ nuje. Pokud se Peggy chce autentizovat v˚ uˇci Viktorovi, poˇsle mu svoje Id a Viktor si k nˇemu najde pˇr´ısluˇsn´e u. Veˇrejn´ ym vstupem jsou v tomto sch´ematu modulus n a ˇc´ıslo u, dokazovatelov´ ym tajemstv´ım je ˇc´ıslo v a jazykem je mnoˇzina vˇsech ˇc´ısel z QRn (viz. definici 3.4), jejichˇz modul´arn´ı odmocninu Peggy zn´a. Protokol prob´ıh´a n´asledovnˇe: 1. Peggy n´ahodnˇe zvol´ı r ∈ Z∗n , poloˇz´ı a := r2 mod n a poˇsle a Viktorovi. 2. Viktor n´ahodnˇe zvol´ı e ∈ {0, 1} a poˇsle e Peggy. 3. Peggy spoˇc´ıt´a b := rv e mod n a poˇsle b Viktorovi. 4. Viktor pˇrijme Peggyinu identitu, pr´avˇe kdyˇz b2 ≡ aue (mod n). V tomto protokolu jsou posl´any tˇri zpr´avy. Prvn´ı zpr´avou je z´avazek (commitment) Peggy, ˇze zn´a druhou odmocninu z a, druhou zpr´avou je Viktorova v´ yzva ’ e a tˇret´ı zpr´ava je Peggyina odpovˇed na Viktorovu v´ yzvu. Vˇsimnˇeme si, ˇze kdyby Peggy dvakr´at zvolila stejn´e r ∈ Z∗n , at’ uˇz v komunikaci s Viktorem nebo s jin´ ym u ´ˇcastn´ıkem, hrozilo by j´ı prozrazen´ı tajemstv´ı v. Pokud by se tak stalo v komunikaci s Viktorem, kter´ y by si zaznamen´aval hodnoty a, kter´e mu Peggy poslala a pˇr´ısluˇsn´e v´ yzvy e, kter´e on poslal j´ı, pak by j´ı jako v´ yzvu poslal to druh´e e” a pot´e jednoduˇse vydˇelen´ım pˇr´ısluˇsn´ ych b z´ıskal ” v. Kdyby poslala stejn´e a jin´emu u ´ˇcastn´ıkovi a t´ımto u ´ˇcastn´ıkem byl u ´toˇcn´ık, kter´ y zachytil dˇr´ıvˇejˇs´ı komunikaci Peggy s Viktorem, pak by podobnˇe jako Viktor zvolil komplement´arn´ı e a spoˇc´ıtal by si v. Pokud by druh´ ym u ´ˇcastn´ıkem nebyl u ´toˇcn´ık, pak by s pravdˇepodobnost´ı 1/2 zvolil komplement´arn´ı e a odposlouch´avaj´ıc´ı u ´toˇcn´ık by opˇet snadno spoˇc´ıtal Peggyino tajemstv´ı. Fiat-Shamirovo sch´ema je zˇrejmˇe efektivn´ı, nebot’ veˇsker´ y Viktor˚ uv v´ ypoˇcet spoˇc´ıv´a ve volbˇe ˇc´ısla e ∈ {0, 1} (se sloˇzitost´ı O(1)) a v´ ypoˇctu b2 (se sloˇzitost´ı ? O(|b|2 )), v´ ypoˇctu aue (se sloˇzitost´ı O(|a| · |u|)) a porovn´an´ı b2 = aue (se sloˇzitost´ı O(1)). ´ Uplnost Fiat-Shamirova sch´ematu je splnˇena, nebot’ pokud b = rv e , pak 2 e b = au , a stejnˇe jako u pˇredchoz´ıho sch´ematu ε = 1. Spolehlivost: Podv´adˇej´ıc´ı dokazovatel Eva m˚ uˇze pˇresvˇedˇcit Viktora o znalosti v, pokud udˇel´a toto: 1. Eva n´ahodnˇe zvol´ı r ∈ Z∗n a e˜ ∈ {0, 1}, poloˇz´ı a := r2 u−˜e mod n a poˇsle a Viktorovi. 2. Viktor zvol´ı e ∈ {0, 1} a poˇsle e Evˇe. 1
Pokud by to neplatilo, pak by se nejvˇetˇs´ı spoleˇcn´ y dˇelitel u a n rovnal nˇekter´emu z faktor˚ u p nebo q, a t´ım by byla ohroˇzena spolehlivost sch´ematu, protoˇze u ´ˇcastn´ık, kter´ y by znal faktory modulu, by si umˇel spoˇc´ıtat tajemstv´ı v kaˇzd´eho jin´eho u ´ˇcastn´ıka. V tom pˇr´ıpadˇe by musel Trent zvolit jin´e n a u ´ˇcastn´ıci jin´a u.
28
3. Eva poˇsle r Viktorovi. Jestliˇze e = e˜, pak Viktor pˇrijme Evin d˚ ukaz. To nastane s pravdˇepodobnost´ı 1/2. Tato pravdˇepodobnst je nejvyˇsˇs´ı moˇzn´a. Pokud by totiˇz pravdˇepodobnost Evina u ´spˇechu byla > 1/2, neboli P[(Pe, V )(v) = 1 | v ∈ / L] > 1/2 (jazykem L je zde mnoˇzina vˇsech ˇc´ısel z QRn , k nimˇz Eva zn´a druhou odmocninu modulo n), znamenalo by to, ˇze Eva zn´a nˇejak´e a, pro kter´e dok´aˇze spr´avnˇe zodpovˇedˇet obˇe v´ yzvy (pro e = 0 i e = 1). V n´asleduj´ıc´ım tvrzen´ı uk´aˇzeme, ˇze Fiat-shamirovo sch´ema je redukcionisticky bezpeˇcn´e (viz. odd´ıl 3.3). Tvrzen´ı 6.6. Kdokoliv, kdo je schopen pro alespoˇ n jeden z´avazek ve Fiat-Shamirovˇe sch´ematu spr´avnˇe odpovˇedˇet na obˇe v´yzvy, je schopen faktorizovat n. D˚ ukaz. Necht’ tedy Eva dok´aˇze pro z´avazek a spr´avnˇe odpovˇedˇet na obˇe v´ yzvy e = 0 i e = 1. Znamen´a to, ˇze um´ı spoˇc´ıtat b1 , b2 takov´a, ˇze b21 ≡ a (mod n) a b22 ≡ au (mod n). Z toho plyne, ˇze um´ı spoˇc´ıtat druhou odmocninu v z kvadratick´eho rezidua u, v = b2 /b1 mod n. Tedy m´a algoritmus A, jehoˇz v´ ystupem pˇri vstupu u ∈ QRn je druh´a odmocnina z u. Algoritmus A pak m˚ uˇze pouˇz´ıt k faktorizaci n (viz. odd´ıl 6.3). Toto sch´ema nen´ı spolehliv´e, nebot’ neexistuje ˇza´dn´e δ ∈ [0, 12 ), pro kter´e by byla splnˇena 3. podm´ınka z definice 6.1. t-n´asobn´ ym opakovan´ım protokolu sn´ıˇz´ıme pravdˇepodobnost u ´spˇeˇsn´eho pod−t vodu ze strany dokazovatele na δ = 2 . Takov´e sch´ema uˇz tedy podm´ınku spolehlivosti splˇ nuje. Pˇri pouˇz´ıv´an´ı tohoto protokolu nehroz´ı ˇcestn´emu dokazovateli nebezpeˇc´ı podvrhnut´ı zpr´avy jako u pˇredchoz´ıho protokolu zaloˇzen´eho na kryptografii s veˇrejn´ ym kl´ıˇcem, protoˇze Viktor vyb´ır´a svoje v´ yzvy z mal´e mnoˇziny {0, 1}. Jedin´a informace, kterou Viktor od Peggy z´ısk´a, je, ˇze Peggy zn´a druhou odmocninu z u. Tvrzen´ı 6.7. Fiat-Shamirovo identifikaˇcn´ı sch´ema je d˚ ukaz s dokonale nulovou znalost´ı (viz. definici 6.4). D˚ ukaz. V´ yˇse jsme uk´azali, ˇze jde o interaktivn´ı d˚ ukaz. Je tˇreba popsat ˇcinnost ∗ simul´atoru M . Jedin´e, ˇc´ım m˚ uˇze ovˇeˇrovatel ovlivnit bˇeh protokolu, je volba bitu e. Simul´ator si na zaˇca´tku zvol´ı ˇc´ısla r a e (ˇc´ıslo r vol´ı n´ahodnˇe a bit e vol´ı v z´avislosti na tom, simuluje-li komunikaci ovˇeˇrovatele P s ˇcestn´ ym nebo ∗ s podv´adˇej´ıc´ım ovˇeˇrovatelem V — n´ahodnˇe pro ˇcestn´eho ovˇeˇrovatele a v pˇr´ıpadˇe podv´adˇej´ıc´ıho dokazovatele zvol´ı stejn´ y bit jako stroj V ∗ ). V simulaci stroje M ∗ m´a komunikace dokazovatele s oveˇrovatelem n´asleduj´ıc´ı pr˚ ubˇeh: 1. Dokazovatel poˇsle ovˇeˇrovateli ˇc´ıslo a := r2 u−e mod n. 2. Ovˇeˇrovatel poˇsle dokazovateli ˇc´ıslo e zvolen´e na zaˇca´tku. 3. Dokazovatel poˇsle ovˇeˇrovateli ˇc´ıslo r. Simul´ator M ∗ nikdy neselˇze a vzhledem k tomu, ˇze podoba zpr´av pos´ılan´ ych ∗ ∗ stroji P a V z´avis´ı pouze na volbˇe ˇc´ısel r a e, v´ ystup stroje M jistˇe bude patˇrit do stejn´eho rozdˇelen´ı jako v´ ystup stroje P po interakci se strojem V ∗ .
29
6.3
Faktorizace n = pq pomoc´ı algoritmu na hled´ an´ı druh´ e odmocniny z kvadratick´ eho rezidua
Jak jsem jiˇz uvedli v ˇca´sti 4.4, jednoduch´ ym d˚ usledkem ˇc´ınsk´e vˇety o zbytc´ıch (vˇeta 3.12) je toto tvrzen´ı: Je-li n rovno souˇcinu dvou lich´ ych prvoˇc´ısel p a q, pak existuj´ı ˇctyˇri druh´e odmocniny z kvadratick´eho rezidua x modulo n. Jsou to ±y, ±αy (mod n), kde α ≡ 1 (mod p) a α ≡ −1 (mod q). Zd˚ uvodnˇen´ı najdeme opˇet v ˇca´sti 4.4. Eva m˚ uˇze faktorizat n n´asleduj´ıc´ım zp˚ usobem: Zvol´ı n´ahodn´e y ∈ Z∗n , poloˇz´ı x := y 2 mod n a hodnotu x pouˇzije jako vstup algoritmu A. Jeho v´ ystupem bude 0 druh´a odmocnina y z kvadratick´eho rezidua x. S pravdˇepodobnost´ı 1/2 bude y 0 = ±αy. V tom pˇr´ıpadˇe Eva napˇr. pomoc´ı rozˇs´ıˇren´eho Euklidova algoritmu 3.21 spoˇc´ıt´a α = ±y/y 0 a pouˇzit´ım Euklidova algoritmu 3.20 faktorizuje n, nebot’ plat´ı GCD(n, α − 1) = p. V pˇr´ıpadˇe, ˇze y 0 = ±y, opakuje stejn´ y postup s jin´ ym y. Pravdˇepodobnost, ˇze po k opakov´an´ıch pr´avˇe popsan´eho algoritmu se Evˇe nepodaˇr´ı faktorizovat n, je rovna 1/2k , coˇz se pro rostouc´ı k bl´ıˇz´ı k nule.
6.4
Rozˇ s´ıˇ ren´ e Fiat-Shamirovo identifikaˇ cn´ı sch´ ema
Chceme-li zmenˇsit poˇcet opakov´an´ı Fiat-Shamirova protokolu (napˇr. je-li komunikace ˇcasovˇe nebo finanˇcnˇe n´aroˇcn´a) se zachov´an´ım parametru δ, m˚ uˇzeme pouˇz´ıt tzv. rozˇs´ıˇren´e Fiat-Shamirovo identifikaˇcn´ı sch´ema. V nˇem si kaˇzd´ y u ´ˇcastn´ık ∗ u t´eto grupy. Dalˇs´ım m´ısto jednoho v ∈ Zn zvol´ı vektor v = (v1 , . . . , vk ) prvk˚ rozd´ılem oproti z´akladn´ı verzi Fiat-Shamirova identifikaˇcn´ıho sch´ematu je to, ˇze je z´akladn´ı sch´ema t-kr´at zopakov´ano. Obdobnˇe jako v pˇredchoz´ım sch´ematu, ym modulus n = pq a vektor u = (v12 , . . . , vk2 ) jsou zveˇrejnˇeny a v je dokazovatelov´ tajemstv´ım. Na zaˇca´tku protokolu d˚ uvˇeryhodn´a autorita Trent vygeneruje dvˇe r˚ uzn´a pˇribliˇznˇe stejnˇe velk´a prvoˇc´ısla p a q, kter´a utaj´ı, a zveˇrejn´ı modulus n = pq. D´ale kaˇzd´emu u ´ˇcastn´ıkovi pˇridˇel´ı jedineˇcn´e identifikaˇcn´ı ˇc´ıslo Id. Kaˇzd´ yzu ´ˇcastn´ık˚ u si 2 zvol´ı k n´ahodn´ ych ˇc´ısel v1 , v2 , . . . , vk ∈ Zn a poloˇz´ı u = (u1 , . . . , uk ) := (v1 , . . . , vk2 ). Vektor u pot´e odeˇsle Trentovi, kter´ y ovˇeˇr´ı, jestli GCD(ui , n) = 1 pro vˇsechna i = 1, . . . , k (vysvˇetlen´ı nalezneme u pˇredchoz´ıho protokolu). Stejnˇe jako u z´akladn´ıho Fiat-Shamirova sch´ematu, pokud vektory u vˇsech u ´ˇcastn´ık˚ u spln´ı tuto podm´ınku, Trent ke kaˇzd´emu Id zveˇrejn´ı pˇr´ısluˇsn´e u a d´ale uˇz se procesu nez´ uˇcastˇ nuje. Autentizace Peggy v˚ uˇci Viktorovi prob´ıh´a n´asledovnˇe: Zopakuj n´asleduj´ıc´ı t-kr´at: 1. Peggy n´ahodnˇe zvol´ı r ∈ Z∗n , poloˇz´ı a := r2 a poˇsle a Viktorovi. 2. Viktor n´ahodnˇe zvol´ı e := (e1 , . . . , ek ) ∈ {0, 1}k a poˇsle e Peggy. Q 3. Peggy spoˇc´ıt´a b := r ki=1 viei mod n a poˇsle b Viktorovi.
30
Q 4. Pokud b2 6≡ a ki=1 uei i (mod n), pak Viktor odm´ıtne Peggyinu identitu a ukonˇc´ı bˇeh protokolu. Toto sch´ ym nejn´aroˇcnˇejˇs´ım v´ ypoˇctem je Qema je efektivn´ı, protoˇze Viktorov´ v´ ypoˇcet a ki=1 uei i , kter´ y m´a sloˇzitost O(|a| · |u1 | · . . . · |uk |). ´ Uplnost: Pokud prav´ y dokazovatel Peggy i Viktor dodrˇzuj´ı protokol, pak Viktor pˇrijme Peggyin d˚ ukaz. Spolehlivost: Podv´adˇej´ıc´ı dokazovatel Eva pˇresvˇedˇc´ı Viktora o tom, ˇze je Peggy, pokud spr´avnˇe uh´adne Viktorovu v´ yzvu e pro kaˇzdou iteraci, t.j. pokud se kt j´ı podaˇr´ı vybrat spr´avn´ y prvek z {0, 1} , coˇz nastane s pravdˇepodobnost´ı 2−kt . Kdyby pravdˇepodobnost jej´ıho u ´spˇechu byla vˇetˇs´ı neˇz 2−kt (pravdˇepodobnost bereme pˇres vˇsechny v´ yzvy e), znamenalo by to, ˇze zn´a vektor A = (a1 , . . . , at ) j z´avazk˚ u a (jeden pro kaˇzdou iteraci j, 1 ≤ j ≤ t), pro kter´ y je schopna spr´avnˇe odpovˇedˇet na dvˇe r˚ uzn´e Viktorovy v´ yzvy E = (e1 , . . . , et ) a F = (f 1 , . . . , f t ), E 6= F . Protoˇze jsou vektory E a F r˚ uzn´e, existuje iterace j takov´a, ˇze ej 6= f j . Eva um´ı spr´avnˇe odpovˇedˇet na obˇe v´ yzvy e := ej a f := f j pro z´avazek a := aj . To znamen´a, ˇze dok´aˇze spoˇc´ıtat b1 a b2 takov´e, ˇze Q Q b21 ≡ a ki=1 uei i (mod n) a b22 ≡ a ki=1 ufi i (mod n). Stejnˇe jako u pˇredeˇsl´eho sch´ematu z toho plyne, ˇze Eva dok´aQ ˇze spoˇc´ıtat druhou odmocninu v = b2 /b1 n´ahodn´eho kvadratick´eho rezidua u = ki=1 ufi i −ei . A to je spor s naˇs´ım pˇredpokladem, ˇze poˇc´ıt´an´ı druh´ ych odmocnin je nezvl´adnuteln´e bez znalosti faktor˚ u p a q modulu n.
6.5
Schnorr-Okamotovo identifikaˇ cn´ı sch´ ema
Na z´avˇer uvedeme identifikaˇcn´ı sch´ema (kter´e je vylepˇsen´ım“ Schnorrova sch´e” matu zaloˇzen´eho na obt´ıˇznosti hled´an´ı diskr´etn´ıho logaritmu; viz. napˇr. [7], str. 414), k jehoˇz prolomen´ı by u ´toˇcn´ıkovi nestaˇcila ani pˇr´ıpadn´a znalost ˇreˇsen´ı probl´emu diskr´etn´ıho logaritmu. D˚ uvˇeryhodn´a autorita Trent pˇridˇel´ı kaˇzd´emu u ´ˇcastn´ıkovi P jedineˇcn´e identifikaˇcn´ı ˇc´ıslo IdP . D´ale vygeneruje dvˇe prvoˇc´ısla p a q takov´a, aby probl´em nalezen´ı diskr´etn´ıho logaritmu byl tˇeˇzk´ y v grupˇe Z∗p (tedy aby velikost p byla pˇribliˇznˇe 1024 bit˚ u) a aby q | (p − 1) a q mˇelo zhruba 160 bit˚ u. Trent d´ale vygeneruje (p−1)/q ∗ ∗ , kde βi jsou veˇrejn´e parametry α1 , α2 ∈ Zp ˇra´du q v grupˇe Zp (napˇr. αi = βi gener´atory Z∗p ), a koneˇcnˇe zvol´ı tzv. bezpeˇcnostn´ı parametr t takov´ y, aby platilo 2t < q, napˇr. t ≥ 40. Kaˇzd´ yu ´ˇcastn´ık P si zvol´ı jako sv˚ uj tajn´ y kl´ıˇc dvojici a1 , a2 ∈ Zq a spoˇc´ıt´a si sv˚ uj veˇrejn´ y kl´ıˇc v := α1−a1 α2−a2 mod p. P se identifikuje Trentovi nekryp” tografick´ ym“ zp˚ usobem a poˇsle mu ˇc´ıslo v. Trent k sobˇe sv´aˇze“ v a IdP sv´ ym ” podpisem s := SigKTS (IdP , v), kde KTS je Trent˚ uv soukrom´ y podepisovac´ı kl´ıˇc ´ castn´ık pˇr´ısluˇsn´ y k veˇrejn´emu kl´ıˇci pro ovˇeˇrov´an´ı podpis˚ u, kter´ y oznaˇc´ıme KTV . Uˇ P obdrˇz´ı od Trenta certifik´at certP = (IdP , v, s). Protokol pro autentizaci Peggy v˚ uˇci Viktorovi: 1. Peggy si n´ahodnˇe zvol´ı (z´avazek) k1 , k2 , 1 < k1 , k2 < q − 1, poloˇz´ı γ := α1k1 α2k2 mod p a poˇsle Viktorovi certP , γ. 31
?
2. Viktor ovˇeˇr´ı Trent˚ uv podpis na certifik´atu certP , VerKTV (IdP , v, s) = 1 a pot´e poˇsle Peggy n´ahodn´e r (v´ yzvu), 1 < r < 2t . 3. Peggy zkontroluje, jestli 1 < r < 2t , spoˇc´ıt´a y1 := k1 + a1 r mod q, y2 := k2 + a2 r mod q a poˇsle Viktorovi (odpovˇed’) y1 , y2 . 4. Viktor pˇrijme Peggyinu identitu, pr´avˇe kdyˇz γ = α1y1 α2y2 v r mod p. Veˇsker´ y Viktor˚ uv v´ ypoˇcet zˇrejmˇe probˇehne v polynomi´aln´ım ˇcase. Sch´ema je tedy efektivn´ı. Sch´ema je i u ´pln´e (s ε = 1), nebot’ α1y1 α2y2 v r mod p = α1k1 +a1 r
mod q
α2k2 +a2 r
mod q
(α1−a1 α2−a2 )r mod p =
= α1k1 α2k2 mod p = γ, protoˇze α1 , α2 jsou ˇra´du q v Z∗p . Nyn´ı uk´aˇzeme, ˇze protokol je i spolehliv´ y. Jedin´a moˇznost, jak by se mohl podv´adˇej´ıc´ı dokazovatel, kter´ y nezn´a tajemstv´ı (a1 , a2 ), pokusit pˇredvˇeˇcit Viktora o jeho znalosti, je ta, ˇze by se pokusil uhodnout r, a pak by ovˇeˇrovateli poslal γ = α1y1 α2y2 v r mod p s libovoln´ ymi y1 , y2 . To vˇsak nastane s pravdˇepodobnost´ı 1/2t , kter´a se pro rostouc´ı bezpeˇcnostn´ı parametr t bl´ıˇz´ı k nule. Protokol je tedy spolehliv´ y s δ = 1/2t . Nyn´ı dok´aˇzeme, ˇze toto sch´ema m´a vlastnost zero-knowledge. Tvrzen´ı 6.8. Schnorr-Okamotovo sch´ema je d˚ ukaz s dokonale nulovou znalost´ı. D˚ ukaz. Skuteˇcnost, ˇze se jedn´a o interaktivn´ı d˚ ukaz, jsem uk´azali v´ yˇse. Nyn´ı pop´ıˇseme ˇcinnost simul´atoru M ∗ . Ovˇeˇrovatel ovlivˇ nuje bˇeh protokolu pouze volbou ˇc´ısla r. Simul´ator M ∗ si na zaˇca´tku sv´eho v´ ypoˇctu zvol´ı ˇc´ısla r ∈ [2, 2t − 1] a y1 , y2 ∈ [0, q − 1] (ˇc´ısla y1 , y2 n´ahodnˇe, ˇc´ıslo r v z´avislosti na tom, jestli simuluje komunikaci dokazovatele P a ˇcestn´eho nebo podv´adˇej´ıc´ıho ovˇeˇrovatele V ∗ — pro ˇcestn´eho ovˇeˇrovatele n´ahodnˇe, pro podv´adˇej´ıc´ıho dokazovatele stejnˇe jako simulovan´ y dokazovatel V ∗ ). Komunikace simulovan´a strojem M ∗ m´a n´asleduj´ıc´ı podobu: 1. Dokazovatel poˇsle ovˇeˇrovateli ˇc´ıslo γ := α1y1 α2y2 v r mod p. 2. Ovˇeˇrovatel poˇsle dokazovateli ˇc´ıslo r. 3. Dokazovatel poˇsle ovˇeˇrovateli ˇc´ısla y1 , y2 . Simul´ator M ∗ nikdy neselˇze a protoˇze podoba zpr´av pos´ılan´ ych stroji P a V ∗ z´avis´ı pouze na volbˇe ˇc´ısel r, y1 a y2 , v´ ystup stroje M ∗ jistˇe bude patˇrit do stejn´eho rozdˇelen´ı jako v´ ystup stroje P po interakci se strojem V ∗ .
32
Na z´avˇer uk´aˇzeme zm´ınˇenou zaj´ımavou vlastnost tohoto protokolu, totiˇz ˇze u ´toˇcn´ıkovi, kter´ y by se snaˇzil z veˇrejn´eho kl´ıˇce v z´ıskat soukrom´ y kl´ıˇc (a1 , a2 ), by nepomohla ani znalost ˇreˇsen´ı probl´emu diskr´etn´ıho logaritmu. Jistˇe existuje ˇc´ıslo l ∈ {1, 2, . . . , q} takov´e, ˇze plat´ı α2 = α1l mod p. Pak m˚ uˇzeme vztah pro v vyj´adˇrit jako v = α1−a1 (α1l )−a2 mod p = α1−a1 −la2 mod p. Pˇredpokl´ad´ame, ˇze u ´toˇcn´ık dok´aˇze ˇreˇsit probl´em diskr´etn´ıho logaritmu, a tedy ´ cn´ık tak dok´aˇze naj´ıt ˇc´ıslo x ∈ {0, 1, . . . , p − 2}, pro kter´e plat´ı x = − logα1 v. Utoˇ z´ısk´a modul´arn´ı rovnici x = a1 + la2 mod q s nezn´am´ ymi a1 , a2 , jej´ımˇz ˇreˇsen´ım je nekoneˇcnˇe mnoho dvojic (a1 , a2 ). Dalˇs´ı rovnice, kter´e m´a u ´toˇcn´ık k dispozici jsou y1 = k1 + a1 r mod q, y2 = k2 + a2 r mod q s nezn´am´ ymi a1 , a2 , k1 , k2 . Lze si snadno rozmyslet, ˇze vˇsechny dalˇs´ı rovnice, kter´e je u ´toˇcn´ık schopen z´ıskat, jsou line´arn´ı kombinac´ı uveden´ ych tˇr´ı rovnic. Pˇri dalˇs´ım probˇehnut´ı protokolu se pˇri spr´avn´e volbˇe ˇc´ısel k1 , k2 poˇcet rovnic zv´ yˇs´ı o dvˇe, stejnˇe jako poˇcet nezn´am´ ych. Poˇcet rovnic, kter´e bude m´ıt u ´toˇcn´ık k dispozici bude tedy st´ale o jedna menˇs´ı neˇz poˇcet nezn´am´ ych v tˇechto rovnic´ıch. Jejich soustava bude tedy m´ıt st´ale nekoneˇcnˇe mnoho ˇreˇsen´ı.
33
Literatura [1] Delfs H., Knebl H., Introduction to Cryptography — Principles and Applications, Springer, Berlin, 2002, ISBN 3-540-42278-1 [2] Goldreich O., Foundations of Cryptography, Cambridge University Press, Cambridge, 2001, ISBN 0-521-79172-3 [3] Hojs´ık M., Kryptografick´e protokoly pro elektronick´e volby, bakal´aˇrsk´a pr´ace, Karlova Univerzita, Praha, 2004 ˇ texty k pˇredn´aˇsce Sloˇzitost pro kryptografii na MFF UK, [4] Holub S., http://www.karlin.mff.cuni.cz/∼holub/texty.htm [5] Koblitz N., Menezes A. J., Another Look at Provable Security“, ” http://eprint.iacr.org/2004/152.pdf, 2004 [6] Mao W., Modern Cryptography — Theory and Practise, Prentice Hall PTR, Prentice-Hall, Inc., New Jersey, 2004, ISBN 0-13-066943-1 [7] Menezes A., van Oorschot P., Vanstone S., Handbook of Applied Cryptography, CRC Press, Boca Raton, 1997, ISBN 0-8493-8523-7
34