Schema e ndarjes së sekretit të Shamir

Le të shqyrtojmë një skenar ku është e nevojshme të sigurohet siguria e depozitës bankare. Ajo konsiderohet plotësisht e papërshkueshme pa çelësin që ju jepet në ditën e parë të punës. Qëllimi juaj është ta ruani çelësin me besim.

Supozoni se vendosni ta mbani gjithmonë çelësin me vete, duke ofruar akses në depozitë sipas nevojës. Por shpejt do të kuptoni se ky zgjidhje nuk është praktike pasi çdo herë për të hapur depozitën kërkohet prania juaj fizike. Dhe si ndodhet me pushimet që ju janë premtuar? Për më tepër, pyetja e frikshme është: çfarë nëse e humbni çelësin e vetëm?

Me mendimin për pushimet, vendosni të bëni një kopje të çelësit dhe t'ia besoni një kolegu tjetër. Megjithatë, kuptoni se kjo gjithashtu nuk është ideale. Duke dyfishuar numrin e çelësave, ju gjithashtu keni dyfishuar mundësitë për vjedhje të çelësit.

Të dëshpëruar, e shkatërroni kopjen dhe vendosni të ndani çelësin origjinal në dy pjesë. Tani, mendoni se dy njerëz të besuar me fragmente të çelësit duhet të jenë fizikisht të pranishëm për të bërë çelësin dhe hapur depozitën. Kjo do të thotë se vjedhësi duhet të vjedhë dy fragmente, që është dyfish më e vështirë se vjedhja e një çelësi të vetëm. Megjithatë, së shpejti kuptoni se ky skemë nuk është shumë më e mirë se një çelës i vetëm, pasi nëse dikush humb një nga pjesët e çelësit, çelësi i plotë nuk mund të rikuperohet.

Problemi mund të zgjidhet me një seri çelësash dhe çelësh shtesë, por me këtë qasje shpejt do të nevojiten shumë çelësa dhe çelësa. Ju vendosni se në një skemë ideale duhet të ndahet çelësi, në mënyrë që siguria të mos mbështetet plotësisht në një person. Ju gjithashtu arrini në përfundimin se duhet të ekzistojë një prag i numrit të pjesëve, për të bërë që humbja e një pjese (ose nëse dikush shkon në pushime) të mos çojë në mosfunksionimin e të gjithë çelësit.

Si të ndahen sekretet

Për një lloj të tillë skeme menaxhimi të çelësave mendonte Adi Shamir në vitin 1979, kur publikoi punimin e tij «Si të ndahen sekretet». Në artikull shpjegohet shkurtimisht ajo që quhet Schema e ndarjes së sekretit të Shamir skema e pragut për ndarjen efektive të një vlere sekrete (për shembull, një çelës kriptografik) në Schema e ndarjes së sekretit të Shamir pjesë. Më pas, kur dhe vetëm kur të paktën Schema e ndarjes së sekretit të Shamir nga Schema e ndarjes së sekretit të Shamir pjesë të mbledhura, mund të rikuperohet lehtë sekreti Schema e ndarjes së sekretit të Shamir.

Nga këndvështrimi i sigurisë, një veçori e rëndësishme e kësaj skeme është se sulmuesi nuk duhet të dijë asgjë nëse nuk ka të paktën Schema e ndarjes së sekretit të Shamir pjesë. Edhe prania e Schema e ndarjes së sekretit të Shamir pjesëve nuk duhet t'u japë asnjë informacion. Ne e quajmë këtë veçori siguri semantike.

Interpolimi polinominal

Skema e Shamir Schema e ndarjes së sekretit të Shamir ndërtohet rreth konceptit interpolimit polinominal. Nëse nuk jeni të njohur me këtë koncept, në të vërtetë është mjaft i thjeshtë. Në përgjithësi, nëse keni çizmuar ndonjëherë pikë në një grafik dhe pastaj i keni lidhur ato me linja ose kurba, atëherë keni përdorur atë!

Schema e ndarjes së sekretit të Shamir
Përmes dy pikave mund të kalojnë një numër të pakufizuar polinomesh të gradës 2. Për të zgjedhur një të vetme - ne kemi nevojë për një pikë të tretë. Ilustrimi: Wikipedia

Merrni një polinom me gradë një, Schema e ndarjes së sekretit të Shamir. Nëse dëshironi ta ndërtoni këtë funksion në grafik, sa pika ju nevojiten? E dimë se ky është një funksion linear që formon një vijë dhe prandaj nevojiten të paktën dy pika. Tani, le të shqyrtojmë një funksion polinomial me gradë dy, Schema e ndarjes së sekretit të Shamir. Ky është një funksion kuadratik, prandaj për të ndërtuar grafik nevojiten të paktën tre pika. Si qëndron me një polinom me gradë tre? Të paktën katër pika. Dhe kështu me radhë.

Gjëja vërtet e shkëlqyer lidhur me këtë veçori është se, duke marrë parasysh gradën e funksionit polinomial dhe, të paktën Schema e ndarjes së sekretit të Shamir pikë, ne mund të nxjerrim pika shtesë për këtë funksion polinomial. Ekstrapolimin e këtyre pikave shtesë e quajmë interpolim polinomial.

Krijimi i sekreteve

Mund të keni kuptuar tashmë se këtu hyjnë në loje skemat e mençura të Shamir. Le të supozojmë se sekreti ynë Schema e ndarjes së sekretit të Shamir — është Schema e ndarjes së sekretit të Shamir. Ne mund ta kthejmë Schema e ndarjes së sekretit të Shamir në një pikë në grafik Schema e ndarjes së sekretit të Shamir dhe të krijojmë një funksion polinomial me gradë Schema e ndarjes së sekretit të Shamir, që plotëson këtë pikë. Kujtojmë se Schema e ndarjes së sekretit të Shamir do të jetë prag i fragmenteve të kërkuara, prandaj nëse e vendosim pragun në tre fragmente, duhet të zgjedhim një funksion polinomial me gradë dy.

Polinomi ynë do të ketë formën Schema e ndarjes së sekretit të Shamirindex Schema e ndarjes së sekretit të Shamir dhe Schema e ndarjes së sekretit të Shamir — numra të plotë pozitivë të zgjedhur rastësisht. Ne thjesht po ndërtojmë një polinom me gradë Schema e ndarjes së sekretit të Shamir, ku koeficenti i lirë Schema e ndarjes së sekretit të Shamir është sekreti ynë Schema e ndarjes së sekretit të Shamir, dhe çdo një nga të tjerët Schema e ndarjes së sekretit të Shamir anëtarët kanë një koeficient pozitiv të zgjedhur rastësisht. Nëse kthehemi te shembulli fillestar dhe supozoni se Schema e ndarjes së sekretit të Shamir, atëherë do të marrim funksionin Schema e ndarjes së sekretit të Shamir.

Në këtë fazë ne mund të gjenerojmë pjesë duke lidhur Schema e ndarjes së sekretit të Shamir numra të veçantë të plotë në Schema e ndarjes së sekretit të Shamirindex Schema e ndarjes së sekretit të Shamir (sepse është sekreti ynë). Në këtë shembull ne duam të shpërndajmë katër pjesë me prag tre, prandaj gjenerojmë rastësisht pikët Schema e ndarjes së sekretit të Shamir dhe dërgojmë një pikë për secilin nga katër individët e besuar, ruajtësit e çelësit. Ne gjithashtu i njoftojmë ata se Schema e ndarjes së sekretit të Shamir, pasi kjo konsiderohet informacion publik dhe është e nevojshme për rikuperimin Schema e ndarjes së sekretit të Shamir.

Rikuperimi i sekrecionit

Ne kemi diskutuar tashmë konceptin e interpolimit polinomik dhe se çfarë qëndron në bazë të skemës së pragut të Shamir Schema e ndarjes së sekretit të Shamir. Kur çdo tre nga katër individët e besuar duan të rikuperojnë Schema e ndarjes së sekretit të Shamir, ata vetëm duhet të interpozojnë Schema e ndarjes së sekretit të Shamir me pikët e tyre unike. Për këtë ata mund të përcaktojnë pikët e tyre Schema e ndarjes së sekretit të Shamir dhe të llogaritin polinomin e interpolimit të Lagranges, duke përdorur formulën e mëposhtme. Nëse programimi është më i kuptueshëm për ju se matematika, atëherë pi është në thelb operatori për, i cili shumon të gjithë rezultatet, ndërsa sigma është për, i cili i shton të gjitha.

Schema e ndarjes së sekretit të Shamir

Schema e ndarjes së sekretit të Shamir

Kur Schema e ndarjes së sekretit të Shamir ne mund ta zgjidhim këtë në këtë mënyrë dhe të kthejmë funksionin tonë polinomial origjinal:

Schema e ndarjes së sekretit të Shamir

Pasi e dimë që Schema e ndarjes së sekretit të Shamir, rikuperimi Schema e ndarjes së sekretit të Shamir ndodh thjesht:

Schema e ndarjes së sekretit të Shamir

Përdorimi i aritmetikës konsideruese të plotë të pasigurt

Megjithëse kemi aplikuar me sukses idenë themelore të Shamir Schema e ndarjes së sekretit të Shamir, na mbetet një problem që e kemi injoruar deri tani. Funksioni ynë polinomial përdor aritmetikën konsideruese të plotë të pasigurt. Kini parasysh se për secilën pikë shtesë që sulmuesi merr në grafikën e funksionit tonë, mbetet më pak mundësi për pikët e tjera. Ju mund ta shihni këtë me sy tuaj kur përbëni një grafik me rritjen e numrit të pikëve për funksionin polinomial duke përdorur aritmetikën e plotë. Kjo është kontraproduktive për qëllimin tonë të deklaruar të sigurisë, sepse sulmuesi nuk duhet të dijë asgjë derisa të ketë të paktën Schema e ndarjes së sekretit të Shamir pjesë.

Për të demonstruar se sa e dobët është skema me aritmetikë të plotë, shqyrtoni një skenar ku sulmuesi ka marrë dy pika Schema e ndarjes së sekretit të Shamir dhe di informacionin publik që Schema e ndarjes së sekretit të Shamir. Nga këto informacione ai mund të nxjerrë Schema e ndarjes së sekretit të Shamir, i barabartë me dy, dhe të lidhet në formulë me vlerat e njohura Schema e ndarjes së sekretit të Shamir dhe Schema e ndarjes së sekretit të Shamir.

Schema e ndarjes së sekretit të Shamir

Pastaj sulmuesi mund të gjejë Schema e ndarjes së sekretit të Shamir, duke llogaritur Schema e ndarjes së sekretit të Shamir:

Schema e ndarjes së sekretit të Shamir

Pasi e kemi përcaktuar Schema e ndarjes së sekretit të Shamir si numra të rinj pozitiv, ka një numër të kufizuar mundësish Schema e ndarjes së sekretit të Shamir. Me këtë informacion, sulmuesi mund të nxjerrë Schema e ndarjes së sekretit të Shamir, pasi gjithçka më shumë se 5 do të bëjë Schema e ndarjes së sekretit të Shamir negative. Kjo del të jetë e vërtetë, pasi e kemi përcaktuar Schema e ndarjes së sekretit të Shamir

Pastaj, sulmuesi mund të llogarisë vlerat e mundshme Schema e ndarjes së sekretit të Shamir, duke zëvendësuar Schema e ndarjes së sekretit të ShamirSchema e ndarjes së sekretit të Shamir:

Schema e ndarjes së sekretit të Shamir

Me një grup të kufizuar mundësish për Schema e ndarjes së sekretit të Shamir është e qartë se sa lehtë është të përshtaten dhe verifikohen vlerat Schema e ndarjes së sekretit të Shamir. Ka gjithsej pesë mundësi.

Zgjidhja e problemit me aritmetikën e sigurt të numrave të plotë

Për të eliminuar këtë dobësi, Shamir sugjeron përdorimin e aritmetikës modulare, duke zëvendësuar Schema e ndarjes së sekretit të ShamirSchema e ndarjes së sekretit të Shamirindex Schema e ndarjes së sekretit të Shamir dhe Schema e ndarjes së sekretit të Shamir — grupi i të gjitha numrave të thjeshtë.

Le të përkujtojmë shpejt se si funksionon aritmetika modulare. Orarët me dritare janë një koncept i njohur. Ajo përdor oraret që janë Schema e ndarjes së sekretit të Shamir. Sa herë që shigjeta e orës kalon nga dymbëdhjeta, ajo kthehet tek një. Një veçori interesante e kësaj sistemi është se thjesht duke parë orën, ne nuk mund ta nxjerrim se sa herë ka kaluar shigjeta e orës. Megjithatë, nëse e dimë se shigjeta e orës ka kaluar 12 katër herë, mund të përcaktojmë plotësisht numrin e orëve të kaluara me një formulë të thjeshtë Schema e ndarjes së sekretit të Shamirindex Schema e ndarjes së sekretit të Shamir — kjo është ndarja jonë (këtu Schema e ndarjes së sekretit të Shamir), Schema e ndarjes së sekretit të Shamir — kjo është koeficienti (sa herë ndarja kalon në numrin origjinal pa mbetje, këtu Schema e ndarjes së sekretit të Shamir— emri i funksionit ( Schema e ndarjes së sekretit të Shamir — kjo është mbetja, e cila zakonisht kthehet nga operatori i modulit (këtu Schema e ndarjes së sekretit të Shamir). Të diturit të gjitha këto vlera na lejon të zgjidhim ekuacionin për Schema e ndarjes së sekretit të Shamir, por nëse humbasim koeficientin, kurrë nuk do të mund të rikthejmë vlerën origjinale.

Mund të demonstrohet se si kjo përmirëson sigurinë e skemës sonë duke zbatuar skemën në shembullin tonë të mëparshëm dhe duke përdorur Schema e ndarjes së sekretit të Shamir. Funksioni ynë polinomial i ri Schema e ndarjes së sekretit të Shamir, dhe pikët e reja Schema e ndarjes së sekretit të Shamir. Tani ruajtësit e çelësit mund të përdorin përsëri interpolimin polinomial për të rikthyer funksionin tonë, megjithatë, këtë herë operacionet e shtimit dhe shumëzimit duhet të shoqërohen me zvogëlimin modulas Schema e ndarjes së sekretit të Shamir (p.sh. Schema e ndarjes së sekretit të Shamir).

Duke përdorur këtë shembull të ri, le të supozojmë se sulmuesi ka mësuar dy nga këto pika të reja, Schema e ndarjes së sekretit të Shamir, dhe informacioni publik Schema e ndarjes së sekretit të Shamir. Në këtë rast, sulmuesi, duke u mbështetur në të gjitha informacionet në dispozicion, nxjerr funksionet e mëposhtme, ku Schema e ndarjes së sekretit të Shamir është集合të gjithë numrat e plotë pozitivë, dhe Schema e ndarjes së sekretit të Shamir përdor koeficientin e modulit Schema e ndarjes së sekretit të Shamir.

Schema e ndarjes së sekretit të Shamir

Tani, sulmuesi ynë përsëri gjen Schema e ndarjes së sekretit të Shamir, duke llogaritur Schema e ndarjes së sekretit të Shamir:

Schema e ndarjes së sekretit të Shamir

Pastaj ai përpiqet sërish të nxjerrë Schema e ndarjes së sekretit të Shamir, duke zëvendësuar Schema e ndarjes së sekretit të ShamirSchema e ndarjes së sekretit të Shamir:

Schema e ndarjes së sekretit të Shamir

Në këtë rast, ai ka një problem serioz. Në formulë mungojnë vlerat Schema e ndarjes së sekretit të Shamir, Schema e ndarjes së sekretit të Shamir dhe Schema e ndarjes së sekretit të Shamir. Duke marrë parasysh se ekziston një numër të pafund kombinimesh këthese, ai nuk mund të marrë asnjë informacion shtesë.

Konsideratat e sigurisë

Skema e ndarjes së sekreteve të Shamir ofron siguri nga këndvështrimi i teorisë së informacionit. Kjo do të thotë se matematika është e fortë, madje edhe përballë një sulmuesi me kapacitete të pakufizuara llogaritëse. Megjithatë, skema tërheq disa probleme të njohura.

Për shembull, skema e Shamir-it nuk krijon fragmente të verifikueshme, domethënë, njerëzit mund të paraqesin lirshëm fragmente fallco dhe ta pengojnë rikuperimin e sekreteve të sakta. Një ruajtës armiqesor i fragmenteve me informacion të mjaftueshëm mund të krijojë madje një fragment tjetër, duke modifikuar Schema e ndarjes së sekretit të Shamir sipër dëshirës së tij. Ky problem zgjidhet përmes schema të verifikueshme të ndarjes së sekreteve, siç është skema e Feldman.

Një problem tjetër është se gjatësia e çdo fragmenti është e barabartë me gjatësinë e sekreteve përkatëse, kështu që gjatësia e sekreteve është e lehtë për t'u përcaktuar. Ky problem zgjidhet përmes një mbushjeje të sekreteve me numra të rastësishëm deri në një gjatësi fikse.

Së fundi, është e rëndësishme të theksohet se shqetësimet tona për sigurinë mund të tejkalojnë veten e skemës. Për aplikacione reale kriptografike shpesh ka kërcënim nga sulmet përmes kanaleve anësore, kur sulmuesi përpiqet të nxjerrë informacion të dobishëm nga koha e ekzekutimit të aplikacionit, caches, dështime, etj. Nëse kjo ngre shqetësime, duhet të shqyrtohen me kujdes masa mbrojtëse si funksionet dhe kërkimi me kohë të qëndrueshme të ekzekutimit, për të parandaluar ruajtjen e të dhënave në disk dhe të mendohet për një sërë gjërash që kalojnë jashtë këtij artikulli.

Demo

në këtë faqe eksiston një demonstrim interaktiv të skemës së ndarjes së sekreteve të Shamir. Demonstrimi është i bazuar në bibliotekën ssss-js, e cila vetë është një port të njohur të programit JavaScript ssss. Ju kujtojmë se llogaritja e vlerave të mëdha Schema e ndarjes së sekretit të Shamir, Schema e ndarjes së sekretit të Shamir dhe Schema e ndarjes së sekretit të Shamir mund të marrë pak kohë.

Burimi: habr.com

Blini hostim të besueshëm për faqe interneti me mbrojtje DDoS, serverë VPS VDS 🔥 Blini hostim të besueshëm për faqe interneti me mbrojtje DDoS, serverë VPS VDS - ProHoster