Utilia

Shamirovo zdieľanie tajomstva

Rozdeľ heslo alebo obnovovaciu frázu na N podielov tak, aby ju obnovilo ľubovoľných M z nich, pomocou Shamirovej schémy nad GF(256) v prehliadači.

Rozdelenie aj spojenie prebiehajú výhradne v tvojom prehliadači. Tajomstvo ani podiely sa nikam neodosielajú; náhodné čísla pochádzajú z crypto.getRandomValues.

Rozdeliť tajomstvo

    Spojiť podiely

    Ako rozdeliť tajomstvo

    1. Napíš alebo vlož text, ktorý chceš chrániť, do poľa Tajomstvo (text): obnovovaciu frázu, hlavné heslo, šifrovací kľúč…
    2. Nastav Počet podielov (N) a Podiely potrebné na obnovu (M). Napríklad N = 5 a M = 3 znamená, že tajomstvo obnovia ľubovoľné 3 z 5 podielov a 2 podiely neprezradia nič.
    3. Klikni na Rozdeliť tajomstvo. Každý podiel sa zobrazí na vlastnom riadku s tlačidlom Kopírovať; môžeš tiež Kopírovať všetky podiely alebo Stiahnuť podiely (.txt).
    4. Klikni na Test: spojiť prvých M podielov a over, že podiely fungujú, skôr než ich rozdáš.
    5. Každý podiel daj inej osobe alebo ho ulož na iné miesto. Nedržte ich všetky pokope, inak je rozdelenie zbytočné.

    Ako obnoviť tajomstvo

    1. Vlož aspoň M podielov do poľa Podiely, jeden na riadok, v ľubovoľnom poradí. Prázdne riadky sa ignorujú.
    2. Klikni na Spojiť podiely. Text sa zobrazí v časti Obnovené tajomstvo a stavový riadok uvedie, ktoré čísla podielov sa použili.
    3. Ak má podiel preklep, pochádza z iného rozdelenia alebo sa objaví dvakrát s rôznym obsahom, nástroj povie, ktorý a prečo, namiesto toho, aby vrátil nezmysly.

    Funguje v tvojom prehliadači. Nič, čo zadáš, sa neodosiela na server.

    Ako funguje Shamirovo zdieľanie tajomstva

    Adi Shamir túto schému zverejnil v roku 1979. Ak chceš rozdeliť jeden bajt s s prahom M, zvolí sa náhodný polynóm stupňa M − 1, ktorého absolútny člen je s: f(x) = s + a₁x + … + a₍M−1₎x^(M−1). Podiel číslo x je hodnota f(x). Ľubovoľných M bodov určuje polynóm, takže Lagrangeova interpolácia v bode x = 0 vráti s; pri menej než M bodoch je každá hodnota s rovnako pravdepodobná, takže podiely o tajomstve neprezradia nič.

    Tento nástroj pracuje v konečnom poli GF(256) (v tom, ktoré používa AES, s redukčným polynómom x⁸ + x⁴ + x³ + x + 1), takže každý bajt tajomstva v UTF-8 dostane vlastný polynóm a podiely sú presne také dlhé ako tajomstvo. Náhodné koeficienty pochádzajú z crypto.getRandomValues, kryptografického generátora náhodných čísel prehliadača. Všetko beží lokálne: tajomstvo ani podiely neopustia tvoje zariadenie.

    Formát podielu

    Podiel vyzerá ako 3-2-5f1c…: prah M, číslo podielu X (1 až 255) a potom hexadecimálne údaje. Údaje obsahujú hodnoty polynómu pre tajomstvo, za nimi 4-bajtový CRC-32 tajomstva, a končia 4-bajtovým kontrolným súčtom CRC-32 samotného podielu. Kontrolný súčet zachytí chyby pri kopírovaní; vnútorný CRC ukáže, keď sa zmiešali podiely z rôznych tajomstiev. Podiely vytvorené inými nástrojmi Shamir majú iné formáty a tu sa spojiť nedajú.

    Často kladené otázky

    Ako zvoliť N a M?

    M je počet ľudí alebo miest, ktoré musia spolupracovať, N − M je počet podielov, o ktoré si môžeš dovoliť prísť. Bežnou voľbou je 3 z 5: dva podiely sa môžu stratiť alebo zničiť a žiadna dvojica držiteľov nedokáže tajomstvo obnoviť sama.

    Je bezpečné uložiť jeden podiel do cloudu?

    Jeden podiel alebo ľubovoľná skupina menšia než M o tajomstve neprezradí nič. Napriek tomu na jednom účte alebo mieste drž menej než M podielov, inak by samotné toto miesto držalo tajomstvo.

    Šifruje tento nástroj tajomstvo?

    Nie v obvyklom zmysle: neexistuje žiadne heslo. Ochrana vyplýva z prahu. Môžeš ich skombinovať, napríklad rozdelením hesla k zašifrovanému súboru.

    Čo sa stane, ak zadám viac než M podielov?

    Prvých M podielov obnoví tajomstvo a ostatné sa s nimi porovnajú. Podiel, ktorý nesedí, sa ohlási, čo pomáha odhaliť poškodený alebo cudzí podiel.

    Môžem rozdeliť súbor?

    Tento nástroj rozdeľuje text do 10 000 bajtov. Súbor zašifruj silným náhodným heslom a rozdeľ radšej heslo.