Shamir-féle titokmegosztás
Oszd fel a jelszót vagy a helyreállítási kifejezést N részre úgy, hogy bármelyik M helyreállítsa, Shamir titokmegosztásával, helyben a böngésződben.
A felosztás és az összeállítás teljes egészében a böngésződben fut. A titok és a részek sehová nem kerülnek elküldésre; a véletlen számokat a crypto.getRandomValues szolgáltatja.
Titok felosztása
Részek összeállítása
Hogyan oszd fel a titkot
- Írd be vagy illeszd be a védendő szöveget a Titok (szöveg) mezőbe: helyreállítási kifejezést, mesterjelszót, titkosítókulcsot…
- Állítsd be A részek számát (N) és A visszaállításhoz szükséges részeket (M). Például N = 5 és M = 3 esetén az 5 részből bármelyik 3 helyreállítja a titkot, 2 rész pedig semmit sem árul el.
- Kattints a Titok felosztása gombra. Minden rész külön sorban jelenik meg Másolás gombbal; használhatod az Összes rész másolása vagy a Részek letöltése (.txt) lehetőséget is.
- Kattints a Teszt: az első M rész összeállítása gombra, hogy a kiosztás előtt ellenőrizd, működnek-e a részek.
- Minden részt adj egy másik embernek, vagy tárold máshol. Ne tartsd őket egy helyen, különben a felosztásnak semmi értelme.
Hogyan állítsd vissza a titkot
- Illessz be legalább M részt a Részek, soronként egy mezőbe, tetszőleges sorrendben. Az üres sorokat az eszköz figyelmen kívül hagyja.
- Kattints a Részek összeállítása gombra. A szöveg a Helyreállított titok alatt jelenik meg, az állapotsor pedig megmondja, mely részsorszámokat használta az eszköz.
- Ha egy részben elírás van, másik felosztásból származik, vagy kétszer szerepel eltérő tartalommal, az eszköz megmondja, melyik és miért, ahelyett, hogy értelmetlen adatot adna vissza.
Hogyan működik a Shamir-féle titokmegosztás
Adi Shamir 1979-ben publikálta a sémát. Egyetlen s bájt M küszöbértékkel történő megosztásához válassz egy véletlen, M − 1 fokú polinomot, amelynek konstans tagja s: f(x) = s + a₁x + … + a₍M−1₎x^(M−1). Az x-edik rész az f(x) érték. Bármely M pont meghatározza a polinomot, így a Lagrange-interpoláció az x = 0 helyen visszaadja s-t; M-nél kevesebb pont esetén s minden értéke egyformán valószínű, tehát a részek semmit sem árulnak el a titokról.
Az eszköz a GF(256) véges testben dolgozik (az AES is ezt használja, az x⁸ + x⁴ + x³ + x + 1 redukáló polinommal), ezért az UTF-8 titok minden bájtjához külön polinom tartozik, a részek pedig pontosan olyan hosszúak, mint a titok. A véletlen együtthatókat a crypto.getRandomValues, a böngésző kriptográfiai véletlenszám-generátora adja. Minden helyben fut: a titok és a részek nem hagyják el az eszközödet.
A részek formátuma
Egy rész így néz ki: 3-2-5f1c…: az M küszöbérték, az X részszám (1–255), majd hexadecimális adat. Az adat a titokhoz tartozó polinomértékeket tartalmazza, majd a titok 4 bájtos CRC-32 értékét, és a rész saját 4 bájtos CRC-32 ellenőrzőösszegével végződik. Az ellenőrzőösszeg a másolási hibákat fogja meg; a belső CRC jelzi, ha különböző titkok részeit kevered össze. Más Shamir-eszközök által készített részek más formátumot használnak, és itt nem állíthatók össze.
Gyakori kérdések
Hogyan válasszam meg az N és az M értékét?
Az M az, hányan vagy hány helyen kell együttműködni, az N − M pedig az, hány részt engedhetsz meg magadnak elveszíteni. Gyakori választás az 5-ből 3: két részt elveszíthetsz vagy megsemmisülhet, és a birtokosok közül egyetlen pár sem tudja egyedül helyreállítani a titkot.
Biztonságos az egyik részt a felhőben tárolni?
Egyetlen rész, vagy bármely M-nél kisebb csoport semmit sem árul el a titokról. Ennek ellenére egy fiókban vagy helyen tarts M-nél kevesebb részt, különben az a hely egymaga birtokolja a titkot.
Titkosítja ez az eszköz a titkot?
A szokásos értelemben nem: nincs jelszó. A védelmet a küszöbérték adja. A kettőt kombinálhatod is, például egy titkosított fájl jelmondatát osztod fel.
Mi történik, ha M-nél több részt adok meg?
Az első M rész állítja helyre a titkot, a többit az eszköz ezekhez viszonyítva ellenőrzi. A nem illeszkedő részt jelzi, ami segít kiszúrni a sérült vagy idegen részt.
Feloszthatok egy fájlt?
Az eszköz legfeljebb 10 000 bájt hosszú szöveget oszt fel. Fájl esetén titkosítsd erős, véletlen jelmondattal, és a jelmondatot told fel részekre.
Kapcsolódó eszközök
- Jelszógenerátor Ingyenes jelszógenerátor 4–128 karakteres erős, véletlen jelszavakhoz, biztonságos véletlenszám-generátorral a böngésződben. Semmi nem kerül mentésre.
- Jelmondat generátor Készíts erős, megjegyezhető jelmondatokat az EFF szólistájából vagy francia listából, az entrópia bitben kijelezve. Biztonságosan, a böngésződben generálva.
- Szövegtitkosító Titkosíts és fejts vissza szöveget jelmondattal a böngésződben AES-256-GCM és 600 000 iterációs PBKDF2 használatával. Semmi nem kerül feltöltésre.
- TOTP- és HOTP-kódgenerátor Generálj TOTP- és HOTP-alapú 2FA-kódokat Base32-titokból vagy otpauth:// URI-ból, SHA-1, SHA-256 vagy SHA-512 algoritmussal, visszaszámlálóval és QR-kóddal.