Supongamos que tengo N usuarios que deberían poder descifrar un subconjunto de documentos D 1 ... D k . N es muy grande y los usuarios a menudo se agregan y eliminan, por lo que no es práctico encriptar un documento dado Di usando todas sus claves públicas .
Como he leído, una solución común aquí es crear un grupo G con su propio par de claves, y su clave pública se usa para cifrar el documento.
Lo que no puedo entender es cómo dar a todos los usuarios que entran y salen de G la capacidad de usar la clave privada de G sin almacenarla en el servidor.
Pensé en cifrar la clave privada de G con la clave pública de todos sus miembros, pero ¿qué sucede cuando se une un nuevo usuario? Siento que necesitaría volver a cifrar la clave privada, esta vez con la clave pública del nuevo usuario mezclada, sin embargo, como el servidor ya no tengo acceso a la clave privada sin cifrar.
La solución más cercana que he visto es crear un nuevo par de claves para G y volver a cifrar Di , pero para una gran cantidad de documentos esto también se convierte en muy impracticable.
Debo agregar que no se debe permitir que el sistema descifre los documentos del usuario.
¿Hay algún patrón utilizando PGP (o cualquier otro estándar realmente) que pueda ayudarme aquí?