Utilia

Shamirs hemmelige deling

Del en adgangskode eller gendannelsessætning op i N andele, så vilkårlige M af dem kan gendanne den, med Shamirs metode over GF(256) lokalt i din browser.

Opdeling og sammensætning kører helt i din browser. Hemmeligheden og andelene sendes aldrig nogen steder hen; de tilfældige tal kommer fra crypto.getRandomValues.

Del en hemmelighed op

    Sæt andele sammen

    Sådan deler du en hemmelighed op

    1. Skriv eller indsæt den tekst, der skal beskyttes, i Hemmelighed (tekst): en gendannelsessætning, en hovedadgangskode, en krypteringsnøgle …
    2. Angiv Antal andele (N) og Andele, der skal bruges til gendannelse (M). For eksempel betyder N = 5 og M = 3, at vilkårlige 3 af de 5 andele gendanner hemmeligheden, mens 2 andele ikke afslører noget.
    3. Klik på Del hemmeligheden op. Hver andel vises på sin egen linje med en Kopiér-knap; du kan også vælge Kopiér alle andele eller Download andele (.txt).
    4. Klik på Test: sæt de første M andele sammen for at tjekke, at andelene virker, før du deler dem ud.
    5. Giv hver andel til en forskellig person, eller opbevar den et forskelligt sted. Opbevar dem ikke alle samlet, for så er opdelingen meningsløs.

    Sådan gendanner du hemmeligheden

    1. Indsæt mindst M andele i Andele, én pr. linje, i vilkårlig rækkefølge. Tomme linjer ignoreres.
    2. Klik på Sæt andele sammen. Teksten vises under Gendannet hemmelighed, og statuslinjen fortæller, hvilke andelsnumre der blev brugt.
    3. Hvis en andel har en tastefejl, stammer fra en anden opdeling eller optræder to gange med forskelligt indhold, siger værktøjet, hvilken og hvorfor, i stedet for at give volapyk tilbage.

    Sådan fungerer Shamirs hemmelige deling

    Adi Shamir offentliggjorde metoden i 1979. For at dele én byte s med tærskel M vælges et tilfældigt polynomium af grad M − 1, hvis konstantled er s: f(x) = s + a₁x + … + a₍M−1₎x^(M−1). Andel nummer x er værdien f(x). Vilkårlige M punkter bestemmer polynomiet, så Lagrange-interpolation i x = 0 giver s tilbage; med færre end M punkter er alle værdier af s lige sandsynlige, så andelene afslører intet om hemmeligheden.

    Værktøjet arbejder i det endelige legeme GF(256) (det, som AES bruger, med reduktionspolynomiet x⁸ + x⁴ + x³ + x + 1), så hver byte i den UTF-8-kodede hemmelighed får sit eget polynomium, og andelene er præcis lige så lange som hemmeligheden. De tilfældige koefficienter kommer fra crypto.getRandomValues, browserens kryptografiske tilfældighedsgenerator. Alt kører lokalt: hemmeligheden og andelene forlader aldrig din enhed.

    Andelens format

    En andel ser ud som 3-2-5f1c…: tærsklen M, andelsnummeret X (1 til 255) og derefter hexadecimale data. Dataene indeholder polynomiets værdier for hemmeligheden efterfulgt af en CRC-32 på 4 byte af hemmeligheden og slutter med en CRC-32-kontrolsum på 4 byte af selve andelen. Kontrolsummen fanger kopieringsfejl; den indre CRC viser, hvis andele fra forskellige hemmeligheder er blandet sammen. Andele, der er lavet af andre Shamir-værktøjer, bruger andre formater og kan ikke sættes sammen her.

    Ofte stillede spørgsmål

    Hvordan vælger jeg N og M?

    M er det antal personer eller steder, der skal samarbejde, og N − M er det antal andele, du har råd til at miste. 3 af 5 er et almindeligt valg: to andele kan gå tabt eller blive ødelagt, og intet par af indehavere kan gendanne hemmeligheden på egen hånd.

    Er det sikkert at gemme én andel i skyen?

    En enkelt andel, eller en hvilken som helst gruppe på færre end M, afslører intet om hemmeligheden. Opbevar alligevel færre end M andele på samme konto eller sted, ellers rummer det sted hemmeligheden alene.

    Krypterer værktøjet hemmeligheden?

    Ikke i sædvanlig forstand: der er ingen adgangskode. Beskyttelsen kommer fra tærsklen. Du kan kombinere begge dele, for eksempel ved at dele adgangssætningen til en krypteret fil op.

    Hvad sker der, hvis jeg angiver flere end M andele?

    De første M andele gendanner hemmeligheden, og de ekstra kontrolleres mod dem. En andel, der ikke passer, bliver meldt, hvilket hjælper med at opdage en beskadiget eller fremmed andel.

    Kan jeg dele en fil op?

    Værktøjet deler tekst op til 10.000 byte. Til en fil skal du kryptere den med en stærk, tilfældig adgangssætning og dele adgangssætningen op i stedet.