Schematika dělení tajemství Shamirův

Zvažme scénář, kdy je nutné zajistit bezpečnost bankovního trezoru. Ten se považuje za zcela neprůstřelný bez klíče, který obdržíte hned první pracovní den. Vaším cílem je bezpečně uchovat klíč.

Předpokládejme, že jste se rozhodli klíč neustále nosit u sebe a poskytovat přístup k trezoru podle potřeby. Rychle však zjistíte, že takové řešení se prakticky neškáluje, protože pokaždé je nutná vaše fyzická přítomnost pro otevření trezoru. A co dovolené, které vám slíbili? Navíc je tu ještě strašidelnější otázka: co když ztratíte jediný klíč?

S myšlenkou na dovolenou jste se rozhodli udělat kopii klíče a svěřit ji jinému zaměstnanci. Uvědomujete si však, že to také není ideální. Dvojí počet klíčů znamená také dvojnásobné možnosti krádeže klíče.

Bezradně ničíte dublikat a rozhodujete se rozdělit původní klíč na dvě části. Teď si říkáte, že dva důvěryhodní lidé s částmi klíče musí být fyzicky přítomni, aby klíč složili a otevřeli trezor. To znamená, že zloděj musí ukrást dvě části, což je dvakrát těžší než ukrást jeden klíč. Ale brzy si uvědomíte, že tento plán není o moc lepší než mít jen jeden klíč, protože pokud někdo ztratí jednu část klíče, celý klíč nelze obnovit.

Problém lze vyřešit sérií dalších klíčů a zámků, ale při takovém přístupu se rychle vyžaduje mnoho klíčů a zámků. Rozhodujete se, že v ideálním plánu by mělo být rozděleno klíče, aby bezpečnost nespoléhala zcela na jednu osobu. Také závěříte, že by mělo existovat určité prahové množství částí, aby při ztrátě jedné části (nebo pokud osoba odejde na dovolenou) zůstal celý klíč funkční.

Jak rozdělit tajemství

O takovém typu schématu správy klíčů přemýšlel Adi Shamir v roce 1979, když publikoval svou práci „Jak rozdělit tajemství“. V článku se stručně vysvětluje tzv. Schematika dělení tajemství Shamirův prahové schéma pro efektivní rozdělení tajné hodnoty (například kryptografického klíče) na Schematika dělení tajemství Shamirův části. A teprve když jsou shromážděny alespoň Schematika dělení tajemství Shamirův z Schematika dělení tajemství Shamirův části, lze tajemství snadno obnovit. Schematika dělení tajemství Shamirův.

Z hlediska bezpečnosti je důležitou vlastností tohoto schématu to, že útočník by neměl zjistit absolutně nic, pokud nemá alespoň Schematika dělení tajemství Shamirův částí. I přítomnost Schematika dělení tajemství Shamirův částí by neměla poskytovat žádné informace. Tento vlastnost nazýváme semastrickou bezpečností.

Polynomiální interpolace

Prahové schéma Shamir Schematika dělení tajemství Shamirův je postaveno kolem konceptu polynomiální interpolace.Pokud nejste s tímto konceptem obeznámeni, je to vlastně docela jednoduché. V podstatě, pokud jste někdy kreslili body na grafu a pak je spojovali čarami nebo křivkami, již jste ho použili!

Schematika dělení tajemství Shamirův
Mezi dvěma body lze nakreslit neomezené množství polynomů druhého stupně. Abychom vybrali jediný, potřebujeme třetí bod. Ilustrace: Wikipedia

Zvažme polynom prvního stupně, Schematika dělení tajemství Shamirův. Kolik bodů potřebujete, pokud chcete nakreslit tuto funkci na grafu? No, víme, že je to lineární funkce, která tvoří čáru, a proto potřebujeme alespoň dva body. Dále zvažme polynomiální funkci druhého stupně, Schematika dělení tajemství Shamirův. Je to kvadratická funkce, a proto k vykreslení grafu potřebujeme alespoň tři body. Co říkáte na polynom třetího stupně? Alespoň čtyři body. A tak dále.

Opravdu skvělá věc na této vlastnosti je, že, vezmeme-li v úvahu stupeň polynomiální funkce a alespoň Schematika dělení tajemství Shamirův bodů, můžeme odvodit další body pro tuto polynomiální funkci. Extrapolaci těchto dalších bodů nazýváme polynomiální interpolace..

Sestavování tajemství

Možná už chápete, že zde vstupuje do hry chytrý Shamirův plán. Předpokládejme, že naše tajemství je Schematika dělení tajemství Shamirův — to je Schematika dělení tajemství Shamirův. Můžeme převést Schematika dělení tajemství Shamirův na bod na grafu Schematika dělení tajemství Shamirův a vymyslet polynomiální funkci stupně Schematika dělení tajemství Shamirův, která tento bod splňuje. Připomeňme, že Schematika dělení tajemství Shamirův bude naším prahem požadovaných částí, takže pokud nastavíme práh na tři části, musíme zvolit polynomiální funkci stupně dva.

Náš polynom bude mít tvar Schematika dělení tajemství Shamirův, kde Schematika dělení tajemství Shamirův a Schematika dělení tajemství Shamirův — náhodně vybraná kladná celá čísla. Jen stavíme polynom stupně Schematika dělení tajemství Shamirův, kde volný koeficient Schematika dělení tajemství Shamirův je naše tajemství, Schematika dělení tajemství Shamirůva každý z následujících Schematika dělení tajemství Shamirův členů je náhodně vybraný kladný koeficient. Pokud se vrátíme k původnímu příkladu a předpokládáme, že Schematika dělení tajemství Shamirův, pak získáme funkci Schematika dělení tajemství Shamirův.

V této fázi můžeme generovat úseky připojením Schematika dělení tajemství Shamirův unikátních celých čísel v Schematika dělení tajemství Shamirův, kde Schematika dělení tajemství Shamirův (protože to je naše tajemství). V tomto příkladu chceme rozdat čtyři úseky s prahem tři, takže náhodně generujeme body Schematika dělení tajemství Shamirův a posíláme jeden bod každému ze čtyř důvěryhodných osob, strážců klíče. Také informujeme lidi, že Schematika dělení tajemství Shamirův, protože se považuje za veřejnou informaci a je potřebná pro obnovu Schematika dělení tajemství Shamirův.

Obnova tajemství

Již jsme se zabývali konceptem polynomické interpolace a tím, že leží v základech Shamirova schématu Schematika dělení tajemství Shamirův. Když jakékoli tři z čtyř důvěryhodných osob chtějí obnovit Schematika dělení tajemství Shamirův, potřebují pouze interpolovat Schematika dělení tajemství Shamirův s jejich unikátními body. K tomu mohou určit své body Schematika dělení tajemství Shamirův a vypočítat interpolující Lagrangeův polynom pomocí následujícího vzorce. Pokud vám programování dává větší smysl než matematika, pak pi je v podstatě operátor for, který násobí všechny výsledky, a sigma je for, která všechno sčítá.

Schematika dělení tajemství Shamirův

Schematika dělení tajemství Shamirův

Při Schematika dělení tajemství Shamirův můžeme to vyřešit následujícím způsobem a vrátit naši původní polynomickou funkci:

Schematika dělení tajemství Shamirův

Jelikož víme, že Schematika dělení tajemství Shamirův, obnova Schematika dělení tajemství Shamirův se provádí jednoduše:

Schematika dělení tajemství Shamirův

Použití nezabezpečené celočíselné aritmetiky

I když jsme úspěšně aplikovali základní myšlenku Shamira Schematika dělení tajemství Shamirův, zbývá nám problém, který jsme dosud ignorovali. Naše polynomická funkce používá nezabezpečenou celočíselnou aritmetiku. Mějte na paměti, že s každým dalším bodem, který útočník získává na grafu naší funkce, zůstává méně možností pro ostatní body. To můžete vidět na vlastní oči, když kreslíte graf s rostoucím počtem bodů pro polynomickou funkci s použitím celočíselné aritmetiky. To je kontraproduktivní pro náš deklarovaný cíl bezpečnosti, protože útočník by neměl zjistit absolutně nic, dokud nemá alespoň Schematika dělení tajemství Shamirův fragments.

Abychom demonstrovali, jak slabá je schéma s celočíselnou aritmetikou, zvažme scénář, ve kterém útočník získal dva body Schematika dělení tajemství Shamirův a ví veřejnou informaci, že Schematika dělení tajemství Shamirův. Z těchto informací může odvodit Schematika dělení tajemství Shamirův, rovný dvěma, a dosadit do vzorce známé hodnoty Schematika dělení tajemství Shamirův a Schematika dělení tajemství Shamirův.

Schematika dělení tajemství Shamirův

Pak může útočník zjistit Schematika dělení tajemství Shamirův, spočítáním Schematika dělení tajemství Shamirův:

Schematika dělení tajemství Shamirův

Jelikož jsme určili Schematika dělení tajemství Shamirův jako náhodně vybraná celá kladná čísla, existuje omezený počet možných Schematika dělení tajemství Shamirův. Pomocí těchto informací může útočník odvodit Schematika dělení tajemství Shamirův, jelikož vše, co je větší než 5, udělá Schematika dělení tajemství Shamirův negativním. To se ukazuje jako pravdivé, protože jsme určili Schematika dělení tajemství Shamirův

Pak může útočník spočítat možné hodnoty Schematika dělení tajemství Shamirův, nahrazením Schematika dělení tajemství Shamirův v Schematika dělení tajemství Shamirův:

Schematika dělení tajemství Shamirův

S omezenou sadou variant pro Schematika dělení tajemství Shamirův se stává jasné, jak snadné je odhadnout a ověřit hodnoty Schematika dělení tajemství Shamirův. Tady je celkem pět variant.

Řešení problému s nebezpečnou celočíselnou aritmetikou

Aby se tato zranitelnost odstranila, navrhuje Shamir použít modulární aritmetiku, nahrazením Schematika dělení tajemství Shamirův na Schematika dělení tajemství Shamirův, kde Schematika dělení tajemství Shamirův a Schematika dělení tajemství Shamirův — množstvím všech prvočísel.

Rychle si připomeňme, jak funguje modulární aritmetika. Hodiny s ručičkami jsou již známý koncept. Používají hodiny, které jsou Schematika dělení tajemství Shamirův. Jakmile ručička hodin projde kolem dvanácti, vrací se k jedné. Zajímavou vlastností tohoto systému je to, že pouhým pohledem na hodiny nemůžeme odvodit, kolikrát se ručička otočila. Nicméně pokud víme, že ručička hodin prošla 12 čtyřikrát, můžeme pomocí jednoduchého vzorce zcela určit počet uplynulých hodin Schematika dělení tajemství Shamirův, kde Schematika dělení tajemství Shamirův — je náš dělitel (zde Schematika dělení tajemství Shamirův), Schematika dělení tajemství Shamirův — je koeficient (kolikrát dělitel bez zbytku přechází do původního čísla, zde Schematika dělení tajemství Shamirův), a Schematika dělení tajemství Shamirův — je zbytek, který obvykle vrací volání operátoru podle modulu (zde Schematika dělení tajemství Shamirův). Znalost všech těchto hodnot nám umožňuje vyřešit rovnici pro Schematika dělení tajemství Shamirův, ale pokud koeficient vynecháme, nikdy nebudeme moci obnovit původní hodnotu.

Může být demonstrováno, jak to zlepšuje bezpečnost našeho schématu, použitím schématu na našem předchozím příkladu a použitím Schematika dělení tajemství Shamirův. Naše nová polynomická funkce Schematika dělení tajemství Shamirův, a nové body Schematika dělení tajemství Shamirův. Nyní mohou správci klíče znovu použít polynomickou interpolaci pro obnovu naší funkce, ale tentokrát musí být operace sčítání a násobení doprovázeny zjednodušením podle modulu Schematika dělení tajemství Shamirův (např. Schematika dělení tajemství Shamirův).

Použitím tohoto nového příkladu předpokládejme, že útočník zjistil dvě z těchto nových bodů, Schematika dělení tajemství Shamirův, a veřejné informace Schematika dělení tajemství Shamirův. Tentokrát útočník na základě všech dostupných informací odvozuje následující funkce, kde Schematika dělení tajemství Shamirův — množina všech kladných celých čísel, a Schematika dělení tajemství Shamirův představuje koeficient modulu Schematika dělení tajemství Shamirův.

Schematika dělení tajemství Shamirův

Nyní náš útočník opět nachází Schematika dělení tajemství Shamirův, vypočítavá Schematika dělení tajemství Shamirův:

Schematika dělení tajemství Shamirův

Poté se znovu pokouší odvodit Schematika dělení tajemství Shamirův, nahrazením Schematika dělení tajemství Shamirův v Schematika dělení tajemství Shamirův:

Schematika dělení tajemství Shamirův

Tentokrát má vážný problém. Ve vzorci chybí hodnoty Schematika dělení tajemství Shamirův, Schematika dělení tajemství Shamirův a Schematika dělení tajemství Shamirův. Jelikož existuje nekonečné množství kombinací těchto proměnných, nemůže získat žádné další informace.

Zabezpečení

Schéma dělení tajemství Shamirovy nabízí bezpečnost z hlediska teorie informace. To znamená, že matematika je odolná i vůči útočníkovi s neomezeným výpočetním výkonem. Přesto schéma stále obsahuje několik známých problémů.

Například Shamirovo schéma nevytváří ověřitelné útržky, což znamená, že lidé mohou svobodně předkládat falešné útržky a komplikovat obnovu správného tajemství. Nepřátelský správce útržků s dostatečnými informacemi může dokonce vyprodukovat jiný útržek, když změní Schematika dělení tajemství Shamirův podle svého uvážení. Tento problém se řeší pomocí ověřitelných schémat dělení tajemství, jako je Feldmanovo schéma.

Dalším problémem je to, že délka jakéhokoli útržku je rovna délce odpovídajícího tajemství, takže délku tajemství lze snadno určit. Tento problém se řeší triviálním naplněním tajemství libovolnými čísly do pevné délky.

Nakonec je důležité poznamenat, že naše obavy o zabezpečení mohou přesahovat samo schéma. Pro skutečné kryptografické aplikace často existuje hrozba útoků prostřednictvím bočních kanálů, kdy se útočník pokouší získat užitečné informace z doby běhu aplikace, vyrovnávací paměti, selhání atd. Pokud to vyvolává obavy, je vhodné při vývoji pečlivě zvážit použití ochranných opatření, jako jsou funkce a vyhledávání s konstantní dobou běhu, zamezit ukládání paměti na disk a promyslet řadu dalších věcí, které přesahují tento článek.

Demo

Na tato stránka existuje interaktivní demonstrace Shamirova schéma dělení tajemství. Demonstrace byla vytvořena na základě knihovny ssss-js, která je sama o sobě JavaScriptovým portem populárního programu ssssVezměte prosím na vědomí, že výpočet velkých hodnot Schematika dělení tajemství Shamirův, Schematika dělení tajemství Shamirův a Schematika dělení tajemství Shamirův může trvat nějakou dobu.

Zdroj: habr.com

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster