Shin zai yiwu a samar da lambobi bazuwar idan ba mu amince da juna ba? Kashi na 2

Shin zai yiwu a samar da lambobi bazuwar idan ba mu amince da juna ba? Kashi na 2

Hai Habr!

В bangare na farko A cikin wannan labarin, mun tattauna dalilin da ya sa zai zama dole don samar da lambobin bazuwar ga mahalarta waɗanda ba su amince da juna ba, menene buƙatun da aka gabatar don irin waɗannan masu samar da lambar bazuwar, kuma mun yi la'akari da hanyoyi biyu don aiwatar da su.

A cikin wannan ɓangaren labarin, za mu yi nazari sosai kan wata hanyar da ke amfani da sa hannun bakin kofa.

Kadan na cryptography

Don fahimtar yadda sa hannun bakin kofa ke aiki, kuna buƙatar fahimtar ɗan ƙaramin tushe na asali. Za mu yi amfani da ra'ayoyi guda biyu: scalars, ko kawai lambobi, waɗanda za mu nuna su ta ƙananan haruffa (x, y) da maki akan madaidaicin ellipse, wanda za mu yi nuni da su ta babban haruffa.

Don fahimtar mahimman abubuwan sa hannu na bakin kofa, ba kwa buƙatar fahimtar yadda masu lanƙwasa ellipse ke aiki, ban da wasu abubuwa na asali:

  1. Za'a iya ƙara maki akan lanƙwan elliptic kuma a ninka su ta hanyar sikeli (za mu nuna ninka ta hanyar sikeli kamar yadda. xG, kodayake abin lura Gx kuma ana yawan amfani da su a cikin adabi). Sakamakon ƙari da ninkawa ta hanyar sikeli shine aya akan lanƙwan ellipse.

  2. Sanin batu kawai G da samfurinsa tare da scalar xG ba za a iya lissafta ba x.

Za mu kuma yi amfani da manufar polynomial p (x) digiri k-1. Musamman, za mu yi amfani da dukiya mai zuwa na polynomials: idan mun san darajar p (x) ga kowa k daban-daban x (kuma ba mu da ƙarin bayani game da p (x)), za mu iya lissafta p (x) ga kowa x.

Yana da ban sha'awa cewa ga kowane polynomial p (x) kuma wani batu akan lankwasa Gsanin ma'anar p (x) G ga kowa k ma'anoni daban-daban x, za mu iya kuma lissafta p (x) G ga kowa x.

Wannan ya isa bayani don tono cikin cikakkun bayanai na yadda sa hannun bakin kofa ke aiki da yadda ake amfani da su don samar da lambobi bazuwar.

janareta na bazuwar lamba akan sa hannun bakin kofa

Bari mu ce haka n mahalarta suna son samar da lamba bazuwar, kuma muna son kowa ya shiga k akwai isassun su don samar da lamba, amma ta yadda maharan da ke sarrafa su kMahalarta 1 ko ƙasa da haka ba za su iya yin hasashen ko tasiri lambar da aka samar ba.

Shin zai yiwu a samar da lambobi bazuwar idan ba mu amince da juna ba? Kashi na 2

A ce akwai irin wannan polynomial p (x) digiri k-1 abin da mahalarta na farko ya sani p (1), na biyu ya sani p(2), da sauransu (n- ya sani p(n)). Muna kuma ɗauka cewa don wani ƙayyadaddun batu G kowa ya sani p (x) G ga dukkan dabi'u x. Za mu kira p(i) "bangaren sirri" ith mahalarta (saboda kawai iMahalarta th ta san ta), kuma p (i) G "bangaren jama'a" i- Mahalarta ta (saboda duk mahalarta sun san ta). Kamar yadda kuke tunawa, ilimi p (i) G bai isa ya dawo ba p(i).

Ƙirƙirar irin wannan polynomial don haka kawai i-Mahalarta na farko kuma babu wanda ya san abubuwan sirrinsa - wannan shine mafi rikitarwa kuma mai ban sha'awa na yarjejeniya, kuma za mu bincika a kasa. A yanzu, bari mu ɗauka cewa muna da irin wannan polynomial kuma duk mahalarta sun san abubuwan sirrinsu.

Ta yaya za mu yi amfani da irin wannan polynomial don samar da lambar bazuwar? Da farko, muna buƙatar wasu igiyoyi waɗanda ba a taɓa amfani da su azaman shigar da janareta ba. Game da blockchain, hash na toshe na ƙarshe h dan takara ne mai kyau ga irin wannan layin. Bari mahalarta su so ƙirƙirar lamba ta amfani da bazuwar h kamar iri. Mahalarta sun fara canzawa h zuwa wani batu akan lanƙwasa ta amfani da kowane aikin da aka riga aka ƙayyade:

H = scalarToPoint(h)

Sai kowane mahaluki i lissafta da bugawa Hi = p(i)H, me za su yi saboda sun sani p(i) da H. Bayyanawa Hban ƙyale sauran mahalarta su dawo da abubuwan sirri ba iMahalarta, sabili da haka ana iya amfani da saiti ɗaya na abubuwan sirri daga toshe zuwa toshe. Don haka, ƙayyadaddun ƙayyadaddun ƙayyadaddun ƙayyadaddun ƙayyadaddun ƙira da aka kwatanta a ƙasa yana buƙatar aiwatar da sau ɗaya kawai.

Lokacin k An gano gawarwakin mahalartan Hi = p(i)H, kowa na iya lissafta Hx = ba p (x) H domin duka x godiya ga dukiyar polynomials da muka tattauna a cikin sashe na ƙarshe. A wannan lokacin, duk mahalarta suna lissafin H0 = p(0)H, kuma wannan shine sakamakon bazuwar lamba. Lura cewa babu wanda ya sani p(0), sabili da haka hanya daya tilo ta lissafta p (0) H- wannan shi ne interpolation p (x) H, wanda zai yiwu ne kawai lokacin da k dabi'u p (i) H sani. Bude kowane ƙaramin adadi p (i) H ba ya bayar da wani bayani game da p(0)H.

Shin zai yiwu a samar da lambobi bazuwar idan ba mu amince da juna ba? Kashi na 2

Janareta na sama yana da duk kaddarorin da muke so: maharan suna sarrafa kawai k-Mahalarta 1 ko ƙasa da haka ba su da wani bayani ko tasiri akan ƙarshe, yayin da kowane k mahalarta zasu iya lissafin sakamakon lambar, da kowane ɓangaren k mahalarta koyaushe za su zo ga sakamako iri ɗaya don iri ɗaya.

Akwai matsala daya da muka kauce a hankali a sama. Don interpolation don aiki, yana da mahimmanci cewa ƙimar Hi wanda kowane ɗan takara ya buga i da gaske ya kasance p (i) H. Tunda babu kowa sai i- Mahalarta ba ta sani ba p(i), babu kowa sai i-Mahalarcin ba zai iya tabbatar da hakan ba Hi a zahiri an ƙididdige su daidai, kuma ba tare da wata hujja ta sirri ba Hi mai hari na iya buga kowace ƙima kamar Hi, kuma suna yin tasiri ga fitowar janareta na lambar bazuwar:

Shin zai yiwu a samar da lambobi bazuwar idan ba mu amince da juna ba? Kashi na 2Daban-daban dabi'u na H_1 wanda mahalarta na farko ya aiko suna haifar da sakamako daban-daban na H_0

Akwai aƙalla hanyoyi biyu don tabbatar da daidaito Hi, za mu yi la'akari da su bayan mun yi nazarin ƙarni na polynomial.

Yawancin tsararraki

A cikin sashe na ƙarshe mun ɗauka cewa muna da irin wannan polynomial p (x) digiri k-1 cewa mahalarta i sani p(i), kuma babu wanda ke da wani bayani game da wannan darajar. A cikin sashe na gaba kuma za mu buƙaci hakan don wani ƙayyadadden batu G kowa ya sani p (x) G domin duka x.

A cikin wannan sashe za mu ɗauka cewa kowane ɗan takara a gida yana da wasu maɓalli na sirri xi, kamar yadda kowa ya san maɓalli na jama'a daidai Xi.

Ɗaya mai yuwuwar ƙa'idar tsarar ɗabi'a ita ce kamar haka:

Shin zai yiwu a samar da lambobi bazuwar idan ba mu amince da juna ba? Kashi na 2

  1. Kowane ɗan takara i a cikin gida yana haifar da yawan sabani pi(x) digiri k-1. Sai su aika kowane mahaluki j ma'ana pi(j), rufaffen maɓalli na jama'a Xj. Don haka kawai i-th и j-th mahalarta sani pina (j). Mahalarta i kuma yana sanar da jama'a pi (j) G domin duka j daga 1 to k hada.

  2. Duk mahalarta suna amfani da wasu yarjejeniya don zaɓar k mahalarta waɗanda za a yi amfani da yawan adadinsu. Tunda wasu mahalarta suna iya yin layi, ba za mu iya jira sai kowa ba n mahalarta za su buga polynomials. Sakamakon wannan mataki shine saiti Z wanda ya kunshi akalla k polynomials halitta a mataki (1).

  3. Mahalarta suna tabbatar da cewa ƙimar da suka sani pi (j) daidai da sanar da jama'a pi (j) G. Bayan wannan mataki Z kawai nau'i-nau'i masu yawa waɗanda aka aika ta sirri pi (j) daidai da sanar da jama'a pi (j) G.

  4. Kowane ɗan takara j yana lissafin abubuwan sirrinsa p(j) a matsayin jimla pi (j) ga kowa da kowa i в Z. Kowane ɗan takara kuma yana ƙididdige duk ƙimar p (x) G a matsayin jimla pi (x) G ga duk i в Z.

Shin zai yiwu a samar da lambobi bazuwar idan ba mu amince da juna ba? Kashi na 2

lura da cewa p(x) - da gaske polynomial ne k-1, domin jimlar mutum ce pi(x), kowanne daga cikinsu yana da nau'ikan digiri k-1. Sa'an nan, lura cewa yayin da kowane ɗan takara j sani p(j), ba su da wani bayani game da su p (x) to x ≠ j. Lallai, don ƙididdige wannan ƙimar, suna buƙatar sanin komai pi(x), kuma idan dai har mahalarci j bai san aƙalla ɗaya daga cikin zaɓaɓɓun polynomials ba, ba su da isasshen bayani game da su p(x).

Wannan shi ne gaba dayan tsarin tsara tsararrun mutane da ake buƙata a sashe na ƙarshe. Matakai na 1, 2 da 4 na sama suna da ingantaccen aiwatarwa. Amma mataki na 3 ba karamin abu bane.

Musamman, muna buƙatar mu iya tabbatar da cewa rufaffen pi (j) yayi daidai da waɗanda aka buga pi (j) G. Idan ba za mu iya tabbatar da shi ba, maharin i na iya aika datti maimakon pi (j) ga mahalarta j, kuma mahalarta j ba zai iya samun ainihin ƙimar ba pi (j), kuma ba zai iya lissafin abubuwan sirrinsa ba.

Akwai ƙa'idar cryptographic wanda ke ba ku damar ƙirƙirar ƙarin saƙo hujjai(j), kamar kowane ɗan takara, yana da ɗan ƙima e, da kuma hujja (j) и pi(j)G, na iya tabbatar da hakan a cikin gida e - yana da gaske pi (j), rufaffiyar tare da maɓallin mahalarta j. Abin takaici, girman irin waɗannan shaidun yana da girma da yawa, kuma an ba da cewa ya zama dole a buga O(nk) Ba za a iya amfani da irin wannan shaida don wannan dalili ba.

Maimakon tabbatar da hakan pi (j) соответствует pi(j) G za mu iya keɓance babban lokaci mai yawa a cikin ka'idar tsara tsarar jama'a, yayin da duk mahalarta ke bincika rufaffen da aka karɓa. pi (j), kuma idan saƙon da aka ɓoye bai dace da jama'a ba pi(j)G, suna buga bayanan sirrin cewa saƙon da aka ɓoye ba daidai ba ne. Tabbatar da cewa sakon ba соответствует pi(G) ya fi sauƙi fiye da tabbatar da cewa ya dace. Ya kamata a lura cewa wannan yana buƙatar kowane ɗan takara ya bayyana a kan layi aƙalla sau ɗaya a cikin lokacin da aka ba da izini don ƙirƙirar irin wannan shaida, kuma ya dogara da zaton cewa idan sun buga irin wannan hujja, zai isa ga duk sauran mahalarta a cikin lokaci guda.

Shin zai yiwu a samar da lambobi bazuwar idan ba mu amince da juna ba? Kashi na 2

Idan ɗan takara bai bayyana akan layi ba a wannan lokacin, kuma yana da aƙalla ɓangaren da ba daidai ba, to wannan ɗan takara na musamman ba zai iya shiga cikin ƙarin tsara lamba ba. Ƙa'idar za ta, duk da haka, tana aiki idan akwai aƙalla k mahalarta waɗanda ko dai kawai sun sami daidaitattun abubuwan da aka gyara ko kuma sun sami damar barin shaidar rashin kuskure a cikin lokacin da aka ware.

Tabbatattun daidaito na H_i

Bangare na karshe da ya rage da za a tattauna shi ne yadda za a tabbatar da ingancin da aka buga Hi, wato haka Hi = p(i)H, ba tare da budewa ba p(i).

Bari mu tuna cewa dabi'u H, G, p(i) G jama'a kuma kowa ya sani. Karɓi aiki p(i) sani p (i) G и G ake kira discrete logarithm, ko ganduje, kuma muna son tabbatar da cewa:

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

ba tare da bayyanawa ba p(i). Ana yin gine-gine don irin waɗannan hujjoji, alal misali Schnorr Protocol.

Tare da wannan zane, kowane ɗan takara, tare da Hi aika da hujja na daidaito bisa ga zane.

Da zarar an sami lambar bazuwar, sau da yawa tana buƙatar mahalarta su yi amfani da ita banda waɗanda suka ƙirƙira ta. Irin waɗannan mahalarta, tare da lambar, dole ne su aika duka Hi da hujjoji masu alaka.

Mai karatu mai tambaya na iya tambaya: tunda lambar bazuwar ta ƙarshe ita ce H0, kuma p(0) G - Wannan bayanin jama'a ne, me yasa muke buƙatar hujja ga kowane mutum Hni, me zai hana a aiko da hujjar hakan maimakon haka

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

Matsalar ita ce ba za a iya ƙirƙirar irin wannan hujja ta amfani da ka'idar Schnorr ba saboda babu wanda ya san darajar p (0), wajibi ne don ƙirƙirar hujja, kuma abin da ya fi haka, gaba ɗaya janareta na lambar bazuwar ya dogara ne akan gaskiyar cewa babu wanda ya san wannan darajar. Don haka wajibi ne a sami dukkan dabi'u Hi da kuma shaidarsu ɗaya don tabbatar da daidaito H0.

Koyaya, idan akwai wasu aiki akan maki akan maɓallan ellipse waɗanda ke da kamanceceniya da ma'ana da ninkawa, tabbacin daidaito. H0 zai zama maras muhimmanci, kawai za mu tabbatar da hakan

H0 × G = p(0)G × H

Idan zaɓaɓɓen lanƙwan yana goyan bayan elliptic lankwasa pairings, wannan hujja tana aiki. A wannan yanayin H0 ba kawai fitar da janareta na lambar bazuwar ba ne, wanda kowane ɗan takara da ya sani zai iya tabbatarwa. G, H и p (0) G. H0 kuma sa hannu ne akan saƙon da aka yi amfani da shi azaman iri, yana tabbatar da hakan k и n mahalarta sun sanya hannu kan wannan sakon. Don haka, idan iri - shine hash na toshe a cikin ka'idar blockchain, to H0 duka sa hannu ne da yawa akan toshe kuma lambar bazuwar mai kyau ce.

A ƙarshe

Wannan labarin wani bangare ne na jerin bulogi na fasaha KYAU. NEAR ƙa'idar blockchain ce da dandamali don haɓaka aikace-aikacen da ba a daidaita su tare da mai da hankali kan sauƙin haɓakawa da sauƙin amfani ga masu amfani da ƙarshe.

Lambar ka'ida tana buɗe, an rubuta aiwatar da mu a cikin Rust, ana iya samun shi a nan.

Kuna iya ganin yadda ci gaban NEAR yayi kama da gwaji a cikin IDE na kan layi a nan.

Kuna iya bin duk labarai cikin Rashanci a group telegram da kuma cikin kungiyar VKontakte, kuma a cikin Ingilishi a cikin hukuma twitter.

Sai anjima!

source: www.habr.com

Add a comment