Shamir se geheime deelskema

Oorweeg 'n scenario waar jy 'n bankkluis moet beveilig. Dit word as absoluut onneembaar beskou sonder 'n sleutel, wat op die eerste dag van werk aan jou gegee word. Jou doel is om die sleutel veilig te stoor.

Gestel jy besluit om die sleutel te alle tye by jou te hou, en verskaf toegang tot die kluis soos nodig. Maar jy sal vinnig besef dat so 'n oplossing in die praktyk nie goed skaal nie, want elke keer moet jy fisies teenwoordig wees om die kluis oop te maak. Wat van die vakansie wat jy belowe is? Daarbenewens is die vraag selfs meer angswekkend: wat as jy die enigste sleutel verloor het?

Met die idee van 'n vakansie besluit jy om 'n afskrif van die sleutel te maak en dit aan 'n ander werknemer toe te vertrou. U verstaan ​​egter dat dit ook nie ideaal is nie. Deur die aantal sleutels te verdubbel, het jy ook die kanse op sleuteldiefstal verdubbel.

Desperaat vernietig jy die duplikaat en besluit om die oorspronklike sleutel in die helfte te verdeel. Nou dink jy twee vertroude mense met sleutelfragmente moet fisies teenwoordig wees om die sleutel af te haal en die kluis oop te maak. Dit beteken dat die dief twee fragmente moet steel, wat twee keer so moeilik is as om een ​​sleutel te steel. Jy besef egter gou dat hierdie skema nie veel beter is as net een sleutel nie, want as iemand die helfte van die sleutel verloor, kan die volle sleutel nie herwin word nie.

Die probleem kan opgelos word met 'n reeks bykomende sleutels en slotte, maar hierdie benadering sal vinnig vereis много sleutels en slotte. Jy besluit dat die ideale skema is om die sleutel te deel sodat sekuriteit nie heeltemal op een persoon staatmaak nie. Jy kom ook tot die gevolgtrekking dat daar een of ander drempel moet wees vir die aantal fragmente sodat as een fragment verlore gaan (of as die persoon met vakansie gaan), die hele sleutel funksioneel bly.

Hoe om 'n geheim te deel

Adi Shamir het in 1979 aan hierdie tipe sleutelbestuurskema gedink toe hy sy werk gepubliseer het "Hoe om 'n geheim te deel". Die artikel verduidelik kortliks die sg Shamir se geheime deelskema drempelskema vir die effektiewe verdeling van 'n geheime waarde (byvoorbeeld 'n kriptografiese sleutel) in Shamir se geheime deelskema dele. Dan, wanneer en net wanneer ten minste Shamir se geheime deelskema van Shamir se geheime deelskema dele saamgestel is, kan jy die geheim maklik herstel Shamir se geheime deelskema.

Uit 'n sekuriteitsoogpunt is 'n belangrike eienskap van hierdie skema dat 'n aanvaller absoluut niks moet leer as hy nie ten minste het nie Shamir se geheime deelskema dele. Selfs die teenwoordigheid Shamir se geheime deelskema dele moet geen inligting gee nie. Ons noem hierdie eiendom semantiese sekuriteit.

Polinoom interpolasie

Drempel Shamir-skema Shamir se geheime deelskema rondom die konsep gebou polinoom interpolasie. As jy nie met hierdie konsep vertroud is nie, is dit eintlik redelik eenvoudig. Oor die algemeen, as jy al ooit punte op 'n grafiek geteken het en dit dan met lyne of kurwes verbind het, het jy dit reeds gebruik!

Shamir se geheime deelskema
Deur twee punte kan jy 'n onbeperkte aantal polinome van graad 2 teken. Om die enigste een uit hulle te kies, benodig jy 'n derde punt. Illustrasie: Wikipedia

Beskou 'n polinoom met graad een, Shamir se geheime deelskema. As jy hierdie funksie op 'n grafiek wil teken, hoeveel punte het jy nodig? Wel, ons weet dat dit 'n lineêre funksie is wat 'n lyn vorm en daarom benodig ons ten minste twee punte. Beskou dan 'n polinoomfunksie met graad twee, Shamir se geheime deelskema. Dit is 'n kwadratiese funksie, so ten minste drie punte is nodig om die grafiek te teken. Wat van 'n polinoom met graad drie? Ten minste vier kolletjies. Ensovoorts ensovoorts.

Die baie oulike ding van hierdie eienskap is dat, gegewe die graad van die polinoomfunksie en ten minste Shamir se geheime deelskema punte, kan ons addisionele punte vir hierdie polinoomfunksie aflei. Ons noem die ekstrapolasie van hierdie bykomende punte polinoom interpolasie.

Om 'n geheim te maak

Jy het dalk al agtergekom dat dit is waar Shamir se slim skema ter sprake kom. Gestel ons geheim Shamir se geheime deelskema - Is Shamir se geheime deelskema. Ons kan draai Shamir se geheime deelskema tot by die punt op die grafiek Shamir se geheime deelskema en kom vorendag met 'n polinoomfunksie met 'n graad Shamir se geheime deelskema, wat aan hierdie punt voldoen. Onthou dit Shamir se geheime deelskema sal ons drumpel van vereiste fragmente wees, dus as ons die drempel op drie fragmente stel, moet ons 'n polinoomfunksie met 'n graad van twee kies.

Ons polinoom sal die vorm hê Shamir se geheime deelskemaWaar Shamir se geheime deelskema и Shamir se geheime deelskema is ewekansig gekose positiewe heelgetalle. Ons bou net 'n polinoom met 'n graad Shamir se geheime deelskema, waar die vrye koëffisiënt Shamir se geheime deelskema - Dit is ons geheim Shamir se geheime deelskema, en elk van die daaropvolgende Shamir se geheime deelskema terme is 'n ewekansig gekose positiewe koëffisiënt. As ons terugkeer na die oorspronklike voorbeeld en aanvaar dat Shamir se geheime deelskema, dan kry ons die funksie Shamir se geheime deelskema.

Op hierdie stadium kan ons fragmente genereer deur te koppel Shamir se geheime deelskema unieke heelgetalle in Shamir se geheime deelskemaWaar Shamir se geheime deelskema (want dit is ons geheim). In hierdie voorbeeld wil ons vier fragmente met 'n drempel van drie versprei, so ons genereer ewekansig punte Shamir se geheime deelskema en stuur een punt aan elkeen van die vier vertroude mense, die bewaarders van die sleutel. Ons vertel dit ook vir mense Shamir se geheime deelskema, aangesien dit as openbare inligting beskou word en nodig is vir herstel Shamir se geheime deelskema.

Geheime herstel

Ons het reeds die konsep van polinoominterpolasie bespreek en hoe dit Shamir se drempelskema onderlê. Shamir se geheime deelskema. Wanneer enige drie uit vier trustees wil herstel Shamir se geheime deelskema, hulle hoef net te interpoleer Shamir se geheime deelskema met hul unieke punte. Om dit te doen, kan hulle hul punte definieer Shamir se geheime deelskema en bereken die Lagrange interpolasie polinoom deur die volgende formule te gebruik. As programmering vir jou duideliker is as wiskunde, dan is pi in wese 'n operateur for, wat alle resultate vermenigvuldig, en sigma is forwat alles bymekaar tel.

Shamir se geheime deelskema

Shamir se geheime deelskema

op Shamir se geheime deelskema ons kan dit so oplos en ons oorspronklike polinoomfunksie terugstuur:

Shamir se geheime deelskema

Want ons weet dit Shamir se geheime deelskema, herstel Shamir se geheime deelskema word eenvoudig gedoen:

Shamir se geheime deelskema

Gebruik onveilige heelgetalrekenkunde

Alhoewel ons die basiese idee van Shamir suksesvol toegepas het Shamir se geheime deelskema, sit ons met 'n probleem wat ons tot nou toe geïgnoreer het. Ons polinoomfunksie gebruik onveilige heelgetalrekenkunde. Let daarop dat vir elke bykomende punt wat 'n aanvaller op ons funksiegrafiek kry, daar minder moontlikhede vir ander punte is. Jy kan dit met jou eie oë sien wanneer jy 'n toenemende aantal punte vir 'n polinoomfunksie teken deur heelgetalrekenkunde te gebruik. Dit is teenproduktief vir ons gestelde sekuriteitsdoelwit, want 'n aanvaller behoort absoluut niks te weet totdat hulle ten minste het nie Shamir se geheime deelskema fragmente.

Om te demonstreer hoe swak die heelgetalrekenkundige skema is, oorweeg 'n scenario waarin die aanvaller twee punte ontvang het Shamir se geheime deelskema en weet openbare inligting wat Shamir se geheime deelskema. Uit hierdie inligting kan hy aflei Shamir se geheime deelskema, gelyk aan twee, en verbind die bekende waardes met die formule Shamir se geheime deelskema и Shamir se geheime deelskema.

Shamir se geheime deelskema

Die aanvaller kan dan vind Shamir se geheime deelskema, tel Shamir se geheime deelskema:

Shamir se geheime deelskema

Aangesien ons gedefinieer het Shamir se geheime deelskema as ewekansig gekose positiewe heelgetalle, is daar 'n beperkte aantal moontlike Shamir se geheime deelskema. Met hierdie inligting kan 'n aanvaller aflei Shamir se geheime deelskema, want enigiets groter as 5 sal maak Shamir se geheime deelskema negatief. Dit blyk waar te wees, aangesien ons vasgestel het Shamir se geheime deelskema

Die aanvaller kan dan die moontlike waardes bereken Shamir se geheime deelskemavervang Shamir se geheime deelskema в Shamir se geheime deelskema:

Shamir se geheime deelskema

Met beperkte opsies vir Shamir se geheime deelskema dit word duidelik hoe maklik dit is om waardes op te tel en na te gaan Shamir se geheime deelskema. Hier is net vyf opsies.

Los die probleem op met onveilige heelgetalrekenkunde

Om hierdie kwesbaarheid reg te stel, stel Shamir voor om modulêre rekenkunde te gebruik deur te vervang Shamir se geheime deelskema op Shamir se geheime deelskemaWaar Shamir se geheime deelskema и Shamir se geheime deelskema is die versameling van alle priemgetalle.

Kom ons onthou vinnig hoe modulêre rekenkunde werk. Handhorlosies is 'n bekende konsep. Sy gebruik 'n horlosie dws Shamir se geheime deelskema. Sodra die uurwyser twaalf verbygaan, keer dit terug na een. 'n Interessante eienskap van hierdie stelsel is dat net deur na die horlosie te kyk, ons nie kan aflei hoeveel omwentelinge die uurwyser gemaak het nie. As ons egter weet dat die uurwyser 12 vier keer verby is, kan ons die aantal ure wat verloop het volledig bepaal met 'n eenvoudige formule Shamir se geheime deelskemaWaar Shamir se geheime deelskema is ons deler (hier Shamir se geheime deelskema), Shamir se geheime deelskema - dit is die koëffisiënt (hoeveel keer gaan die deler sonder 'n res in die oorspronklike getal, hier Shamir se geheime deelskema), en Shamir se geheime deelskema is die res, wat gewoonlik 'n oproep na die modulo-operateur terugstuur (hier Shamir se geheime deelskema). Om al hierdie waardes te ken, stel ons in staat om die vergelyking op te los Shamir se geheime deelskema, maar as ons die koëffisiënt oorslaan, sal ons nooit die oorspronklike waarde kan herstel nie.

Ons kan demonstreer hoe dit die sekuriteit van ons stroombaan verbeter deur die stroombaan op ons vorige voorbeeld toe te pas en te gebruik Shamir se geheime deelskema. Ons nuwe polinoomfunksie Shamir se geheime deelskema, en die nuwe punte Shamir se geheime deelskema. Nou kan die sleutelhouers weer polinoominterpolasie gebruik om ons funksie te rekonstrueer, maar hierdie keer moet die optel- en vermenigvuldigingsbewerkings gevolg word deur modulo-reduksie. Shamir se geheime deelskema (bv Shamir se geheime deelskema).

Deur hierdie nuwe voorbeeld te gebruik, veronderstel die aanvaller het twee van hierdie nuwe punte geleer, Shamir se geheime deelskema, en openbare inligting Shamir se geheime deelskema. Hierdie keer vertoon die aanvaller, gebaseer op al die inligting wat hy het, die volgende funksies, waar Shamir se geheime deelskema is die versameling van alle positiewe heelgetalle, en Shamir se geheime deelskema verteenwoordig die moduluskoëffisiënt Shamir se geheime deelskema.

Shamir se geheime deelskema

Nou vind ons indringer weer Shamir se geheime deelskema, bereken Shamir se geheime deelskema:

Shamir se geheime deelskema

Dan probeer hy weer om te onttrek Shamir se geheime deelskemavervang Shamir se geheime deelskema в Shamir se geheime deelskema:

Shamir se geheime deelskema

Hierdie keer het hy 'n ernstige probleem. Formule ontbrekende waardes Shamir se geheime deelskema, Shamir se geheime deelskema и Shamir se geheime deelskema. Aangesien daar 'n oneindige aantal kombinasies van hierdie veranderlikes is, kan hy geen bykomende inligting bekom nie.

Sekuriteitsoorwegings

Shamir se geheime deelskema dui daarop inligtings sekuriteit. Dit beteken dat die wiskunde sterk is, selfs teen 'n aanvaller met onbeperkte rekenaarkrag. Die skema bevat egter steeds verskeie bekende probleme.

Byvoorbeeld, die Shamir-skema skep nie fragmente wat nagegaan moet word, dit wil sê, mense is vry om vals fragmente aan te bied en in te meng met die herstel van die korrekte geheim. 'n Vyandige fragmenthouer met genoeg inligting kan selfs nog 'n fragment produseer deur te verander Shamir se geheime deelskema na jou goeddunke. Hierdie probleem word opgelos met verifieerbare geheime deelskemas, soos die Feldman-skema.

Nog 'n probleem is dat die lengte van enige fragment gelyk is aan die lengte van die ooreenstemmende geheim, dus is die lengte van die geheim maklik om te bepaal. Hierdie probleem word opgelos deur die triviale vulling geheim deur arbitrêre getalle tot 'n vaste lengte.

Ten slotte is dit belangrik om daarop te let dat ons sekuriteitskwessies verder kan strek as die skema self. Vir regte kriptografiese toepassings is daar dikwels 'n bedreiging van sykanaalaanvalle, wanneer 'n aanvaller probeer om nuttige inligting uit die toepassing se uitvoeringstyd, kas, ineenstortings, ens. As dit 'n bekommernis is, moet u die gebruik van voorsorgmaatreëls tydens ontwikkeling, soos funksies en konstante-tydopsoeke, sorgvuldig oorweeg, verhoed dat u geheue op skyf stoor, en 'n aantal ander dinge oorweeg wat buite die bestek van hierdie artikel val.

Демо

Op Hierdie bladsy daar is 'n interaktiewe demonstrasie van Shamir se geheime deelskema. Die demonstrasie is gemaak op grond van die biblioteek ssss-js, wat self 'n JavaScript-poort van 'n gewilde program is SSSS. Let daarop dat die berekening van groot waardes Shamir se geheime deelskema, Shamir se geheime deelskema и Shamir se geheime deelskema kan 'n tydjie neem.

Bron: will.com

Voeg 'n opmerking