Schematika deljenja sekretne informacije Šamira

Razmotrimo scenarij kada je potrebno osigurati sigurnost bankovnog skladišta. Ono se smatra potpuno nedostupnim bez ključa koji vam se izdaje prvog dana rada. Vaš cilj je sigurno sačuvati ključ.

Pretpostavimo da ste odlučili uvijek držati ključ kod sebe, pružajući pristup skladištu prema potrebi. No brzo ćete shvatiti da takvo rješenje praktično nije skalabilno, jer je za otvaranje skladišta uvijek potrebna vaša fizička prisutnost. A što je s odmorima koje su vam obećali? Osim toga, još više zabrinjava pitanje: što ako izgubite jedini ključ?

S mišlju o odmoru odlučili ste napraviti kopiju ključa i povjeriti je drugom suradniku. Međutim, shvaćate da to također nije idealno. Udvostručavanjem broja ključeva, također ste udvostručili mogućnosti krađe ključa.

Bez nade, uništavate duplikat i odlučujete podijeliti izvorni ključ na dva dijela. Sada, mislite, dvije povjerljive osobe s dijelovima ključa moraju fizički biti prisutne kako bi sastavile ključ i otvorile skladište. To znači da bi lopov morao ukrasti dva dijela, što je dvostruko teže nego ukrasti jedan ključ. Međutim, ubrzo shvaćate da je shema malo bolja od samo jednog ključa, jer ako netko izgubi polovicu ključa, cijeli ključ ne može biti obnovljen.

Problem se može riješiti s nizom dodatnih ključeva i brava, ali takav pristup brzo će zahtijevati ljudi, i ovaj projekt ne bi bio moguć bez sudjelovanja nevjerojatne zajednice suradnika i korisnika. ključeva i brava. Odlučujete da u idealnoj shemi treba podijeliti ključ tako da sigurnost ne ovisi potpuno o jednoj osobi. Također zaključujete da bi trebao postojati određeni prag broja dijelova, tako da pri gubitku jednog dijela (ili ako osoba ode na odmor) cijeli ključ ostaje funkcionalan.

Kako podijeliti tajnu

O ovoj vrsti sheme upravljanja ključevima razmišljao je Adi Shamir 1979. godine kada je objavio svoj rad „Kako podijeliti tajnu”. U članku se kratko objašnjava takozvana Schematika deljenja sekretne informacije Šamira pragovna shema za učinkovito dijeljenje tajne vrijednosti (npr. kriptografskog ključa) na Schematika deljenja sekretne informacije Šamira dijelova. Zatim, kada i samo kada je prikupljeno barem Schematika deljenja sekretne informacije Šamira iz Schematika deljenja sekretne informacije Šamira dijelova, tajnu je lako obnoviti. Schematika deljenja sekretne informacije Šamira.

S aspekta sigurnosti, važna karakteristika ovog sistema je da napadač ne smije saznati apsolutno ništa ako nema barem Schematika deljenja sekretne informacije Šamira dijelove. Čak ni prisutnost Schematika deljenja sekretne informacije Šamira dijelova ne bi trebala pružiti nikakve informacije. Ovu osobinu nazivamo semantičkim sigurnostima.

Polinomska interpolacija

Shamir-ova shema praga Schematika deljenja sekretne informacije Šamira izgrađena je oko koncepta polinomskih interpolacija. Ako niste upoznati s ovim konceptom, zapravo je prilično jednostavan. U suštini, ako ste ikada crtali točke na grafu, a zatim ih povezivali linijama ili krivinama, već ste ga koristili!

Schematika deljenja sekretne informacije Šamira
Kroz dvije točke može proći neograničen broj polinoma druge stepeni. Da bismo izabrali jedan od njih, potrebna je treća točka. Ilustracija: Vikipedija

Razmotrimo polinom prvog stepena, Schematika deljenja sekretne informacije Šamira. Ako želite izgraditi ovu funkciju na grafu, koliko točaka vam je potrebno? Pa, znamo da je to linearna funkcija koja formira liniju i da su potrebne bar dvije tačke. Dalje, razmotrite polinom drugog stepena, Schematika deljenja sekretne informacije Šamira. To je kvadratna funkcija, tako da za izgradnju grafika zahtijeva najmanje tri tačke. A kako stoji stvar s polinom trećeg stepena? Potrebno je barem četiri točke. I tako dalje.

Zaista sjajna stvar u ovoj osobini je da uzimajući u obzir stepen polinomske funkcije i najmanje Schematika deljenja sekretne informacije Šamira točki, možemo izvesti dodatne točke za ovu polinomsku funkciju. Ekstrapolaciju tih dodatnih točaka nazivamo polinomskom interpolacijom.

Sastavljanje tajne

Moguće je da ste već shvatili da ovdje ulazi u igru pametna Shamir-ova shema. Pretpostavimo da je naš tajni Schematika deljenja sekretne informacije Šamira — to je Schematika deljenja sekretne informacije Šamira. Možemo transformirati Schematika deljenja sekretne informacije Šamira u točku na grafu Schematika deljenja sekretne informacije Šamira i smisliti polinomsku funkciju stepena Schematika deljenja sekretne informacije Šamira, koja zadovoljava ovu točku. Podsjetimo, Schematika deljenja sekretne informacije Šamira će biti naš prag potrebnih fragmenata, stoga ako postavimo prag na tri fragmenta, trebamo odabrati polinomsku funkciju stepena dva.

Naš polinom će imati oblik Schematika deljenja sekretne informacije Šamira, gdje Schematika deljenja sekretne informacije Šamira i Schematika deljenja sekretne informacije Šamira — nasumično odabrani pozitivni cijeli brojevi. Samo gradimo polinom stepena Schematika deljenja sekretne informacije Šamira, gdje slobodni koeficijent Schematika deljenja sekretne informacije Šamira je naša tajna Schematika deljenja sekretne informacije Šamira, a kod svakog od sljedećih Schematika deljenja sekretne informacije Šamira Članova je slučajno odabran pozitivni koeficijent. Ako se vratimo na prvotni primjer i pretpostavimo da Schematika deljenja sekretne informacije Šamira, onda ćemo dobiti funkciju Schematika deljenja sekretne informacije Šamira.

U ovoj fazi možemo generirati dijelove povezivanjem Schematika deljenja sekretne informacije Šamira jedinstvenih cijelih brojeva u Schematika deljenja sekretne informacije Šamira, gdje Schematika deljenja sekretne informacije Šamira (jer je to naš tajni podaci). U ovom primjeru želimo podijeliti četiri dijela s pragom tri, stoga slučajno generiramo točke Schematika deljenja sekretne informacije Šamira i šaljemo jednu točku svakom od četiri povjerenika, čuvarima ključeva. Također obavještavamo ljude da Schematika deljenja sekretne informacije Šamira, budući da se to smatra javnom informacijom i potrebnim za obnovu Schematika deljenja sekretne informacije Šamira.

Obnova tajne

Već smo raspravili koncept polinomske interpolacije i to što stoji iza Shamirove sheme praga Schematika deljenja sekretne informacije Šamira. Kada bilo koja tri od četiri povjerenika žele obnoviti Schematika deljenja sekretne informacije Šamira, potrebno je samo interpolirati Schematika deljenja sekretne informacije Šamira svojim jedinstvenim točkama. U tu svrhu mogu definirati svoje točke Schematika deljenja sekretne informacije Šamira i izračunati Lagrangeov interpolacijski polinom koristeći sljedeću formulu. Ako vam je programiranje jasnije od matematike, tada pi - to je u suštini operator for, koji množi sve rezultate, a sigma - to je for, koji sve zbraja.

Schematika deljenja sekretne informacije Šamira

Schematika deljenja sekretne informacije Šamira

Tijekom Schematika deljenja sekretne informacije Šamira možemo to riješiti na sljedeći način i vratiti naš izvorni polinomski funkciju:

Schematika deljenja sekretne informacije Šamira

Budući da znamo da Schematika deljenja sekretne informacije Šamira, obnova Schematika deljenja sekretne informacije Šamira se provodi jednostavno:

Schematika deljenja sekretne informacije Šamira

Korištenje nesigurne cijelobrojne aritmetike

Iako smo uspješno primijenili osnovnu ideju Shamira Schematika deljenja sekretne informacije Šamira, imamo problem koji smo ignorirali do sada. Naša polinom funkcija koristi nesigurnu cijelobrojnu aritmetiku. Imajte na umu da za svaku dodatnu točku koju napadač dobije na grafikonu naše funkcije, ostaje manje mogućnosti za druge točke. Možete to vidjeti vlastitim očima kada crtate grafikon s povećanjem broja točaka za polinomsku funkciju koristeći cijelobrojnu aritmetiku. To je kontraproduktivno za našu izjavnu sigurnosnu svrhu, jer napadač ne bi trebao saznati apsolutno ništa, sve dok nemaju barem Schematika deljenja sekretne informacije Šamira dijelova.

Da bismo pokazali koliko je slaba shema s cijelobrojnom aritmetikom, razmotrimo scenarij u kojem je napadač dobio dvije točke Schematika deljenja sekretne informacije Šamira i zna javnu informaciju, da Schematika deljenja sekretne informacije ŠamiraNa temelju tih informacija može izvesti Schematika deljenja sekretne informacije Šamira, koji je jednak dva, i uključiti poznate vrijednosti u formulu Schematika deljenja sekretne informacije Šamira i Schematika deljenja sekretne informacije Šamira.

Schematika deljenja sekretne informacije Šamira

Zatim napadač može pronaći Schematika deljenja sekretne informacije Šamira, izračunavajući Schematika deljenja sekretne informacije Šamira:

Schematika deljenja sekretne informacije Šamira

Budući da smo definirali Schematika deljenja sekretne informacije Šamira kao slučajno odabrane cijele pozitivne brojeve, postoji ograničen broj mogućih Schematika deljenja sekretne informacije Šamira. Ova informacija omogućava napadaču da izvede Schematika deljenja sekretne informacije Šamira, jer će sve što je veće od 5 učiniti Schematika deljenja sekretne informacije Šamira negativnim. To se pokazuje točnim, budući da smo definirali Schematika deljenja sekretne informacije Šamira

Zatim napadač može izračunati moguće vrijednosti Schematika deljenja sekretne informacije Šamira, zamjenjujući Schematika deljenja sekretne informacije Šamira u Schematika deljenja sekretne informacije Šamira:

Schematika deljenja sekretne informacije Šamira

S ograničenim skupom opcija za Schematika deljenja sekretne informacije Šamira postaje jasno koliko je lako pogoditi i provjeriti vrijednosti Schematika deljenja sekretne informacije Šamira. Ovdje je samo pet opcija.

Rješenje problema s nesigurnom cijelom aritmetikom

Kako bi se uklonila ova ranjivost, Shamir predlaže korištenje modularne aritmetike, zamjenjujući Schematika deljenja sekretne informacije Šamira na Schematika deljenja sekretne informacije Šamira, gdje Schematika deljenja sekretne informacije Šamira i Schematika deljenja sekretne informacije Šamira — skup svih prostih brojeva.

Brzo ćemo se podsjetiti kako funkcioniše modularna aritmetika. Satovi s kazaljkama su već poznata koncepcija. Koriste satove koji su Schematika deljenja sekretne informacije Šamira. Kada kazaljka na satu prođe pored dvanaest, vraća se na jedan. Zanimljiva osobina ovog sistema je ta što, jednostavno gledajući na sat, ne možemo izvesti koliko je okreta kazaljka napravila. Međutim, ako znamo da je kazaljka na satu prošla dvanaest četiri puta, možemo potpuno odrediti broj sati koji su prošli pomoću jednostavne formule Schematika deljenja sekretne informacije Šamira, gdje Schematika deljenja sekretne informacije Šamira — to je naš djelitelj (ovdje Schematika deljenja sekretne informacije Šamira), Schematika deljenja sekretne informacije Šamira — to je koeficijent (koliko puta djelitelj bez ostatka ide u početni broj, ovdje Schematika deljenja sekretne informacije Šamira), a Schematika deljenja sekretne informacije Šamira — to je ostatak koji obično vraća poziv operatora po modulu (ovdje Schematika deljenja sekretne informacije Šamira). Poznavanje svih ovih vrijednosti omogućava nam rješavanje jednadžbe za Schematika deljenja sekretne informacije Šamira, ali ako propustimo koeficijent, nikada nećemo moći obnoviti izvorni broj.

Možemo demonstrirati kako to poboljšava sigurnost našeg sistema primjenjujući shemu na naš prethodni primjer i koristeći Schematika deljenja sekretne informacije Šamira. Naša nova polinomna funkcija Schematika deljenja sekretne informacije Šamira, a nove točke Schematika deljenja sekretne informacije Šamira. Sada čuvari ključeva mogu ponovno koristiti polinomnu interpolaciju za obnavljanje naše funkcije, samo što sada operacije zbrajanja i množenja moraju biti praćene smanjenjem po modu Schematika deljenja sekretne informacije Šamira (npr. Schematika deljenja sekretne informacije Šamira).

Pretpostavljajući da je napadač saznao dvije od ovih novih točaka, Schematika deljenja sekretne informacije Šamira, a javne informacije Schematika deljenja sekretne informacije Šamira. Ovaj put napadač na temelju svih dostupnih informacija ispisuje sljedeće funkcije, gdje Schematika deljenja sekretne informacije Šamira — skup svih pozitivnih cijelih brojeva, a Schematika deljenja sekretne informacije Šamira predstavlja koeficijent modula Schematika deljenja sekretne informacije Šamira.

Schematika deljenja sekretne informacije Šamira

Sada naš napadač ponovno pronalazi Schematika deljenja sekretne informacije Šamira, izračunavajući Schematika deljenja sekretne informacije Šamira:

Schematika deljenja sekretne informacije Šamira

Zatim ponovno pokušava ispisati Schematika deljenja sekretne informacije Šamira, zamjenjujući Schematika deljenja sekretne informacije Šamira u Schematika deljenja sekretne informacije Šamira:

Schematika deljenja sekretne informacije Šamira

Ovaj put ima ozbiljan problem. U formuli nedostaju vrijednosti Schematika deljenja sekretne informacije Šamira, Schematika deljenja sekretne informacije Šamira i Schematika deljenja sekretne informacije Šamira. Budući da postoji beskonačno mnogo kombinacija ovih varijabli, ne može dobiti nikakve dodatne informacije.

Razmatranja sigurnosti

Shema dijeljenja tajne Shamir predlaže sigurnost s gledišta teorije informacija. To znači da je matematika otporna čak i na napadača s neograničenom računalnom moći. Međutim, shema još uvijek ima nekoliko poznatih problema.

Na primjer, Shamirina shema ne stvara provjerljive fragmente, to jest ljudi mogu slobodno predstaviti falsificirane fragmente i ometati obnavljanje ispravne tajne. Zlonamjernik s dovoljno informacija može čak proizvesti drugi fragment mijenjajući Schematika deljenja sekretne informacije Šamira po vlastitom nahođenju. Ovaj problem se rješava pomoću provjerljivih shema dijeljenja tajne, poput Feldmanove sheme.

Drugi problem je u tome što je duljina bilo kojeg fragmenta jednaka duljini odgovarajuće tajne, tako da je duljinu tajne lako odrediti. Ovaj problem se rješava trivijalnim punjenjem tajne proizvoljnim brojevima do fiksne duljine.

Na kraju, važno je napomenuti da naša zabrinutost za sigurnost može premašiti samu shemu. Za stvarne kriptografske primjene često postoji prijetnja napadima putem vanjskih kanala, kada napadač pokušava izvući korisne informacije iz vremena izvođenja aplikacije, keširanja, kvarova i sl. Ako to predstavlja zabrinutost, tijekom razvoja treba pažljivo razmotriti korištenje sigurnosnih mjera, kao što su funkcije i pretraga s konstantnim vremenom izvođenja, sprječavanje spremanja podataka na disk i razmatranje niza drugih stvari koje nadilaze ovaj članak.

Demo

Na ovoj stranici ima interaktivnu demonstraciju sheme dijeljenja tajne Shamir. Demonstracija je temeljena na biblioteci ssss-js, koja sama po sebi predstavlja JavaScript port popularnog programa ssssObratite pažnju da izračunavanje velikih vrijednosti Schematika deljenja sekretne informacije Šamira, Schematika deljenja sekretne informacije Šamira i Schematika deljenja sekretne informacije Šamira može potrajati neko vrijeme.

Izvor: habr.com

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster