Shamiri salajane jagamisskeem

MÔelge stsenaariumile, kus peate tagama pangahoidla. Seda peetakse tÀiesti immutamatuks ilma vÔtmeta, mis antakse teile esimesel tööpÀeval. Teie eesmÀrk on vÔtit turvaliselt hoida.

Oletame, et otsustate vĂ”tit alati endaga kaasas hoida, vĂ”imaldades vajaduse korral juurdepÀÀsu salvestusruumile. Kuid saate kiiresti aru, et selline lahendus ei mastaap praktikas hĂ€sti, sest teie fĂŒĂŒsiline kohalolek on vajalik iga kord, kui salvestusruumi avate. Aga puhkus, mida sulle lubati? Lisaks on veelgi hirmutavam kĂŒsimus: mis siis, kui kaotate oma ainsa vĂ”tme?

Oma puhkust silmas pidades otsustate teha vÔtmest koopia ja usaldada selle teisele töötajale. Samas saate aru, et ka see pole ideaalne. Kahekordistades vÔtmete arvu, kahekordistate ka vÔtmevarguse tÔenÀosust.

Meeleheitel hĂ€vitate duplikaadi ja otsustate algse vĂ”tme pooleks jagada. NĂŒĂŒd vĂ”iks arvata, et vĂ”tme kogumiseks ja varahoidla avamiseks peavad fĂŒĂŒsiliselt kohal olema kaks usaldusvÀÀrset inimest, kellel on vĂ”tmekillud. See tĂ€hendab, et vargal on vaja varastada kaks tĂŒkki, mis on kaks korda raskem kui ĂŒhe vĂ”tme varastamine. Peagi mĂ”istad aga, et see skeem polegi palju parem kui ĂŒks vĂ”ti, sest kui keegi kaotab poole vĂ”tme, siis tĂ€isvĂ”tit enam tagasi ei saa.

Probleemi saab lahendada tĂ€iendavate vĂ”tmete ja lukkude seeriaga, kuid see lĂ€henemine nĂ”uab kiiresti ĐŒĐœĐŸĐłĐŸ vĂ”tmed ja lukud. Otsustate, et ideaalne lahendus oleks vĂ”tit jagada, et turvalisus ei sĂ”ltuks tĂ€ielikult ĂŒhest inimesest. Samuti jĂ€reldate, et fragmentide arvul peab olema mingi lĂ€vi, et kui ĂŒks fragment kaob (vĂ”i kui inimene lĂ€heb puhkusele), jÀÀks kogu vĂ”ti toimima.

Kuidas jagada saladust

Seda tĂŒĂŒpi vĂ”tmehaldusskeemile mĂ”tles Adi Shamir 1979. aastal, kui ta oma teose avaldas "Kuidas jagada saladust". Artiklis selgitatakse lĂŒhidalt nn Shamiri salajane jagamisskeem lĂ€viskeem salajase vÀÀrtuse (nt krĂŒptovĂ”tme) tĂ”husaks jagamiseks Shamiri salajane jagamisskeem osad. Siis, millal ja ainult siis, vĂ€hemalt Shamiri salajane jagamisskeem kohta Shamiri salajane jagamisskeem osad on kokku pandud, saate saladuse hĂ”lpsalt taastada Shamiri salajane jagamisskeem.

Turvalisuse seisukohast on selle skeemi oluline omadus see, et rĂŒndaja ei peaks teadma absoluutselt midagi, kui tal pole vĂ€hemalt Shamiri salajane jagamisskeem osad. Isegi kohalolu Shamiri salajane jagamisskeem osad ei tohiks anda mingit teavet. Me nimetame seda kinnisvara semantiline turvalisus.

PolĂŒnoomiline interpolatsioon

Shamiri lĂ€ve skeem Shamiri salajane jagamisskeem kontseptsiooni ĂŒmber ehitatud polĂŒnoomiline interpolatsioon. Kui te pole selle kontseptsiooniga tuttav, on see tegelikult ĂŒsna lihtne. Tegelikult, kui olete kunagi joonistanud graafikule punkte ja seejĂ€rel ĂŒhendanud need joonte vĂ”i kĂ”veratega, olete seda juba kasutanud!

Shamiri salajane jagamisskeem
Kahe punkti kaudu saab joonistada piiramatu arvu 2. astme polĂŒnoome. Nende hulgast ainsa valimiseks on vaja kolmandat punkti. Illustratsioon: Wikipedia

Vaatleme esimese astmega polĂŒnoomi, Shamiri salajane jagamisskeem. Kui soovite selle funktsiooni graafikule joonistada, mitu punkti teil on vaja? Noh, me teame, et see on lineaarne funktsioon, mis moodustab sirge ja seega vajab see vĂ€hemalt kahte punkti. JĂ€rgmiseks vaatleme teise astmega polĂŒnoomfunktsiooni, Shamiri salajane jagamisskeem. See on ruutfunktsioon, seega on graafiku koostamiseks vaja vĂ€hemalt kolme punkti. Kuidas oleks kolmanda astmega polĂŒnoomiga? VĂ€hemalt neli punkti. Ja nii edasi.

TĂ”eliselt lahe asi selle omaduse juures on see, et arvestades polĂŒnoomfunktsiooni astet ja vĂ€hemalt Shamiri salajane jagamisskeem punktid, saame selle polĂŒnoomfunktsiooni jaoks tuletada lisapunkte. Nimetame nende lisapunktide ekstrapolatsiooni polĂŒnoomiline interpolatsioon.

Saladuse vÀljamÔtlemine

VĂ”ib-olla olete juba aru saanud, et siin tuleb mĂ€ngu Shamiri nutikas skeem. Ütleme oma saladuse Shamiri salajane jagamisskeem - Kas Shamiri salajane jagamisskeem. Me vĂ”ime pöörata Shamiri salajane jagamisskeem graafiku punkti Shamiri salajane jagamisskeem ja leia astmega polĂŒnoomfunktsioon Shamiri salajane jagamisskeem, mis seda punkti rahuldab. Tuletame teile seda meelde Shamiri salajane jagamisskeem on meie nĂ”utavate fragmentide lĂ€vi, nii et kui seame lĂ€veks kolm fragmenti, peame valima polĂŒnoomfunktsiooni astmega kaks.

Meie polĂŒnoomil on vorm Shamiri salajane jagamisskeemKus Shamiri salajane jagamisskeem Đž Shamiri salajane jagamisskeem — juhuslikult valitud positiivsed tĂ€isarvud. Me lihtsalt konstrueerime astmega polĂŒnoomi Shamiri salajane jagamisskeem, kus vaba koefitsient Shamiri salajane jagamisskeem - See on meie saladus Shamiri salajane jagamisskeem, ja iga jĂ€rgneva jaoks Shamiri salajane jagamisskeem on juhuslikult valitud positiivne koefitsient. Kui pöördume tagasi algse nĂ€ite juurde ja eeldame, et Shamiri salajane jagamisskeem, siis saame funktsiooni Shamiri salajane jagamisskeem.

Sel hetkel saame luua fragmente ĂŒhendades Shamiri salajane jagamisskeem kordumatud tĂ€isarvud Shamiri salajane jagamisskeemKus Shamiri salajane jagamisskeem (sest see on meie saladus). Selles nĂ€ites tahame jagada neli fragmenti lĂ€vega kolm, nii et genereerime punkte juhuslikult Shamiri salajane jagamisskeem ja saatke igale neljale usaldusvÀÀrsele inimesele, vĂ”tme hoidjale, ĂŒks punkt. Anname sellest ka inimestele teada Shamiri salajane jagamisskeem, kuna seda peetakse avalikuks teabeks ja see on taastamiseks vajalik Shamiri salajane jagamisskeem.

Saladuse taastamine

Oleme juba arutanud polĂŒnoomi interpolatsiooni kontseptsiooni ja seda, kuidas see Shamiri lĂ€ve skeemi aluseks on Shamiri salajane jagamisskeem. Kui suvalised kolm neljast usaldusisikust soovivad taastada Shamiri salajane jagamisskeem, peavad nad ainult interpoleerima Shamiri salajane jagamisskeem oma ainulaadsete punktidega. Selleks saavad nad mÀÀrata oma punktid Shamiri salajane jagamisskeem ja arvutage Lagrange'i interpolatsiooni polĂŒnoom jĂ€rgmise valemi abil. Kui programmeerimine on teile selgem kui matemaatika, siis pi on sisuliselt operaator for, mis korrutab kĂ”ik tulemused ja sigma on for, mis liidab kĂ”ik kokku.

Shamiri salajane jagamisskeem

Shamiri salajane jagamisskeem

juures Shamiri salajane jagamisskeem saame selle lahendada jĂ€rgmiselt ja tagastada oma algse polĂŒnoomifunktsiooni:

Shamiri salajane jagamisskeem

Kuna me teame seda Shamiri salajane jagamisskeem, taastumine Shamiri salajane jagamisskeem lihtsalt tehtud:

Shamiri salajane jagamisskeem

Kasutades ebaturvalist tÀisarvulist aritmeetikat

Kuigi oleme Shamiri pĂ”hiideed edukalt rakendanud Shamiri salajane jagamisskeem, oleme jÀÀnud probleemiga, mida oleme seni ignoreerinud. Meie polĂŒnoomfunktsioon kasutab ebaturvalist tĂ€isarvulist aritmeetikat. Pange tĂ€hele, et iga tĂ€iendava punkti korral, mille rĂŒndaja meie funktsiooni graafikul saab, on teiste punktide jaoks vĂ€hem vĂ”imalusi. Seda nĂ€ete oma silmaga, kui joonistate tĂ€isarvude aritmeetika abil polĂŒnoomfunktsiooni jaoks jĂ€rjest suurema arvu punkte. See on vastuolus meie seatud turvaeesmĂ€rgiga, sest rĂŒndaja ei peaks teadma absoluutselt mitte midagi, kuni tal on vĂ€hemalt see olemas Shamiri salajane jagamisskeem kilde.

Et nĂ€idata, kui nĂ”rk on tĂ€isarvude aritmeetiline skeem, kaaluge stsenaariumi, kus rĂŒndaja sai kaks punkti Shamiri salajane jagamisskeem ja teab seda avalikku teavet Shamiri salajane jagamisskeem. Sellest teabest saab ta jĂ€reldada Shamiri salajane jagamisskeem, vĂ”rdub kahega, ja sisestage teadaolevad vÀÀrtused valemisse Shamiri salajane jagamisskeem Đž Shamiri salajane jagamisskeem.

Shamiri salajane jagamisskeem

SeejĂ€rel saab rĂŒndaja leida Shamiri salajane jagamisskeem, lugedes Shamiri salajane jagamisskeem:

Shamiri salajane jagamisskeem

Kuna oleme mÀÀratlenud Shamiri salajane jagamisskeem juhuslikult valitud positiivsete tĂ€isarvudena on vĂ”imalikke piiratud arv Shamiri salajane jagamisskeem. Seda teavet kasutades saab rĂŒndaja jĂ€reldada Shamiri salajane jagamisskeem, sest kĂ”ik, mis on suurem kui 5, sobib Shamiri salajane jagamisskeem negatiivne. See osutub tĂ”eks, kuna oleme otsustanud Shamiri salajane jagamisskeem

SeejĂ€rel saab rĂŒndaja vĂ”imalikud vÀÀrtused vĂ€lja arvutada Shamiri salajane jagamisskeemasendamine Shamiri salajane jagamisskeem ĐČ Shamiri salajane jagamisskeem:

Shamiri salajane jagamisskeem

Piiratud valikutega Shamiri salajane jagamisskeem saab selgeks, kui lihtne on vÀÀrtusi valida ja kontrollida Shamiri salajane jagamisskeem. Siin on ainult viis vÔimalust.

Ülesande lahendamine ebaturvalise tĂ€isarvu aritmeetikaga

Selle haavatavuse kĂ”rvaldamiseks soovitab Shamir kasutada modulaarset aritmeetikat, asendades Shamiri salajane jagamisskeem edasi Shamiri salajane jagamisskeemKus Shamiri salajane jagamisskeem Đž Shamiri salajane jagamisskeem — kĂ”igi algarvude hulk.

Tuletame kiiresti meelde, kuidas modulaararitmeetika töötab. Osutega kell on tuttav mĂ”iste. Ta kasutab kella, mis on Shamiri salajane jagamisskeem. Niipea kui tunniosuti lĂ€bib kaksteist, naaseb see ĂŒhele. Selle sĂŒsteemi huvitav omadus on see, et lihtsalt kella vaadates ei saa me jĂ€reldada, mitu pööret tunniosuti on teinud. Kui aga teame, et tunniosuti on neli korda möödunud 12, saame möödunud tundide arvu lihtsa valemi abil tĂ€ielikult kindlaks teha Shamiri salajane jagamisskeemKus Shamiri salajane jagamisskeem on meie jagaja (siin Shamiri salajane jagamisskeem), Shamiri salajane jagamisskeem on koefitsient (mitu korda lĂ€heb jagaja algarvusse ilma jÀÀgita, siin Shamiri salajane jagamisskeem) ja Shamiri salajane jagamisskeem on jÀÀk, mis tavaliselt tagastab mooduloperaatori kĂ”ne (siin Shamiri salajane jagamisskeem). KĂ”igi nende vÀÀrtuste tundmine vĂ”imaldab meil lahendada vĂ”rrandi Shamiri salajane jagamisskeem, aga kui koefitsiendist puudu jÀÀb, ei saa me kunagi algset vÀÀrtust taastada.

Saame nĂ€idata, kuidas see parandab meie skeemi turvalisust, rakendades skeemi meie eelmises nĂ€ites ja kasutades Shamiri salajane jagamisskeem. Meie uus polĂŒnoomfunktsioon Shamiri salajane jagamisskeemja uued punktid Shamiri salajane jagamisskeem. NĂŒĂŒd saavad vĂ”tmehoidjad meie funktsiooni rekonstrueerimiseks taas kasutada polĂŒnoominterpolatsiooni, ainult seekord peab liitmis- ja korrutustehtetega kaasnema mooduli redutseerimine Shamiri salajane jagamisskeem (nt Shamiri salajane jagamisskeem).

Seda uut nĂ€idet kasutades oletame, et rĂŒndaja Ă”ppis neist uutest punktidest kaks, Shamiri salajane jagamisskeemja avalikku teavet Shamiri salajane jagamisskeem. Seekord vĂ€ljastab rĂŒndaja kogu tema kĂ€sutuses oleva info pĂ”hjal jĂ€rgmised funktsioonid, kuhu Shamiri salajane jagamisskeem on kĂ”igi positiivsete tĂ€isarvude hulk ja Shamiri salajane jagamisskeem tĂ€histab mooduli koefitsienti Shamiri salajane jagamisskeem.

Shamiri salajane jagamisskeem

NĂŒĂŒd leiab meie rĂŒndaja uuesti Shamiri salajane jagamisskeem, arvutades Shamiri salajane jagamisskeem:

Shamiri salajane jagamisskeem

Siis proovib uuesti Shamiri salajane jagamisskeemasendamine Shamiri salajane jagamisskeem ĐČ Shamiri salajane jagamisskeem:

Shamiri salajane jagamisskeem

Seekord on tal tÔsine probleem. Valemil puuduvad vÀÀrtused Shamiri salajane jagamisskeem, Shamiri salajane jagamisskeem О Shamiri salajane jagamisskeem. Kuna nende muutujate kombinatsioone on lÔpmatu arv, ei saa ta lisateavet hankida.

Turvakaalutlused

Shamiri salajane jagamisskeem viitab turvalisus infoteooria seisukohalt. See tĂ€hendab, et matemaatika on vastupidav isegi piiramatu arvutusvĂ”imsusega rĂŒndajale. Ahel sisaldab siiski mitmeid teadaolevaid probleeme.

NÀiteks Shamiri skeem ei loo killud, mida tuleb kontrollidast inimesed vÔivad vabalt esitada vÔltskilde ja segada Ôige saladuse taastamist. Piisava teabega vaenulik killuhoidja vÔib muutudes isegi teise fragmendi toota Shamiri salajane jagamisskeem oma ÀranÀgemise jÀrgi. See probleem lahendatakse kasutades kontrollitavad salajagamisskeemid, nagu Feldmani skeem.

Probleemiks on ka see, et mis tahes fragmendi pikkus on vÔrdne vastava saladuse pikkusega, mistÔttu on saladuse pikkust lihtne mÀÀrata. Seda probleemi saab lahendada triviaalselt polsterdus salajane suvaliste numbritega kuni fikseeritud pikkuseni.

LĂ”puks on oluline mĂ€rkida, et meie turvaprobleemid vĂ”ivad ulatuda disainist endast kaugemale. Reaalmaailma krĂŒptograafiliste rakenduste puhul on sageli oht kĂŒlgkanalite rĂŒnnakuteks, kus rĂŒndaja pĂŒĂŒab hankida kasulikku teavet rakenduse tĂ€itmisajast, vahemĂ€llu salvestamisest, krahhidest jne. Kui see on muret tekitav, tuleks arenduse ajal hoolikalt kaaluda kaitsemeetmete kasutamist, nagu funktsioonid ja konstantse aja otsingud, mĂ€lu kettale salvestamise vĂ€ltimine ja mitmed muud kaalutlused, mis ei kuulu kĂ€esoleva artikli reguleerimisalasse.

Demo

Edasi see leht Shamiri salajase jagamisskeemi interaktiivne esitlus. Demonstratsioon raamatukogu pÔhjal ssss-js, mis ise on populaarse programmi JavaScripti port ssss. Pange tÀhele, et suurte vÀÀrtuste arvutamine Shamiri salajane jagamisskeem, Shamiri salajane jagamisskeem О Shamiri salajane jagamisskeem vÔib aega vÔtta.

Allikas: www.habr.com

Ostke DDoS-kaitsega saitide jaoks usaldusvÀÀrne hostimine, VPS VDS-serverid đŸ”„ Osta usaldusvÀÀrne veebimajutus DDoS-kaitsega, VPS VDS serverid | ProHoster