Utilia

Shamirs hemmelighetsdeling

Del opp et passord eller en gjenopprettingsfrase i N deler der hvilke som helst M gjenoppretter den, med Shamirs hemmelighetsdeling, lokalt i nettleseren.

Oppdeling og sammenslåing skjer helt i nettleseren din. Hemmeligheten og delene sendes aldri noe sted. Tilfeldige tall kommer fra crypto.getRandomValues.

Del opp en hemmelighet

    Slå sammen deler

    Slik deler du opp en hemmelighet

    1. Skriv eller lim inn teksten som skal beskyttes, i Hemmelighet (tekst): en gjenopprettingsfrase, et hovedpassord, en krypteringsnøkkel …
    2. Sett Antall deler (N) og Deler som trengs for å gjenopprette (M). Med N = 5 og M = 3 gjenoppretter for eksempel hvilke som helst 3 av de 5 delene hemmeligheten, mens 2 deler ikke avslører noe.
    3. Klikk Del opp hemmeligheten. Hver del vises på sin egen linje med en Kopier-knapp. Du kan også Kopier alle delene eller Last ned delene (.txt).
    4. Klikk Test: slå sammen de første M delene for å sjekke at delene virker før du deler dem ut.
    5. Gi hver del til en ulik person, eller lagre den på et ulikt sted. Ikke oppbevar alle sammen, ellers er oppdelingen meningsløs.

    Slik gjenoppretter du hemmeligheten

    1. Lim inn minst M deler i Deler, én per linje, i vilkårlig rekkefølge. Blanke linjer ignoreres.
    2. Klikk Slå sammen delene. Teksten vises under Gjenopprettet hemmelighet, og statuslinjen forteller hvilke delnumre som ble brukt.
    3. Hvis en del har en skrivefeil, kommer fra en annen oppdeling eller forekommer to ganger med ulikt innhold, sier verktøyet hvilken og hvorfor, i stedet for å gi deg søppel.

    Slik fungerer Shamirs hemmelighetsdeling

    Adi Shamir publiserte metoden i 1979. For å dele én byte s med terskel M velger man et tilfeldig polynom av grad M − 1 der konstantleddet er s: f(x) = s + a₁x + … + a₍M−1₎x^(M−1). Del nummer x er verdien f(x). Hvilke som helst M punkter bestemmer polynomet, så Lagrange-interpolasjon i x = 0 gir tilbake s. Med færre enn M punkter er alle verdier av s like sannsynlige, så delene avslører ingenting om hemmeligheten.

    Verktøyet regner i det endelige legemet GF(256) (det samme som AES bruker, med reduksjonspolynomet x⁸ + x⁴ + x³ + x + 1), så hver byte i UTF-8-hemmeligheten får sitt eget polynom, og delene er nøyaktig like lange som hemmeligheten. De tilfeldige koeffisientene kommer fra crypto.getRandomValues, nettleserens kryptografiske tilfeldighetsgenerator. Alt kjører lokalt: hemmeligheten og delene forlater aldri enheten din.

    Format på delene

    En del ser ut som 3-2-5f1c…: terskelen M, delnummeret X (1 til 255) og deretter heksadesimale data. Dataene inneholder polynomverdiene for hemmeligheten, etterfulgt av en CRC-32 på 4 byte av hemmeligheten, og de slutter med en CRC-32-sjekksum på 4 byte av selve delen. Sjekksummen fanger opp kopieringsfeil. Den indre CRC-en viser når deler fra ulike hemmeligheter er blandet sammen. Deler laget av andre Shamir-verktøy bruker andre formater og kan ikke slås sammen her.

    Ofte stilte spørsmål

    Hvordan bør jeg velge N og M?

    M er hvor mange personer eller steder som må samarbeide, og N − M er hvor mange deler du har råd til å miste. 3 av 5 er et vanlig valg: to deler kan gå tapt eller bli ødelagt, og ingen to innehavere kan gjenopprette hemmeligheten på egen hånd.

    Er det trygt å lagre én del i skyen?

    En enkelt del, eller en hvilken som helst gruppe på færre enn M, avslører ingenting om hemmeligheten. Likevel bør du ha færre enn M deler på én konto eller ett sted, ellers sitter det stedet alene med hemmeligheten.

    Krypterer verktøyet hemmeligheten?

    Ikke i vanlig forstand: det finnes ikke noe passord. Beskyttelsen kommer fra terskelen. Du kan kombinere begge deler, for eksempel ved å dele opp passfrasen til en kryptert fil.

    Hva skjer hvis jeg oppgir flere enn M deler?

    De første M delene gjenoppretter hemmeligheten, og de ekstra kontrolleres mot dem. En del som ikke passer, blir rapportert, noe som hjelper deg å oppdage en skadet eller fremmed del.

    Kan jeg dele opp en fil?

    Dette verktøyet deler opp tekst på opptil 10 000 byte. For en fil krypterer du den med en sterk, tilfeldig passfrase og deler opp passfrasen i stedet.