I have a case here, where I need to encrypt messages to a team/group. Everyone in the group can create a new message, and everyone else in the group can read/edit/delete that message. I want the following things:
- Encrypted messages
- Decryptable by everyone in a group (no one else can unlock it)
- Group members can read/edit each message
- No re-use of messages (like storing all the team members' public keys and then encrypt all messages with their public key), as that wouldn't work in this case
- Possible to add a new member to the group and give that member access to all previous messages
The main property of this is security. I do not want anyone to be able to access the messages.
Here's a possible problem: If the whole database gets dropped and someone already has an account on that site, that said user should NOT be able to just add himself to that group, to display all the passwords stored in that group (like if the person recreates the application using the database). The messages would need to be encrypted somehow, that no one (not even with the database in hand) can access the encrypted messages.
What am I looking at doing here? It's a pretty unique case I think.