Shamira saladuse jagamise skeem

Kujutame ette olukorda, kus on vajalik pangahoiustamise turvalisuse tagamine. Seda peetakse tÀiesti ligipÀÀsmatuks ilma vÔtmeta, mille saate esimese tööpÀeva jooksul. Teie eesmÀrk on vÔti turvaliselt hoida.

Oletame, et otsustasite kogu aeg vĂ”tme enda juures hoida, vĂ”imaldades juurdepÀÀsu hoiustamisele vajaduse korral. Kuid kiiresti mĂ”istate, et selline lahendus ei toimi, kuna igaks hoiustamise avamiseks on vajalik teie fĂŒĂŒsiline kohalolu. Mis siis, kui soovite puhkusele minna? Veelgi rohkem hĂ€irib teid kĂŒsimus: mis juhtub, kui kaotate ainulaadse vĂ”tme?

MÔeldes puhkusele, otsustasite teha vÔtme koopia ja anda see usaldusvÀÀrsele kolleegile. Kuid mÔistate, et see pole ka ideaalne lahendus. Kahe vÔtme olemasolu kahekordistab ka vÔtme varguse vÔimalused.

Meeleheite tĂ”ttu hĂ€vitate koopia ja otsustate jagada algse vĂ”tme kahele osale. NĂŒĂŒd arvate, et kaks usaldusvÀÀrset isikut, kellel on vĂ”tme fragmentide osad, peavad fĂŒĂŒsiliselt kohal olema, et koos kokku panna vĂ”tmega ja avada ladu. See tĂ€hendab, et vargal on vaja varastada kaks fragmenti, mis teeb selle varguse kaks korda raskemaks kui ĂŒhe vĂ”tme varastamine. Siiski mĂ”istate peagi, et see skeem ei ole palju parem kui lihtsalt ĂŒks vĂ”ti, sest kui keegi kaotab poole vĂ”tme, ei saa tervet vĂ”tit taastada.

Probleemi saab lahendada tĂ€iendavate vĂ”tmete ja lukkude seeria abil, kuid sellise lĂ€henemise korral on kiiresti vajalikud palju vĂ”tmed ja lukud. Otsustate, et ideaalne skeem peaks vĂ”tme jagama, et turvalisus ei sĂ”ltuks tĂ€ielikult ĂŒhest inimesest. JĂ”uate ka jĂ€reldusele, et peab olema mingi minimaalne fragmentide arv, nii et ĂŒhe fragmendi kadumise korral (vĂ”i kui inimene on puhkusele lĂ€inud) jÀÀks kogu vĂ”ti funktsionaalseks.

Kuidas jagada saladust

Sellise vĂ”tmete haldamise skeemi mĂ”tles vĂ€lja Adi Shamir 1979. aastal, kui avaldas oma töö „Kuidas jagada saladust“. Artiklis selgitatakse lĂŒhidalt nii nimetatud Shamira saladuse jagamise skeem efektiivne piiriĂŒlese jagamise skeem, et jagada salajane vÀÀrtus (nĂ€iteks krĂŒptograafiline vĂ”ti) Shamira saladuse jagamise skeem osadeks. SeejĂ€rel, kui vĂ€hemalt Shamira saladuse jagamise skeem kohast Shamira saladuse jagamise skeem osakest on kogutud, saab salajase vÀÀrtuse lihtsalt taastada. Shamira saladuse jagamise skeem.

Turvalisuse seisukohast on selle skeemi oluline omadus see, et kurjategija ei tohiks teada midagi, kui tal ei ole vÀhemalt Shamira saladuse jagamise skeem osakest. Isegi Shamira saladuse jagamise skeem osakese olemasolu ei tohi andma mingit teavet. Me nimetame seda omadust semantiliseks turvalisuseks..

PolĂŒnoomiline interpolatsioon.

Shamir'i piiriĂŒlese skeem Shamira saladuse jagamise skeem on ĂŒles ehitatud polĂŒnoomilise interpolatsiooni kontseptsioonile. Kui te pole selle kontseptsiooniga tuttav, on see tegelikult ĂŒsna lihtne. Üldiselt, kui olete kunagi joonistanud punkte graafikule ja seejĂ€rel neid joonte vĂ”i kĂ”veratega ĂŒhendama hakanud, olete juba seda kasutanud!

Shamira saladuse jagamise skeem
Kaks punkti vĂ”ivad lĂ€bi minna piiramatu arvu teise astme polĂŒnoome. Nende seast ainulaadse valimiseks on vajalik kolmas punkt. Illustreerimiseks: Vikipeedia

Vaatame polĂŒnoomi, mille aste on ĂŒks, Shamira saladuse jagamise skeem. Kui soovite seda funktsiooni graafikule joonistada, kui palju punkte teil vaja on? Noh, me teame, et see on lineaarne funktsioon, mis moodustab joone ja seetĂ”ttu on vajalik vĂ€hemalt kaks punkti. Edasi vaatame polĂŒnoomfunktsiooni astmega kaks, Shamira saladuse jagamise skeem. See on ruutfunktsioon, seega on graafiku joonistamiseks vajalik vĂ€hemalt kolm punkti. Kuidas on kolmanda astme polĂŒnoomiga? VĂ€hemalt neli punkti. Ja nii edasi ja nii edasi.

TĂ”eliselt lahe asi selle omaduse juures on see, et arvestades polĂŒnoomfunktsiooni astet ja vĂ€hemalt Shamira saladuse jagamise skeem punkte, saame jĂ€reldada tĂ€iendavaid punkte selle polĂŒnoomfunktsiooni jaoks. TĂ€iendavate punktide ekstrapoleerimist nimetame polĂŒnoominterpoleerimiseks..

Saladuse koostamine.

VĂ”ib-olla olete juba aru saanud, et siia astub mĂ€ngu Shamir'i nutikas skeem. Oletame, et meie saladus Shamira saladuse jagamise skeem — see on Shamira saladuse jagamise skeem. Saame selle Shamira saladuse jagamise skeem punktiks graafikul Shamira saladuse jagamise skeem ja leiutada polĂŒnoomfunktsiooni astmega Shamira saladuse jagamise skeem, mis rahuldab seda punkti. Kordan, et Shamira saladuse jagamise skeem see on meie nĂ”utavate fragmentide lĂ€vi, seega kui seame lĂ€ve kolmeks fragmentideks, peame valima polĂŒnoomi, mille kraad on kaks.

Meie polĂŒnoom on kujul Shamira saladuse jagamise skeem, kus Shamira saladuse jagamise skeem ja Shamira saladuse jagamise skeem — juhuslikult valitud positiivsed tĂ€isarvud. Ehitatakse lihtsalt polĂŒnoom, mille kraad on Shamira saladuse jagamise skeem, kus vaba koefitsient Shamira saladuse jagamise skeem — see on meie saladus Shamira saladuse jagamise skeem, ja iga jĂ€rgmise Shamira saladuse jagamise skeem liikme jaoks on juhuslikult valitud positiivne koefitsient. Kui naasta algse nĂ€ite juurde ja eeldada, et Shamira saladuse jagamise skeem, siis saame funktsiooni Shamira saladuse jagamise skeem.

Sellel etapil saame genereerida fragmente, ĂŒhendades Shamira saladuse jagamise skeem ainulaadsed tĂ€isarvud Shamira saladuse jagamise skeem, kus Shamira saladuse jagamise skeem (sest see on meie saladus). Antud nĂ€ites soovime jagada nelja fragmenti, mille lĂ€vi on kolm, seega genereerime juhuslikult punktid Shamira saladuse jagamise skeem ja saadame ĂŒhe punkti igaĂŒhele neljast usaldusvÀÀrsest inimesest, kes on vĂ”tmehoidjad. Ütleme ka inimestele, et Shamira saladuse jagamise skeem, kuna see loetakse avalikuks informatsiooniks ja on vajalik taastamiseks. Shamira saladuse jagamise skeem.

Saladuse taastamine

Oleme juba arutanud polĂŒnoomilise interpolatsiooni mĂ”istet ja seda, et see on Shamir'i lĂ€ve skeemi alus. Shamira saladuse jagamise skeem. Kui kolm neljast usaldusvÀÀrsest isikust soovivad taastada Shamira saladuse jagamise skeem, peavad nad lihtsalt interpoleerima Shamira saladuse jagamise skeem oma unikaalsete punktidega. Selleks saavad nad mÀÀrata oma punktid Shamira saladuse jagamise skeem ja arvutada Lagrange'i interpoleerimispolĂŒnomi, kasutades jĂ€rgmist valemit. Kui programmeerimine on teile arusaadavam kui matemaatika, siis pi — see on pĂ”himĂ”tteliselt operaator for, mis korrutab kĂ”ik tulemused, ja sigma — see on for, mis liidab kĂ”ik kokku.

Shamira saladuse jagamise skeem

Shamira saladuse jagamise skeem

Koormuse analĂŒĂŒsi korral Shamira saladuse jagamise skeem Me saame seda jĂ€rgmiselt lahendada ja tagastada meie algse polĂŒnomi:

Shamira saladuse jagamise skeem

Kuna me teame, et Shamira saladuse jagamise skeem, taastamine Shamira saladuse jagamise skeem toimub lihtsalt:

Shamira saladuse jagamise skeem

Kasutades ebaturvalist tÀisarvude aritmeetikat

Kuigi me rakendasime Shamir'i pĂ”hiideed edukalt Shamira saladuse jagamise skeem, meil on probleem, millele oleme seni tĂ€helepanu pööranud. Meie polĂŒnoomfunktsioon kasutab ebaturvalist tĂ€isarvude aritmeetikat. Pidage meeles, et iga tĂ€iendava punkti kohta, mille rĂŒndaja meie funktsiooni graafikul saab, jÀÀb vĂ€hem vĂ”imalusi teiste punktide jaoks. Saate seda ise nĂ€ha, kui ehitate graafiku polĂŒnoomfunktsiooni puhul, kasutades tĂ€isarvude aritmeetikat. See on meie vĂ€ljendatud turvalisuse eesmĂ€rgi jaoks vastutustundetu, sest kurjategija ei tohiks mitte midagist teada saada, enne kui tal ei ole vĂ€hemalt Shamira saladuse jagamise skeem fragmente.

Kuidas demonstreerida, kui nÔrk on tÀisarvude aritmeetika skeem, kaalume stsenaariumi, kus kurjategija sai kaks punkti Shamira saladuse jagamise skeem ja teab avalikku teavet, et Shamira saladuse jagamise skeem. Sellest teabest saab ta tuletada Shamira saladuse jagamise skeem, mille vÀÀrtus on kaks, ja sisestada tuntud vÀÀrtused valemisse Shamira saladuse jagamise skeem ja Shamira saladuse jagamise skeem.

Shamira saladuse jagamise skeem

SeejÀrel saab kurjategija leida Shamira saladuse jagamise skeem, arvutades Shamira saladuse jagamise skeem:

Shamira saladuse jagamise skeem

Kuna oleme mÀÀratlenud Shamira saladuse jagamise skeem nagu juhuslikult valitud positiivsed tĂ€isarvud, on olemas piiratud hulk vĂ”imalikke Shamira saladuse jagamise skeemSelle teabe abil vĂ”ib kurjategija vĂ€lja selgitada Shamira saladuse jagamise skeem, kuna kĂ”ik, mis on ĂŒle 5, muudab Shamira saladuse jagamise skeem negatiivseks. See osutub tĂ”eks, kuna oleme kindlaks teinud Shamira saladuse jagamise skeem

SeejĂ€rel vĂ”ib kurjategija arvutada vĂ”imalikke vÀÀrtusi Shamira saladuse jagamise skeem, asendades Shamira saladuse jagamise skeem ĂŒhes Shamira saladuse jagamise skeem:

Shamira saladuse jagamise skeem

Piiratud valikute hulgaga Shamira saladuse jagamise skeem saab arusaadavaks, kui lihtne on vÀÀrtusi hankida ja kontrollida Shamira saladuse jagamise skeem. Siin on vaid viis varianti.

Probleemi lahendamine ebaturvalise tÀisarvuaritmetiaga

Selle haavatavuse kĂ”rvaldamiseks soovitab Shamir kasutada moodulaarset aritmeetikat, asendades Shamira saladuse jagamise skeem jĂ€rgnevaga Shamira saladuse jagamise skeem, kus Shamira saladuse jagamise skeem ja Shamira saladuse jagamise skeem — kĂ”igi prime arvude hulk.

Korraks meenutame, kuidas moodulaarne aritmeetika töötab. Kellade mĂ”isted on juba tuttavad. Need kasutavad kellasid, mis on Shamira saladuse jagamise skeem. Kui tunni kĂ€si möödub kaheteistkĂŒmnest, naaseb see ĂŒhenumbrisse. Selle sĂŒsteemi huvitav omadus on see, et lihtsalt kelladele vaatamisega ei saa me selgeks, kui mitu ringi tund kĂ€si on teinud. Kuid kui me teame, et tunni kĂ€si on möödunud 12 neli korda, saab kergesti kindlaks mÀÀrata möödunud tundide arvu lihtsa valemi abil Shamira saladuse jagamise skeem, kus Shamira saladuse jagamise skeem — see on meie jagaja (siin Shamira saladuse jagamise skeem), Shamira saladuse jagamise skeem — see on koefitsient (kui palju kordi jagaja tervikuna lĂ€heb algsesse numbrisse, siin Shamira saladuse jagamise skeem), and Shamira saladuse jagamise skeem — see on jÀÀk, mille tavaliselt annab tagasi mooduli operaator (siin Shamira saladuse jagamise skeem). Nende vÀÀrtuste tundmine vĂ”imaldab meil lahendada vĂ”rrandi Shamira saladuse jagamise skeem, kuid kui jĂ€tame koefitsiendi vahele, siis me kunagi ei suuda algset vÀÀrtust taastada.

Saame demonstreerida, kuidas see suurendab meie skeemi turvalisust, rakendades skeemi meie varasemale nĂ€itele ja kasutades Shamira saladuse jagamise skeem. Meie uus polĂŒnoomi funktsioon Shamira saladuse jagamise skeem, ning uued punktid Shamira saladuse jagamise skeem. NĂŒĂŒd saavad vĂ”tmehoidjad taas kasutada polĂŒnoom interpolatsiooni, et taastada meie funktsioon, kuid seekord peavad liitmise ja korrutamise toimingud olema koos mooduliga vĂ€hendatud Shamira saladuse jagamise skeem (nt Shamira saladuse jagamise skeem).

Kasutades seda uut nĂ€idet, oletame, et rĂŒndaja teab kahte uut punkti, Shamira saladuse jagamise skeem, ning avalik teave Shamira saladuse jagamise skeem. Seekord jĂ€releandja, tuginedes kogu teabele, mis tal on, jĂ€reldab jĂ€rgmised funktsioonid, kus Shamira saladuse jagamise skeem — kĂ”ik positiivsed tĂ€isarvud, ja Shamira saladuse jagamise skeem esindab mooduli koefitsiendi Shamira saladuse jagamise skeem.

Shamira saladuse jagamise skeem

NĂŒĂŒd leiab meie rĂŒndaja taas Shamira saladuse jagamise skeem, arvutades Shamira saladuse jagamise skeem:

Shamira saladuse jagamise skeem

Siis ta ĂŒritab jĂ€lle jĂ€reldada Shamira saladuse jagamise skeem, asendades Shamira saladuse jagamise skeem ĂŒhes Shamira saladuse jagamise skeem:

Shamira saladuse jagamise skeem

Seekord on tal tÔsine probleem. Valemilt puuduvad vÀÀrtused Shamira saladuse jagamise skeem, Shamira saladuse jagamise skeem ja Shamira saladuse jagamise skeem. Kuna nende muutuja kombinatsioone on lÔputult, ei saa ta mingit tÀiendavat teavet.

Turvakaalutlused

Shamira sekreetide jagamise skeem pakub teabeooria perspektiivist turvalisust. See tÀhendab, et matemaatika on vastupidav isegi pahatahtlikule isikule, kellel on piiramatu arvutusressurss. Siiski sisaldab skeem endiselt mitmeid tuntud probleeme.

NÀiteks ei loo Shamira skeem kontrollitavaid fragmente, ehkki inimesed vÔivad vabalt esituda vale fragmente ja hÀirida Ôige salajase taastamist. Vaenulik fragmentide hoidja, kellel on piisavalt teavet, vÔib isegi toota teise fragmendi, muutes Shamira saladuse jagamise skeem oma ÀranÀgemise jÀrgi. See probleem lahendatakse kontrollitavate sekreetide jagamise skeemide abil, nagu Feldmani skeem.

Teine probleem on see, et iga fragmendi pikkus on sama mis vastava salajase pikkus, nii et salajase pikkust on lihtne kindlaks teha. Seda probleemi lahendatakse triviaalsete tÀitmistega salajaste juhuslike numbrite fikseeritud pikkusega.

LĂ”puks on oluline mĂ€rkida, et meie mured seoses turvalisusega vĂ”ivad ulatuda kaugemale skeemist endast. Reaalsetes krĂŒptograafilistes rakendustes eksisteerib sageli oht kĂ”rvalkanalite rĂŒnnakuteks, kus rĂŒndaja ĂŒritab vĂ€lja tĂ”mmata kasulikku teavet, pĂ”hinedes rakenduse tĂ€itmise ajale, vahemĂ€llu salvestamisele, tĂ”rkeidele jne. Kui see tekitab muret, tuleks arenduse kĂ€igus hoolikalt kaaluda kaitsemeetmete, nagu funktsioonide ja pideva tĂ€itmisaja otsing, kasutamist, vĂ€ltida mĂ€lu talletamist ketta ning planeerida mitmeid muid aspekte, mis ĂŒletavad selle artikli ulatust.

Demos

VDS-l on vÔimalik installida: sellel lehel on interaktiivne demo Shamir'i salajaste jagamise skeemist. Demonstreerimine on tehtud raamatukogu baasil ssss-js, mis on iseenesest populaarse programmi JavaScripti port ssss. Pange tÀhele, et suurte vÀÀrtuste arvutamine Shamira saladuse jagamise skeem, Shamira saladuse jagamise skeem ja Shamira saladuse jagamise skeem vÔib vÔtta aega.

Allikas: habr.com

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster