Nws puas tuaj yeem tsim cov lej sib txawv yog tias peb tsis ntseeg ib leeg? Ntu 2

Nws puas tuaj yeem tsim cov lej sib txawv yog tias peb tsis ntseeg ib leeg? Ntu 2

Hlo Habr!

В thawj ntu Hauv tsab xov xwm no, peb tau tham txog vim li cas nws yuav tsim nyog los tsim cov lej sib txawv rau cov neeg koom nrog uas tsis ntseeg ib leeg, dab tsi yuav tsum tau muab tso rau pem hauv ntej rau cov khoom siv hluav taws xob random, thiab txiav txim siab ob txoj hauv kev rau lawv txoj kev siv.

Hauv ib feem ntawm tsab xov xwm no, peb yuav ua tib zoo saib lwm txoj hauv kev uas siv qhov pib kos npe.

Ib me ntsis ntawm cryptoography

Txhawm rau kom nkag siab txog qhov pib kos npe ua haujlwm li cas, koj yuav tsum nkag siab me ntsis kev nkag mus rau crypto txiaj. Peb yuav siv ob lub ntsiab lus: scalars, lossis cov lej yooj yim, uas peb yuav qhia los ntawm cov tsiaj ntawv me (x, y) thiab cov ntsiab lus ntawm qhov nkhaus elliptic, uas peb yuav qhia los ntawm cov tsiaj ntawv loj.

Yuav kom nkag siab txog cov hauv paus ntawm kev kos npe kos npe, koj tsis tas yuav nkag siab tias elliptic curves ua haujlwm li cas, tsis yog ob peb yam yooj yim:

  1. Cov ntsiab lus ntawm ib qho elliptic nkhaus tuaj yeem muab ntxiv thiab muab faib los ntawm ib qho scalar (peb yuav qhia qhov sib npaug los ntawm qhov ntsuas raws li xG, txawm tias lub cim Gx kuj feem ntau siv nyob rau hauv cov ntaub ntawv). Qhov tshwm sim ntawm qhov sib ntxiv thiab sib npaug los ntawm ib qho scalar yog ib qho taw tes ntawm qhov nkhaus elliptic.

  2. Paub qhov ntsiab lus xwb G thiab nws cov khoom nrog scalar xG xam tsis tau x.

Peb kuj yuav siv lub tswvyim ntawm ib tug polynomial p(x) degree k-1. Tshwj xeeb, peb yuav siv cov cuab yeej hauv qab no ntawm polynomials: yog tias peb paub tus nqi p(x) rau tej k txawv x (thiab peb tsis muaj ntaub ntawv ntxiv txog p(x)), peb tuaj yeem xam p(x) rau lwm tus x.

Nws yog nthuav tias rau tej polynomial p(x) thiab qee qhov taw qhia ntawm qhov nkhaus Gpaub lub ntsiab p(x)G rau tej k txawv lub ntsiab x, peb kuj tuaj yeem xam p(x)G rau tej x.

Qhov no yog cov ntaub ntawv txaus los khawb rau hauv cov ntsiab lus ntawm qhov pib kos npe ua haujlwm li cas thiab siv lawv li cas los tsim cov lej random.

Random tooj generator ntawm qhov pib kos npe

Wb hais tias n cov neeg koom xav tsim kom muaj tus lej random, thiab peb xav kom leej twg tuaj koom k muaj txaus ntawm lawv los tsim ib tug xov tooj, tab sis kom cov attackers uas tswj k-1 lossis tsawg dua tuaj koom tsis tuaj yeem kwv yees lossis cuam tshuam tus lej tsim.

Nws puas tuaj yeem tsim cov lej sib txawv yog tias peb tsis ntseeg ib leeg? Ntu 2

Xav tias muaj xws li ib tug polynomial p(x) degree k-1 yam uas thawj tus koom nrog paub p (1), tus thib ob paub p(2), thiab lwm yam (n-th tau p(n)). Peb kuj xav tias rau qee qhov taw qhia ua ntej G sawv daws paub p(x)G rau txhua tus nqi x. Peb yuav hu p(i) “private component” ith koom nrog (vim tsuas yog itus neeg koom nrog paub nws), thiab p(i)G “public component” i-th koom nrog (vim txhua tus neeg koom paub nws). Raws li koj nco qab, kev paub p(i)G tsis txaus los kho p(i).

Tsim ib tug polynomial li ntawd xwb i-Thawj tus tuaj koom thiab tsis muaj leej twg paub nws tus kheej tivthaiv - qhov no yog qhov nyuaj tshaj plaws thiab nthuav dav ntawm cov txheej txheem, thiab peb yuav txheeb xyuas nws hauv qab no. Txog tam sim no, cia peb xav tias peb muaj xws li polynomial thiab txhua tus neeg koom paub lawv cov khoom ntiag tug.

Yuav ua li cas peb siv xws li ib tug polynomial los tsim ib tug random tooj? Yuav pib nrog, peb xav tau qee txoj hlua uas tsis tau siv yav dhau los los ua cov tswv yim rau lub tshuab hluav taws xob. Nyob rau hauv cov ntaub ntawv ntawm ib tug blockchain, lub hash ntawm lub xeem block h yog ib tug neeg sib tw zoo rau txoj kab ntawd. Cia cov neeg tuaj koom xav tsim tus lej random siv h zoo li noob. Cov neeg koom nrog hloov ua ntej h mus rau qhov taw tes ntawm qhov nkhaus siv ib qho kev ua haujlwm ua ntej:

H = scalarToPoint(h)

Tom qab ntawd txhua tus neeg koom nrog i suav thiab luam tawm Nyob zoo = p(i)H, lawv ua tau dab tsi vim lawv paub p(i) thiab H. Qhia tawm HKuv tsis tso cai rau lwm tus neeg koom los kho cov khoom ntiag tug ith tus neeg koom nrog, thiab yog li ntawd ib txheej ntawm cov khoom ntiag tug tuaj yeem siv los ntawm thaiv mus rau thaiv. Yog li, tus nqi kim polynomial tiam algorithm tau piav qhia hauv qab no tsuas yog yuav tsum tau ua tiav ib zaug.

Thaum k cov neeg koom nrog tau raug kuaj xyuas Nyob zoo = p(i)H, sawv daws suav tau Hx = np p(x)H rau txhua qhov x ua tsaug rau cov cuab yeej ntawm polynomials uas peb tau tham hauv ntu kawg. Lub sijhawm no, txhua tus neeg koom suav suav H0 = p(0)H, thiab qhov no yog tus lej random tshwm sim. Thov nco ntsoov tias tsis muaj leej twg paub p(0), thiab yog li ntawd tib txoj kev los xam p(0)H - qhov no yog interpolation p(x)H, uas tsuas yog ua tau thaum k qhov tseem ceeb p(i)H paub. Qhib ib qho me me p(i)H tsis muab tej ntaub ntawv hais txog p(0) H.

Nws puas tuaj yeem tsim cov lej sib txawv yog tias peb tsis ntseeg ib leeg? Ntu 2

Lub tshuab hluav taws xob saum toj no muaj tag nrho cov khoom peb xav tau: cov neeg tawm tsam tswj hwm nkaus xwb k-1 tus neeg koom lossis tsawg dua tsis muaj ntaub ntawv lossis cuam tshuam rau qhov xaus, thaum muaj k Cov neeg tuaj koom tuaj yeem suav tus lej uas tau tshwm sim, thiab ib qho subset ntawm k cov neeg koom yuav ib txwm tuaj rau tib lub txiaj ntsig rau tib lub noob.

Muaj ib qho teeb meem uas peb ua tib zoo zam saum toj no. Rau interpolation mus ua hauj lwm, nws yog ib qho tseem ceeb uas tus nqi Hkuv uas tau luam tawm los ntawm txhua tus neeg koom i nws yeej yog tib yam p(i)H. Vim tsis muaj leej twg tsuas yog i-th koom tsis paub p(i), tsis muaj leej twg tsuas yog i-tus neeg koom nrog tsis tuaj yeem txheeb xyuas qhov ntawd Hi ua tau xam kom raug, thiab tsis muaj cryptographic pov thawj ntawm qhov tseeb Hkuv ib tug attacker yuav luam tawm tej nqi li Kuv tuaj los, thiab arbitrarily cuam tshuam cov zis ntawm lub random tooj generator:

Nws puas tuaj yeem tsim cov lej sib txawv yog tias peb tsis ntseeg ib leeg? Ntu 2Cov nqi sib txawv ntawm H_1 xa los ntawm thawj tus neeg koom ua rau qhov sib txawv H_0

Muaj tsawg kawg yog ob txoj hauv kev los ua pov thawj qhov tseeb HKuv, peb yuav xav txog lawv tom qab peb txheeb xyuas cov tiam ntawm lub polynomial.

Polynomial tiam

Hauv seem kawg peb xav tias peb muaj xws li polynomial p(x) degree k-1 tias tus neeg koom i paub p(i), thiab tsis muaj leej twg muaj cov ntaub ntawv hais txog tus nqi no. Hauv seem tom ntej no peb tseem yuav xav tau qhov ntawd rau qee qhov taw qhia ua ntej G sawv daws paub p(x)G rau txhua qhov x.

Hauv seem no peb yuav xav tias txhua tus neeg koom nrog hauv zos muaj qee tus yuam sij ntiag tug xis, xws li tias txhua leej txhua tus paub tus yuam sij rau pej xeem sib raug Xi.

Ib qho ua tau polynomial tiam raws tu qauv yog raws li hauv qab no:

Nws puas tuaj yeem tsim cov lej sib txawv yog tias peb tsis ntseeg ib leeg? Ntu 2

  1. Txhua tus neeg koom nrog i hauv zos tsim ib tug arbitrary polynomial pi(x) degree k-1. Lawv mam li xa txhua tus tuaj koom j lub ntsiab lus pi(j), encrypted nrog public key Xj. Li no xwb i-th и j-th koom nrog paub pi(j). Koom nrog i kuj tshaj tawm rau pej xeem pi(j)G rau txhua qhov j los ntawm 1 rau k suav txhua tus.

  2. Txhua tus neeg koom siv qee qhov kev pom zoo los xaiv k cov neeg koom uas nws cov polynomials yuav raug siv. Txij li qee cov neeg tuaj koom yuav offline, peb tsis tuaj yeem tos kom txog thaum txhua tus n cov neeg tuaj koom yuav tshaj tawm cov polynomials. Qhov tshwm sim ntawm cov kauj ruam no yog ib txheej Z muaj yam tsawg kawg nkaus k polynomials tsim nyob rau hauv kauj ruam (1).

  3. Cov neeg koom nrog ua kom paub tseeb tias cov txiaj ntsig lawv paub pi(j) raug tshaj tawm rau pej xeem pi(j)G. Tom qab no kauj ruam hauv Z tsuas yog polynomials uas tau muab xa mus rau ntiag tug pi(j) raug tshaj tawm rau pej xeem pi(j)G.

  4. Txhua tus neeg koom nrog j xam nws cov khoom ntiag tug p(j) ua sum pi(j) rau txhua tus i в Z. Txhua tus neeg koom kuj suav tag nrho cov txiaj ntsig p(x)G ua sum pi(x)G rau tag nrho kuv в Z.

Nws puas tuaj yeem tsim cov lej sib txawv yog tias peb tsis ntseeg ib leeg? Ntu 2

nco ntsoov tias p(x) – nws yog ib tug polynomial tiag tiag k-1, vim nws yog tus lej ntawm tus kheej pi(x), txhua tus uas yog polynomial ntawm degree k-1. Tom qab ntawd, nco ntsoov tias thaum txhua tus neeg koom nrog j paub p(j), lawv tsis muaj ntaub ntawv hais txog p(x) rau x ≠ j. Tseeb tiag, txhawm rau xam tus nqi no, lawv yuav tsum paub txhua yam pi(x), thiab ntev npaum li tus neeg koom j tsis paub tsawg kawg yog ib qho ntawm cov polynomials xaiv, lawv tsis muaj cov ntaub ntawv txaus txog p(x).

Qhov no yog tag nrho cov txheej txheem polynomial tiam uas xav tau hauv ntu kawg. Cov kauj ruam 1, 2 thiab 4 saum toj no muaj kev siv tau zoo. Tab sis kauj ruam 3 tsis yog qhov tsis tseem ceeb.

Tshwj xeeb, peb yuav tsum muaj peev xwm ua pov thawj tias encrypted pi(j) yeej sib raug rau cov uas tau tshaj tawm pi(j)G. Yog tias peb tsis tuaj yeem ua pov thawj nws, tus neeg tawm tsam i tej zaum yuav xa cov khib nyiab pi(j) rau cov neeg koom j, thiab cov neeg koom nrog j yuav tsis tau lub ntsiab tiag pi(j), thiab yuav tsis muaj peev xwm xam nws cov khoom ntiag tug.

Muaj cov txheej txheem cryptographic uas tso cai rau koj los tsim cov lus ntxiv ntawv pov thawji(j), xws li cov neeg koom nrog, muaj qee yam nqi e, li qub proofi(j) и pi(j)G, tuaj yeem tshawb xyuas qhov ntawd e - nws yog tiag pi(j), encrypted nrog tus neeg koom nrog tus yuam sij j. Hmoov tsis zoo, qhov loj ntawm cov pov thawj zoo li no loj heev, thiab muab tias nws yuav tsum tau luam tawm. O(nk) Cov pov thawj zoo li no tsis tuaj yeem siv rau lub hom phiaj no.

Es tsis txhob ua pov thawj tias pi(j) соответствует pi(j)G peb tuaj yeem faib lub sijhawm ntev heev hauv cov txheej txheem tsim ntau lub npe, thaum txhua tus neeg tuaj koom tshawb xyuas qhov tau txais encrypted pi(j), thiab yog hais tias cov lus decrypted tsis sib xws rau pej xeem pi(j)G, lawv tshaj tawm cov ntaub ntawv pov thawj cryptographic tias cov lus uas lawv tau txais tsis raug. Ua pov thawj tias cov lus tsis соответствует pi (G) yooj yim dua qhov ua pov thawj tias nws phim. Nws yuav tsum raug sau tseg tias qhov no xav kom txhua tus neeg koom tuaj yeem tshwm sim hauv online tsawg kawg ib zaug thaum lub sijhawm muab los tsim cov pov thawj zoo li no, thiab tso siab rau qhov kev xav tias yog tias lawv tshaj tawm cov pov thawj no, nws yuav ncav cuag txhua tus neeg koom nrog tib lub sijhawm.

Nws puas tuaj yeem tsim cov lej sib txawv yog tias peb tsis ntseeg ib leeg? Ntu 2

Yog tias tus neeg koom tsis tau tshwm sim hauv online nyob rau lub sijhawm no, thiab nws muaj tsawg kawg yog ib qho tsis raug, ces tus neeg koom nrog yuav tsis tuaj yeem koom nrog ntau tiam neeg ntxiv. Cov txheej txheem yuav, txawm li cas los xij, tseem ua haujlwm yog tias muaj tsawg kawg k cov neeg koom nrog uas nyuam qhuav tau txais cov khoom raug raug lossis tswj kom tawm pov thawj ntawm qhov tsis raug nyob rau hauv lub sijhawm teem tseg.

Cov pov thawj ntawm qhov tseeb ntawm H_i

Qhov kawg uas tseem yuav tau tham txog yog yuav ua li cas los ua pov thawj qhov tseeb ntawm kev tshaj tawm Hi, npe Nyob zoo = p(i)H, tsis qhib p(i).

Cia peb nco ntsoov tias qhov tseem ceeb H, G, p(i)G pej xeem thiab paub rau sawv daws. Txais kev ua haujlwm p(i) paub p(i)G и G hu ua discrete logarithm, los yog dlog, thiab peb xav ua pov thawj tias:

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

tsis muaj kev tshaj tawm p(i). Kev tsim kho rau cov pov thawj zoo li no, piv txwv li Schnorr raws tu qauv.

Nrog rau qhov kev tsim no, txhua tus neeg koom nrog, nrog rau Hi xa cov ntaub ntawv pov thawj kom raug raws li tus qauv tsim.

Thaum ib tus lej random tsim, nws feem ntau yuav tsum tau siv los ntawm cov neeg koom nrog lwm yam tshaj li cov neeg tsim nws. Xws li cov neeg koom nrog, nrog rau tus lej, yuav tsum xa tag nrho Hi thiab lwm yam pov thawj.

Tus nyeem ntawv xav paub yuav nug: txij li tus lej zaum kawg yog H0,i ib p(0)G - Nov yog cov ntaub ntawv pej xeem, vim li cas peb thiaj xav tau ntawv pov thawj rau txhua tus neeg Hkuv, vim li cas ho tsis xa cov ntaub ntawv pov thawj

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

Qhov teeb meem yog qhov pov thawj zoo li no tsis tuaj yeem tsim siv Schnorr raws tu qauv vim tsis muaj leej twg paub tus nqi p (0), tsim nyog los tsim cov ntaub ntawv pov thawj, thiab dab tsi ntxiv, tag nrho cov random tooj generator yog raws li qhov tseeb tias tsis muaj leej twg paub qhov nqi no. Yog li ntawd nws yog ib qho tsim nyog yuav tsum muaj tag nrho cov txiaj ntsig Hi thiab lawv tus kheej pov thawj los ua pov thawj qhov tseeb H0.

Txawm li cas los xij, yog tias muaj qee qhov kev ua haujlwm ntawm cov ntsiab lus ntawm elliptic curves uas yog semantically zoo ib yam li kev sib npaug, cov pov thawj ntawm qhov tseeb. H0 yuav tsis tseem ceeb, peb tsuas ua kom paub tseeb tias

H0 × G = p(0)G × H

Yog qhov kev xaiv nkhaus txhawb elliptic curvature khub, qhov pov thawj no ua haujlwm. Hauv qhov no H0 tsis yog tsuas yog cov zis ntawm lub tshuab hluav taws xob random, uas tuaj yeem txheeb xyuas tau los ntawm txhua tus neeg koom nrog uas paub G, H и p(0)g. H0 kuj yog kos npe rau ntawm cov lus uas tau siv los ua cov noob, lees paub qhov ntawd k и n cov neeg koom tau kos npe rau cov lus no. Yog li ntawd, yog tias noob – yog tus hash ntawm qhov thaiv hauv blockchain raws tu qauv, ces H0 yog ob qho tib si ntau kos npe rau ntawm ib qho thaiv thiab tus lej zoo heev.

Nyob rau hauv xaus

Kab lus no yog ib feem ntawm cov txheej txheem blog NEJ PAUB. NEAR yog blockchain raws tu qauv thiab lub platform rau kev tsim cov ntawv thov kev ncaj ncees nrog rau qhov tseem ceeb ntawm kev txhim kho yooj yim thiab yooj yim ntawm kev siv rau cov neeg siv kawg.

Txoj cai tswjfwm tau qhib, peb qhov kev siv yog sau rau hauv Rust, nws tuaj yeem pom S, SѓS,.

Koj tuaj yeem pom qhov kev txhim kho rau NEAR zoo li cas thiab sim hauv online IDE no.

Koj tuaj yeem ua raws tag nrho cov xov xwm hauv Lavxias ntawm pawg telegram thiab nyob rau hauv pab pawg ntawm VKontakte, thiab nyob rau hauv lus Askiv nyob rau hauv lub official twitter.

Pom koj sai sai!

Tau qhov twg los: www.hab.com

Ntxiv ib saib