Supponiamo che io abbia N utenti che dovrebbero essere in grado di decifrare un sottoinsieme di documenti D 1 ... D k . N è molto grande e gli utenti vengono spesso aggiunti e rimossi, quindi non è pratico crittografare un determinato documento D i utilizzando tutte le loro chiavi pubbliche .
Come ho letto, una soluzione comune qui è creare un gruppo G con la propria coppia di chiavi, e la sua chiave pubblica viene utilizzata per crittografare il documento.
Quello che non riesco a capire è come dare a tutti gli utenti che entrano e escono da G la possibilità di usare la chiave privata G senza memorizzarla sul server.
Ho pensato di crittografare la chiave privata di G con la chiave pubblica di tutti i suoi membri, ma cosa succede quando un nuovo utente si unisce? Mi sento come se avessi bisogno di crittografare nuovamente la chiave privata, questa volta con la chiave pubblica del nuovo utente mescolata, tuttavia come server non ho più accesso alla chiave privata non crittografata.
La soluzione più vicina che ho visto è quella di creare una nuova coppia di chiavi per G e re-encrypt D i , ma per un gran numero di documenti anche questo diventa molto poco pratico.
Devo aggiungere che il sistema non deve essere autorizzato a decrittografare i documenti dell'utente.
C'è qualche pattern che usa PGP (o qualsiasi altro standard in realtà) che può aiutarmi qui?