Utilia

Shamirova podjela tajne

Podijeli lozinku ili frazu za oporavak na N dijelova od kojih je bilo kojih M dovoljno za obnovu, Shamirovom podjelom tajne u GF(256), lokalno u pregledniku.

Podjela i spajanje odvijaju se u cijelosti u tvom pregledniku. Tajna i dijelovi nikamo se ne šalju; nasumični brojevi dolaze iz crypto.getRandomValues.

Podijeli tajnu

    Spoji dijelove

    Kako podijeliti tajnu

    1. Upiši ili zalijepi tekst koji želiš zaštititi u Tajna (tekst): frazu za oporavak, glavnu lozinku, ključ za šifriranje…
    2. Postavi Broj dijelova (N) i Dijelova potrebnih za obnovu (M). Na primjer, N = 5 i M = 3 znači da bilo koja 3 od 5 dijelova obnavljaju tajnu, a 2 dijela ne otkrivaju ništa.
    3. Klikni Podijeli tajnu. Svaki se dio pojavljuje u zasebnom retku s gumbom Kopiraj; možeš i Kopiraj sve dijelove ili Preuzmi dijelove (.txt).
    4. Klikni Test: spoji prvih M dijelova da provjeriš rade li dijelovi prije nego ih podijeliš.
    5. Svaki dio daj drugoj osobi ili ga pohrani na drugo mjesto. Nemoj ih držati sve na istom mjestu, jer je tada podjela besmislena.

    Kako obnoviti tajnu

    1. Zalijepi najmanje M dijelova u Dijelovi, jedan po retku, bilo kojim redoslijedom. Prazni retci se zanemaruju.
    2. Klikni Spoji dijelove. Tekst se pojavljuje pod Obnovljena tajna, a status kaže koji su brojevi dijelova korišteni.
    3. Ako dio ima tipfeler, potječe iz druge podjele ili se pojavljuje dvaput s različitim sadržajem, alat kaže koji je i zašto, umjesto da vrati besmislicu.

    Kako radi Shamirova podjela tajne

    Adi Shamir objavio je shemu 1979. Da bi se jedan bajt s podijelio s pragom M, bira se nasumični polinom stupnja M − 1 čiji je slobodni član s: f(x) = s + a₁x + … + a₍M−1₎x^(M−1). Dio broj x je vrijednost f(x). Bilo kojih M točaka određuje polinom, pa Lagrangeova interpolacija u x = 0 vraća s; s manje od M točaka svaka je vrijednost s jednako vjerojatna, pa dijelovi ne otkrivaju ništa o tajni.

    Alat radi u konačnom polju GF(256) (onom koje koristi AES, s reducirajućim polinomom x⁸ + x⁴ + x³ + x + 1), pa svaki bajt UTF-8 tajne dobiva vlastiti polinom, a dijelovi su točno jednako dugi kao tajna. Nasumični koeficijenti dolaze iz crypto.getRandomValues, kriptografskog generatora slučajnih brojeva u pregledniku. Sve se izvodi lokalno: tajna i dijelovi nikada ne napuštaju tvoj uređaj.

    Format dijela

    Dio izgleda ovako: 3-2-5f1c…: prag M, broj dijela X (od 1 do 255), zatim heksadecimalni podaci. Podaci sadrže vrijednosti polinoma za tajnu iza kojih slijedi 4-bajtni CRC-32 tajne, a završavaju 4-bajtnim CRC-32 kontrolnim zbrojem samog dijela. Kontrolni zbroj hvata pogreške pri kopiranju; unutarnji CRC pokazuje kad su pomiješani dijelovi različitih tajni. Dijelovi koje su izradili drugi Shamirovi alati koriste druge formate i ovdje se ne mogu spojiti.

    Česta pitanja

    Kako odabrati N i M?

    M je broj osoba ili mjesta koji moraju surađivati, a N − M je broj dijelova koje si možeš priuštiti izgubiti. Izbor 3 od 5 je čest: dva dijela mogu se izgubiti ili uništiti, a nijedan par imatelja ne može sam obnoviti tajnu.

    Je li sigurno pohraniti jedan dio u oblaku?

    Pojedinačni dio, ili bilo koja skupina manja od M, ne otkriva ništa o tajni. Ipak, drži manje od M dijelova na jednom računu ili mjestu, inače to mjesto samo drži tajnu.

    Šifrira li ovaj alat tajnu?

    Ne u uobičajenom smislu: nema lozinke. Zaštita proizlazi iz praga. Možeš kombinirati oboje, na primjer podjelom lozinke šifrirane datoteke.

    Što ako dam više od M dijelova?

    Prvih M dijelova obnavlja tajnu, a ostali se provjeravaju prema njoj. Dio koji ne odgovara prijavljuje se, što pomaže uočiti oštećeni ili tuđi dio.

    Mogu li podijeliti datoteku?

    Alat dijeli tekst do 10 000 bajtova. Za datoteku je šifriraj jakom nasumičnom lozinkom, a podijeli lozinku.