Ṣe o ṣee ṣe lati ṣe ina awọn nọmba laileto ti a ko ba gbẹkẹle ara wa? Apa 2

Ṣe o ṣee ṣe lati ṣe ina awọn nọmba laileto ti a ko ba gbẹkẹle ara wa? Apa 2

Hey Habr!

В apakan akọkọ Ninu nkan yii, a jiroro idi ti o le jẹ pataki lati ṣe ina awọn nọmba laileto fun awọn olukopa ti ko gbẹkẹle ara wọn, awọn ibeere wo ni a gbe siwaju fun iru awọn olupilẹṣẹ nọmba ID, ati gbero awọn ọna meji si imuse wọn.

Ni apakan yii ti nkan naa, a yoo ṣe akiyesi ni pẹkipẹki ni ọna miiran ti o nlo awọn ibuwọlu ala.

A bit ti cryptography

Lati le ni oye bi awọn ibuwọlu ẹnu-ọna ṣe n ṣiṣẹ, o nilo lati ni oye kekere cryptography ipilẹ kan. A yoo lo awọn ero meji: scalars, tabi awọn nọmba larọwọto, eyiti a yoo tọka nipasẹ awọn lẹta kekere (x, y) ati awọn aaye lori ọna elliptic, eyiti a yoo tọka nipasẹ awọn lẹta nla.

Lati loye awọn ipilẹ ti awọn ibuwọlu ẹnu-ọna, iwọ ko nilo lati ni oye bii awọn iṣipa elliptic ṣe n ṣiṣẹ, yatọ si awọn ohun ipilẹ diẹ:

  1. Awọn aaye lori ọna elliptic le ṣe afikun ati isodipupo nipasẹ iwọn (a yoo tọka si isodipupo nipasẹ iwọn iwọn bi xG, biotilejepe akiyesi Gx tun nigbagbogbo lo ninu awọn litireso). Abajade ti afikun ati isodipupo nipasẹ scalar jẹ aaye kan lori ọna elliptic.

  2. Mọ nikan ojuami G ati awọn oniwe-ọja pẹlu kan scalar xG ko le ṣe iṣiro x.

A yoo tun lo imọran ti iloyepo kan p(x) ìyí k-1. Ni pataki, a yoo lo ohun-ini atẹle ti awọn ilopọpo: ti a ba mọ iye naa p(x) fun eyikeyi k Iwọn didun x (ati pe a ko ni alaye diẹ sii nipa p(x)), a le ṣe iṣiro p(x) fun elomiran x.

O jẹ iyanilenu pe fun eyikeyi iloyepo p(x) ati diẹ ninu awọn ojuami lori ti tẹ Gmọ itumo p(x)G fun eyikeyi k orisirisi itumo x, a tun le ṣe iṣiro p(x)G fun eyikeyi x.

Eyi jẹ alaye ti o to lati ma wà sinu awọn alaye ti bii awọn ibuwọlu ala ṣe n ṣiṣẹ ati bii o ṣe le lo wọn lati ṣe awọn nọmba laileto.

Olupilẹṣẹ nọmba ID lori awọn ibuwọlu ala

Jẹ ká sọ bẹ n olukopa fẹ lati se ina kan ID nọmba, ati awọn ti a fẹ ẹnikẹni lati kopa k nibẹ wà to ti wọn lati se ina nọmba kan, ṣugbọn ki awọn attackers ti o sakoso k-1 tabi diẹ ninu awọn olukopa ko le ṣe asọtẹlẹ tabi ni agba lori nọmba ti ipilẹṣẹ.

Ṣe o ṣee ṣe lati ṣe ina awọn nọmba laileto ti a ko ba gbẹkẹle ara wa? Apa 2

Ṣebi iru iloyepo kan wa p(x) ìyí k-1 ohun ti akọkọ alabaṣe mọ p (1), ekeji mọ p(2), ati bẹbẹ lọ (n- o mọ p(n)). A tun ro pe fun aaye ti a ti pinnu tẹlẹ G gbogbo eniyan mọ p(x)G fun gbogbo iye x. A yoo pe p(i) "ẹya ara ẹni" ialabaṣe th (nitori nikan ialabaṣe th mọ ọ), ati p(i)G "ẹya ara ilu" i-th alabaṣe (nitori gbogbo awọn olukopa mọ rẹ). Bi o ṣe ranti, imọ p(i)G ko to lati mu pada p(i).

Ṣiṣẹda iru iloyepo bẹ bẹ nikan i-Alabaṣe akọkọ ati pe ko si ẹnikan ti o mọ paati ikọkọ rẹ - eyi ni eka julọ ati apakan ti o nifẹ si ti ilana naa, ati pe a yoo ṣe itupalẹ rẹ ni isalẹ. Ni bayi, jẹ ki a ro pe a ni iru iloyepo ati gbogbo awọn olukopa mọ awọn paati ikọkọ wọn.

Bawo ni a ṣe le lo iru iloyepo kan lati ṣe ipilẹṣẹ nọmba laileto kan? Lati bẹrẹ pẹlu, a nilo diẹ ninu okun ti ko ti lo tẹlẹ bi titẹ si monomono. Ninu ọran ti blockchain, hash ti bulọọki ti o kẹhin h ni kan ti o dara tani fun iru ila. Jẹ ki awọn olukopa fẹ ṣẹda nọmba laileto nipa lilo h bi irugbin. Awọn olukopa yipada akọkọ h si aaye kan lori ohun ti tẹ nipa lilo iṣẹ asọye tẹlẹ:

H = scalarToPoint(h)

Lẹhinna alabaṣe kọọkan i iṣiro ati ki o jade Hi = p(i)H, kini wọn le ṣe nitori wọn mọ p (i) ati H. Ifihan HEmi ko gba laaye awọn alabaṣepọ miiran lati mu pada paati ikọkọ ith alabaṣe, ati nitorina ọkan ṣeto ti ikọkọ irinše le ṣee lo lati Àkọsílẹ lati dènà. Nitorinaa, algorithm iran ilopọ gbowolori ti a ṣalaye ni isalẹ nilo lati ṣiṣẹ ni ẹẹkan.

Nigbawo k awọn olukopa ti wa ni autopsied Hi = p(i)H, gbogbo eniyan le ṣe iṣiro Hx = p(x)H fun gbogbo x o ṣeun si ohun-ini ti polynomials ti a sọrọ ni apakan ti o kẹhin. Ni akoko yii, gbogbo awọn olukopa ṣe iṣiro H0 = p(0)H, ati yi ni Abajade ID nọmba. Jọwọ ṣe akiyesi pe ko si ẹnikan ti o mọ p(0), ati nitorina nikan ni ọna lati ṣe iṣiro p(0)H – eyi ni interpolation p(x)H, eyi ti o jẹ ṣee ṣe nikan nigbati k iye p(i)H mọ. Nsii eyikeyi kere opoiye p(i)H ko pese eyikeyi alaye nipa p(0)H.

Ṣe o ṣee ṣe lati ṣe ina awọn nọmba laileto ti a ko ba gbẹkẹle ara wa? Apa 2

Olupilẹṣẹ ti o wa loke ni gbogbo awọn ohun-ini ti a fẹ: awọn ikọlu ti n ṣakoso nikan k-1 olukopa tabi kere si ni ko si alaye tabi ipa lori ipari, nigba ti eyikeyi k olukopa le ṣe iṣiro awọn Abajade nọmba, ati eyikeyi ayosile ti k awọn olukopa yoo ma wa si esi kanna fun irugbin kanna.

Iṣoro kan wa ti a farabalẹ yago fun loke. Fun interpolation lati ṣiṣẹ, o jẹ pataki wipe iye Hi eyiti a tẹjade nipasẹ alabaṣe kọọkan i o gan je kanna p(i)H. Niwon ko si ọkan ayafi i-th alabaṣe ko mọ p(i), ko si ẹnikan ayafi i-alabaṣe ko le mọ daju pe Hi ni iṣiro gangan ni deede, ati laisi eyikeyi ẹri cryptographic ti o tọ Hi ohun attacker le jade eyikeyi iye bi hi, ati lainidii ni ipa lori abajade ti olupilẹṣẹ nọmba ID:

Ṣe o ṣee ṣe lati ṣe ina awọn nọmba laileto ti a ko ba gbẹkẹle ara wa? Apa 2Awọn iye oriṣiriṣi ti H_1 ti a firanṣẹ nipasẹ alabaṣe akọkọ yorisi iyatọ ti abajade H_0

O kere ju awọn ọna meji lo wa lati jẹri titọ Hi, a yoo ṣe akiyesi wọn lẹhin ti a ṣe itupalẹ iran ti ilopọ pupọ.

Ìran ọ̀pọ̀lọpọ̀

Ni apakan ti o kẹhin a ro pe a ni iru iloyepo kan p(x) ìyí k-1 wipe alabaṣe i mọ p(i), ko si si ọkan miran ni eyikeyi alaye nipa yi iye. Ni apakan atẹle a yoo tun nilo iyẹn fun aaye ti a ti pinnu tẹlẹ G gbogbo eniyan mọ p(x)G fun gbogbo x.

Ni apakan yii a yoo ro pe alabaṣe kọọkan ni agbegbe ni diẹ ninu bọtini ikọkọ x, iru awọn ti gbogbo eniyan mọ awọn ti o baamu àkọsílẹ bọtini Xi.

Ilana iran ilopọ pupọ ti o ṣeeṣe jẹ bi atẹle:

Ṣe o ṣee ṣe lati ṣe ina awọn nọmba laileto ti a ko ba gbẹkẹle ara wa? Apa 2

  1. Olukuluku alabaṣe i tibile ṣẹda ohun lainidii ilopọ pi (x) ìyí k-1. Nwọn ki o si fi kọọkan alabaṣe j itumo pi (j), ti paroko pẹlu bọtini gbangba Xj. Bayi nikan i-yy и j-yy alabaṣe mọ pi (j). Olukopa i tun kede ni gbangba pi (j) G fun gbogbo j lati 1 si k pẹlu.

  2. Gbogbo awọn olukopa lo diẹ ninu ipohunpo lati yan k awọn olukopa ti awọn oni-iye-iye yoo ṣee lo. Niwọn bi diẹ ninu awọn olukopa le wa ni aisinipo, a ko le duro titi gbogbo eniyan n awọn olukopa yoo ṣe atẹjade awọn ilopọ pupọ. Abajade igbesẹ yii jẹ eto kan Z ti o wa ninu o kere ju k ọpọlọpọ awọn nọmba ti a ṣẹda ni igbesẹ (1).

  3. Awọn olukopa rii daju pe awọn iye ti wọn mọ pi (j) badọgba lati kede ni gbangba pi (j) G. Lẹhin igbesẹ yii Z nikan polynomials fun eyi ti ni ikọkọ zqwq pi (j) badọgba lati kede ni gbangba pi (j) G.

  4. Olukuluku alabaṣe j iṣiro awọn oniwe-ikọkọ paati p(j) bi apao pi (j) fun gbogbo i в Z. Olukopa kọọkan tun ṣe iṣiro gbogbo awọn iye p(x)G bi apao pi (x) G fun gbogbo i в Z.

Ṣe o ṣee ṣe lati ṣe ina awọn nọmba laileto ti a ko ba gbẹkẹle ara wa? Apa 2

ṣe akiyesi pe p(x) – o jẹ pupọ pupọ k-1, nitori pe o jẹ apapọ ti ẹni kọọkan pi (x), ọkọọkan eyiti o jẹ iloyemeji ti alefa k-1. Lẹhinna, ṣe akiyesi pe lakoko ti alabaṣe kọọkan j mọ p(j), won ni ko si alaye nipa p(x) fun x ≠ j. Nitootọ, lati ṣe iṣiro iye yii, wọn nilo lati mọ ohun gbogbo pi(x), ati bi gun bi alabaṣe j ko mọ o kere ju ọkan ninu awọn polynomials ti a yan, wọn ko ni alaye to nipa p(x).

Eyi ni gbogbo ilana iran ilopọ ti o nilo ni apakan ti o kẹhin. Awọn igbesẹ 1, 2 ati 4 loke ni imuse ti o han gbangba. Ṣugbọn igbesẹ 3 kii ṣe ohun kekere.

Ni pataki, a nilo lati ni anfani lati fi mule pe fifi ẹnọ kọ nkan naa pi (j) gan ni ibamu si awọn ti a tẹjade pi (j) G. Ti a ko ba le fi mule o, awọn attacker i le fi idoti dipo pi (j) si alabaṣe j, ati alabaṣe j kii yoo ni anfani lati gba iye gidi pi(j), ati pe kii yoo ni anfani lati ṣe iṣiro paati ikọkọ rẹ.

Ilana cryptographic kan wa ti o fun ọ laaye lati ṣẹda ifiranṣẹ afikun kan proofi (j), iru awọn ti eyikeyi alabaṣe, nini diẹ ninu awọn iye e, bakanna ẹri (j) и pi (j) G, le rii daju ni agbegbe e - looto ni pi(j), ti paroko pẹlu bọtini alabaṣe j. Ni anu, awọn iwọn ti iru eri jẹ ti iyalẹnu tobi, ati fun wipe o jẹ pataki lati jade O(nk) Iru ẹri bẹẹ ko le ṣee lo fun idi eyi.

Dipo ki o fihan pe pi(j) ibamu pẹlu pi (j) G a le pin akoko pipẹ pupọ ninu ilana iran ilopọ, lakoko eyiti gbogbo awọn olukopa ṣayẹwo fifi ẹnọ kọ nkan ti o gba. pi(j), ati ti o ba ti decrypted ifiranṣẹ ko badọgba lati awọn àkọsílẹ pi(j)G, wọn ṣe atẹjade ẹri cryptographic kan pe ifiranṣẹ ti paroko ti wọn gba ko tọ. Jẹrisi pe ifiranṣẹ naa kii ṣe ibamu pẹlu pi(G) rọrun pupọ ju idaniloju pe o baamu. O yẹ ki o ṣe akiyesi pe eyi nilo alabaṣe kọọkan lati han lori ayelujara ni o kere ju ẹẹkan lakoko akoko ti a pin lati ṣẹda iru ẹri bẹ, ati pe o da lori ero pe ti wọn ba gbejade iru ẹri bẹẹ, yoo de ọdọ gbogbo awọn alabaṣepọ miiran ni akoko kanna ti a pin.

Ṣe o ṣee ṣe lati ṣe ina awọn nọmba laileto ti a ko ba gbẹkẹle ara wa? Apa 2

Ti alabaṣe kan ko ba han lori ayelujara lakoko akoko yii, ati pe o ni o kere ju paati kan ti ko tọ, lẹhinna alabaṣe yẹn pato kii yoo ni anfani lati kopa ninu iran nọmba siwaju sii. Ilana naa yoo, sibẹsibẹ, tun ṣiṣẹ ti o ba wa ni o kere ju k awọn olukopa ti o kan gba awọn paati to tọ tabi ṣakoso lati fi ẹri ti ko tọ silẹ laarin akoko ti a pin.

Awọn ẹri ti atunse ti H_i

Apakan ti o kẹhin ti o ku lati jiroro ni bii o ṣe le jẹrisi deede ti atẹjade Hemi, eyun pe Hi = p(i)H, laisi ṣiṣi p(i).

Jẹ ki a ranti pe awọn iye H, G, p(i)G gbangba ati ki o mọ si gbogbo eniyan. Gba isẹ p(i) mọ p(i)G и G ti a npe ni ọtọ logarithm, tabi ẹran ara, ati pe a fẹ lati fi mule pe:

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

laisi ifihan p(i). Awọn ikole fun iru awọn ẹri wa, fun apẹẹrẹ Ilana Schnorr.

Pẹlu apẹrẹ yii, alabaṣe kọọkan, pẹlu Hi firanṣẹ ẹri ti atunse ni ibamu si apẹrẹ.

Ni kete ti nọmba ID kan ba ti ipilẹṣẹ, o nilo nigbagbogbo lati lo nipasẹ awọn olukopa miiran ju awọn ti o ṣe ipilẹṣẹ. Iru awọn olukopa, pẹlu nọmba naa, gbọdọ fi gbogbo wọn ranṣẹ Hi ati ki o jẹmọ eri.

Oluka oniwadi le beere: niwon nọmba ID ti o kẹhin jẹ H0, ati p(0)G – Eyi jẹ alaye ti gbogbo eniyan, kilode ti a nilo ẹri fun ẹni kọọkan Hi, kilode ti o ko fi ẹri ranṣẹ pe dipo

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

Iṣoro naa ni pe iru ẹri bẹẹ ko le ṣẹda nipa lilo Ilana Schnorr nitori pe ko si ẹnikan ti o mọ iye naa p (0), pataki lati ṣẹda ẹri naa, ati kini diẹ sii, gbogbo olupilẹṣẹ nọmba ID da lori otitọ pe ko si ẹnikan ti o mọ iye yii. Nitorina o jẹ dandan lati ni gbogbo awọn iye Hi ati ẹri kọọkan wọn lati fi idi titọ H0.

Bibẹẹkọ, ti iṣẹ diẹ ba wa lori awọn aaye lori awọn igun elliptic ti o jọra ni itumọ si isodipupo, ẹri ti atunse H0 yoo jẹ bintin, a yoo kan rii daju wipe

H0 × G = p(0)G × H

Ti o ba ti yan ti tẹ atilẹyin elliptic ti tẹ pairings, Ẹri yii n ṣiṣẹ. Fun idi eyi H0 kii ṣe abajade ti olupilẹṣẹ nọmba ID nikan, eyiti o le jẹri nipasẹ eyikeyi alabaṣe ti o mọ G,H и p(0)G. H0 tun jẹ ibuwọlu lori ifiranṣẹ ti a lo bi irugbin, ti o jẹrisi iyẹn k и n awọn olukopa fowo si ifiranṣẹ yii. Nitorinaa, ti o ba irugbin - jẹ hash ti Àkọsílẹ ninu ilana blockchain, lẹhinna H0 jẹ mejeeji kan olona-Ibuwọlu lori kan Àkọsílẹ ati ki o kan gan ti o dara ID nọmba.

Ni ipari

Nkan yii jẹ apakan ti jara bulọọgi imọ-ẹrọ N FẸ. NEAR jẹ ilana ilana blockchain ati pẹpẹ fun idagbasoke awọn ohun elo isọdọtun pẹlu tcnu lori irọrun idagbasoke ati irọrun ti lilo fun awọn olumulo ipari.

Koodu Ilana naa ṣii, imuse wa ni kikọ ni Rust, o le rii nibi.

O le wo iru idagbasoke fun NEAR ati ṣe idanwo ni IDE ori ayelujara nibi.

O le tẹle gbogbo awọn iroyin ni Russian ni ẹgbẹ telegram ati ni ẹgbẹ VKontakte, ati ni English ni osise twitter.

Ma ri laipe!

orisun: www.habr.com

Fi ọrọìwòye kun