Zero-knowledge cryptographic protocol. Ang kuweba ng walang kaalaman. Mga pag-atake sa mga protocol ng zero-knowledge

Post-quantum zero-knowledge proofs– zero-knowledge proof protocol na quantum-resistant.

Ang mga quantum-resistant system/protocol ay itinuturing na mga system/protocol na hindi maaaring ikompromiso gamit ang computing power quantum computer. Ang terminong quantum stability ay ipinakilala sa post-quantum cryptography.

Mga nilalaman

Pahayag ng problema sa seguridad ng impormasyon

Ang mga Quantum computer ay may mahusay kapangyarihan sa pag-compute. Naka-on sa ngayon Ang direksyon na ito ay mabilis na umuunlad. Sa lahat ng ito, ang pagtaas ng pananaliksik sa lugar na ito (na tiyak na isang positibong tampok) ay binabawasan ang pagiging maaasahan ng mga modernong cryptosystem na ginagamit, halimbawa ang mga batay sa factorization ng mga integer o discrete logarithm na mga problema.

ZKBoo

Umaasa ang ZKBoo sa Confidential Computing (MPC) protocol. Ang ideya ng ZKBoo ay palitan ang MPC ng isang (2,3)-decomposition ng chain.

Ang patunay ay itinayo ayon sa sumusunod na pamamaraan:

1) Kinakalkula ng P ang f gamit ang agnas at kumukuha ng 3 estado;

2) Ipinapadala ng P ang mga obligasyon at output ng bawat estado pagkatapos gamitin ang FS heuristic;

3) Dumating ang sagot kung saan 2 sa 3 estado ang binuksan para sa bawat paglulunsad ng N;

4) Sinusuri ng V ang data ng output para sa pagkakumpleto ng pagbawi; sinusuri na ang bawat isa sa 2 bukas na estado ay kinakalkula nang tama at kinakalkula kung ang tawag ay nakalkula nang tama.

Ang bilang ng mga paglulunsad ay pinili upang ang error ay hindi gaanong mahalaga, upang ang posibilidad ng isang umaatake ay makapasok sa lahat ng mga paglulunsad ay minimal.

ZKB++

Ang ZKB++ ay binagong bersyon ZKBoo.

1) Decomposition: sa View1 at View2, dapat kasama sa P ang k(i) dahil ang x(i) ay maaaring deterministikong kalkulahin ng V;

2) Hindi kasama ang data ng pag-input: hindi kailangang isama ang mga bahagi ng input na nabuo sa pamamagitan ng pseudorandomly gamit ang k(i) sa representasyon kapag e = 1. Kailangan lang ipadala ang data kung e = 2 o e = 3, dahil para sa ikatlong estado, ang input data ay hindi maaaring makuha mula sa paunang isa, dahil ito ay nabuong pseudo-random gamit ang k(i);

3) Nang hindi nagpapadala ng mga obligasyon;

4) Walang karagdagang random na pagkakasunud-sunod para sa mga obligasyon;

5) Nang hindi isinasaalang-alang ang output: ang output ay maaaring kalkulahin mula sa iba pang ebidensya;

6) Hindi kasama ang state-representation: Ang V ay maaaring muling kalkulahin ang estado na isinasaalang-alang lamang ang random na k(e) at k(e+1).

Ang kumpletong ZKB++ circuit ay ipinapakita sa Figure 1.

Ang mga pagpapahusay na ginawa upang i-optimize ang ZKBoo ay binabawasan ang laki ng mga patunay nang 2 salik para sa ZKB++.

Zero-knowledge proof) ay isang interactive na protocol na nagpapahintulot sa isa sa mga partido (ang verifier) ​​​​na i-verify ang pagiging maaasahan ng isang pahayag (karaniwan ay isang matematikal), nang hindi tumatanggap ng anumang iba pang impormasyon mula sa kabilang partido (ang prover).

Ang isang zero-knowledge proof ay dapat may tatlong katangian:

  1. pagkakumpleto: kung ang pahayag ay tunay na totoo, kung gayon ang prover ay kumbinsihin ang verifier nito.
  2. Katumpakan: Kung mali ang pahayag, kung gayon kahit na ang isang hindi tapat na prover ay hindi makumbinsi ang verifier maliban sa hindi gaanong posibilidad.
  3. Zero kaalaman: kung totoo ang pahayag, kung gayon ang sinumang hindi tapat na taga-verify ay walang malalaman maliban sa katotohanang totoo ang pahayag.

Pangkalahatang istruktura ng mga patunay ng zero-knowledge

Ang bawat round o akreditasyon ng ebidensya ay binubuo ng tatlong yugto. Maaari silang ilarawan sa eskematiko tulad ng sumusunod:

Noong una A pumipili mula sa isang paunang natukoy na hanay ng isang elemento na nagiging lihim nito (pribadong susi). Batay sa elementong ito, ang isang pampublikong susi ay kinakalkula at pagkatapos ay nai-publish. Ang pag-alam ng isang lihim ay tumutukoy sa maraming tanong kung saan A ay palaging makakapagbigay ng mga tamang sagot. Pagkatapos A pumipili ng random na elemento mula sa set, ayon sa ilang mga panuntunan (depende sa partikular na algorithm) na kinakalkula patunay at pagkatapos ay ipapadala ito B. Pagkatapos noon B pipili ng isa mula sa buong hanay ng mga tanong at nagtatanong A sagutin mo ( tawag). Depende sa tanong, A nagpapadala B sagot. Natanggap na impormasyon B sapat na upang suriin kung A nagmamay-ari ng sikreto. Ang mga pag-ikot ay maaaring ulitin nang maraming beses hangga't kinakailangan hanggang sa posibilidad na iyon A Ang mga "paghula" na mga sagot ay hindi magiging sapat na mababa.

Ang pamamaraan na ito ay tinatawag ding "cut-and-choose".

Halimbawa

Tawagan natin ang panig na nagpapatunay na Petya, at ang panig na nagpapatunay na Dima (sa mga pares ng literatura sa wikang Ingles na Peggy (mula sa prover) at Victor (mula sa taga-verify). Ipagpalagay na alam ni Dima ang isang Hamiltonian cycle sa isang malaking graph G. Alam ni Petya ang Konde G, ngunit hindi niya alam ang Hamiltonian cycle dito. Gusto ni Dima na patunayan kay Petya na alam niya ang Hamiltonian cycle, nang hindi ibinibigay ang alinman sa cycle mismo o anumang impormasyon tungkol dito (marahil ay gusto ni Petya na bilhin ang Hamiltonian cycle na ito mula kay Dima, ngunit bago iyon siguraduhing mayroon nga si Dima).

Upang gawin ito, magkasamang nagsasagawa sina Petya at Dima ng ilang mga round ng protocol:

Sa bawat round, pipili si Petya ng bagong random bit, na hindi alam ni Dima, kaya para sagutin ni Dima ang parehong mga tanong, kinakailangan na H ay talagang isomorphic G at dapat malaman ni Dima ang Hamiltonian cycle sa H(at samakatuwid din sa G). Samakatuwid, pagkatapos ng sapat na bilang ng mga pag-ikot, makakasigurado si Petya na talagang mayroong Hamiltonian cycle si Dima G. Sa kabilang banda, hindi nagbubunyag si Dima ng anumang impormasyon tungkol sa Hamiltonian cycle in G. Higit pa rito, magiging mahirap para kay Petya na patunayan sa iba na alam niya o ni Dima ang Hamiltonian cycle sa G.

Ipagpalagay natin na walang Hamiltonian cycle si Dima G at gusto niyang linlangin si Petya. Pagkatapos ay kailangan ni Dima ng isang non-isomorphic G graph G", kung saan alam pa rin niya ang Hamiltonian cycle. Sa bawat pag-ikot ay maaari rin siyang makapasa kay Petya H"- isomorphic G", o H- isomorphic G. Kung hihilingin ni Petya na patunayan ang isomorphism at naipasa H, kung gayon ang panlilinlang ay hindi mahahayag. Gayundin, kung hihilingin niyang magpakita ng Hamiltonian cycle at binigyan siya H". Sa kasong ito, ang posibilidad na linlangin pa rin ni Dima si Petya pagkatapos n ang mga round ay katumbas ng 1/2 n, na maaaring mas mababa sa anumang paunang natukoy na halaga kung bibigyan ng sapat na bilang ng mga round.

Ipagpalagay na hindi nakilala ni Petya ang Hamiltonian cycle, ngunit nais niyang patunayan kay Vasya na alam ito ni Dima. Kung si Petya, halimbawa, ay kinukunan ang lahat ng mga pag-ikot ng protocol, malamang na hindi maniwala sa kanya si Vasya. Maaaring ipagpalagay ni Vasya na sina Petya at Dima ay kasabwat at sa bawat pag-ikot ay ipinaalam ni Petya kay Dima nang maaga ang kanyang pagpili ng isang random na bit upang si Dima ay maipasa sa kanya. H para sa mga pagsusuri ng isomorphism at H" para sa pagsuri sa Hamiltonian cycle. Kaya, nang walang pakikilahok ni Dima, mapapatunayan ng isa na alam niya ang siklo ng Hamiltonian sa pamamagitan lamang ng pagpapatunay na ang tunay na mga random na piraso ay pinili sa lahat ng mga round ng protocol.

Pang-aabuso

Ilang paraan upang abusuhin ang zero-knowledge proof ay iminungkahi:

Tingnan din

  • Gillu-Kiskatra Protocol

Panitikan

  • A. Menezes, P. van Oorschot, S. Vanstone. Handbook ng Applied Cryptography. - CRC Press, 1996. - 816 p. - ISBN 0-8493-8523-7
  • Schneier B. Inilapat na cryptography. Mga protocol, algorithm, pinagmulang teksto sa wikang C = Applied Cryptography. Mga Protocol, Algorithms at Source Code sa C. - M.: Triumph, 2002. - 816 p. - 3000 kopya.

Wikimedia Foundation.

  • 2010.
  • Fonvizina, Natalya Dmitrievna

Chuzhumovo

    Tingnan kung ano ang "Zero Knowledge Proof" sa ibang mga diksyunaryo: zero-knowledge proof ng kumpidensyal na impormasyon

    - Hindi maarok na patunay ng kaalaman; patunay ng pagkakaroon ng anumang impormasyon, nang hindi ibinubunyag ang impormasyong ito. Mga paksa: proteksyon ng impormasyon EN zero knowledge proof… umuulit na zero-knowledge na patunay ng sensitibong impormasyon

    - — Mga paksa sa seguridad ng impormasyon EN zero knowledge iterative proofZKIP … Gabay sa Teknikal na Tagasalin umuulit na zero-knowledge na patunay ng sensitibong impormasyon

    non-iterative zero-knowledge proof ng sensitibong impormasyon- NDNR - [] Mga paksang proteksyon ng impormasyon Mga kasingkahulugan NDNR EN hindi umuulit zero na kaalaman proofNIZK ...

    Cryptography- Ang German Lorenz crypto machine ay ginamit noong Ikalawang Digmaang Pandaigdig upang i-encrypt ang pinakalihim na mga mensaheng Cryptography (mula sa ibang Griyego ... Wikipedia

    Listahan ng mga algorithm- Ang pahinang ito ay isang listahan ng impormasyon. Pangunahing artikulo: Algorithm Nasa ibaba ang isang listahan ng mga algorithm na nakapangkat ayon sa kategorya. Ang mas detalyadong impormasyon ay ibinibigay sa listahan ng mga istruktura ng data at ... Wikipedia Cryptographer- German Lorenz crypto machine, ginamit noong Ikalawang Digmaang Pandaigdig upang i-encrypt ang pinaka-lihim na mga mensahe Cryptography (mula sa Griyegong κρυπτός nakatago at γράφω isulat) ang agham ng

    mga pamamaraan sa matematika pagtiyak ng pagiging kompidensyal... ... Wikipedia Mga Programmable Algorithm- Isang listahan ng serbisyo ng mga artikulo na nilikha upang i-coordinate ang gawain sa pagbuo ng paksa.

    Ang babalang ito hindi naka-install... Wikipedia

    SRP- Ang Secure Remote Password Protocol (SRPP) ay isang password authentication protocol na lumalaban sa eavesdropping at MITM attacks at hindi nangangailangan ng third trusted party. Ang SRP ay naglalaman ng ilang elemento mula sa iba pang key exchange at identification protocol... Wikipedia

    Protokol ng Fiat- Ang Fiat Shamir protocol ay isa sa pinakasikat na zero-knowledge identification protocol (Zero knowledge protocol). Ang protocol ay iminungkahi ni Amos Fiat at Adi Shamir Let A... ... Wikipedia

Ipagpalagay na alam ni Alice ang patunay ng isang tiyak na teorama at gustong kumbinsihin si Bob na ang teorama ay totoo. Siyempre, maipapasa lang ni Alice ang patunay kay Bob para sa pag-verify. Ngunit pagkatapos ay mapapatunayan ni Bob ang teorama na ito sa mga ikatlong partido mismo, nang walang tulong ni Alice. Makumbinsi ba ni Alice si Bob nang hindi siya nakakatanggap ng anumang impormasyon na makakatulong sa kanya na muling buuin ang patunay ng theorem? Ang dalawang ito na tila magkaparehong eksklusibong mga kinakailangan ay natutugunan ng zero-knowledge proof protocol. Ang huling konsepto ay ipinakilala ni Goldwasser, Micali at Rakoff noong 1985.

Ang sumusunod na modelo ng protocol ay isinasaalang-alang. Sina Alice at Bob ay may probabilistikong Turing machine sa kanilang pagtatapon, ayon sa pagkakabanggit. Ang computational resources na magagamit ni Alice ay walang limitasyon, habang ang machine V ay tumatakbo sa polynomial time. Ang mga makina ay may karaniwang feed ng komunikasyon para sa pagpapalitan ng mga mensahe. Pagkatapos magrekord ng mensahe sa tape ng komunikasyon, papasok ang makina sa isang standby na estado at lalabas ito sa sandaling maitala ang isang mensahe ng tugon sa tape. Ang mga makina ay mayroon ding karaniwang input tape kung saan nakasulat ang input word x. Ang pahayag na pinatutunayan ni Alice ay kung saan mayroong ilang nakapirming (kilala sa parehong Alice at Bob) na wika. Upang maiwasan ang walang kabuluhan, ang wika ay dapat na mahirap (halimbawa, NP-kumpleto), kung hindi, maaaring independiyenteng i-verify iyon ni Bob, ang patunay na protocol ay na si Bob, gamit ang randomness, ay pumipili ng ilang mga tanong, itatanong ang mga ito kay Alice, at sinusuri ang tama. ng mga sagot. Ang protocol ay nagtatapos kapag ang machine V ay huminto, at ito ay naglalabas ng 1 kung ang patunay ay tinatanggap at 0 kung hindi.

Magkaroon ng dalawang interactive, ibig sabihin, nakikipag-ugnayan sa pamamagitan ng isang karaniwang tape ng komunikasyon, probabilistic Turing machine. Sa pamamagitan ng nagsasaad ng isang random na variable - ang output na salita ng machine A, kapag ang A at B ay gumagana sa input na salita x. Ang haba ng salitang x ay tinutukoy ng.

Depinisyon 4. Ang interactive na patunay para sa isang wika ay isang pares ng interactive na Turing machine upang ang sumusunod na dalawang kundisyon ay natutugunan.

1. (Kakumpletoan). Para sa lahat

2. (Katumpakan). Para sa anumang Turing machine para sa anumang polynomial at para sa lahat ng sapat na malaking haba

Nangangahulugan ang pagiging kumpleto na kung ang input na salita ay kabilang sa wika at parehong sinusunod nina Alice at Bob ang protocol, ang patunay ay palaging tatanggapin. Ang pangangailangan ng kawastuhan ay nagpoprotekta kay Bob mula sa hindi tapat na si Alice, na sumusubok na linlangin siya sa pamamagitan ng "pagpapatunay" ng isang maling pahayag. Sa kasong ito, maaaring lumihis si Alice sa anumang paraan mula sa mga aksyon na inireseta ng protocol, ibig sabihin, gumamit ng anumang iba pang makina sa halip na isang Turing machine.

Depinisyon 5. Ang isang interactive na patunay na protocol para sa isang wika ay tinatawag na ganap na zero-knowledge proof kung, bilang karagdagan sa mga kundisyon 1 at 2, ang sumusunod na kundisyon ay natutugunan din.

3. (Zero Knowledge Property). Para sa anumang polynomial probabilistic Turing machine V, mayroong probabilistic Turing machine na tumatakbo sa polynomial time sa karaniwan, at para sa lahat

Ang makina ay tinatawag na simulating machine para sa Ipinapalagay na ang mathematical na inaasahan ng oras ng pagpapatakbo nito ay limitado ng isang polynomial sa haba x. Nangangahulugan ito na, sa prinsipyo, depende sa kung anong mga halaga ang kinukuha ng mga random na variable sa trabaho nito, maaari itong gumana nang mahabang panahon. Ngunit ang posibilidad na ang oras ng operasyon nito ay lalampas sa isang tiyak na polynomial bound ay maliit. Para sa bawat makina V, ang sarili nitong makinang pangmomolde ay itinayo; maaaring gamitin ng huli ang V bilang subroutine. Ang Through ay nagsasaad ng random variable - ang output na salita ng makina kapag natanggap nito ang salitang x sa input.

Pinoprotektahan ng zero-knowledge property si Alice mula sa isang hindi tapat na Bob na, sa pamamagitan ng arbitraryong paglihis sa mga aksyon na inireseta ng protocol (gamit ang V sa halip na V), ay sumusubok na kumita mula sa pagpapatupad nito karagdagang impormasyon. Ang kundisyon 3 ay nangangahulugan na makakakuha lamang si Bob ng ganoong impormasyon na maaari niyang kalkulahin nang nakapag-iisa sa pamamagitan ng pagpapatupad ng protocol) sa polynomial time.

Kumuha tayo ng isang halimbawa ng isang ganap na zero-knowledge proof protocol para sa isang wika mula sa gawa ni Goldreich, Micali at Wigderson. Ang input word ay isang pares ng mga graph at Narito ang isang set ng vertices na maaaring makilala sa set ng mga natural na numero ng isang set ng mga gilid na ang mga Graph ay tinatawag na isomorphic kung mayroong isang permutation sa set na kung at kung lamang (na tinutukoy ng Graph Isomorphism Recognition Problem ay isang kilalang problema sa matematika, kung saan walang polynomial algorithm ang kasalukuyang nalalaman. Sa kabilang banda, ito ay hindi alam kung ang problemang ito ay NP-kumpleto, bagaman may mga magandang dahilan upang ipagpalagay na ito ay hindi.

IG protocol

Hayaang gawin ang isomorphism sa pagitan ng Ang sumusunod na apat na hakbang sa isang loop nang isang beses, sa bawat oras na may mga independiyenteng random na variable.

1. Pumili si P ng random na permutation sa set, kinakalkula at ipinapadala ang graph na ito

2. Ang V ay pumipili ng isang random na bit at ipinapadala ito

3. Kung pagkatapos ay nagpapadala ng V permutation, kung hindi - permutation o

4. Kung ang permutasyon na nakuha ng V ay hindi isang isomorphism sa pagitan ng pagkatapos ay hihinto ang V at tinatanggihan ang patunay. Kung hindi, magpapatuloy ang pagpapatupad ng protocol.

Kung ang mga pagsusuri sa hakbang 4 ay nagbigay positibong resulta sa lahat ng cycle, pagkatapos ay tinatanggap ni V ang patunay.

Tandaan na kung sa IG protocol ang makina ay tumatanggap ng isomorphism bilang karagdagang input word, hindi ito nangangailangan ng walang limitasyong computing resources upang maisagawa ang protocol. Bukod dito, sa kasong ito ay maaaring mayroong isang polynomial probabilistic Turing machine.

Teorama 2 (). Ang IG protocol ay isang ganap na zero-knowledge proof para sa GRAPH ISOMORPHISM na wika.

Kitang-kita ang pagkakumpleto ng IG protocol.

Upang patunayan ang kawastuhan, sapat na tandaan na ang bit a, na pinipili ng V sa hakbang 2, ay nagpapahiwatig kung alin sa mga graph - o kinakailangan upang ipakita ang isomorphism sa graph Kung hindi isomorphic, maaari itong maging isomorphic, in pinakamahusay na senaryo ng kaso, isa sa kanila. Samakatuwid, ang pagsuri sa hakbang 4 ay magbibigay ng positibong resulta na may posibilidad na 1/2 sa isang cycle at may posibilidad sa lahat ng mga cycle.

Ang pagpapatunay ng zero-knowledge property ay mas mahirap. Samakatuwid, ang pangunahing ideya lamang ang aming ginagawa. Una sa lahat, tandaan namin na ang pangunahing gawain ng makina V ay upang makuha ang maximum posibleng impormasyon tungkol sa isomorphism sa pagitan Ito ay natural na ipagpalagay na, hindi katulad ng V, ito ay gagawa bilang isang output na salita hindi kahit kaunti, ngunit ang lahat ng impormasyon na nakuha bilang resulta ng pagpapatupad ng protocol, kabilang ang mga nilalaman ng kanyang random na tape, mga graph at permutations na nakuha sa hakbang 1 at 3, ayon sa pagkakabanggit, IG protocol. Ang makina ng pagmomodelo ay dapat na makabuo ng pareho random na mga string, mga graph at permutations, nang hindi nalalaman ang isomorphism Samakatuwid, sinusubukan nitong hulaan ang bit a na magiging kahilingan ng machine V sa hakbang 2. Upang gawin ito, pumili ng isang random na bit, isang random na permutation, at kalkulahin ang Susunod. naaalala nito ang estado ng makina V (kabilang ang mga nilalaman ng random na tape) at tinawag ito bilang subroutine, ang graph na nagpapakain nito bilang input Ang sagot ng machine V ay medyo a. Kung pagkatapos ay matagumpay na nakumpleto ang simulation sa cycle na ito dahil maipapakita nito ang kinakailangang isomorphism. Kung at pagkatapos ay ibinalik ang dating na-save na estado ng machine V at susubukan muli.

Kung sa kahulugan ng zero-knowledge property ay pinapalitan natin ang pagkakapantay-pantay mga random na variable sa pamamagitan ng pag-aatas na ang kanilang probability distribution ay "halos magkapareho," pagkatapos ay makakakuha tayo ng isa pang uri ng ebidensya—patunay na may statistical zero na kaalaman.

Ang isa pang uri ay computational zero-knowledge proofs. Sa kasong ito, ang simulator ay kinakailangan upang makabuo ng isang probability distribution na hindi nakikilala mula sa anumang polynomial probability algorithm (indistinguishability ay tinukoy dito sa parehong paraan tulad ng sa kahulugan ng isang pseudorandom generator).

Lalo nating bigyang-diin na sa lahat ng tatlong kahulugan ng zero na kaalaman, ang mga kundisyon ay ipinapataw sa mga aksyon ng makina ng pagmomodelo lamang sa mga salitang iyon na kabilang sa wika.

Bilang karagdagan sa interes sa mga patunay ng zero-knowledge bilang isang bagay na hindi mahalaga sa matematika, pinag-aaralan din ang mga ito na may kaugnayan sa mga praktikal na aplikasyon. Ang pinaka natural at mahalagang uri naturang mga application - mga protocol ng pagpapatunay (tingnan ang Kabanata 3). Sa tulong ng naturang protocol, mapapatunayan ni Alice ang kanyang pagiging tunay kay Bob.

Ipagpalagay, halimbawa, na si Alice ay isang matalinong bank card kung saan ipinatupad ang isang algorithm at si Bob ay isang computer ng bangko na nagpapatupad ng programa mga operasyon sa pagbabangko, dapat i-verify ng bangko ang authenticity ng card at tukuyin ang may-ari nito, o, sa cryptographic terms, dapat na authenticated ang card. Sa prinsipyo, ang nasa itaas na IG protocol ay maaaring gamitin para sa layuning ito. Sa kasong ito, sa memorya computer sa pagbabangko ang isang pares ng mga graph na nauugnay kay Alice ay naka-imbak, at ang parehong pares ng mga graph at isomorphism ay naka-imbak sa smart card Ipinapalagay na, maliban kay Alice, walang nakakaalam ng isomorphism na ito (maliban, marahil, Bob) at samakatuwid, gamit. ang IG protocol, pinatutunayan ng card ang pagiging tunay nito. Bukod dito, ang pag-aari ng pagkakumpleto ay nangangahulugan na ang card ay tiyak na magpapatunay sa pagiging tunay nito. Pinoprotektahan ng correctness property ang mga interes ng bangko mula sa isang attacker na, hindi isang kliyente ng bangko, ay sumusubok na mag-authenticate gamit ang isang pekeng card. Pinoprotektahan ng zero-knowledge property ang kliyente mula sa isang attacker na, nang marinig ang isa o higit pang mga execution ng authentication protocol ng card, ay sumusubok na mag-authenticate bilang Alice. Siyempre, sa sa kasong ito walang kabuluhan na patunayan na ang isang pares ng mga graph ay kabilang sa wikang GRAP ISOMORPHISM, dahil ito ay malinaw na pinili mula sa wikang ito. Sa halip, pinatunayan ni Alice na alam niya ang isomorphism ng ganitong uri ay tinatawag na mga patunay ng kaalaman.

Para sa praktikal na aplikasyon isang napakahalagang pag-aari ng IG protocol, pati na rin ang iba pang mga protocol ng patunay ng kaalaman, ay ang algorithm na natanggap bilang karagdagang input ang isomorphism ay tumatakbo sa polynomial time. Sa halip na ang IG protocol, maaari mong karaniwang gamitin ang anumang iba pang zero-knowledge proof kung saan ang algorithm ay may ganitong katangian. Ngunit para sa tunay na mga aplikasyon Ang IG protocol, tulad ng karamihan sa mga katulad na protocol, ay hindi epektibo: malaking bilang mga loop, mga mensahe na masyadong mahaba, atbp. Ang paghahanap para sa mas mahusay na mapatunayang secure na mga protocol ay isa sa mga pangunahing direksyon ng pananaliksik sa lugar na ito.

Ang zero-knowledge proof ay isang cryptographic protocol na nagbibigay-daan sa isa sa mga partido (ang verifier, party B) na i-verify na alam ng kabilang partido (ang prover, party A) ang ilang pahayag, habang ang verifier ay walang natatanggap na iba pang impormasyon tungkol sa mismong pahayag. Sa madaling salita, pinatutunayan ni A ang kaalaman sa lihim nang hindi inilalantad ang lihim mismo.

Ang paggamit ng zero-knowledge proofs upang patunayan ang pagkakakilanlan ay unang iminungkahi ni Uriel Fieg, Amos Fiat, at Adi Shamir. Sa kasong ito, ang gumagamit ay nagpapatunay ng kanyang kaalaman pribadong susi, na sa kasong ito ay kumikilos bilang isang lihim nang hindi inilalantad. Sa ganitong paraan ay napatunayan niya ang kanyang pagkatao.

Ang patunay ng zero-knowledge ay may tatlong pangunahing katangian:
1. Pagkakumpleto. Kung alam ng prover ang pahayag, magagawa niyang kumbinsihin ang verifier nito.
2. Katumpakan. Kung hindi alam ng prover ang pahayag, maaari niyang linlangin ang verifier na may maliit na posibilidad.
3. Zero na kaalaman. Ang taga-verify, kahit na siya ay kumilos nang hindi tapat, ay walang matutunan maliban sa katotohanan na ang pahayag ay alam ng prover.

Ang patunay ay nasa anyo ng isang interactive na protocol. Ibig sabihin, sunod-sunod na tanong ang Party B sa prover, na kung alam niya ang sikreto, sasagutin niya ng tama ang lahat ng tanong. Kung ang lihim ay hindi alam ng partido A, ngunit gusto niyang kumbinsihin ang tagasuri kung hindi man, mayroon siyang ilang posibilidad (maaaring 50%, tulad ng sa mga halimbawa sa paksang ito) na masagot nang tama ang tanong. Gayunpaman, pagkatapos ng isang tiyak na bilang ng mga tanong (10 - 20), ang verifier ay kumbinsido na may medyo mataas na posibilidad na ang prover ay hindi alam ang lihim. Gayunpaman, wala sa mga sagot ang nagbibigay ng anumang impormasyon tungkol sa sikreto mismo.

Yungib ng Zero Knowledge

Ang patunay ng zero-knowledge ay mahusay na ipinaliwanag ni Jean-Jacques Quiskater at Louis Guilloux gamit ang kuwento ng kuweba ni Ali Baba (tingnan ang figure). Upang makapasok sa kweba, kailangan mong buksan ang pinto sa pagitan ng C at D. Nagbubukas lamang ang pinto kapag may nagsabi ng magic words. Ipaalam kay Peggy ang mga magic na salita at nais na patunayan ito kay Victor nang hindi inilalantad ang mga salita mismo.

Narito kung paano gumagana ang isang zero-knowledge proof sa kasong ito:
1. Si Victor ay nasa punto A.
2. Naglalakad si Peggy sa kweba hanggang sa pinto sa kahabaan ng daanan C o sa daanan D. Hindi nakita ni Victor kung saang daan pumunta si Peggy. Matapos mawala si Peggy sa kweba, lumipat si Victor sa point B.
3. Sinigawan ni Victor si Peggy na lumabas sa kweba mula sa kaliwang daanan o sa kanang daanan.
4. Si Peggy, gamit ang mga mahiwagang salita kung kinakailangan upang i-unlock ang pinto, ay lumabas sa kweba mula sa daanan na hiniling sa kanya ni Victor na lumabas.
5. Ulitin nina Peggy at Victor ang hakbang 1-4 nang ilang beses.

Kung sakaling hindi alam ni Peggy ang sikreto, hindi niya magagawang linlangin si Victor kung ang mga yugto ng patunay (accreditation) ay paulit-ulit nang maraming beses sa isang hilera. Dahil makakalabas lang siya sa passage na pinasok niya, sa bawat round ng protocol ay may 50% na pagkakataong mahulaan kung saang panig siya hihilingin ni Victor na lumabas. Alinsunod dito, 50% din ang posibilidad na dayain niya si Victor. Gayunpaman, ang posibilidad na linlangin siya sa dalawang round ay 25% na, at sa n round ay mayroon lamang siyang pagkakataon sa 2^n. May kumpiyansa si Victor na kung ang lahat ng n (n=10-20) round ng patunay ni Peggy ay tama, alam talaga niya ang mga lihim na salita na nagbubukas ng pinto sa pagitan ng mga punto C at D.

Kung naitala ni Victor ang lahat ng nangyayari sa isang video camera, ang pag-record ng video na ito ay hindi ebidensya para sa isang third party. Maagang magkasundo sina Peggy at Victor kung saan yayain siya ni Victor na umalis. Pagkatapos ay aalis siya sa lugar na ipinahiwatig ni Victor sa bawat oras, nang hindi nalalaman ang mga mahiwagang salita. Sa kabilang banda, maaaring pekein ni Victor ang pag-record ng video, iiwan lamang matagumpay na mga pagtatangka Peggy, pinutol ang lahat ng iba pa.

Dapat pansinin na ang pagkakatulad ng kuweba ay hindi ganap na tama. Dahil, upang patunayan ang kaalaman sa mga salita, maaaring pumasok si Peggy mula sa isang tabi, habang nakikita ni Victor kung saan siya pumunta, at lumabas mula sa kabilang panig. Gayunpaman, perpektong inilalarawan ng protocol na ito ang isang zero-knowledge proof mula sa isang mathematical point of view.

Protokol ng Fiat-Shamir

Isa sa mga pinakakilalang protocol para sa personal na pagkakakilanlan gamit ang zero-knowledge proof ay ang protocol na iminungkahi nina Amos Fiat at Adi Shamir, ang lakas nito ay nakabatay sa kahirapan ng pagkuha ng square root modulo ng isang sapat na malaking composite number n na ang factorization ay hindi kilala.

Dati, bago ang mismong patunay, ang pinagkakatiwalaang sentro T ay pumipili at naglalathala ng module nang sapat malaking bilang n = p*q, na mahirap i-factor. Sa kasong ito p, q - mga pangunahing numero at inilihim. Ang bawat user A ay pumipili ng isang lihim na s mula sa pagitan (1, n−1) coprime hanggang n. Pagkatapos ay kinakalkula ang pampublikong key v = s^2 (mod n).

Ang resultang v ay nakarehistro ng trust center bilang pampublikong susi user A, at ang value na s ay sikreto ng A. Ang kaalaman sa sikretong s na ito ang dapat patunayan ng A sa partido B nang hindi ibinubunyag ito sa mga t round. Ang bawat akreditasyon ay binubuo ng mga sumusunod na yugto:
1. Pumili si A ng random r mula sa pagitan (1, n−1) at ipinapadala ang x = r^2 (mod n) sa party B.
2. Random na pinipili ng B ang bit e (0 o 1) at ipinapadala ito sa A.
3. Kinakalkula ng A ang y = r*s^e (mod n) at ibinabalik ito sa B.
4. Sinusuri ng Gilid B ang pagkakapantay-pantay y^2 ≡ x*v^e (mod n). Kung ito ay totoo, pagkatapos ay ang paglipat sa susunod na round ng protocol ay nangyayari, kung hindi man ang patunay ay hindi tinatanggap.

Ang pagpili ng e mula sa set ay nagpapahiwatig na kung talagang alam ng partido A ang sikreto, kung gayon palagi siyang makakasagot ng tama, anuman ang napiling e. Sabihin nating gusto ni A na linlangin si B, pumili ng random na r at ipinadala ang x = r^2 / v, kung gayon kung e = 0, matagumpay na ibinalik ni A ang B y = r, sa kaso ng e = 1, hindi magiging A. makasagot ng tama, t .To. hindi alam s, ngunit extract parisukat na ugat from v modulo n medyo mahirap.

Ang posibilidad na hindi alam ng user na si A ang mga lihim na s, ngunit makumbinsi ang inspektor B kung hindi man ay tatantyahin ng probabilidad na katumbas ng p = =2^(–t), kung saan ang t ay ang bilang ng mga akreditasyon. Upang makamit ang mataas na pagiging maaasahan, pinili ito upang maging sapat na malaki (t = 20 − 40). Kaya, ang B ay sertipikadong malaman ang A kung at kung ang lahat ng t round ay matagumpay.

Para maisakatuparan nang tama ang protocol na ito, hindi na dapat muling gamitin ng Party A ang halaga ng x. Kung ginawa ito ng A at ang B, sa isa pang loop, ay nagpadala ng A ng isa pang random na bit r sa hakbang 2, kung gayon ang B ay magkakaroon ng parehong mga tugon ng A na maaaring kalkulahin ang halaga ng s at alam lihim na susi Alice.

Konklusyon

Para sa mga pagpapatupad tulad ng mga smart card, ang Fiat-Shamir protocol ay hindi masyadong angkop, dahil nakikipagpalitan sa labas ng mundo maglaan ng oras, at ang pag-iimbak ng data para sa bawat akreditasyon ay maaaring mabilis na maubusan limitadong pagkakataon mga card. Samakatuwid, bumuo sina Gillu at Kiskatr ng zero-knowledge identification algorithm na mas angkop para sa katulad na mga aplikasyon. Ang mga palitan sa pagitan nina Peggy at Victor, pati na rin ang magkatulad na mga akreditasyon sa bawat palitan, ay pinananatili sa isang ganap na minimum: para sa bawat katibayan mayroon lamang isang palitan, kung saan mayroon lamang isang akreditasyon. Mayroon ding Schnorr scheme, na isang alternatibo sa Gillu-Kiskatra at Fiat-Shamir scheme. Kung gusto mo ang paksa, isusulat ko ang tungkol sa kanila sa susunod kong paksa.

Hayaang magbigay ng interactive proof system (P,V,S).
Sa depinisyon ng isang interactive na sistema ng patunay, dati ay hindi ipinapalagay na ang V ay maaaring maging isang kalaban (lamang ang posibilidad ng pagkakaroon ng isang hindi tapat na kalahok na si P ay ipinapalagay ngunit si V ay maaaring maging isang kalaban na gustong malaman ilang bagong impormasyon mula kay P. kapaki-pakinabang na impormasyon tungkol sa pahayag ni S. Sa kasong ito, maaaring ayaw ni P na mangyari ito bilang resulta ng gawain
Interactive na protocol ng sistema ng ebidensya. Kaya
28 Zapechnikov S. V. Cryptographic protocol at ang kanilang mga nauna
Sa paraang ito napunta tayo sa ideya ng isang zero-knowledge proof protocol. Ang zero knowledge knowledge ay nagpapahiwatig na, bilang resulta ng interactive proof system protocol, hindi tataas ni V ang kanyang kaalaman tungkol sa pahayag na S, o, sa madaling salita, ay hindi makakapag-extract ng anumang impormasyon tungkol sa kung bakit totoo ang S.
Tulad ng dati, ang protocol ay paunang bumubuo ng isang tiyak na pahayag S, halimbawa, na ang ilang bagay w ay may ari-arian L: kami L. Sa panahon ng protocol, ang P at V ay nagpapalitan ng mga mensahe. Ang bawat isa sa kanila ay maaaring bumuo ng mga random na numero at gamitin ang mga ito sa kanilang mga kalkulasyon. Sa pagtatapos ng protocol, dapat gawin ni V ang kanyang panghuling desisyon kung totoo o mali ang S.
Ang layunin ni P ay palaging kumbinsihin si V na ang S ay totoo, hindi alintana kung ito ay totoo o hindi, ibig sabihin, si P ay maaaring isang aktibong kalaban, at ang trabaho ni V ay upang subukan ang mga argumento ni P totoo o mali. Tulad ng dati, ang V ay may polynomial na limitadong computational na mga kakayahan, ibig sabihin, ang oras ng pagpapatakbo nito ay limitado ng ilang polynomial sa
haba ng pahayag na patunayan: Isaalang-alang natin ngayon ang mga halimbawa ng mga patunay na protocol na walang kaalaman sa kaalaman.
1. "Ang problema tungkol sa kuweba ni Ali Baba." Mayroong isang kuweba, ang plano kung saan ay ipinapakita sa Fig. 1.2. Ang kuweba ay may pintuan na may lihim sa pagitan ng mga punto C at D. Ang sinumang nakakaalam ng mga magic na salita ay maaaring magbukas ng pintong ito at pumunta mula C hanggang D o vice versa. Para sa lahat, ang parehong mga daanan ng kuweba ay humahantong sa isang patay na dulo.
Ipaalam kay R ang sikreto ng kweba. Gusto niyang patunayan kay V ang kanyang kaalaman sa sikretong ito nang hindi ibinubunyag ang mga magic words. Narito ang protocol ng kanilang komunikasyon:
Ang V ay nasa punto A;
Pumasok si P sa kweba at nakarating sa alinmang punto C o punto D\
Matapos mawala si P sa kweba, dumating si V sa punto B, hindi alam kung saang direksyon pumunta si P.
Tinawag ni V si R at pinalabas siya sa kaliwa o kanang pasilyo ng kweba ayon sa kagustuhan ni V;
Ginagawa ito ni R, binubuksan ang pinto kung kinakailangan, kung, siyempre, alam niya ang mga mahiwagang salita;
Ulitin ng P at V ang mga hakbang (1) - (5) n beses.

Pagkatapos ng n rounds ng protocol, ang posibilidad ay mababawasan sa 1/2".
2. Patunay ng graph isomorphism. Gustong patunayan ni P ang V isomorphism ng mga graph Go at Gb Let G, = (p(G0):G0 = G, kung saan ang φ ay ang isomorphism transformation; ang m ay ang cardinality ng set N ng vertices ng mga graph. Ipinapakita sa talahanayan 1.4 ang protocol para sa pagpapatunay sa pahayag na ito.
Ipaliwanag natin ang istruktura ng protocol na ito. Sa hakbang (1), ang kalahok na P ay lumilikha ng isang random na graph H, isomorphic sa G\. Sa hakbang (2), ang kalahok V, na pumipili ng isang random na bit a = (0D), sa gayon ay humihiling na patunayan iyon
Н ~G0 o iyon Н « Gj. Sa hakbang (3), ipinapadala ng kalahok na P sa kalahok V ang pagbabagong \|/, na kanyang binuo sa paraang para sa a = 1, bilang resulta ng paglalapat ng pagbabagong ito sa graph na Gu, ang graph na F1 = TtG, = H ay nakuha at para sa a = 0, bilang resulta ng paglalapat ng pagbabagong ito sa graph Ga, nakuha namin ang graph F0 =
Zo Zapechnikov S.V. Cryptographic protocol at ang kanilang aplikasyon
= 7i((p(G0))~7iG] = #, Sa hakbang (4), kalahok V, sa pamamagitan ng pagsasagawa ng pagsusuri sa pagkakapantay-pantay ng graph, sa gayon ay natutukoy kung nasiyahan ang kundisyon
N = Fa. Ang mga hakbang (1) - (4) ay inuulit ng t beses. Kung sa lahat ng m round ng protocol na ito ay positibo ang resulta ng pagsubok, tinatanggap ni V ang patunay.
Talahanayan 1.4. Protocol para sa pagpapatunay ng isomorphism ng mga graph P V 1% - random na permutation ng vertices, kinakalkula ang H = nGl 2 f n, kung (a -1),
V = 1 / h 1 l o f if (a = 0) -> m times 4 Kinakalkula ang graph \j/Ga at inihahambing: H =\jfGa 5 Tinatanggap ang patunay kung at kung para lamang sa Vm
Ang protocol na ito ay tunay na isang zero-knowledge protocol, dahil sa kaso ng isomorphic G0 ~ Gx, ang kalahok na V ay hindi nakakatanggap ng anumang impormasyon maliban sa mga isomorphism ng mga graph na G0 at G\ na may ilang mga random na renumberings, na maaaring natanggap niya at nang nakapag-iisa, pagpili ng random bit a at random na muling paglalagay ng numero sa graph na Ga.
3. Katibayan ng kaalaman sa discrete logarithm x ng numero X. Bago simulan ang protocol, tinukoy ang mga bukas na dami: p,
q - prime number tulad ng q\(p -1), element g e Z*, number X. Do-]. Mga pangunahing cryptographic na protocol 31
alam ng taong tumatawag sa P ang lihim na halaga x\xTalahanayan 1.5. Protocol para sa pagpapatunay ng kaalaman sa discrete logarithm P V I r&RZ
M = g (mod p) 2 A. Katibayan ng kaalaman sa representasyon ng bilang na y sa batayan (zero-knowledge proof of knowledge of y representation). Bago magsimula ang protocol, tinukoy ang mga bukas na dami na alam ng lahat ng kalahok: prime number p, q, elements y, gvg2,..., gk Є Gq. Alam ng prover P ang mga lihim na dami ara 2,...,ake ZQ: y =
= 8i" " 8r1""> ang kaalaman kung saan dapat niyang patunayan kay V, nang hindi inilalantad ang mga dami mismo. Ang protocol ay ipinakita sa talahanayan. 1.6.
Talahanayan 1.6. Protokol ng Katibayan ng Kaalaman ng Representasyon
mga numero sa batayan P V 1 rl.r2,...,rk. ЄІ( Zq, 2 5. Katibayan ng kaalaman sa representasyon ng isang set ng mga numero sa kaukulang mga base (zero-knowledge proof ng kaalaman ng pagkakapantay-pantay ng representasyon ng lahat ng y(j) sa kani-kanilang base). Bago magsimula ang protocol, ang mga bukas na dami ay tinukoy, kilala
W I >\
alam ng lahat ng kalahok: prime number p, q, elements y, 82^є para sa ilang (/). Alam ng prover P ang mga lihim na halaga 0C[,a2,...,a,. є Zq, tulad na para sa V/ у^ =
= (і^) " 1 > kaalaman kung saan dapat niyang patunayan ang V,
nang hindi ibinubunyag ang mga halagang ito mismo. Sa mesa 1.7 ay nagpapakita ng isang protocol na lumulutas sa problemang ito.
Talahanayan 1.7. Protocol para sa pagpapatunay ng kaalaman sa isang hanay ng mga numero
sa kaukulang mga base P V 1 rvr21...lrkeR para sa U/ 2 (AiP«iT-(lt-
6. Katibayan ng kaalaman ng multiplicative na ugnayan sa pagitan ng nakatuon na mga halaga. Ang elementong X = gx ng isang paikot na subgroup ng simpleng pagkakasunud-sunod, kung saan ang discrete logarithm na problema ay itinuturing na computationally complex, ay tinatawag na isang committed na halaga, na kumakatawan sa lihim na halaga x. Hayaan
d ay isang hindi kilalang elemento na h = gd. Bago magsimula ang protocol, tinukoy ang mga bukas na dami: mga prime number p, q, elemento A, B, C Є Gq. Alam ng prover ng P ang mga lihim na dami
a, a, b, b, c, c, tulad na c = ab, A = gah"\ B = gbhb, C = gche. Dapat niyang patunayan ang kaalaman sa mga ito V, nang hindi inilalantad ang mga halaga mismo. Sa Talahanayan 1.8 , na may - isang protocol ng naturang ebidensya ay pinananatili.
Talahanayan 1.8. Protocol para sa pagpapatunay ng kaalaman sa multiplicative na relasyon ng mga nakadeposito na dami P V 1 М=і">/Ї, j Mt = gx-h*\ ¦ M2= Bx ¦ h"1 2 =CK-M2
pagsisiwalat ng kaalaman
Talahanayan 1.9. Structure of proof protocols with zero P S: x є L- statement to be proved, h - dp, pampublikong parameter at dami, s - lihim na data ng prover kung bakit totoo ang S, r- random na numero V 1 rp - random, 2 rv - random na numero,
c = LM I-generalize natin ang mga halimbawang isinasaalang-alang at bumalangkas ng ilang mga kahulugan. SA pangkalahatang pananaw Ang interactive proof protocol na may zero-knowledge knowledge (Talahanayan 1.9) ay binubuo ng apat na hakbang:
Dulo ng mesa. 1.9 P S: xe L ay ang pahayag na pinatutunayan, h ay iba pang magagamit na publiko na mga parameter at dami, s ang lihim na data ng prover kung bakit totoo ang S, ang r ay random na numero V 3 R = f3(C,x) 4
inililipat ng prover sa verifier ang tinatawag na ebidensya (saksi -W) - ang resulta ng pagkalkula ng isang one-way na function ng lihim na halaga, ang kaalaman kung saan siya nagpapatunay;
pinadalhan siya ng tagasuri ng random na kahilingan;
sinasagot ng prover ang query na ito, at ang sagot ay nakasalalay sa parehong random na query at sa lihim na halaga, ngunit imposibleng makuha ang lihim na halagang ito mula sa kanya sa computation;
sa pagtanggap ng sagot, sinusuri ni V ang pagkakapare-pareho nito sa "ebidensya" na ipinadala sa unang hakbang.
Isaalang-alang natin ang mga pangunahing prinsipyo ng pagbuo ng mga patunay na may zero na pagbubunyag ng kaalaman: kung ano ang ipinahihiwatig ng pag-aari ng zero na kaalaman sa kaalaman.
Sa zero-knowledge proof theory, ang kaalaman P at V ay itinuturing bilang "mga itim na kahon" (Larawan 1.3).
Hayaang ang \tr ), \)Py ) ay ang hanay ng lahat ng mensaheng ipinadala mula P hanggang V (ayon sa pagkakabanggit mula V hanggang P), ang bawat isa ay isang random na variable, at sa gayon (x,h,rv,(mp ),( mv)) = = viewpy)