Kodi ndizotheka kupanga manambala mwachisawawa ngati sitikhulupirirana? Gawo 2

Kodi ndizotheka kupanga manambala mwachisawawa ngati sitikhulupirirana? Gawo 2

Pa Habr!

Π’ gawo loyamba M'nkhaniyi, takambirana chifukwa chake zingakhale zofunikira kupanga manambala mwachisawawa kwa omwe sakhulupirirana, ndi zofunikira ziti zomwe zimaperekedwa kwa jenereta zachisawawa zotere, ndikuganizira njira ziwiri zogwirira ntchito.

M'chigawo chino cha nkhaniyi, tiwonanso njira ina yomwe imagwiritsa ntchito ma signature a malire.

Pang'ono ndi cryptography

Kuti mumvetsetse momwe ma signature amagwirira ntchito, muyenera kumvetsetsa pang'ono cryptography. Tidzagwiritsa ntchito malingaliro awiri: scalar, kapena manambala chabe, omwe tiwonetsa ndi zilembo zazing'ono (x, y) ndikulozera pamapindikira ozungulira, omwe tiwonetsa ndi zilembo zazikulu.

Kuti mumvetsetse zoyambira za siginecha zoyambira, simuyenera kumvetsetsa momwe ma curve ozungulira amagwirira ntchito, kupatula zinthu zingapo zofunika:

  1. Mfundo pamapindikira ozungulira amatha kuwonjezedwa ndikuchulukitsidwa ndi scalar (tiwonetsa kuchulukitsa ndi scalar monga xG, ngakhale chizindikirocho Gx amagwiritsidwanso ntchito nthawi zambiri m'mabuku). Zotsatira za kuwonjezera ndi kuchulukitsa ndi scalar ndi mfundo pa elliptic curve.

  2. Kudziwa mfundo yokha G ndi mankhwala ake ndi scalar xG sungawerengedwe x.

Tidzagwiritsanso ntchito lingaliro la polynomial tsa (x) madigiri a k-1. Makamaka, tidzagwiritsa ntchito zotsatirazi za polynomials: ngati tidziwa mtengo wake tsa (x) kwa aliyense k chosiyana x (ndipo tilibe zambiri za tsa (x)), tikhoza kuwerengera tsa (x) kwa wina aliyense x.

Ndizosangalatsa kuti kwa polynomial iliyonse tsa (x) ndi mfundo ina pamapindikira Gkudziwa tanthauzo lake p (x) G kwa aliyense k matanthauzo osiyanasiyana x, tingawerengenso p (x) G kwa aliyense x.

Izi ndizokwanira kukumba mwatsatanetsatane momwe ma signature amagwirira ntchito komanso momwe angawagwiritsire ntchito kuti apange manambala mwachisawawa.

Jenereta wa manambala mosasintha pamasaina apanyumba

Tinene zimenezo n otenga nawo mbali akufuna kupanga nambala mwachisawawa, ndipo tikufuna aliyense atenge nawo gawo k anali okwanira kuti apange chiwerengero, koma kuti owukira amene amalamulira k-1 kapena ocheperapo sanathe kulosera kapena kukhudza chiwerengero chomwe chapangidwa.

Kodi ndizotheka kupanga manambala mwachisawawa ngati sitikhulupirirana? Gawo 2

Tiyerekeze kuti pali polynomial yotere tsa (x) madigiri a k-1 zomwe wophunzira woyamba amadziwa p (1), wachiwiri akudziwa p(2), ndi zina zotero (n- amadziwa p(n)). Timaganizanso kuti pa mfundo ina yokonzedweratu G aliyense amadziwa p (x) G kwa makhalidwe onse x. Tiyitana p (i) "Private chigawo" iwotenga nawo mbali (chifukwa chokha iwotenga nawo mbali akumudziwa), ndi p (i) G "Public Component" i-otenga nawo mbali (chifukwa onse akumudziwa). Monga mukukumbukira, chidziwitso p (i) G osakwanira kubwezeretsa p (ndi).

Kupanga polynomial yotere kuti basi i-Woyamba kutenga nawo mbali ndipo palibe wina amene adadziwa gawo lake lachinsinsi - ichi ndi gawo lovuta kwambiri komanso losangalatsa la protocol, ndipo tidzasanthula pansipa. Pakadali pano, tiyerekeze kuti tili ndi polynomial yotere ndipo onse omwe atenga nawo mbali amadziwa zigawo zawo zachinsinsi.

Kodi tingagwiritse ntchito bwanji polynomial yotere kuti tipange nambala mwachisawawa? Poyamba, timafunikira chingwe chomwe sichinagwiritsidwepo ntchito ngati cholowetsa ku jenereta. Pankhani ya blockchain, hashi ya block yomaliza h ndi phungu wabwino pamzere wotere. Lolani ophunzira kuti apange nambala mwachisawawa pogwiritsa ntchito h ngati mbewu. Ophunzira atembenuke kaye h kufika pamtunda wokhotakhota pogwiritsa ntchito ntchito iliyonse yodziwikiratu:

H = scalarToPoint(h)

Kenako wophunzira aliyense i amawerengera ndi kusindikiza Hi = p(i)H, angachite chiyani chifukwa amadziwa p (i) ndi H. Kuwulula Hsindilola ena kutenga nawo mbali kubwezeretsa gawo lachinsinsi ith otenga nawo mbali, motero gulu limodzi la zigawo zapadera zitha kugwiritsidwa ntchito kuchokera ku chipika kupita ku chipika. Chifukwa chake, algorithm yokwera mtengo ya polynomial generation yomwe yafotokozedwa pansipa imangofunika kuphedwa kamodzi.

pamene k otenga nawo mbali adachitidwa opaleshoni Hi = p(i)H, aliyense akhoza kuwerengera Hx = p(x)H kwa onse x chifukwa cha katundu wa ma polynomials omwe tidakambirana mgawo lapitali. Panthawiyi, onse otenga nawo mbali amawerengera H0 = p(0)H, ndipo iyi ndi nambala yobwera mwachisawawa. Chonde dziwani kuti palibe amene akudziwa p(0), choncho njira yokhayo yowerengera p (0)H - uku ndikumasulira p(x)H, zomwe zimatheka pokhapokha k mfundo p(i)H kudziwika. Kutsegula kakang'ono kalikonse p(i)H sichipereka zambiri za p (0)H.

Kodi ndizotheka kupanga manambala mwachisawawa ngati sitikhulupirirana? Gawo 2

Jenereta pamwambapa ili ndi zonse zomwe tikufuna: owukira amangolamulira okha k-1 otenga nawo mbali kapena ochepera alibe chidziwitso kapena chikoka pamawu omaliza, pomwe alipo k otenga nawo mbali atha kuwerengera nambala yomwe yatuluka, ndi kagawo kakang'ono ka k otenga nawo mbali nthawi zonse amapeza zotsatira zomwezo za mbeu yomweyo.

Pali vuto limodzi lomwe tazipewa mosamala pamwambapa. Kuti kutanthauzira kugwire ntchito, ndikofunikira kuti mtengowo ugwire ntchito Hi zomwe zidasindikizidwa ndi aliyense i zinalidi chimodzimodzi p(i)H. Popeza palibe wina kupatula i-wotenga nawo mbali sakudziwa p (ine), palibe wina koma i-wotenga nawo mbali sangathe kutsimikizira izi Hi kuwerengedwa molondola, ndipo popanda umboni uliwonse wachinsinsi wa kulondola Hine wowukira akhoza kufalitsa mtengo uliwonse ngati Hi, ndi kusonkhezera mopanda pake kutulutsa kwa jenereta ya manambala mwachisawawa:

Kodi ndizotheka kupanga manambala mwachisawawa ngati sitikhulupirirana? Gawo 2Makhalidwe osiyanasiyana a H_1 omwe adatumizidwa ndi woyamba kumabweretsa zotsatira zosiyana za H_0

Pali njira ziwiri zotsimikizira kulondola Hi, tidzawalingalira pambuyo posanthula m'badwo wa polynomial.

Polynomial generation

Mu gawo lomaliza tinaganiza kuti tili ndi polynomial yotere tsa (x) madigiri a k-1 kuti wophunzira i amadziwa p (i), ndipo palibe wina aliyense amene ali ndi chidziwitso chilichonse chokhudza mtengowu. Mu gawo lotsatira tidzafunikanso kuti pa mfundo ina yokonzedweratu G aliyense ankadziwa p (x) G kwa onse x.

Mu gawoli tiganiza kuti aliyense wotenga mbali mdera lanu ali ndi kiyi yachinsinsi xi, kotero kuti aliyense amadziwa kiyi yofananira ndi anthu Xi.

Imodzi zotheka polynomial generation protocol ndi motere:

Kodi ndizotheka kupanga manambala mwachisawawa ngati sitikhulupirirana? Gawo 2

  1. Wophunzira aliyense i komweko kumapanga ma polynomial osagwirizana pi(x) digiri k-1. Kenako amatumiza wophunzira aliyense j tanthauzo pi(j), yosungidwa ndi kiyi yapagulu Xj. Choncho basi i-th ΠΈ j-th wophunzira akudziwa pine (j). Wotenga nawo mbali i amalengezanso poyera pi (j) G kwa onse j ΠΎΡ‚ 1 mpaka k kuphatikiza.

  2. Onse otenga nawo mbali amagwiritsa ntchito mgwirizano kuti asankhe k otenga nawo mbali omwe ma polynomials awo adzagwiritsidwa ntchito. Popeza ena atha kukhala opanda intaneti, sitingadikire mpaka aliyense n otenga nawo mbali adzasindikiza ma polynomials. Zotsatira za sitepe iyi ndi seti Z opangidwa osachepera k ma polynomials opangidwa mu sitepe (1).

  3. Otenga nawo mbali amaonetsetsa kuti zomwe akudziwa pi(j) zimagwirizana ndi zomwe zalengezedwa poyera pi (j) G. Pambuyo polowera uku Z ma polynomial okha omwe amafalitsidwa mwachinsinsi pi(j) zimagwirizana ndi zomwe zalengezedwa poyera pi (j) G.

  4. Wophunzira aliyense j amawerengera chigawo chake chachinsinsi p (j) monga ndalama pi (j) kwa onse i Π² Z. Wophunzira aliyense amawerengeranso zikhalidwe zonse p (x) G monga ndalama pi(x)G kwa onse i Π² Z.

Kodi ndizotheka kupanga manambala mwachisawawa ngati sitikhulupirirana? Gawo 2

Zindikirani kuti p(x) - kwenikweni ndi polynomial k-1, chifukwa ndi chiwerengero cha munthu payekha pi(x), iliyonse yomwe ili ndi digiri ya polynomial k-1. Ndiye, zindikirani kuti pamene aliyense ophunzira j amadziwa p (j), alibe chidziwitso tsa (x) chifukwa x β‰  ndi. Zowonadi, kuti awerengere mtengowu, ayenera kudziwa zonse pi(x), komanso malingana ndi otengapo mbali j sadziwa chimodzi mwa ma polynomials osankhidwa, alibe chidziwitso chokwanira p (x).

Iyi ndiye njira yonse yopangira polynomial yomwe idafunikira gawo lomaliza. Masitepe 1, 2 ndi 4 pamwambapa ali ndi kukhazikitsidwa koonekeratu. Koma sitepe 3 si yaying'ono.

Mwachindunji, tiyenera kutsimikizira kuti encrypted pi(j) zimagwirizana kwenikweni ndi zomwe zasindikizidwa pi (j) G. Ngati sitingathe kutsimikizira, wowukirayo i akhoza kutumiza zinyalala m'malo mwake pi(j) kwa otenga nawo mbali j, ndi wophunzira j sindingathe kupeza tanthauzo lenileni pi (j), ndipo sindingathe kuwerengera gawo lake lachinsinsi.

Pali ndondomeko ya cryptographic yomwe imakulolani kuti mupange uthenga wowonjezera umbonii(j), kotero kuti aliyense wotenga mbali, ali ndi phindu e, komanso umboni (j) ΠΈ pi(j)G, ikhoza kutsimikizira zimenezo kwanuko e - ndizowona pi (j), kubisika ndi kiyi ya otenga nawo mbali j. Tsoka ilo, kukula kwa umboni woterewu ndi waukulu kwambiri, ndipo chifukwa chake ndikofunikira kufalitsa O(nk) Umboni woterewu sungagwiritsidwe ntchito pa cholinga ichi.

M’malo motsimikizira zimenezo pi (j) zimayenderana pi(j)G titha kugawa nthawi yayikulu kwambiri mu protocol ya polynomial generation, pomwe otenga nawo mbali onse amayang'ana zomwe adalandira. pi (j), ndipo ngati uthenga wodetsedwa sukugwirizana ndi anthu pi(j)G, amasindikiza umboni wachinsinsi kuti uthenga wobisika womwe adalandira ndi wolakwika. Tsimikizirani kuti uthengawo osati zimayenderana pi (G) zosavuta kuposa kutsimikizira kuti zikugwirizana. Tiyenera kuzindikira kuti izi zimafuna kuti wophunzira aliyense aziwonekera pa intaneti kamodzi pa nthawi yomwe wapatsidwa kuti apange umboni woterewu, ndipo amadalira kuganiza kuti ngati afalitsa umboni woterewu, udzafika kwa ena onse panthawi yomweyi.

Kodi ndizotheka kupanga manambala mwachisawawa ngati sitikhulupirirana? Gawo 2

Ngati wotenga nawo mbali sanawonekere pa intaneti panthawiyi, ndipo anali ndi gawo limodzi lolakwika, ndiye kuti wotenga nawo mbali sangathe kutenga nawo mbali pakupanga manambala. Protocol, komabe, imagwirabe ntchito ngati ilipo k otenga nawo mbali omwe adangolandira magawo olondola kapena adakwanitsa kusiya umboni wa zolakwika mkati mwa nthawi yomwe adapatsidwa.

Umboni wa kulondola kwa H_i

Gawo lomaliza lomwe liyenera kukambidwa ndi momwe mungatsimikizire kulondola kwa zosindikizidwa Hi, io Hi = p(i)H, popanda kutsegula p (ndi).

Tikumbukire kuti mfundo H, G, p(i)G poyera komanso odziwika kwa aliyense. Landirani ntchito p (i) kudziwa p (i) G ΠΈ G amatchedwa discrete logarithm, kapena dlog, ndipo tikufuna kutsimikizira kuti:

dlog(p(i)G,G) =dlog(Hi, H)

popanda kuwulula p (i). Zomanga za umboni wotere zilipo, mwachitsanzo Schnorr Protocol.

Ndi mapangidwe awa, wophunzira aliyense, pamodzi ndi Hi amatumiza umboni wolondola malinga ndi kapangidwe.

Nambala ikangopangidwa mwachisawawa, nthawi zambiri imayenera kugwiritsidwa ntchito ndi omwe akutenga nawo mbali osati omwe adayipanga. Otenga nawo mbali, pamodzi ndi nambala, ayenera kutumiza onse Hi ndi umboni wogwirizana nawo.

Wowerenga wofuna kudziwa angafunse: popeza nambala yomaliza yachisawawa ndi H0, ndi p (0)G - Izi ndi zidziwitso zapagulu, chifukwa chiyani timafunikira umboni kwa munthu aliyense Hine, bwanji osatumiza umboni kuti m'malo mwake

dlog (p(0)G,G) =dlog(H0, H)

Vuto ndiloti umboni woterewu sungathe kupangidwa pogwiritsa ntchito Schnorr Protocol chifukwa palibe amene amadziwa mtengo wake p (0), zofunikira kuti apange umboni, ndi zina zotero, jenereta yonse yachisawawa imachokera pa mfundo yakuti palibe amene akudziwa mtengo uwu. Chifukwa chake ndikofunikira kukhala ndi zikhalidwe zonse Hi ndi umboni wawo payekha wotsimikizira kulondola H0.

Komabe, ngati panali opareshoni pa mfundo za elliptic curves zomwe zimafanana ndi kuchulukitsa, umboni wa kulondola. H0 zingakhale zazing'ono, tikanangotsimikizira kuti

H0 Γ— G = p(0)G Γ— H

Ngati chopindika chosankhidwa chimathandizira mawonekedwe a elliptic curve, umboni umenewu umagwira ntchito. Pamenepa H0 sikuti amangotulutsa manambala mwachisawawa, omwe amatha kutsimikiziridwa ndi aliyense amene akudziwa. G, H ΠΈ pa (0) G. H0 ndi siginecha pa uthenga umene unagwiritsidwa ntchito ngati mbewu, kutsimikizira zimenezo k ΠΈ n otenga nawo mbali adasaina uthengawu. Choncho, ngati mbewu - ndiye hashi ya block mu protocol ya blockchain, ndiye H0 ndi ma signature angapo pa block komanso nambala yabwino kwambiri yachisawawa.

Pomaliza

Nkhaniyi ndi gawo laukadaulo wamabulogu Pafupi. PAFUPI ndi protocol ya blockchain ndi nsanja yopangira mapulogalamu okhazikika ndikugogomezera kuti chitukuko chikhale chosavuta komanso chosavuta kugwiritsa ntchito kwa ogwiritsa ntchito.

Khodi ya protocol ndi yotseguka, kukhazikitsidwa kwathu kwalembedwa ku Rust, kumapezeka apa.

Mutha kuwona momwe chitukuko cha NEAR chikuwonekera ndikuyesa pa intaneti IDE apa.

Mutha kutsatira nkhani zonse mu Russian pa telegalamu gulu ndi gulu pa VKontakte, ndi m'Chingerezi mu boma twitter.

Tiwonana posachedwa!

Source: www.habr.com

Kuwonjezera ndemanga