Si chiama crittografia della soglia (o, qui, decrittografia).
Uno schema ben noto è Condivisione segreta di Shamir . Permette di suddividere un valore segreto in condivisioni n , in modo tale che qualsiasi azione t sia sufficiente per ricostruire il segreto. n e t possono essere scelti a piacimento (anche se vorrai avere n maggiore di t nella pratica) . Per il problema della crittografia della soglia, si applica lo schema di Shamir sulla chiave di decrittografia. Quando i t detentori di quote si incontrano, possono ricostruire la chiave di decodifica e quindi decrittografare i dati.
Sebbene lo schema di Shamir sia valido (in effetti, è provabilmente sicuro anche contro gli aggressori con infinite capacità computazionali - pochissimi algoritmi crittografici possono pretendere di essere altrettanto sicuri), ha una limitazione che è la seguente: ricostruisce un < em> segreto . Questo lo rende in qualche modo "one shot": se gli shareholder ricostruiscono il segreto, allora hanno il segreto. Ognuno di loro sarà in grado di eseguire ulteriori decrittazioni da solo semplicemente ricordando il segreto ricostruito.
A seconda del contesto, questo può o non può essere un problema. Per esempio, ci sono sistemi di votazione che usano la crittografia omomorfica (ad esempio con ElGamal), dove i voti criptati vengono sommati insieme senza decrittografarli (questo è il punto dell'omomorfismo); ma il conteggio finale deve ancora essere decodificato. Vogliamo la decrittazione della soglia qui: diverse autorità devono collaborare tra loro per eseguire la decrittazione. In questo modo, le autorità si tengono sotto controllo. Tuttavia, se imparano la chiave privata stessa nel processo, allora ciascuna autorità sarà in grado di decifrare i voti individuali, il che vanifica l'intero scopo.
Se questo problema si applica al tuo contesto, allora devi fare più matematica. Esistono schemi di decodifica della soglia che consentono, ad esempio, una decifratura ElGamal di soglia, in modo tale che t titolare dell'azione debba parlare tra loro per l'istanza di decodifica ogni , scambiando "messaggi parzialmente decrittografati ". La chiave privata non viene mai realmente ricostruita, ma la sua azione (la decrittografia) viene gradualmente riprodotta.
C'è molta teoria sui crittosistemi a soglia, con varie caratteristiche (quante condivisioni, quali valori di soglia possibili, lo schema resiste bene quando alcuni detentori di azioni barano attivamente, quanti messaggi devono essere scambiati e così via). Se il tuo problema a portata di mano può essere risolto con lo schema di Shamir, allora, con tutti i mezzi, provaci. È abbastanza semplice da implementare (in particolare, la condivisione di file è facile se si eseguono tutti i calcoli in GF (2 8 ) ).