¿Es posible tener cifrado con múltiples claves privadas (PHP)?

O: ¿Cómo almacenar datos cifrados para un grupo de usuarios?

Lo admito, es una pregunta tonta, una clave privada se limita a una sola persona como el término ya implica. Pero tengo el siguiente escenario:

El usuario Tom ingresa datos que deben almacenarse cifrados en una base de datos. El usuario decide que quiere poner esta información a disposición de Jim y Bob. Los usuarios John y Jayne no deben poder descifrarlo. Por supuesto, tampoco al usuario Tim, que hackeó el servidor y tiene acceso a los datos cifrados y las secuencias de comandos que realizan el cifrado / descifrado.

Creo que el enfoque de clave pública / clave privada con PHPopenssl_public_encrypt La función no funcionará aquí, ya que dos usuarios necesitan tener esa clave "privada" para descifrar los datos.

Supongo que esta es una pregunta bastante general, pero si es importante, debe hacerse en PHP (y tal vez MySQL).

Respuestas a la pregunta(4)

Su respuesta a la pregunta