Shamir's Secret Sharing Scheme

Overvej et scenario, hvor du skal sikre dig en bankboks. Det anses for absolut uindtageligt uden nøgle, som gives til dig på den første arbejdsdag. Dit mål er at opbevare nøglen sikkert.

Antag, at du beslutter dig for altid at have nøglen med dig og give adgang til boksen efter behov. Men du vil hurtigt indse, at sådan en løsning ikke skalerer godt i praksis, for hver gang skal du være fysisk til stede for at åbne boksen. Hvad med den ferie, du blev lovet? Derudover er spørgsmålet endnu mere skræmmende: hvad nu hvis du mistede den eneste nøgle?

Med ideen om en ferie beslutter du dig for at lave en kopi af nøglen og overlade den til en anden medarbejder. Du forstår dog, at dette heller ikke er ideelt. Ved at fordoble antallet af nøgler har du også fordoblet chancerne for nøgletyveri.

Desperat ødelægger du duplikatet og beslutter dig for at dele den originale nøgle i to. Nu tror du, at to betroede personer med nøglefragmenter skal være fysisk til stede for at hente nøglen og åbne boksen. Det betyder, at tyven skal stjæle to fragmenter, hvilket er dobbelt så svært som at stjæle en nøgle. Du indser dog hurtigt, at denne ordning ikke er meget bedre end blot én nøgle, for hvis nogen mister halvdelen af ​​nøglen, kan den fulde nøgle ikke gendannes.

Problemet kan løses med en række ekstra nøgler og låse, men denne tilgang vil hurtigt kræve много nøgler og låse. Du beslutter dig for, at den ideelle ordning er at dele nøglen, så sikkerheden ikke udelukkende afhænger af én person. Du konkluderer også, at der skal være en tærskel for antallet af fragmenter, så hvis et fragment går tabt (eller hvis personen tager på ferie), forbliver hele nøglen funktionsdygtig.

Sådan deler du en hemmelighed

Denne type nøglestyringsordning blev tænkt på af Adi Shamir i 1979, da han udgav sit arbejde "Sådan deler man en hemmelighed". Artiklen forklarer kort det såkaldte Shamir's Secret Sharing Scheme tærskelordning til effektivt at opdele en hemmelig værdi (f.eks. en kryptografisk nøgle) i Shamir's Secret Sharing Scheme dele. Så, hvornår og kun når i det mindste Shamir's Secret Sharing Scheme af Shamir's Secret Sharing Scheme dele er samlet, kan du nemt genoprette hemmeligheden Shamir's Secret Sharing Scheme.

Fra et sikkerhedssynspunkt er en vigtig egenskab ved denne ordning, at en angriber absolut intet skal lære, hvis han ikke har mindst Shamir's Secret Sharing Scheme dele. Selv tilstedeværelsen Shamir's Secret Sharing Scheme dele bør ikke give nogen information. Vi kalder denne ejendom semantisk sikkerhed.

Polynomisk interpolation

Tærskel Shamir-ordning Shamir's Secret Sharing Scheme bygget op omkring konceptet polynomisk interpolation. Hvis du ikke er bekendt med dette koncept, er det faktisk ret simpelt. Generelt, hvis du nogensinde har tegnet punkter på et diagram og derefter forbundet dem med linjer eller kurver, har du allerede brugt det!

Shamir's Secret Sharing Scheme
Gennem to punkter kan du tegne et ubegrænset antal polynomier af grad 2. For at vælge det eneste fra dem, skal du bruge et tredje punkt. Illustration: Wikipedia

Overvej et polynomium med grad et, Shamir's Secret Sharing Scheme. Hvis du vil plotte denne funktion på en graf, hvor mange point skal du så bruge? Nå, vi ved, at dette er en lineær funktion, der danner en linje, og derfor har vi brug for mindst to punkter. Overvej derefter en polynomisk funktion med grad to, Shamir's Secret Sharing Scheme. Dette er en kvadratisk funktion, så der kræves mindst tre punkter for at plotte grafen. Hvad med et polynomium med grad tre? Mindst fire prikker. Og så videre og så videre.

Det virkelig fede ved denne egenskab er, at givet graden af ​​polynomiets funktion og mindst Shamir's Secret Sharing Scheme point, kan vi udlede yderligere point for denne polynomiefunktion. Vi kalder ekstrapolering af disse yderligere punkter polynomisk interpolation.

At gøre en hemmelighed

Du har måske allerede fundet ud af, at det er her, Shamirs smarte plan kommer ind i billedet. Antag vores hemmelighed Shamir's Secret Sharing Scheme - Er Shamir's Secret Sharing Scheme. Vi kan vende Shamir's Secret Sharing Scheme til punktet på grafen Shamir's Secret Sharing Scheme og kom op med en polynomiel funktion med en grad Shamir's Secret Sharing Scheme, hvilket opfylder dette punkt. Husk det Shamir's Secret Sharing Scheme vil være vores tærskel for nødvendige fragmenter, så hvis vi sætter tærsklen til tre fragmenter, skal vi vælge en polynomiefunktion med en grad på to.

Vores polynomium vil have formen Shamir's Secret Sharing SchemeHvor Shamir's Secret Sharing Scheme и Shamir's Secret Sharing Scheme er tilfældigt udvalgte positive heltal. Vi bygger bare et polynomium med en grad Shamir's Secret Sharing Scheme, hvor den frie koefficient Shamir's Secret Sharing Scheme - Det er vores hemmelighed Shamir's Secret Sharing Scheme, og hver af de efterfølgende Shamir's Secret Sharing Scheme termer er en tilfældigt valgt positiv koefficient. Hvis vi vender tilbage til det oprindelige eksempel og antager det Shamir's Secret Sharing Scheme, så får vi funktionen Shamir's Secret Sharing Scheme.

På dette tidspunkt kan vi generere fragmenter ved at forbinde Shamir's Secret Sharing Scheme unikke heltal i Shamir's Secret Sharing SchemeHvor Shamir's Secret Sharing Scheme (fordi det er vores hemmelighed). I dette eksempel ønsker vi at fordele fire fragmenter med en tærskel på tre, så vi genererer tilfældigt point Shamir's Secret Sharing Scheme og send et point til hver af de fire betroede personer, nøglebevogterne. Det fortæller vi også folk Shamir's Secret Sharing Scheme, da det anses for offentlig oplysning og er nødvendigt for inddrivelse Shamir's Secret Sharing Scheme.

Hemmelig genopretning

Vi har allerede diskuteret begrebet polynomisk interpolation, og hvordan det ligger til grund for Shamirs tærskelskema. Shamir's Secret Sharing Scheme. Når en hvilken som helst tre ud af fire administratorer ønsker at genoprette Shamir's Secret Sharing Scheme, skal de kun interpolere Shamir's Secret Sharing Scheme med deres unikke pointer. For at gøre dette kan de definere deres point Shamir's Secret Sharing Scheme og beregn Lagrange-interpolationspolynomiet ved hjælp af følgende formel. Hvis programmering er klarere for dig end matematik, så er pi i det væsentlige en operatør for, som multiplicerer alle resultater, og sigma er forder lægger alt sammen.

Shamir's Secret Sharing Scheme

Shamir's Secret Sharing Scheme

Shamir's Secret Sharing Scheme vi kan løse det sådan her og returnere vores oprindelige polynomiefunktion:

Shamir's Secret Sharing Scheme

Siden vi ved det Shamir's Secret Sharing Scheme, genopretning Shamir's Secret Sharing Scheme gøres ganske enkelt:

Shamir's Secret Sharing Scheme

Bruger usikker heltalsaritmetik

Selvom vi med succes har anvendt den grundlæggende idé om Shamir Shamir's Secret Sharing Scheme, står vi tilbage med et problem, som vi har ignoreret indtil nu. Vores polynomiefunktion bruger usikker heltalsaritmetik. Bemærk, at for hvert ekstra point en angriber får på vores funktionsgraf, er der færre muligheder for andre point. Du kan se dette med dine egne øjne, når du plotter et stigende antal punkter for en polynomiefunktion ved hjælp af heltalsaritmetik. Dette er kontraproduktivt i forhold til vores erklærede sikkerhedsmål, fordi en angriber bør vide absolut intet, før de i det mindste har Shamir's Secret Sharing Scheme fragmenter.

For at demonstrere, hvor svag det aritmetiske heltalsskema er, skal du overveje et scenarie, hvor angriberen fik to point Shamir's Secret Sharing Scheme og kender offentlig information, der Shamir's Secret Sharing Scheme. Ud fra disse oplysninger kan han udlede Shamir's Secret Sharing Scheme, lig med to, og forbind de kendte værdier til formlen Shamir's Secret Sharing Scheme и Shamir's Secret Sharing Scheme.

Shamir's Secret Sharing Scheme

Angriberen kan derefter finde Shamir's Secret Sharing Scheme, tæller Shamir's Secret Sharing Scheme:

Shamir's Secret Sharing Scheme

Siden vi har defineret Shamir's Secret Sharing Scheme som tilfældigt udvalgte positive heltal er der et begrænset antal mulige Shamir's Secret Sharing Scheme. Med disse oplysninger kan en angriber udlede Shamir's Secret Sharing Scheme, fordi alt større end 5 vil gøre Shamir's Secret Sharing Scheme negativ. Dette viser sig at være sandt, da vi har bestemt Shamir's Secret Sharing Scheme

Angriberen kan derefter beregne de mulige værdier Shamir's Secret Sharing Schemeudskiftning Shamir's Secret Sharing Scheme в Shamir's Secret Sharing Scheme:

Shamir's Secret Sharing Scheme

Med begrænsede muligheder for Shamir's Secret Sharing Scheme det bliver tydeligt, hvor nemt det er at opfange og kontrollere værdier Shamir's Secret Sharing Scheme. Der er kun fem muligheder her.

Løsning af problemet med usikker heltal aritmetik

For at rette op på denne sårbarhed foreslår Shamir at bruge modulær aritmetik ved at erstatte Shamir's Secret Sharing SchemeShamir's Secret Sharing SchemeHvor Shamir's Secret Sharing Scheme и Shamir's Secret Sharing Scheme er mængden af ​​alle primtal.

Lad os hurtigt huske, hvordan modulær aritmetik fungerer. Håndure er et kendt begreb. Hun bruger altså et ur Shamir's Secret Sharing Scheme. Så snart timeviseren passerer tolv, vender den tilbage til en. En interessant egenskab ved dette system er, at blot ved at se på uret, kan vi ikke udlede, hvor mange omdrejninger timeviseren har lavet. Men hvis vi ved, at timeviseren har passeret 12 fire gange, kan vi fuldt ud bestemme antallet af timer, der er forløbet med en simpel formel Shamir's Secret Sharing SchemeHvor Shamir's Secret Sharing Scheme er vores divisor (her Shamir's Secret Sharing Scheme), Shamir's Secret Sharing Scheme - dette er koefficienten (hvor mange gange divisoren uden en rest går ind i det oprindelige tal, her Shamir's Secret Sharing Scheme), og Shamir's Secret Sharing Scheme er resten, som normalt returnerer et opkald til modulo-operatøren (her Shamir's Secret Sharing Scheme). At kende alle disse værdier giver os mulighed for at løse ligningen for Shamir's Secret Sharing Scheme, men hvis vi springer koefficienten over, vil vi aldrig være i stand til at genoprette den oprindelige værdi.

Vi kan demonstrere, hvordan dette forbedrer sikkerheden i vores kredsløb ved at anvende kredsløbet til vores tidligere eksempel og bruge Shamir's Secret Sharing Scheme. Vores nye polynomiefunktion Shamir's Secret Sharing Scheme, og de nye punkter Shamir's Secret Sharing Scheme. Nu kan nøgleholderne igen bruge polynomiel interpolation til at rekonstruere vores funktion, kun denne gang skal additions- og multiplikationsoperationerne efterfølges af moduloreduktion. Shamir's Secret Sharing Scheme (f.eks Shamir's Secret Sharing Scheme).

Brug dette nye eksempel, antag, at angriberen har lært to af disse nye punkter, Shamir's Secret Sharing Schemeog offentlig information Shamir's Secret Sharing Scheme. Denne gang viser angriberen, baseret på al den information han har, følgende funktioner, hvor Shamir's Secret Sharing Scheme er mængden af ​​alle positive heltal, og Shamir's Secret Sharing Scheme repræsenterer modulkoefficienten Shamir's Secret Sharing Scheme.

Shamir's Secret Sharing Scheme

Nu finder vores ubudne gæst igen Shamir's Secret Sharing Scheme, beregner Shamir's Secret Sharing Scheme:

Shamir's Secret Sharing Scheme

Så forsøger han igen at trække sig Shamir's Secret Sharing Schemeudskiftning Shamir's Secret Sharing Scheme в Shamir's Secret Sharing Scheme:

Shamir's Secret Sharing Scheme

Denne gang har han et alvorligt problem. Formlen mangler værdier Shamir's Secret Sharing Scheme, Shamir's Secret Sharing Scheme и Shamir's Secret Sharing Scheme. Da der er et uendeligt antal kombinationer af disse variable, kan han ikke få yderligere information.

Sikkerhedshensyn

Shamirs hemmelige delingsordning antyder informationssikkerhed. Det betyder, at matematikken er stærk selv mod en angriber med ubegrænset computerkraft. Skemaet indeholder dog stadig flere kendte problemer.

For eksempel skaber Shamir-ordningen ikke fragmenter, der skal kontrolleres, det vil sige, at folk frit kan præsentere falske fragmenter og forstyrre gendannelsen af ​​den korrekte hemmelighed. En fjendtlig fragmentholder med tilstrækkelig information kan endda producere et andet fragment ved at ændre Shamir's Secret Sharing Scheme efter eget skøn. Dette problem er løst med verificerbare hemmelige deleordninger, såsom Feldman-ordningen.

Et andet problem er, at længden af ​​ethvert fragment er lig med længden af ​​den tilsvarende hemmelighed, så længden af ​​hemmeligheden er let at bestemme. Dette problem er løst af det trivielle polstring hemmelig ved vilkårlige tal op til en fast længde.

Endelig er det vigtigt at bemærke, at vores sikkerhedsproblemer kan gå ud over selve ordningen. For rigtige kryptografiske applikationer er der ofte en trussel om sidekanalangreb, når en angriber forsøger at udtrække nyttig information fra applikationens eksekveringstid, caching, nedbrud osv. Hvis dette er et problem, bør du nøje overveje brugen af ​​sikkerhedsforanstaltninger under udviklingen, såsom funktioner og konstant-tidsopslag, forhindre lagring af hukommelse på disk og overveje en række andre ting, der ligger uden for denne artikels omfang.

Демо

On denne side der er en interaktiv demonstration af Shamirs hemmelige deleplan. Demonstrationen blev lavet med udgangspunkt i biblioteket ssss-js, som i sig selv er en JavaScript-port af et populært program ssss. Bemærk, at beregne store værdier Shamir's Secret Sharing Scheme, Shamir's Secret Sharing Scheme и Shamir's Secret Sharing Scheme kan tage noget tid.

Kilde: www.habr.com

Tilføj en kommentar