Suurtagal ma tahay in la abuuro tirooyin random ah haddii aynaan isku kalsoonayn? Qaybta 2

Suurtagal ma tahay in la abuuro tirooyin random ah haddii aynaan isku kalsoonayn? Qaybta 2

Haye Habr!

В qaybta koowaad Maqaalkan, waxaan kaga hadalnay sababta ay lagama maarmaan u tahay in loo sameeyo tirooyin aan kala sooc lahayn oo loogu talagalay ka qaybgalayaasha aan isku kalsoonayn, shuruudaha loo soo bandhigay soo-saareyaasha tirada bakhtiyaanka ah, waxaanan tixgelinnay laba hab oo loo maro hirgelintooda.

Qaybtan maqaalka ah, waxaan si dhow u eegi doonaa hab kale oo adeegsada saxiixyada bilowga.

Waxoogaa qarsoodi ah

Si aad u fahamto sida saxiixyada bilowga u shaqeeyaan, waxaad u baahan tahay inaad fahamto wax yar oo aasaasi ah oo qarsoodi ah. Waxaan isticmaali doonaa laba fikradood: scalars, ama tirooyin fudud, kuwaas oo aan ku tilmaami doono xarfo yaryar (x, y) oo ay ku fiiqayaan qalooca elliptical, oo aynu ku tilmaami doono xarfo waaweyn.

Si aad u fahamto aasaaska saxeexyada bilowga, uma baahnid inaad fahanto sida qalloocyada elliptik u shaqeeyaan, marka laga reebo dhawr waxyaalood oo aasaasi ah:

  1. Dhibcaha ku yaal qalooca elliptical waxaa lagu dari karaa oo lagu dhufan karaa qolof leh (waxaan u tilmaami doonaa isku dhufashada scalar sida xG, in kasta oo la xuso Gx sidoo kale inta badan loo isticmaalo suugaanta). Natiijada isku-darka iyo isku-dhufashada ee scalar waa bar ku taal qalooca ellipse.

  2. Ogaanshaha kaliya barta G iyo alaabteeda oo leh scalar xG lama xisaabin karo x.

Waxaan sidoo kale isticmaali doonaa fikradda polynomial p (x) shahaadooyinka k-1. Gaar ahaan, waxaanu isticmaali doonaa hantida soo socota ee polynomials: haddii aan ognahay qiimaha p (x) mid kasta k kala duwan x (mana hayno macluumaad dheeraad ah oo ku saabsan p (x)), waan xisaabin karnaa p (x) cid kale x.

Waa arrin xiiso leh in polynomial kasta p (x) iyo qaar ka mid ah barta qalooca Ggaranaya macnaha p(x)G mid kasta k macnayaal kala duwan x, waxaan sidoo kale xisaabin karnaa p(x)G mid kasta x.

Tani waa macluumaad ku filan si loo qodo faahfaahinta sida saxiixyada bilowga u shaqeeyaan iyo sida loo isticmaalo si loo abuuro tirooyin aan toos ahayn.

Soosaaraha lambarka random ee saxeexyada bilowga

Aynu nidhaahno sidaas n Ka qaybgalayaashu waxay rabaan inay abuuraan lambar random, waxaanan doonaynaa in qof kastaa ka qaybqaato k waxaa jiray ku filan oo iyaga ka mid ah si ay u abuuraan tiro, laakiin si ay weeraryahanada kuwaas oo gacanta ku k-1 ama in ka yar ka qaybgalayaashu ma saadaalin karaan ama saamayn karaan tirada la soo saaray.

Suurtagal ma tahay in la abuuro tirooyin random ah haddii aynaan isku kalsoonayn? Qaybta 2

Ka soo qaad inuu jiro polynomial noocaas ah p (x) shahaadooyinka k-1 waxa ka qaybqaataha kowaad yaqaan p (1), midda labaad ayaa og p (2), iyo wixi la midan- waa og yahay p(n)). Waxaan sidoo kale u maleyneynaa in qodob horay loo sii go'aamiyay G qof walba waa ogyahay p(x)G dhammaan qiyamka x. Waan wici doonaa p(i) "Qaybta gaarka ah" ika qaybgalaha (maxaa yeelay kaliya ika qaybqaataha iyada wuu garanayaa), iyo p(i)G "Qaybta dadweynaha" i- ka qaybgale (maxaa yeelay dhammaan ka qaybgalayaasha way garanayaan iyada). Sida aad xasuusato, aqoonta p(i)G kuma filna in la soo celiyo p(i).

Abuuritaanka polynomial noocan oo kale ah si kaliya i-Ka qaybgalaha koowaad iyo qof kale ma garanayo qaybtiisa gaarka ah - tani waa qaybta ugu adag uguna xiisaha badan ee borotokoolka, waxaanan ku falanqeyn doonaa hoos. Hadda, aan ka soo qaadno in aan haysano polynomial-ka noocaas ah oo dhammaan ka qaybgalayaashu ay yaqaanaan qaybahooda gaarka ah.

Sideen u isticmaali karnaa polynomial-ka noocaas ah si aan u soo saarno lambar random? Si aan ku bilowno, waxaan u baahannahay xarig aan hore loogu isticmaalin wax-soo-saarka koronto-dhaliyaha. Marka laga hadlayo blockchain, xashiishka block ugu dambeeya h waa musharrax wanaagsan ee line noocan oo kale ah. U oggolow ka qaybgalayaashu inay rabaan inay abuuraan lambar random iyagoo isticmaalaya h sida abuur. Ka qaybgalayaashu marka hore beddelaan h ilaa barta qalooca adoo isticmaalaya hawl kasta oo horay loo sii qeexay:

H = scalarToPoint(h)

Markaa ka qaybgale kasta i xisaabiyaa oo daabacaa Hi = p(i)H, maxay qaban karaan waayo way garanayaan p (i) iyo H. Shaacinta HMa ogola ka qaybgalayaasha kale inay soo celiyaan qaybta gaarka ah ika qaybgalaha, iyo sidaas darteed hal qaybood oo ka mid ah qaybaha gaarka ah ayaa loo isticmaali karaa block ilaa xannibaad. Sidaa darteed, jiilka qaaliga ah ee algorithm ee hoos lagu sharaxay ayaa kaliya u baahan in la fuliyo hal mar.

Goorma k ka qaybgalayaasha ayaa la baaray Hi = p(i)H, qof kastaa wuu xisaabin karaa Hx = p (x) H dhammaan x Thanks to hantida polynomials in aan ka hadalnay qaybta ugu dambeysa. Waqtigan xaadirka ah, dhammaan ka qaybgalayaashu waxay xisaabiyaan H0 = p(0)H, tanina waa lambarka random-ka ee ka dhashay. Fadlan ogow cidna ma garanayso p (0), sidaas darteedna sida kaliya ee loo xisaabin karo p(0)H - Tani waa is-dhexgal p(x)H, taas oo suurtagal ah kaliya marka k qiyamka p(i)H loo yaqaan. Furitaanka tiro kasta oo ka yar p(i)H ma bixiyo wax macluumaad ah oo ku saabsan p(0)H.

Suurtagal ma tahay in la abuuro tirooyin random ah haddii aynaan isku kalsoonayn? Qaybta 2

Koronto-dhaliyaha sare wuxuu leeyahay dhammaan guryaha aan rabno: weeraryahannada ayaa xakameynaya kaliya k-1 ka mid ah ka qaybgalayaasha ama ka yar ayaan wax macluumaad ah ama saamayn ku lahayn gabagabada, halka ay jiraan k ka qaybgalayaashu waxay xisaabin karaan tirada natiijada, iyo qayb kasta oo ka mid ah k ka qaybgalayaashu waxay had iyo jeer u iman doonaan natiijo isku mid ah abuur isku mid ah.

Waxaa jirta hal dhibaato oo aan si taxadar leh uga ilaalinay korka. Si isdhexgalka u shaqeeyo, waxaa muhiim ah in qiimaha Hi kaas oo uu daabacay ka qaybgale kasta i runtii isku mid bay ahayd p(i)H. Mar haddii aan cid kale jirin i- ka qaybqaataha ma garanayo p(i), cid aan ahayn i-Ka qaybqaataha taas ma xaqiijin karo Hi dhab ahaantii si sax ah ayaa loo xisaabiyaa, oo aan lahayn wax caddayn ah oo caddayn ah oo sax ah Hi weeraryahanku wuxuu daabici karaa qiimo kasta sida hi, oo si sabab la'aan ah u saameeya soo saarista koronto-dhaliye lambarka random:

Suurtagal ma tahay in la abuuro tirooyin random ah haddii aynaan isku kalsoonayn? Qaybta 2Qiimaha kala duwan ee H_1 uu soo diro ka qaybqaataha kowaad ayaa keenaya H_0 kala duwan

Waxaa jira ugu yaraan laba siyaabood oo lagu caddeeyo saxnaanta Hi, waxaan tixgelin doonaa iyaga ka dib markaan falanqeyno jiilka polynomial.

Jiilka badan

Qaybtii u danbeysey waxaan u qaadanay in aan leenahay polynomial-ka noocaas ah p (x) shahaadooyinka k-1 in ka qaybqaataha i ogyahay p(i), mana jiro qof kale oo wax macluumaad ah ka haya qiimahan. Qaybta soo socota waxaan sidoo kale u baahan doonaa taas si loo gaaro qodob horay loo sii go'aamiyay G qof kastaa wuu ogaa p(x)G dhammaan x.

Qaybtan waxaan u qaadan doonaa in ka qaybgale kasta oo maxalli ah uu leeyahay fure gaar ah x, sida in qof kastaa yaqaan furaha dadweynaha ee u dhigma Xi.

Mid ka mid ah borotokoolka jiilka polynomial ee suurtogalka ah waa sida soo socota:

Suurtagal ma tahay in la abuuro tirooyin random ah haddii aynaan isku kalsoonayn? Qaybta 2

  1. Ka qaybgale kasta i maxalli ahaan waxay abuurtaa polynomial aan sabab lahayn pi(x) darajo k-1. Kadibna waxay diraan ka qaybgale kasta j macnaha pi(j), oo lagu sireeyay furaha dadweynaha Xj. Sidaas oo kaliya i-th и j-th ka qaybgale yaqaan pi (j). Ka qaybqaataha i sidoo kale si fagaare ah ugu dhawaaqaa pi(j) G dhammaan j ka 1 si ay u k loo dhan yahay.

  2. Dhammaan ka qaybgalayaashu waxay isticmaalaan xoogaa la isku raacsan yahay si ay u doortaan k ka qaybgalayaasha kuwaas oo tiro badan la isticmaali doono. Mar haddii ka qaybgalayaasha qaarkood laga yaabo inay khad la'aan yihiin, ma sugi karno ilaa qof walba n ka qaybgalayaashu waxay daabici doonaan tiro badan. Natiijada talaabadani waa go'an Z oo ka kooban ugu yaraan k polynomials ayaa lagu sameeyay tallaabada (1).

  3. Ka qaybgalayaashu waxay hubiyaan in qiyamka ay garanayaan pi(j) u dhigma si guud loo shaaciyo pi(j) G. Tallaabadan ka dib Z kaliya halbeegyo si gaar ah loo gudbiyo pi(j) u dhigma si guud loo shaaciyo pi(j) G.

  4. Ka qaybgale kasta j xisaabiyaa qaybtiisa gaarka ah p(j) wadar ahaan pi (j) dhammaan i в Z. Ka qaybgale kasta wuxuu kaloo xisaabiyaa dhammaan qiyamka p(x)G wadar ahaan pi(x)G dhammaan i в Z.

Suurtagal ma tahay in la abuuro tirooyin random ah haddii aynaan isku kalsoonayn? Qaybta 2

Fadlan la soco taas p (x) - runtii waa polynomial k-1, waayo waa wadarta qofka pi(x), kuwaas oo mid walba uu yahay shahaado badan k-1. Markaas, ogow in inta ka qaybqaataha kasta j ogyahay p(j), war kuma hayaan p (x) si ay u x ≠ j. Runtii, si loo xisaabiyo qiimahan, waxay u baahan yihiin inay ogaadaan wax walba pi(x), iyo ilaa inta ka qaybqaataha j ma garanayo ugu yaraan mid ka mid ah polynomials la doortay, ma hayaan macluumaad ku filan oo ku saabsan p(x).

Tani waa dhammaan habka jiilka badan ee loo baahnaa qaybta u dambaysa. Tallaabooyinka 1, 2 iyo 4 ee sare waxay leeyihiin hirgelin cad. Laakin talaabada 3aad ma aha mid fudud.

Gaar ahaan, waxaan u baahanahay inaan awoodno inaan cadeyno in sir ah pi(j) run ahaantii u dhigma kuwa la daabacay pi(j) G. Haddaynu caddayn kari wayno, weerarka i waxaa laga yaabaa in ay diri karto qashinka pi(j) ka qaybgale j, iyo ka qaybgale j ma awoodi doonaan inay helaan macnaha dhabta ah pi(j), mana awoodi doono inay xisaabiso qaybteeda gaarka ah.

Waxaa jira hab-maamuus cryptographic kaas oo kuu ogolaanaya inaad abuurto fariin dheeraad ah caddayni(j), sida ka qaybgale kasta, oo leh xoogaa qiimo ah e, iyo caddayn (j) и pi(j)G, ayaa maxalli ahaan xaqiijin kara taas e - waa runtii pi(j), lagu sireeyay furaha ka qaybqaataha j. Nasiib darro, cabbirka caddaynta noocan oo kale ah waa mid aad u weyn, oo la siiyay in ay lagama maarmaan tahay in la daabaco O(nk) Caddeynta noocaas ah looma isticmaali karo ujeedadan.

Halkii ay taasi caddayn lahayd pi(j) u dhiganta pi(j)G waxaan u qoondayn karnaa wakhti aad u dheer hab-maamuuska jiilka badan, kaas oo dhammaan ka qaybgalayaashu ay hubiyaan kuwa la helay pi(j), iyo haddii fariinta la furay aysan u dhigmin dadweynaha pi(j)G, waxay daabacaan caddaynta sirta ah ee ah in farriinta sir ah ee ay heleen ay khaldan tahay. Cadday in fariinta ma u dhiganta pi(G) aad uga fudud in la caddeeyo inay ku habboon tahay. Waa in la ogaadaa in tani ay u baahan tahay ka-qaybgale kasta inuu ka soo muuqdo internetka ugu yaraan hal mar inta lagu jiro wakhtiga loo qoondeeyey inuu abuuro caddayn noocaas ah, oo ay ku tiirsan tahay malo ah in haddii ay daabacaan caddayntaas, ay gaari doonto dhammaan ka qaybgalayaasha kale isla wakhtiga loo qoondeeyey.

Suurtagal ma tahay in la abuuro tirooyin random ah haddii aynaan isku kalsoonayn? Qaybta 2

Haddii ka qaybqaataha uusan ka soo muuqan internetka inta lagu jiro muddadan, oo uu lahaa ugu yaraan hal qayb oo khaldan, markaa ka qaybqaataha gaarka ah ma awoodi doono inuu ka qaybqaato jiil kale oo dheeraad ah. Hab-maamuusku, si kastaba ha ahaatee, wali wuu shaqayn doonaa haddii ay jirto ugu yaraan k ka qaybgalayaasha kuwaas oo hadda helay qaybaha saxda ah ama u suurtagashay in ay ka tagaan caddaynta khaladka wakhtiga loogu talagalay.

Caddaynta saxda ah ee H_i

Qeybta ugu dambeysa ee ka hadhsan in laga doodo waa sida loo caddeeyo saxnimada la daabacay Hi, kuwaaso Hi = p(i)H, iyada oo aan la furin p(i).

Aynu xusuusanno in qiyamka H, G, p(i)G dadweynaha oo qof walba garanayo. Hel hawlgalka p(i) garanaya p(i)G и G loo yaqaan discrete logarithm, ama dibi, waxaana rabnaa inaan cadeyno taas:

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

iyada oo aan la shaacin p(i). Dhismayaasha caddaynta noocaas ah ayaa jira, tusaale ahaan Nidaamka Schnorr.

Naqshaddan, ka qaybgale kasta, oo ay weheliso Hi wuxuu soo diraa caddayn sax ah si waafaqsan naqshadda.

Marka nambar aan sugnayn la soo saaro, badanaa waxay u baahan tahay inay isticmaalaan ka qaybgalayaasha oo aan ahayn kuwii sameeyay. Ka qaybgalayaasha noocan oo kale ah, iyo lambarka, waa inay soo diraan dhammaan Hi iyo cadaymo la xidhiidha.

Akhristaha wax weyddiinta waxa laga yaabaa inuu ku weydiiyo: mar haddii lambarka kama dambaysta ahi uu yahay H0, iyo p(0)G - Tani waa macluumaadka dadweynaha, sababta aan ugu baahanahay caddayn shakhsi kasta HAniga, maxaa diidaya in taa beddelkeeda caddayn loo soo diro

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

Dhibaatadu waxay tahay in caddaynta noocaas ah aan la abuuri karin iyadoo la adeegsanayo Nidaamka Schnorr sababtoo ah qofna ma garanayo qiimaha p (0), lagama maarmaanka u ah in la abuuro caddaynta, iyo waxa ka sii badan, dhammaan koronto-dhaliyaha lambarka random wuxuu ku salaysan yahay xaqiiqda ah in qofna uusan garanayn qiimahan. Sidaa darteed waa lagama maarmaan in la haysto dhammaan qiyamka Hi iyo caddayntooda gaarka ah si loo caddeeyo saxnaanta H0.

Si kastaba ha ahaatee, haddii ay jiraan qaar ka mid ah qalliin lagu sameeyay dhibco ku yaal qalooca elliptik oo macno ahaan la mid ah isku dhufashada, caddaynta saxnaanta. H0 wax yar bay noqon lahayd, waxaanu si fudud u hubin lahayn taas

H0 × G = p(0)G × H

Haddii qalooca la doortay uu taageero lamaanayaasha qalooca elliptic, caddayntaani way shaqeysaa. Kiiskan H0 kaliya maaha wax soo saarka koronto-dhaliye lambar aan sugnayn, kaas oo uu xaqiijin karo ka-qaybgale kasta oo yaqaan G, H и p(0)G. H0 sidoo kale waa saxiix fariinta loo isticmaalay abuur ahaan, taas oo xaqiijinaysa k и n ka qaybgalayaashu waxay saxeexeen fariintan. Sidaas darteed, haddii abuur - waa xashiishka block ee borotokoolka blockchain, markaa H0 Labaduba waa saxeex badan oo block ah iyo nambar random oo aad u wanaagsan.

Gabagabada

Maqaalkani waa qayb ka mid ah taxanaha blog ee farsamada NEAR. NEAR waa hab-maamuuska blockchain iyo madal loogu talagalay horumarinta codsiyada baahsan iyadoo xoogga la saarayo fududaynta horumarinta iyo fududaynta isticmaalka isticmaalayaasha dhamaadka.

Koodhka borotokoolku wuu furan yahay, hirgalintayadu waxay ku qoran tahay Rust, waa la heli karaa halkan.

Waxaad ka arki kartaa sida uu u eg yahay horumarka DHAW oo tijaabi IDE khadka tooska ah halkan.

Waxaad kala socon kartaa dhammaan wararka Ruushka at kooxda telegram iyo kooxda VKontakte, iyo Ingiriisi ee rasmiga ah twitter.

Со скорых встреч!

Source: www.habr.com

Add a comment