La condivisione segreta di Shamir (Shamir's secret sharing - SSS) è un efficiente algoritmo di condivisione segreta per la distribuzione di informazioni private (il "segreto") tra un gruppo, sviluppato per la prima volta da Adi Shamir nel 1979.
Il segreto non può essere rivelato a meno che un numero minimo di membri del gruppo non agisca insieme per mettere in comune le loro conoscenze. Per raggiungere questo obiettivo, il segreto è matematicamente diviso in parti (le "quote") da cui il segreto può essere ricomposto solo quando viene combinato un numero sufficiente di quote.
SSS ha la proprietà della sicurezza teorica delle informazioni, il che significa che anche se un malintenzionato rubass alcune quote, gli sarebbe impossibile ricostruire il segreto a meno che non ne abbia rubate un numero sufficiente.
Il metodo di condivisione dei segreti di Shamir viene utilizzato in alcune applicazioni per condividere le chiavi di accesso a un segreto principale.
Spiegazione di alto livello
SSS viene utilizzato per proteggere un segreto in forma distribuita, il più delle volte per proteggere le chiavi di crittografia. Il segreto è suddiviso in più parti, che singolarmente non danno alcuna informazione sul segreto.
Per ricostruire un segreto protetto da SSS, è necessario un certo numero di parti, chiamato soglia. Nessuna informazione sul segreto può essere ottenuta da qualsiasi numero di parti al di sotto della soglia (una proprietà chiamata segretezza perfetta). In questo senso, SSS è una generalizzazione del one-time pad (che può essere considerato come un SSS con una soglia di due parti e due parti in totale).
Esempio di applicazione
Un'azienda deve mettere in sicurezza la propria cassaforte. Se una sola persona conosce il codice di accesso alla cassaforte, il codice potrebbe andare perso o risultare indisponibile nel momento in cui sarà necessario aprire la cassaforte. Se invece sono più le persone a conoscere il codice, potrebbe non esserci fiducia reciproca sul fatto che agiscano sempre in modo onesto.
In questa situazione è possibile utilizzare l'SSS per generare frazioni del codice della cassaforte, che vengono distribuite alle persone autorizzate all'interno dell'azienda. La soglia minima e il numero di quote assegnate a ciascun individuo possono essere selezionati in modo tale che la cassaforte sia accessibile solo a (gruppi di) individui autorizzati. Se vengono presentate meno quote rispetto alla soglia minima, la cassaforte non può essere aperta.
Per caso, sotto costrizione o per atto di opposizione, alcuni individui potrebbero fornire informazioni errate relative alle proprie quote. Se il totale delle quote corrette non raggiunge la soglia minima, la cassaforte rimane chiusa.
Casi d'uso
La tecnica di condivisione segreta di Shamir può essere utilizzata per
condividere una chiave per la decifratura della chiave principale di un gestore di password, recuperare una chiave utente per l'accesso alla posta elettronica cifrata, condividere la passphrase per l'accesso a un portafoglio di criptovalute e recuperare la combinazione di una cassaforte fisica.
Caratteristiche e punti deboli
L'SSS presenta proprietà utili, ma anche dei punti deboli, il che significa che non è adatto ad alcuni utilizzi.
Le proprietà utili comprendono:
Sicurezza: lo schema garantisce la sicurezza dal punto di vista della teoria dell'informazione. Minimalità: la dimensione di ciascun frammento non supera quella dei dati originali. Estensibile: per qualsiasi soglia data, è possibile aggiungere o eliminare dinamicamente delle quote senza influire su quelle esistenti. Dinamico: è possibile migliorare la sicurezza senza modificare il segreto, ma cambiando occasionalmente il polinomio (mantenendo lo stesso termine libero) e costruendo una nuova quota per ciascuno dei partecipanti. Flessibile: nelle organizzazioni in cui la gerarchia è importante, a ciascun partecipante può essere assegnato un numero diverso di quote in base alla sua importanza all'interno dell'organizzazione. Ad esempio, con una soglia pari a 3, il presidente potrebbe sbloccare la cassaforte da solo se gli venissero assegnate tre quote, mentre tre segretari con una quota ciascuno dovrebbero unire le proprie quote per sbloccare la cassaforte.
I punti deboli includono:
Assenza di condivisione verificabile del segreto: durante il processo di ricomposizione delle quote, l'SSS non fornisce un modo per verificare la correttezza di ciascuna quota utilizzata. La condivisione verificabile del segreto mira a verificare che i detentori delle quote siano onesti e non presentino quote false. Single Point of Failure: il segreto deve trovarsi in un unico luogo quando viene suddiviso in parti e nuovamente in un unico luogo quando viene ricomposto. Questi luoghi rappresentano possibili punti di attacco.
Storia Adi Shamir formulò per la prima volta questo schema nel 1979.
Categoria:Algoritmi crittografici