Utilia

Condivisione del segreto di Shamir

Dividi una password o una frase di recupero in N quote, di cui M qualsiasi la ricostruiscono, con lo schema di Shamir su GF(256), nel tuo browser.

La divisione e la ricomposizione avvengono interamente nel tuo browser. Il segreto e le quote non vengono mai inviati; i numeri casuali provengono da crypto.getRandomValues.

Dividi un segreto

    Ricomponi le quote

    Come dividere un segreto

    1. Scrivi o incolla il testo da proteggere in Segreto (testo): una frase di recupero, una password principale, una chiave di cifratura…
    2. Imposta il Numero di quote (N) e le Quote necessarie per ricostruire (M). Per esempio, N = 5 e M = 3 significa che 3 quote qualsiasi su 5 ricostruiscono il segreto, mentre 2 quote non rivelano nulla.
    3. Premi Dividi segreto. Ogni quota compare su una riga a sé con un pulsante Copia; puoi anche usare Copia tutte le quote o Scarica le quote (.txt).
    4. Premi Prova: ricomponi le prime M quote per verificare che le quote funzionino prima di distribuirle.
    5. Affida ogni quota a una persona diversa o conservala in un luogo diverso. Non tenerle tutte insieme, altrimenti la divisione non serve a nulla.

    Come ricostruire il segreto

    1. Incolla almeno M quote in Quote, una per riga, in qualsiasi ordine. Le righe vuote vengono ignorate.
    2. Premi Ricomponi quote. Il testo compare in Segreto recuperato e lo stato indica quali numeri di quota sono stati usati.
    3. Se una quota contiene un errore di battitura, proviene da un’altra divisione o compare due volte con contenuti diversi, lo strumento ti dice quale e perché, invece di restituire dati senza senso.

    Come funziona lo schema di Shamir

    Adi Shamir ha pubblicato lo schema nel 1979. Per condividere un byte s con soglia M si sceglie un polinomio casuale di grado M − 1 il cui termine noto è s: f(x) = s + a₁x + … + a₍M−1₎x^(M−1). La quota numero x è il valore f(x). M punti qualsiasi determinano il polinomio, quindi l’interpolazione di Lagrange in x = 0 restituisce s; con meno di M punti ogni valore di s è ugualmente probabile, perciò le quote non rivelano nulla del segreto.

    Lo strumento lavora nel campo finito GF(256) (quello usato da AES, con il polinomio di riduzione x⁸ + x⁴ + x³ + x + 1), quindi ogni byte del segreto in UTF-8 ha il proprio polinomio e le quote sono lunghe esattamente quanto il segreto. I coefficienti casuali provengono da crypto.getRandomValues, il generatore crittografico di numeri casuali del browser. Tutto avviene in locale: il segreto e le quote non lasciano mai il tuo dispositivo.

    Formato delle quote

    Una quota ha questo aspetto: 3-2-5f1c…, cioè la soglia M, il numero di quota X (da 1 a 255) e poi i dati in esadecimale. I dati contengono i valori del polinomio per il segreto seguiti da un CRC-32 di 4 byte del segreto, e terminano con un checksum CRC-32 di 4 byte della quota stessa. Il checksum individua gli errori di copiatura; il CRC interno rivela quando sono state mescolate quote di segreti diversi. Le quote create con altri strumenti Shamir usano formati diversi e non possono essere ricomposte qui.

    Domande frequenti

    Come scelgo N e M?

    M indica quante persone o quanti luoghi devono collaborare, N − M quante quote puoi permetterti di perdere. 3 su 5 è una scelta comune: due quote possono andare perse o distrutte e nessuna coppia di detentori può ricostruire il segreto da sola.

    È sicuro conservare una quota nel cloud?

    Una singola quota, o qualsiasi gruppo inferiore a M, non rivela nulla del segreto. Tieni comunque meno di M quote in un unico account o luogo, altrimenti quel luogo da solo contiene il segreto.

    Questo strumento cifra il segreto?

    Non nel senso abituale: non c’è una password. La protezione deriva dalla soglia. Puoi combinare le due cose, per esempio dividendo la passphrase di un file cifrato.

    Cosa succede se fornisco più di M quote?

    Le prime M quote ricostruiscono il segreto e quelle in più vengono confrontate con esse. Una quota che non torna viene segnalata, il che aiuta a individuare una quota danneggiata o estranea.

    Posso dividere un file?

    Lo strumento divide testi fino a 10.000 byte. Per un file, cifralo con una passphrase casuale e robusta e dividi invece la passphrase.