E mafai ona fa'atupu numera fa'afuase'i pe a tatou le fa'atuatuaina e le tasi le isi? Vaega 2

E mafai ona fa'atupu numera fa'afuase'i pe a tatou le fa'atuatuaina e le tasi le isi? Vaega 2

Ei Habr!

В le vaega muamua I totonu o lenei tusiga, na matou talanoaina pe aisea e ono manaʻomia ai le faʻatupuina o numera faʻafuaseʻi mo tagata auai e le faʻatuatuaina e le tasi le isi, o a manaʻoga o loʻo tuʻuina atu i luma mo ia numera faʻasolosolo, ma mafaufau i ni auala se lua mo le faʻatinoga.

I lenei vaega o le tusiga, o le a tatou vaʻavaʻai totoʻa i se isi auala e faʻaogaina ai saini faʻailoga.

O sina fa'amatalaga tusitusia

Ina ia malamalama pe faʻafefea ona galue saini faʻailoga, e tatau ona e malamalama i sina faʻamatalaga autu. O le a matou faʻaaogaina ni manatu se lua: scalars, poʻo numera faigofie, lea o le a matou faʻaalia i mataitusi laiti (x, y) ma faʻailoga i luga o le elliptic curve, lea o le a tatou faʻaalia i mataitusi tetele.

Ina ia malamalama i faʻavae o saini faʻailoga, e te le manaʻomia le malamalama pe faʻafefea ona galue pupuni elliptic, e ese mai nai mea masani:

  1. E mafai ona fa'aopoopo ma fa'ateleina fa'ailoga i luga o le pupuni eliptic i se scalar (o le a tatou fa'ailoaina le fa'ateleina i le scalar e pei o xG, e ui o le fa'ailoga Gx e masani ona faʻaaogaina i tusitusiga). O le i'uga o le fa'aopoopo ma le fa'ateleina i se scalar o se mata'itusi i luga o se pi'o elliptic.

  2. Na o le iloa o le manatu G ma lona oloa ma se scalar xG e le mafai ona fa'atatauina x.

O le a tatou faʻaaogaina foi le manatu o se polynomial p(x) tikeri k-1. Aemaise lava, o le a tatou faʻaogaina le meatotino o polynomials: pe a tatou iloa le tau p(x) mo soo se mea k ese x (ma e leai ni a matou faʻamatalaga e uiga i p(x)), e mafai ona tatou fuafuaina p(x) mo soo se tasi x.

O le mea e malie ai, mo soʻo se polynomial p(x) ma se vaega i luga o le pioga Giloa le uiga p(x)G mo soo se mea k uiga eseese x, e mafai foi ona tatou fuafuaina p(x)G mo soo se mea x.

Ua lava lea fa'amatalaga e su'e ai fa'amatalaga i le auala e galue ai saini fa'ailoga ma le fa'aogaina e maua ai numera fa'afuase'i.

Fa'atupu numera fa'afuase'i i saini fa'ailoga

Sei o tatou faapea atu n e mananao tagata auai e fau se numera fa'afuase'i, ma matou te manana'o i so'o se tasi e auai k sa lava ia i latou e maua ai se numera, ae ina ia o le osofaʻiga e pulea k-1 pe toalaiti tagata auai e le mafai ona vavalo pe faatosinaina le numera na gaosia.

E mafai ona fa'atupu numera fa'afuase'i pe a tatou le fa'atuatuaina e le tasi le isi? Vaega 2

Faapea e iai se polynomial faapena p(x) tikeri k-1 mea e iloa e le tagata muamua p (1), e iloa e le lona lua p(2), ma faapena atu ai lava (n-e iloa p(n)). Matou te manatu foi lena mo se vaega na muai fuafuaina G e iloa e tagata uma p(x)G mo tulaga taua uma x. O le a matou valaau p(i) “vaega tumaoti” ile sui auai (ona na'o ie iloa o ia e le sui auai), ma p(i)G “vaega lautele” i-o le sui auai (aua e iloa e tagata uma o ia). E pei ona e manatua, malamalama p(i)G e le lava e toe fa'afo'isia p(i).

Fausia sea polynomial ina ia na'o i-O le tagata auai lona tolu ma e leai se tasi na iloa lana vaega tumaoti - o le vaega sili ona faigata ma manaia o le feagaiga, ma o le a tatou iloiloina i lalo. Mo le taimi nei, tatou manatu o loʻo i ai a tatou polynomial ma e iloa uma e tagata auai a latou vaega tumaoti.

E fa'afefea ona tatou fa'aogaina se polynomial faapena e fa'atupu ai se numera fa'afuase'i? I le amataga, matou te manaʻomia se manoa e leʻi faʻaaogaina muamua e fai ma faʻaoga i le afi afi. I le tulaga o se poloka poloka, o le hash o le poloka mulimuli h ose sui tauva lelei mo lea laina. Tuu atu i tagata auai e mananao e fai se numera faafuase'i e faaaoga ai h pei o fatu. O tagata auai e liliu muamua h i se tulaga i luga o le pi'o e fa'aaoga ai so'o se galuega fa'atulagaina:

H = scalarToPoint(h)

Ona sosoo ai lea ma tagata auai taitasi i fa'atatau ma fa'asalalau Talofa = p(i)H, o le a se mea e mafai ona latou faia ona ua latou iloa p(i) ma le H. Fa'aaliga HOu te le faatagaina isi tagata auai e toe faʻaleleia le vaega tumaoti ile sui auai, ma o le mea lea e tasi le seti o vaega tumaoti e mafai ona faʻaaogaina mai lea poloka i lea poloka. O le mea lea, o le tau o le polynomial generation algorithm o loʻo faʻamatalaina i lalo e naʻo le tasi e manaʻomia ona faʻatinoina.

Pe a k sa autopsi tagata auai Talofa = p(i)H, e mafai e tagata uma ona fuafua Hx = p(x)H mo tagata uma x faafetai i le meatotino o polynomials na matou talanoaina i le vaega mulimuli. I le taimi nei, o tagata auai uma e fuafua H0 = p(0)H, ma o le numera fa'afuase'i lea e maua. Faamolemole ia matau e leai se tasi na te iloaina p(0), ma o lea na o le pau lea o le auala e faʻatatau ai p(0)H – o le interpolation lea p(x)H, lea e faatoa mafai pe a k tulaga faatauaina p(i)H iloa. Tatala so'o se vaega la'ititi p(i)H e le tu'uina atu so'o se fa'amatalaga e uiga i p(0)H.

E mafai ona fa'atupu numera fa'afuase'i pe a tatou le fa'atuatuaina e le tasi le isi? Vaega 2

O le afi o loʻo i luga o loʻo i ai mea uma tatou te mananaʻo ai: naʻo tagata osofaʻi e pulea k-1 tagata auai pe itiiti ifo e leai ni faʻamatalaga poʻo se aʻafiaga i le faaiuga, ae iai k e mafai e tagata auai ona fuafua le numera e maua, ma soʻo se vaega o k tagata auai o le a oʻo mai i taimi uma i le taunuuga e tasi mo le fatu lava e tasi.

E tasi le faʻafitauli na matou aloese mai ai i luga. Mo interpolation e galue, e taua le taua Hi lea na lomia e tagata auai taitasi i sa tutusa lava p(i)H. Talu ai e leai se tasi vagana ai i-e le iloa e le tagata auai p(i), leai se tasi vagana ai i-e le mafai e le tagata auai ona fa'amaonia lena mea Hi sa'o sa'o le fa'atatau, ma e aunoa ma se fa'amaoniga fa'amaonia o le sa'o He mafai e se tagata osofaʻi ona lolomiina soʻo se tau e pei o Malo, ma fa'alavelave fa'aletonu le gaosiga o le fa'atupu numera fua:

E mafai ona fa'atupu numera fa'afuase'i pe a tatou le fa'atuatuaina e le tasi le isi? Vaega 2O tau eseese o le H_1 na lafo e le tagata muamua e taʻitaʻia ai iʻuga eseese H_0

E lua auala e fa'amaonia ai le sa'o Hi, o le a tatou iloiloina i latou pe a uma ona tatou iloiloina le faatupulaia o le polynomial.

Tupulaga Polynomial

I le vaega mulimuli matou te manatu o loʻo i ai a matou polynomial p(x) tikeri k-1 o le tagata auai i iloa p(i), ma e leai se isi e iai ni faʻamatalaga e uiga i lenei tau. I le vaega e sosoo ai o le a tatou manaʻomia foʻi lena mo se vaega ua uma ona fuafuaina G na iloa e tagata uma p(x)G mo tagata uma x.

I lenei vaega o le a tatou manatu o tagata auai taitasi i le lotoifale ei ai ni ki patino xi, ina ia iloa e tagata uma le ki lautele e fetaui Xi.

Ole tasi ole fa'asologa ole fa'atupuina ole polynomial e fa'apea:

E mafai ona fa'atupu numera fa'afuase'i pe a tatou le fa'atuatuaina e le tasi le isi? Vaega 2

  1. Tagata auai taitasi i fa'alotoifale fa'atupuina se polynomial fa'atonu pi(x) tikeri k-1. Ona latou auina atu lea o tagata auai taitasi j uiga pi(j), fa'ailoga i le ki fa'alaua'itele Xj. Na'o lea i-ый и j-ый iloa e le tagata auai pi(j). Tagata auai i fa'ailoa atu fo'i i luma o tagata pi(j)G mo tagata uma j от 1 i k aofia ai.

  2. O tagata auai uma e faʻaaoga se maliega e filifili ai k tagata auai o latou polynomial o le a faʻaaogaina. Talu ai ona o nisi tagata auai atonu e tuusao, e le mafai ona tatou faatali seia oo i tagata uma n tagata auai o le a lolomi polynomials. O le taunuuga o lenei laasaga o se seti Z e aofia ai a itiiti mai k polynomials faia i le laasaga (1).

  3. E fa'amautinoaina e tagata auai ia tulaga taua latou te iloa pi(j) e fetaui ma le faalauiloaina faalauaitele pi(j)G. A maeʻa lenei laʻasaga i totonu Z na'o polynomials e fa'asalalau fa'alilolilo pi(j) e fetaui ma le faalauiloaina faalauaitele pi(j)G.

  4. Tagata auai taitasi j fa'atatau lona vaega tumaoti p(j) o se aofaiga pi(j) mo tagata uma i в Z. E fa'atatau fo'i e tagata ta'ito'atasi uma tau p(x)G o se aofaiga pi(x)G mo i uma в Z.

E mafai ona fa'atupu numera fa'afuase'i pe a tatou le fa'atuatuaina e le tasi le isi? Vaega 2

matau lena p(x) – ose polynomial moni lava k-1, aua o le aofaiga o le tagata pi(x), o ia mea taitasi o se polynomial o tikeri k-1. Ona, matau lea a o tagata auai taitasi j iloa p(j), e leai ni a latou faamatalaga e uiga i p(x) mo x ≠ j. O le mea moni, e fa'atatauina lenei tau, e tatau ona latou iloa mea uma pi(x), ma le umi o le tagata auai j e le iloa se tasi o polynomials filifilia, latou te le lava faamatalaga e uiga i p(x).

Ole fa'agasologa atoa ole fa'atupuina ole polynomial lea sa mana'omia ile vaega mulimuli. Laasaga 1, 2 ma le 4 i luga o loʻo i ai se faʻatinoga manino. Ae o le Laasaga 3 e le o se mea faatauvaa.

Aemaise lava, e tatau ona mafai ona tatou faʻamaonia lena faʻailoga pi(j) e matua fetaui lelei lava ma lomiga fa'asalalau pi(j)G. Afai e le mafai ona tatou faamaonia, o le tagata osofaia i e mafai ona lafo atu lapisi pi(j) i le sui auai j, ma le tagata auai j o le a le mafai ona maua le tau moni pi(j), ma o le a le mafai ona fuafua lona vaega tumaoti.

O loʻo i ai se faʻataʻitaʻiga faʻamaonia e mafai ai ona e fatuina se feʻau faaopoopo faʻamaonii(j), ina ia so'o se sui auai, e iai sona taua e, ma faapena foi fa'amaoniga(j) и pi(j)G, e mafai ona fa'amaonia i le lotoifale lena mea e - e moni lava pi(j), fa'ailoga i le ki a le tagata auai j. O le mea e leaga ai, o le tele o ia faʻamaoniga e matua tele lava, ma tuʻuina atu e tatau ona faʻasalalau O(nk) O ia molimau e le mafai ona faaaogaina mo lea faamoemoe.

Nai lo le faamaonia o lena mea pi(j) соответствует pi(j)G e mafai ona matou fa'asoaina se vaitaimi tele tele i le fa'asologa o le fa'atupuina o le polynomial, lea e siaki ai e tagata auai uma le fa'ailoga na maua. pi(j), ma pe afai o le savali decrypted e le fetaui ma tagata lautele pi(j)G, latou te fa'asalalauina se fa'amaoniga fa'amaonia o le fe'au fa'ailoga na latou mauaina e le sa'o. Faamaonia le savali соответствует pi(G) sili atu le faigofie nai lo le faʻamaonia e fetaui. E tatau ona maitauina o lenei mea e manaʻomia ai tagata taʻitoʻatasi e faʻaalia i luga o le initaneti ia le itiiti ifo ma le tasi i le taimi na tuʻuina atu e fai ai ia faʻamaoniga, ma faʻalagolago i le manatu afai latou te faʻasalalau sea faʻamaoniga, o le a oʻo atu i isi tagata auai uma i le taimi atofaina.

E mafai ona fa'atupu numera fa'afuase'i pe a tatou le fa'atuatuaina e le tasi le isi? Vaega 2

Afai e le'i sau se tagata auai i luga o le initaneti i lenei vaitaimi, ma e le itiiti ifo ma le tasi le vaega e le sa'o, ona le mafai lea e lena tagata auai faapitoa ona auai i le faatupulaia o numera. O le protocol, e ui i lea, e galue pea pe a iai k tagata auai na faatoa mauaina vaega sa'o pe na mafai ona tu'u fa'amaoniga o le le sa'o i totonu o le taimi atofaina.

Faamaoniga o le sa'o o H_i

O le vaega mulimuli o loo totoe e talanoaina o le auala e faamaonia ai le sa'o o le lomiga Hi, o lena Talofa = p(i)H, e aunoa ma le tatalaina p(i).

Ia tatou manatua o tulaga faatauaina H, G, p(i)G lautele ma iloa e tagata uma. Maua le taotoga p(i) iloa p(i)G и G ua ta'ua o le logarithm tuueseese, po o talatala, ma matou te fia faʻamaonia lena mea:

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

e aunoa ma le faailoaina atu p(i). O faufale mo ia faʻamaoniga o loʻo i ai, mo se faʻataʻitaʻiga Schnorr Protocol.

Faatasi ai ma lenei mamanu, tagata auai taitasi, faatasi ai ma Hi auina atu se faamaoniga o le sa'o e tusa ai ma le mamanu.

O le taimi lava e maua ai se numera faʻafuaseʻi, e masani ona manaʻomia le faʻaaogaina e tagata auai e ese mai i latou na fatuina. O ia tagata auai, faatasi ai ma le numera, e tatau ona auina atu uma Hi ma fa'amaoniga fa'atatau.

Atonu e fesili se tagata faitau su'esu'e: talu ai o le numera fa'ai'u fa'afuase'i H0, ma p(0)G – O faʻamatalaga lautele lea, aisea tatou te manaʻomia ai faʻamaoniga mo tagata taʻitoʻatasi Hi, aisea e le auina atu ai se faamaoniga lena nai lo

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

O le faʻafitauli e le mafai ona faia se faʻamaoniga e faʻaaoga ai le Schnorr Protocol aua e leai se tasi na te iloa le tau p (0), e manaʻomia e fatu ai le faʻamaoniga, ma o le a le mea e sili atu, o le generator numera faʻafuaseʻi atoa e faʻavae i luga o le mea moni e leai se tasi na te iloa lenei tau. O lea e tatau ai ona i ai uma tulaga taua Hi ma a latou molimau taitoatasi e faamaonia ai le sa'o H0.

Ae peita'i, afai na iai ni fa'agaioiga i luga o pito i luga o pupuni elliptic e tutusa tutusa ma le fa'ateleina, o le fa'amaoniga o le sa'o. H0 o le a le taua, o le a na ona tatou mautinoa lena mea

H0 × G = p(0)G × H

Afai e lagolagoina le pi'o ua filifilia fa'atasiga pupuni elliptic, e aoga lenei faamaoniga. I lenei tulaga H0 e le gata o le gaosiga o se generator numera faʻafuaseʻi, lea e mafai ona faʻamaonia e soʻo se tagata auai e iloa G, H и p(0)G. H0 o se saini foi i luga o le feʻau na faʻaaogaina o se fatu, faʻamaonia lena mea k и n na sainia e tagata auai lenei savali. O lea la, afai fatu - o le hash o le poloka i le poloka poloka, ona H0 ose saini e tele i luga ole poloka ma se numera fa'afuase'i lelei.

I le faaiuga

O lenei tusiga o se vaega o se faʻasologa o blog faʻapitoa Latalata. NEAR o se poloka poloka poloka ma faʻavae mo le atinaʻeina o faʻasalalauga faʻapitoa ma se faʻamamafa i le faigofie o le atinaʻe ma le faigofie o le faʻaogaina mo tagata faʻaoga.

O loʻo tatala le code protocol, o loʻo tusia la matou faʻatinoga i Rust, e mafai ona maua iinei.

E mafai ona e vaʻai pe o le a le atinaʻe mo NEAR foliga ma faʻataʻitaʻi ile IDE lugalaina iinei.

E mafai ona e mulimuli i tala fou uma i le gagana Rusia i vaega telegrama ma i totonu vaega ile VKontakte, ma le gagana Peretania i le ofisa aloaia Twitter.

Feiloai vavej!

puna: www.habr.com

Faaopoopo i ai se faamatalaga