La soluzione generica per la condivisione di un segreto è l'algoritmo di Shamir . Questo non è difficile da implementare, ma richiede alcune conoscenze matematiche. Non sono a conoscenza di un'implementazione .NET open source pronta per l'uso.
Una soluzione più semplice è usare una funzione di hash. Se hai n persone che possiedono ciascuno un "elemento segreto", quindi concatena tutti gli elementi segreti nella sequenza dovuta, esegui l'hash del lotto con SHA-256 e prendi i primi 128 bit dello SHA- 256 output come chiave per AES-128. Si adatta a più di due condivisioni ed evita qualsiasi potenziale problema con una chiave AES-256 "parzialmente nota"; inoltre, ti consente di utilizzare l'AES-128 molto più sensibile.
Non vi è alcun problema noto con una chiave AES a 256 bit conosciuta, ma AES è noto per essere piuttosto instabile riguardo a attacchi con chiave correlata che, da una panoramica generale, sembrano in qualche modo potenzialmente rilevanti. Per essere brevi, sembra piuttosto rischioso affidarsi a AES per essere efficace contro le chiavi parzialmente rivelate.