Shamirjeva skrivnostna shema delitve

Razmislite o scenariju, ko morate zavarovati bančni trezor. Šteje se, da je popolnoma nepremagljiv brez ključa, ki ga dobite že prvi dan dela. Vaš cilj je varno shraniti ključ.

Recimo, da se odločite, da boste imeli ključ ves čas pri sebi in po potrebi omogočili dostop do shrambe. Toda hitro boste spoznali, da takšna rešitev v praksi ni primerna, saj je ob vsakem odpiranju shrambe potrebna vaša fizična prisotnost. Kaj pa dopust, ki so vam ga obljubili? Poleg tega je še bolj strašljivo vprašanje: kaj pa, če bi izgubili svoj edini ključ?

Z mislijo na dopust se odločite narediti kopijo ključa in jo zaupati drugemu zaposlenemu. Vendar razumete, da tudi to ni idealno. S podvojitvijo števila ključev podvojite tudi možnosti za krajo ključev.

V obupu uničite dvojnik in se odločite, da boste originalni ključ razdelili na pol. Zdaj bi si mislili, da bi morali biti dve zaupanja vredni osebi z delci ključev fizično prisotni, da prevzameta ključ in odpreta trezor. To pomeni, da mora tat ukrasti dva kosa, kar je dvakrat težje kot ukrasti en ključ. Vendar pa kmalu ugotovite, da ta shema ni veliko boljša od samo enega ključa, kajti če nekdo izgubi polovico ključa, celotnega ključa ni mogoče obnoviti.

Težavo je mogoče rešiti z vrsto dodatnih ključev in ključavnic, vendar bo ta pristop hitro zahteval много ključi in ključavnice. Odločite se, da bi bila idealna zasnova deljenje ključa, tako da varnost ni v celoti odvisna od ene osebe. Prav tako sklepate, da mora obstajati nek prag za število fragmentov, tako da če se en fragment izgubi (ali če gre oseba na dopust), celoten ključ ostane funkcionalen.

Kako deliti skrivnost

O tej vrsti sheme upravljanja ključev je razmišljal Adi Shamir leta 1979, ko je objavil svoje delo "Kako deliti skrivnost". Članek na kratko pojasnjuje t.i Shamirjeva skrivnostna shema delitve shema praga za učinkovito razdelitev skrivne vrednosti (kot je kriptografski ključ). Shamirjeva skrivnostna shema delitve deli. Takrat, ko in samo ko vsaj Shamirjeva skrivnostna shema delitve z dne Shamirjeva skrivnostna shema delitve deli so sestavljeni, lahko preprosto obnovite skrivnost Shamirjeva skrivnostna shema delitve.

Z varnostnega vidika je pomembna lastnost te sheme ta, da napadalec ne sme vedeti popolnoma ničesar, razen če ima vsaj Shamirjeva skrivnostna shema delitve deli. Tudi prisotnost Shamirjeva skrivnostna shema delitve deli ne smejo zagotavljati nobenih informacij. To lastnost imenujemo semantična varnost.

Polinomska interpolacija

Shamirjeva shema praga Shamirjeva skrivnostna shema delitve zgrajen okoli koncepta polinomska interpolacija. Če niste seznanjeni s tem konceptom, je pravzaprav precej preprost. Pravzaprav, če ste kdaj narisali točke na graf in jih nato povezali s črtami ali krivuljami, ste to že uporabili!

Shamirjeva skrivnostna shema delitve
Skozi dve točki lahko narišete neomejeno število polinomov stopnje 2. Če želite med njimi izbrati edinega, potrebujete tretjo točko. Ilustracija: Wikipedia

Razmislite o polinomu prve stopnje, Shamirjeva skrivnostna shema delitve. Če želite to funkcijo narisati na grafu, koliko točk potrebujete? No, vemo, da je to linearna funkcija, ki tvori premico in zato potrebuje vsaj dve točki. Nato razmislite o polinomski funkciji druge stopnje, Shamirjeva skrivnostna shema delitve. To je kvadratna funkcija, zato so za izris grafa potrebne vsaj tri točke. Kaj pa polinom tretje stopnje? Vsaj štiri točke. In tako dalje in tako naprej.

Res kul stvar pri tej lastnosti je, da glede na stopnjo polinomske funkcije in vsaj Shamirjeva skrivnostna shema delitve točke, lahko izpeljemo dodatne točke za to polinomsko funkcijo. Te dodatne točke imenujemo ekstrapolacija polinomska interpolacija.

Izmišljanje skrivnosti

Morda ste že ugotovili, da tukaj nastopi Shamirjeva pametna shema. Povejmo svojo skrivnost Shamirjeva skrivnostna shema delitve - Je Shamirjeva skrivnostna shema delitve. Lahko se obrnemo Shamirjeva skrivnostna shema delitve do točke na grafu Shamirjeva skrivnostna shema delitve in pripravite polinomsko funkcijo s stopnjo Shamirjeva skrivnostna shema delitve, ki izpolnjuje to točko. Naj vas spomnimo, da Shamirjeva skrivnostna shema delitve bo naš prag zahtevanih fragmentov, tako da, če nastavimo prag na tri fragmente, moramo izbrati polinomsko funkcijo z drugo stopnjo.

Naš polinom bo imel obliko Shamirjeva skrivnostna shema delitveČe Shamirjeva skrivnostna shema delitve и Shamirjeva skrivnostna shema delitve — naključno izbrana pozitivna cela števila. Samo konstruiramo polinom s stopnjo Shamirjeva skrivnostna shema delitve, kjer je prosti koeficient Shamirjeva skrivnostna shema delitve - To je naša skrivnost Shamirjeva skrivnostna shema delitve, in za vsakega od naslednjih Shamirjeva skrivnostna shema delitve izrazi obstaja naključno izbran pozitivni koeficient. Če se vrnemo k prvotnemu primeru in predpostavimo, da Shamirjeva skrivnostna shema delitve, potem dobimo funkcijo Shamirjeva skrivnostna shema delitve.

Na tej točki lahko ustvarimo fragmente s povezovanjem Shamirjeva skrivnostna shema delitve enolična cela števila v Shamirjeva skrivnostna shema delitveČe Shamirjeva skrivnostna shema delitve (ker je to naša skrivnost). V tem primeru želimo razdeliti štiri fragmente s pragom tri, zato naključno ustvarimo točke Shamirjeva skrivnostna shema delitve in pošljite eno točko vsakemu od štirih zaupanja vrednih oseb, skrbnikov ključa. To ljudem tudi sporočamo Shamirjeva skrivnostna shema delitve, ker se to šteje za javne informacije in je potrebno za izterjavo Shamirjeva skrivnostna shema delitve.

Obnovitev skrivnosti

Razpravljali smo že o konceptu polinomske interpolacije in o tem, kako je osnova Shamirjeve sheme praga Shamirjeva skrivnostna shema delitve. Ko kateri koli trije od štirih skrbnikov želijo obnoviti Shamirjeva skrivnostna shema delitve, morajo samo interpolirati Shamirjeva skrivnostna shema delitve s svojimi edinstvenimi točkami. Da bi to naredili, lahko določijo svoje točke Shamirjeva skrivnostna shema delitve in izračunajte Lagrangeov interpolacijski polinom z naslednjo formulo. Če vam je programiranje bolj jasno kot matematika, potem je pi v bistvu operator for, ki pomnoži vse rezultate, sigma pa je for, kar sešteje vse.

Shamirjeva skrivnostna shema delitve

Shamirjeva skrivnostna shema delitve

Ob Shamirjeva skrivnostna shema delitve rešimo jo lahko takole in vrnemo prvotno polinomsko funkcijo:

Shamirjeva skrivnostna shema delitve

Ker to vemo Shamirjeva skrivnostna shema delitve, okrevanje Shamirjeva skrivnostna shema delitve narejeno preprosto:

Shamirjeva skrivnostna shema delitve

Uporaba nevarne aritmetike celih števil

Čeprav smo Shamirjevo osnovno idejo uspešno uporabili Shamirjeva skrivnostna shema delitve, ostane nam problem, ki smo ga do sedaj ignorirali. Naša polinomska funkcija uporablja nevarno celoštevilsko aritmetiko. Upoštevajte, da je za vsako dodatno točko, ki jo napadalec pridobi na grafu naše funkcije, manj možnosti za druge točke. To lahko vidite na lastne oči, ko narišete naraščajoče število točk za polinomsko funkcijo z uporabo celoštevilske aritmetike. To je kontraproduktivno za naš zastavljeni varnostni cilj, saj napadalec ne bi smel vedeti ničesar, dokler nima vsaj Shamirjeva skrivnostna shema delitve drobci.

Če želite pokazati, kako šibko je aritmetično vezje celih števil, razmislite o scenariju, v katerem je napadalec pridobil dve točki Shamirjeva skrivnostna shema delitve in pozna informacije javnega značaja, ki Shamirjeva skrivnostna shema delitve. Iz teh podatkov lahko sklepa Shamirjeva skrivnostna shema delitve, enako dve, in znane vrednosti vstavite v formulo Shamirjeva skrivnostna shema delitve и Shamirjeva skrivnostna shema delitve.

Shamirjeva skrivnostna shema delitve

Napadalec lahko nato najde Shamirjeva skrivnostna shema delitve, štetje Shamirjeva skrivnostna shema delitve:

Shamirjeva skrivnostna shema delitve

Ker smo definirali Shamirjeva skrivnostna shema delitve kot naključno izbrana pozitivna cela števila, obstaja omejeno število možnih Shamirjeva skrivnostna shema delitve. Z uporabo teh informacij lahko napadalec sklepa Shamirjeva skrivnostna shema delitve, saj bo zadostovalo vse, kar je večje od 5 Shamirjeva skrivnostna shema delitve negativno. To se izkaže za res, saj smo ugotovili Shamirjeva skrivnostna shema delitve

Napadalec lahko nato izračuna možne vrednosti Shamirjeva skrivnostna shema delitvezamenjava Shamirjeva skrivnostna shema delitve в Shamirjeva skrivnostna shema delitve:

Shamirjeva skrivnostna shema delitve

Z omejenimi možnostmi za Shamirjeva skrivnostna shema delitve postane jasno, kako enostavno je izbrati in preveriti vrednosti Shamirjeva skrivnostna shema delitve. Tukaj je samo pet možnosti.

Reševanje problema z nevarno aritmetiko celih števil

Za odpravo te ranljivosti Shamir predlaga uporabo modularne aritmetike, zamenjavo Shamirjeva skrivnostna shema delitve o Shamirjeva skrivnostna shema delitveČe Shamirjeva skrivnostna shema delitve и Shamirjeva skrivnostna shema delitve — množica vseh praštevil.

Na hitro se spomnimo, kako deluje modularna aritmetika. Ura s kazalci je znan koncept. Uporablja uro, ki je Shamirjeva skrivnostna shema delitve. Takoj ko urni kazalec preteče dvanajst, se vrne na ena. Zanimiva lastnost tega sistema je, da zgolj s pogledom na uro ne moremo sklepati, koliko obratov je naredil urni kazalec. Če pa vemo, da je urni kazalec štirikrat pretekel 12, lahko s preprosto formulo popolnoma določimo število pretečenih ur Shamirjeva skrivnostna shema delitveČe Shamirjeva skrivnostna shema delitve je naš delitelj (tukaj Shamirjeva skrivnostna shema delitve), Shamirjeva skrivnostna shema delitve je koeficient (kolikokrat gre delitelj v prvotno število brez ostanka, tukaj Shamirjeva skrivnostna shema delitve), in Shamirjeva skrivnostna shema delitve je ostanek, ki običajno vrne klic modulo operaterja (tukaj Shamirjeva skrivnostna shema delitve). Poznavanje vseh teh vrednosti nam omogoča, da rešimo enačbo za Shamirjeva skrivnostna shema delitve, če pa koeficient zgrešimo, ne bomo mogli nikoli povrniti prvotne vrednosti.

Lahko pokažemo, kako to izboljša varnost naše sheme, tako da shemo uporabimo v prejšnjem primeru in uporabimo Shamirjeva skrivnostna shema delitve. Naša nova polinomska funkcija Shamirjeva skrivnostna shema delitvein nove točke Shamirjeva skrivnostna shema delitve. Zdaj lahko skrbniki ključev ponovno uporabijo polinomsko interpolacijo za rekonstrukcijo naše funkcije, le da mora tokrat operacije seštevanja in množenja spremljati redukcija po modulu Shamirjeva skrivnostna shema delitve (npr Shamirjeva skrivnostna shema delitve).

Z uporabo tega novega primera predpostavimo, da se je napadalec naučil dveh od teh novih točk, Shamirjeva skrivnostna shema delitve, in javne informacije Shamirjeva skrivnostna shema delitve. Tokrat napadalec na podlagi vseh informacij, ki jih ima, izpiše naslednje funkcije, kjer Shamirjeva skrivnostna shema delitve je množica vseh pozitivnih celih števil in Shamirjeva skrivnostna shema delitve predstavlja koeficient modula Shamirjeva skrivnostna shema delitve.

Shamirjeva skrivnostna shema delitve

Zdaj naš napadalec spet najde Shamirjeva skrivnostna shema delitve, računanje Shamirjeva skrivnostna shema delitve:

Shamirjeva skrivnostna shema delitve

Potem poskusi znova Shamirjeva skrivnostna shema delitvezamenjava Shamirjeva skrivnostna shema delitve в Shamirjeva skrivnostna shema delitve:

Shamirjeva skrivnostna shema delitve

Tokrat ima resen problem. V formuli manjkajo vrednosti Shamirjeva skrivnostna shema delitve, Shamirjeva skrivnostna shema delitve и Shamirjeva skrivnostna shema delitve. Ker obstaja neskončno število kombinacij teh spremenljivk, ne more dobiti nobene dodatne informacije.

Varnostni premisleki

Shamirjeva shema delitve skrivnosti nakazuje varnost z vidika informacijske teorije. To pomeni, da je matematika odporna tudi proti napadalcu z neomejeno računalniško močjo. Vendar vezje še vedno vsebuje več znanih težav.

Na primer, Shamirjeva shema ne ustvarja fragmenti, ki jih je treba preveriti, to pomeni, da lahko ljudje prosto predstavljajo lažne fragmente in posegajo v obnovitev pravilne skrivnosti. Sovražni čuvaj fragmentov z dovolj informacijami bi lahko s spremembo celo ustvaril nov fragment Shamirjeva skrivnostna shema delitve po lastni presoji. Ta problem je rešen z uporabo preverljive sheme deljenja skrivnosti, kot je Feldmanova shema.

Druga težava je, da je dolžina katerega koli fragmenta enaka dolžini ustrezne skrivnosti, zato je dolžino skrivnosti enostavno določiti. Ta problem je mogoče rešiti s trivialnim oblazinjenje skrivnost s poljubnimi številkami do fiksne dolžine.

Nazadnje je pomembno omeniti, da lahko naši pomisleki glede varnosti presegajo samo zasnovo. Za dejanske kriptografske aplikacije pogosto obstaja grožnja stranskih kanalskih napadov, kjer napadalec poskuša izvleči koristne informacije iz časa izvajanja aplikacije, predpomnjenja, zrušitev itd. Če je to zaskrbljujoče, je treba med razvojem skrbno pretehtati uporabo zaščitnih ukrepov, kot so funkcije in iskanja v konstantnem času, preprečevanje shranjevanja pomnilnika na disk in številne druge pomisleke, ki presegajo obseg tega članka.

Demo

Na to stran Na voljo je interaktivna predstavitev Shamirjeve sheme za skupno rabo skrivnosti. Predstavitev na podlagi knjižnice ssss-js, ki je sama vrata JavaScript priljubljenega programa ssss. Upoštevajte, da izračun velikih vrednosti Shamirjeva skrivnostna shema delitve, Shamirjeva skrivnostna shema delitve и Shamirjeva skrivnostna shema delitve lahko traja nekaj časa.

Vir: www.habr.com

Dodaj komentar