Ọ ga-ekwe omume ịmepụta ọnụọgụ ọnụọgụ ma ọ bụrụ na anyị atụkwasịghị ibe anyị obi? Akụkụ 2

Ọ ga-ekwe omume ịmepụta ọnụọgụ ọnụọgụ ma ọ bụrụ na anyị atụkwasịghị ibe anyị obi? Akụkụ 2

Ndewo, Habr!

В akụkụ mbụ N'isiokwu a, anyị tụlere ihe mere ọ ga-eji dị mkpa ịmepụta ọnụọgụ ọnụọgụ maka ndị sonyere na-atụkwasịghị ibe ha obi, ihe ndị a chọrọ maka ndị na-emepụta ọnụọgụ ọnụọgụ, ma tụlee ụzọ abụọ maka mmejuputa ha.

N'akụkụ a nke isiokwu a, anyị ga-elebakwu anya n'ụzọ ọzọ nke na-eji mbinye aka ọnụ ụzọ.

Obere nzuzo

Iji ghọta ka mbinye aka ọnụ ụzọ si arụ ọrụ, ịkwesịrị ịghọta ntakịrị ihe nzuzo nzuzo. Anyị ga-eji echiche abụọ: scalars, ma ọ bụ naanị ọnụọgụ, nke anyị ga-egosipụta site na mkpụrụedemede obere (x, y) na isi ihe n'usoro elliptik, nke anyị ga-egosipụta site na mkpụrụedemede ukwu.

Iji ghọta isi mmalite nke mbinye aka ọnụ ụzọ, ọ dịghị mkpa ka ị ghọta ka elliptical curves si arụ ọrụ, karịa ihe ole na ole bụ isi:

  1. Enwere ike ịgbakwunye ma mụbaa ihe dị n'akụkụ akụkụ elliptik site na scalar (anyị ga-egosipụta mmụba site na scalar dị ka). xG, n'agbanyeghị ọkwa Gx a na-ejikarị eme ihe na akwụkwọ). Nsonaazụ nke mgbakwunye na ịba ụba site na scalar bụ isi ihe dị na akụkụ elliptik.

  2. Ịmara naanị isi ihe G na ngwaahịa ya nwere scalar xG enweghị ike ịgbakọ x.

Anyị ga-ejikwa echiche nke polynomial p(x) ogo k-1. Karịsịa, anyị ga-eji ihe onwunwe na-esonụ nke polynomials: ọ bụrụ na anyị maara uru p(x) maka nke ọ bụla k dị iche iche x (na anyị enweghị ozi ọzọ gbasara p(x)), anyị nwere ike gbakọọ p(x) maka onye ọ bụla ọzọ x.

Ọ na-adọrọ mmasị na ọ bụla polynomial p(x) na ụfọdụ isi na akụkụ Gịmata ihe ọ pụtara p(x)G maka nke ọ bụla k dị iche iche pụtara x, anyị nwekwara ike gbakọọ p(x)G maka nke ọ bụla x.

Nke a bụ ozi zuru ezu iji gwuo nkọwa nke ka mbinye aka ọnụ ụzọ si arụ ọrụ yana otu esi eji ha mepụta ọnụọgụ enweghị usoro.

generator nọmba random na mbinye aka ngafe

Ka anyị kwuo nke ahụ n Ndị sonyere chọrọ ịmepụta nọmba enweghị usoro, anyị chọkwara ka onye ọ bụla sonye k enwere ezuru ha iji wepụta ọnụọgụgụ, mana nke mere na ndị mwakpo na-achịkwa k-1 ma ọ bụ ole na ole so na ya enweghị ike ịkọ ma ọ bụ imetụta ọnụọgụgụ emepụtara.

Ọ ga-ekwe omume ịmepụta ọnụọgụ ọnụọgụ ma ọ bụrụ na anyị atụkwasịghị ibe anyị obi? Akụkụ 2

Ka e were ya na enwere polynomial dị otú ahụ p(x) ogo k-1 ihe onye mbụ so na ya maara p (1), nke abụọ maara p(2), were gabazie (n- nke maara p(n)). Anyị na-ewerekwa nke ahụ maka isi ihe eburu ụzọ kpebie G onye ọ bụla maara p(x)G maka ụkpụrụ niile x. Anyị ga-akpọ p(i) "ihe nkeonwe" ionye so na ya (n'ihi na naanị ionye so na ya maara ya), na p(i)G "Ihe gbasara ọha" i-th soò (n'ihi na ndị niile sonyere mara ya). Dị ka ị na-echeta, ihe ọmụma p(i)G ezughi oke iweghachi p(i).

Ịmepụta ụdị polynomial dị otú ahụ ka ọ bụrụ naanị i-Onye mbụ so na ya na ọ dịghị onye ọzọ maara ihe nzuzo ya - nke a bụ akụkụ kachasị mgbagwoju anya na nke na-adọrọ mmasị nke protocol, anyị ga-enyocha ya n'okpuru. Maka ugbu a, ka anyị chee na anyị nwere ụdị polynomial dị otú ahụ na ndị niile sonyere maara ihe nzuzo ha.

Kedu otu anyị ga-esi jiri ụdị polynomial dị otú ahụ wepụta nọmba enweghị usoro? Iji malite, anyị chọrọ ụfọdụ eriri nke ejibughi dị ka ntinye na generator. N'ihe banyere blockchain, hash nke ngọngọ ikpeazụ h bụ ezigbo onye ndoro-ndoro maka ahịrị dị otú ahụ. Mee ka ndị sonyere chọrọ ịmepụta nọmba enweghị usoro iji h dị ka mkpụrụ. Ndị sonyere na-atụgharị na mbụ h ruo n'ókè n'usoro site na iji ọrụ ọ bụla akọpụtagoro:

H = scalarToPoint(h)

Mgbe ahụ onye ọ bụla so na ya i gbakọọ ma na-ebipụta Ndewo = p(i)H, gịnị ka ha ga-eme n'ihi na ha maara p (i) na H. Nkpughe HAnaghị m ekwe ka ndị ọzọ sonyere weghachi akụrụngwa nkeonwe ionye so na ya, ya mere enwere ike iji otu ihe nkeonwe site na ngọngọ na-egbochi. Ya mere, algọridim ọgbọ polynomial dị oke ọnụ akọwara n'okpuru kwesịrị ka e gbuo naanị otu ugboro.

Mgbe k Achọpụtara ndị sonyere ya Ndewo = p(i)H, onye ọ bụla nwere ike gbakọọ Hx = p (x) H maka mmadu niile x ekele maka ihe onwunwe nke polynomials nke anyị tụlere na ngalaba ikpeazụ. N'oge a, ndị niile sonyere na-agbakọ H0 = p(0)H, ma nke a bụ ọnụọgụ ọnụọgụ nke pụtara. Biko mara na ọ nweghị onye maara p(0), ya mere naanị ụzọ gbakọọ p (0) H- Nke a bụ interpolation p(x)H, nke ga-ekwe omume naanị mgbe k ụkpụrụ p (i) H mara. Na-emepe ọnụọgụ ọ bụla pere mpe p (i) H anaghị enye ozi ọ bụla gbasara p (0) H.

Ọ ga-ekwe omume ịmepụta ọnụọgụ ọnụọgụ ma ọ bụrụ na anyị atụkwasịghị ibe anyị obi? Akụkụ 2

Igwe ọkụ dị n'elu nwere ihe niile anyị chọrọ: ndị na-awakpo na-achịkwa naanị k-Ndị sonyere 1 ma ọ bụ obere enweghị ozi ma ọ bụ mmetụta na nkwubi okwu, ebe ọ bụla k ndị sonyere nwere ike gbakọọ nọmba ga-apụta, yana mpaghara ọ bụla nke k Ndị sonyere ga na-abịa n'otu nsonaazụ maka otu mkpụrụ.

O nwere otu nsogbu anyị ji nlezianya zere n'elu. N'ihi na interpolation na-arụ ọrụ, ọ dị mkpa na uru Hm nke onye ọ bụla so na ya bipụtara i ọ bụ n'ezie otu ihe ahụ p (i) H. Ebe ọ bụ na ọ dịghị onye ma e wezụga i-onye so na ya amaghi p(i), ọ dịghị onye ma e wezụga i-Onye so na ya enweghị ike ịchọpụta nke ahụ Hi n'ezie gbakọọ nke ọma, na-enweghị ihe ọ bụla cryptographic akaebe nke izi ezi Hm onye na-awakpo nwere ike ibipụta uru ọ bụla dị ka Hi, na-akpa ike na-emetụta mmepụta nke ọnụọgụ ọnụọgụgụ:

Ọ ga-ekwe omume ịmepụta ọnụọgụ ọnụọgụ ma ọ bụrụ na anyị atụkwasịghị ibe anyị obi? Akụkụ 2Ụkpụrụ dị iche iche nke H_1 zitere nke onye mbụ so na ya na-ebute ụzọ dị iche iche H_0

Enwere opekata mpe ụzọ abụọ iji gosi izi ezi Hm, anyị ga-atụle ha mgbe anyị nyochachara ọgbọ nke polynomial.

Ọgbọ polynomial

Na ngalaba ikpeazụ anyị chere na anyị nwere ụdị polynomial dị otú ahụ p(x) ogo k-1 na onye so na ya i mara p(i), na ọ dịghị onye ọzọ nwere ozi ọ bụla gbasara uru a. N'akụkụ nke na-esote anyị ga-achọkwa nke ahụ maka ụfọdụ ebe a kara aka G onye ọ bụla maara p(x)G maka mmadu niile x.

N'akụkụ a, anyị ga-eche na onye ọ bụla so na ya nwere igodo nzuzo xi, nke mere na onye ọ bụla maara igodo ọha kwekọrọ Xi.

Otu protocol ọgbọ nke polynomial nwere ike ịbụ nke a:

Ọ ga-ekwe omume ịmepụta ọnụọgụ ọnụọgụ ma ọ bụrụ na anyị atụkwasịghị ibe anyị obi? Akụkụ 2

  1. Onye ọ bụla so na ya i na mpaghara na-emepụta polynomial aka ike pi(x) ogo k-1. Ha na-eziga onye ọ bụla so na ya j pụtara pi(j), jiri igodo ọha ezoro ezo Xj. Ya mere naanị i-y и j-y sonye mara pi (j). Onye so na ya i na-ekwupụtakwa n'ihu ọha pi (j) G maka mmadu niile j si 1 ka k yana idobe okirikiri.

  2. Ndị niile sonyere na-eji ụfọdụ nkwenye ahọrọ k Ndị sonyere nke a ga-eji polynomials ha mee ihe. Ebe ụfọdụ ndị sonyere nwere ike ịnọghị n'ịntanetị, anyị enweghị ike ichere ruo mgbe onye ọ bụla n ndị sonyere ga-ebipụta polynomials. Nsonaazụ nke nzọụkwụ a bụ setịpụ Z mejupụtara dịkarịa ala k polynomials emebere na nzọụkwụ (1).

  3. Ndị sonyere na-ahụ na ụkpụrụ ha maara pi(j) kwekọrịtara na ọkwa ọha pi (j) G. Mgbe nzọụkwụ a gachara Z naanị polynomials nke ebutere na nzuzo pi(j) kwekọrịtara na ọkwa ọha pi (j) G.

  4. Onye ọ bụla so na ya j na-agbakọ akụrụngwa nke onwe ya p(j) dị ka nchikota pi (j) maka mmadụ niile i в Z. Onye ọ bụla so na ya na-agbakọ ụkpụrụ niile p(x)G dị ka nchikota pi(x)G maka m niile в Z.

Ọ ga-ekwe omume ịmepụta ọnụọgụ ọnụọgụ ma ọ bụrụ na anyị atụkwasịghị ibe anyị obi? Akụkụ 2

rụba nke ahụ ama p(x) - ọ bụ n'ezie a polynomial k-1, n'ihi na ọ bụ nchikota nke onye pi(x), nke ọ bụla n'ime ha bụ polynomial nke ogo k-1. Mgbe ahụ, mara na mgbe onye ọ bụla so na ya j mara p(j), ha enweghị ozi gbasara p(x) n'ihi na x ≠ j. N'ezie, iji gbakọọ uru a, ha kwesịrị ịma ihe niile pi(x), na ọ bụrụhaala na onye so na ya j amaghị ma ọ dịkarịa ala otu n'ime polynomials ahọpụtara, ha enweghị ozi zuru oke gbasara p (x).

Nke a bụ usoro ọgbọ polynomial dum nke achọrọ na ngalaba ikpeazụ. Nzọụkwụ 1, 2 na 4 dị n'elu nwere mmejuputa doro anya doro anya. Mana nzọụkwụ 3 abụghị obere ihe.

Kpọmkwem, anyị kwesịrị inwe ike igosipụta nke ahụ ezoro ezo pi(j) n'ezie kwekọrọ na ndị e bipụtara pi (j) G. Ọ bụrụ na anyị enweghị ike igosi ya, onye na-awakpo i nwere ike izipu ihe mkpofu kama pi (j) na nsonye j, na onye so na ya j agaghị enwe ike ị nweta ezi ihe ọ pụtara pi (j), ma agaghị enwe ike ịgbakọ akụrụngwa nkeonwe ya.

Enwere protocol cryptographic nke na-enye gị ohere ịmepụta ozi ọzọ àmài(j), dị ka onye ọ bụla so na ya, nwere ụfọdụ uru e, ka ihe akaebe (j) и pi(j)G, nwere ike nyochaa na mpaghara e - ọ bụ n'ezie pi (j), ezoro ezo na igodo onye so na ya j. N'ụzọ dị mwute, size nke ndị dị otú ahụ na-egosi bụ incredibly nnukwu, na nyere na ọ dị mkpa na-ebipụta O(nk) Enweghị ike iji ihe akaebe dị otú ahụ mee ihe maka nke a.

Kama igosi nke ahụ pi(j) kwekọrọ pi (j) G anyị nwere ike iwepụta oge buru ibu na protocol ọgbọ polynomial, nke ndị niile sonyere na-elele ezoro ezo natara. pi (j), na ọ bụrụ na decrypted ozi adịghị adabara ọha pi(j)G, ha na-ebipụta ihe akaebe cryptographic na ozi ezoro ezo ha nwetara ezighi ezi. Gosipụta na ozi ahụ bụghị kwekọrọ pi(G) dị mfe karịa igosi na ọ dabara. Ekwesiri ighota na nke a choro onye o bula so na ya ka oputa na intaneti opekata mpe otu oge n'oge ekenyere iji mepụta ihe akaebe di otua, ma dabere n'echiche na oburu na ha biputa ihe akaebe di otua, o ga-erute ndi ozo nile n'otu oge.

Ọ ga-ekwe omume ịmepụta ọnụọgụ ọnụọgụ ma ọ bụrụ na anyị atụkwasịghị ibe anyị obi? Akụkụ 2

Ọ bụrụ na onye so na ya egosighi na ntanetị n'oge oge a, ma o nwere opekata mpe otu akụrụngwa na-ezighi ezi, mgbe ahụ, onye so na ya agaghị enwe ike isonye na ọgbọ ọzọ. Protocol ga, agbanyeghị, ka na-arụ ọrụ ma ọ bụrụ na enwere opekata mpe k ndị sonyere bụ ndị natara naanị ihe ndị ziri ezi ma ọ bụ jisiri ike hapụ ihe akaebe nke ezighi ezi n'ime oge enyere.

Ihe akaebe nke izi ezi nke H_i

Akụkụ ikpeazụ nke fọdụrụ ka a ga-atụle bụ otu esi egosipụta izi ezi nke ebipụtara Hm, ya bụ nke ahụ Ndewo = p(i)H, na-enweghị oghere p(i).

Ka anyị cheta na ụkpụrụ H, G, p(i)G ọha na eze mara onye ọ bụla. Nata ọrụ p(i) ịmara p(i)G и G akpọrọ discrete logarithm, ma ọ bụ dlog, ma anyị chọrọ igosi na:

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

na-enweghị ngosi p(i). Ihe owuwu maka ihe akaebe dị otú ahụ dị, dịka ọmụmaatụ Usoro nke Schnorr Protocol.

Site na imewe a, onye ọ bụla so na ya, yana Hi na-eziga ihe akaebe nke izi ezi dịka nhazi ahụ si dị.

Ozugbo emere nọmba enweghị usoro, ọ na-adị mkpa ka ndị sonyere na-eji ya na-abụghị ndị mepụtara ya. Ndị otu dị otú ahụ, yana ọnụ ọgụgụ ahụ, ga-ezigarịrị mmadụ niile Hi na ihe akaebe metụtara ya.

Onye na-agụ ajụjụ nwere ike ịjụ: ebe ọ bụ na ọnụọgụ ọnụọgụ ikpeazụ bụ H0, na p(0)G- Nke a bụ ozi ọha, gịnị kpatara anyị ji chọọ ihe akaebe maka onye ọ bụla Hm, gịnị ma ị zipu ihe akaebe na kama

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

Nsogbu bụ na enweghị ike ịmepụta ihe akaebe dị otú ahụ site na iji Schnorr Protocol n'ihi na ọ dịghị onye maara uru ọ bara p (0), dị mkpa iji mepụta ihe akaebe, na ihe ọzọ, dum random nọmba generator dabeere n'eziokwu na ọ dịghị onye maara nke a uru. Ya mere ọ dị mkpa inwe ụkpụrụ niile Hi na ihe akaebe ha n'otu n'otu iji gosi izi ezi H0.

Otú ọ dị, ọ bụrụ na e nwere ụfọdụ ọrụ na isi ihe na elliptik akụkụ nke na semantally yiri multiplication, ihe akaebe nke izi ezi. H0 ga-abụ ihe na-adịghị mkpa, anyị ga-nnọọ ijide n'aka na

H0 × G = p(0)G × H

Ọ bụrụ na akụkụ ahọpụtara na-akwado elliptik curve pairings, ihe akaebe a na-arụ ọrụ. N'okwu a H0 abụghị naanị mmepụta nke generator nọmba random, nke onye ọ bụla so na ya maara nwere ike nyochaa ya. G, H и p(0)G. H0 bụkwa mbinye aka na ozi nke ejiri dị ka mkpụrụ, na-akwado nke ahụ k и n ndị sonyere bịanyere aka na ozi a. Ya mere, ọ bụrụ mkpụrụ - bụ hash nke ngọngọ na blockchain protocol, mgbe ahụ H0 bụ ma a multi-mbinye aka na ngọngọ na ezigbo nọmba random.

N'ikpeazụ

Edemede a bụ akụkụ nke usoro blọọgụ teknụzụ NEAR. NEAR bụ usoro blockchain na ikpo okwu maka ịmepụta ngwa ndị etinyere n'otu n'otu na-emesi ike na ịdị mfe nke mmepe yana ịdị mfe iji maka ndị ọrụ njedebe.

The protocol code na-emeghe, anyị mmejuputa iwu e dere na Rust, ọ nwere ike ịchọta ebe a.

Ị nwere ike ịhụ ihe mmepe maka NEAR dị ka wee nwalee na IDE dị n'ịntanetị ebe a.

Ị nwere ike soro akụkọ niile na Russian na otu telegram na na otu na VKontakte, na n'asụsụ Bekee n'asụsụ gọọmentị twitter.

Ka ahụ oge n'adịghị anya!

isi: www.habr.com

Tinye a comment