Locked History Actions

Zero-Knowledge Proof

Nulinio žinojimo įrodymas (Zero-knowledge proof)

Kriptografijoje nulinio žinojimo įrodymas arba nulinio žinojimo protokolas yra metodas, kuriuo vienas dalyvis gali įrodyti kitam, kad tam tikras pareiškimas (dažniausiai matematinis) yra teisingas neleidžiant to sužinoti niekam kitam. Nulinio žinojimo įrodymas turi reikalauti interaktyvios įvesties iš patvirtinančio dalyvio.

Abstraktus pavyzdys

http://s8.postimg.org/r5pbmlnmt/onuteirjonukas.png

1. Onutė pasirenka bet kurį kelią A arba B kol Jonukas laukia lauke.

2. Jonukas pasirenka išėjimo kelią.

3. Onutė patikimai atsiranda Jonuko pasirinktame išėjime.

Onutė šiuo atveju yra pareiškimo tiekėja, o Jonukas – jo tikrintojas. Leidinyje „Kaip paaiškinti nulinio žinojimo protokolą savo vaikui“ pagrindinės šio protokolo idėjos pateikiamos labai paprastai. Onutė surado slaptą žodį naudojama atidaryti stebuklingas urvo duris. Urvas yra apskritimo formos su įėjimu vienoje pusėje ir stebuklingomis durimis, kurios blokuoja kitą įėjima. Jonukas nori sužinoti ar Onutė žino magišką žodį, bet Onutė nenori jo atskleisti visam pasauliui. Jie pavadina takus kairėje ir dešinėje A ir B. Iš pradžių, Jonukas laukia Onutės lauke, kol Onutė pasirenka kuriuo taku eiti. Tada, Jonukas įėjęs į urvą sušunka atsitiktinai pasirinktą tako pavadinimą, kuriuo nori, kad grįžtų Onutė. Jei ji žino magišką žodį – atidaro duris, arba grįžta tuo pačiu keliu priklausomai nuo Jonuko parinkto tako. Jei ji žodžio nežino, negalėdama atidaryti durų grįžta tuo pačiu taku kaip ir įėjo, taigi ji turi 50% šansą atspėti kurį taką pasirinks Jonukas. Jei jie tai pakartotų 20 kartų iš eilės, Onutės šansai atspėti visus variantus be slapto žodžio yra apie vienas iš milijono. Taip Jonukas gali išsiaiškinti ar Onutė žino slaptą žodį. Jeigu net Jonukas turi slaptą kamerą, kuri įrašinėja visus veiksmus, vienintelis dalykas kuris bus užfiksuotas tai Jonukas sakantis „A“ ir Onutė atsirandanti take A arba Jonukas sakantis „B“ ir Onutė atsirandanti take B. Šis įrašas būtų bevertis bet kam, išskyrus šio eksperimento dalyviams. Bet koks pašalinis stebėtojas nebūtų įtikintas nes Jonukas ir Onutė galėjo surežisuoti šį eksperimentą nuo pradžios iki galo. Vienintelis faktorius galintis pažeisti šio eksperimento konfidencialumą yra atskleidimas kaip Jonukas pasirenka atsitiktinį taką.

Apibrėžimas

Nulinio žinojimo įrodymas turi tenkinti šias tris savybes:

1. Užbaigimas: Jei pareiškimas yra teisingas, tikrintojas sekantis instrukcijas bus tuo įtikintas sekančio instrukcijas siuntėjo

2. Garsumas: Jei pareiškimas yra neteisingas, joks sukčiaujantis siuntėjas negali įtikinti gavėjo, kad pareiškimas teisingas, išskyrus labai mažą šansą.

3. Nulinis žinojimas: Jei pareiškimas yra teisingas, joks sukčiaujantis tikrintojas nesužino nieko išskyrus to, kad pareiškimas neteisingas.

Panaudojimas

Tyrimai nulinio žinojimo įrodyme buvo motyvuoti autentiškumo įrodymo sistemų kur vienas dalyvis nori įrodyti savo tapatybę antrajam naudojantis slapta informacija (kaip slaptažodis), bet nenori, kad jis ką nors apie šią slaptą informaciją sužinotų. Deja slaptažodis yra per mažai arba nepakankamai atsitiktinis, kad būtų naudojamas didžiojoje nulinio žinojimo sistemų dalyje. Nulinio žinojimo slaptažodžio įrodymas yra speciali šio tipo apsauga, kuri atkreipia dėmesį į slaptažodžių ribotą dydį. Vienas iš labiausiai stebinančių nulinio žinojimo įrodymo panaudojimo sričių yra jo naudojimas kriptografijos protokoluose norint priversti vartotojus dorai elgtis išlaikant jų privatumą. Grubiai tariant, idėja yra priversti vartotoją įrodyti, kad jis elgiasi pagal protokolą. Ši nulinio žinojimo įrodymo sistema buvo pirmą kartą panaudota novatoriškame Oded Goldreich, Silvio Micali ir Avi Wigderson leidinyje apie saugius daugelio šalių skaičiavimus (secure multi-party computation).