Utilia

Shamiro paslapties dalijimas

Padalyk slaptažodį ar atkūrimo frazę į N dalių, iš kurių bet kurios M ją atkuria, naudojant Shamiro paslapties dalijimą GF(256) laukui, vietoje savo naršyklėje.

Dalijimas ir sujungimas vyksta tik tavo naršyklėje. Paslaptis ir jos dalys niekur nesiunčiamos; atsitiktiniai skaičiai gaunami iš crypto.getRandomValues.

Padalyti paslaptį

    Sujungti dalis

    Kaip padalyti paslaptį

    1. Įrašyk arba įklijuok saugotiną tekstą į Paslaptis (tekstas): atkūrimo frazę, pagrindinį slaptažodį, šifravimo raktą…
    2. Nustatyk Dalių skaičius (N) ir Atkurti reikia dalių (M). Pavyzdžiui, N = 5 ir M = 3 reiškia, kad bet kurios 3 iš 5 dalių atkuria paslaptį, o 2 dalys neatskleidžia nieko.
    3. Spustelėk Padalyti paslaptį. Kiekviena dalis rodoma savo eilutėje su mygtuku Kopijuoti; taip pat gali Kopijuoti visas dalis arba Atsisiųsti dalis (.txt).
    4. Spustelėk Bandymas: sujungti pirmąsias M dalių, kad patikrintum, ar dalys veikia, prieš jas išdalydamas.
    5. Kiekvieną dalį atiduok skirtingam žmogui arba laikyk kitoje vietoje. Nelaikyk jų visų kartu, nes tada padalijimas beprasmis.

    Kaip atkurti paslaptį

    1. Įklijuok bent M dalių į Dalys, po vieną eilutėje, bet kokia tvarka. Tuščios eilutės ignoruojamos.
    2. Spustelėk Sujungti dalis. Tekstas pasirodo po Atkurta paslaptis, o būsenos eilutėje nurodoma, kurių dalių numeriai panaudoti.
    3. Jei dalyje yra rašybos klaida, ji gauta iš kito padalijimo arba pasikartoja su skirtingu turiniu, įrankis pasako, kuri ir kodėl, užuot grąžinęs šiukšles.

    Kaip veikia Shamiro paslapties dalijimas

    Adi Shamir šią schemą paskelbė 1979 m. Norint pasidalyti vienu baitu s su slenksčiu M, parenkamas atsitiktinis M − 1 laipsnio polinomas, kurio laisvasis narys yra s: f(x) = s + a₁x + … + a₍M−1₎x^(M−1). Dalis su numeriu x yra reikšmė f(x). Bet kurie M taškų vienareikšmiškai nusako polinomą, todėl Lagranžo interpoliacija ties x = 0 grąžina s; turint mažiau nei M taškų, kiekviena s reikšmė vienodai tikėtina, taigi dalys apie paslaptį neatskleidžia nieko.

    Šis įrankis dirba baigtiniame lauke GF(256) (tame, kurį naudoja AES, su redukcijos polinomu x⁸ + x⁴ + x³ + x + 1), todėl kiekvienas UTF-8 paslapties baitas gauna savo polinomą, o dalys yra lygiai tokio paties ilgio kaip paslaptis. Atsitiktiniai koeficientai gaunami iš crypto.getRandomValues, naršyklės kriptografinio atsitiktinių skaičių generatoriaus. Viskas vyksta vietoje: paslaptis ir dalys nepalieka tavo įrenginio.

    Dalies formatas

    Dalis atrodo taip: 3-2-5f1c…: slenkstis M, dalies numeris X (nuo 1 iki 255), tada šešioliktainiai duomenys. Duomenis sudaro paslapties polinomų reikšmės, po jų – 4 baitų paslapties CRC-32, o pabaigoje – 4 baitų pačios dalies CRC-32 kontrolinė suma. Kontrolinė suma pagauna kopijavimo klaidas; vidinis CRC parodo, kai buvo sumaišytos skirtingų paslapčių dalys. Kitų Shamiro įrankių sukurtos dalys naudoja kitus formatus ir čia sujungti negali.

    Dažnai užduodami klausimai

    Kaip pasirinkti N ir M?

    M yra tiek, kiek žmonių ar vietų privalo bendradarbiauti, o N − M – kiek dalių gali sau leisti prarasti. 3 iš 5 yra dažnas pasirinkimas: dvi dalys gali būti prarastos ar sunaikintos, o jokia dviejų turėtojų pora paslapties savarankiškai atkurti negali.

    Ar saugu vieną dalį laikyti debesyje?

    Viena dalis ar bet kuri grupė, mažesnė nei M, apie paslaptį neatskleidžia nieko. Vis dėlto vienoje paskyroje ar vietoje laikyk mažiau nei M dalių, nes kitaip vien ta vieta turės paslaptį.

    Ar šis įrankis užšifruoja paslaptį?

    Ne įprasta prasme: slaptažodžio nėra. Apsauga kyla iš slenksčio. Abu būdus gali derinti, pavyzdžiui, padalydamas užšifruoto failo slaptafrazę.

    Kas nutinka, jei pateikiu daugiau nei M dalių?

    Pirmosios M dalių atkuria paslaptį, o papildomos patikrinamos pagal jas. Netinkama dalis pranešama, o tai padeda pastebėti pažeistą ar svetimą dalį.

    Ar galiu padalyti failą?

    Šis įrankis dalija tekstą iki 10 000 baitų. Failą užšifruok stipria atsitiktine slaptafraze ir padalyk slaptafrazę.