I am creating a portal where users can send private messages (PMs) for a very large audience. So I want to encrypt the messages and store them in the database. But I do not want to ask the users for new keys. So here's what I have planned:
A randomly generated symmetric key will be allocated to every pair of users, which will be stored in the database using their passwords in an asymmetric scheme. Using this symmetric key, I intend to encrypt all their messages. So, even if either of them changes their password, I won't have to encrypt all the messages using the new pair of keys. Also Alice and Bob will not be notified of their shared symmetric keys.
This solves my problem of changing passwords and users do not have to set new keys. But is this an overkill? Is there a better way to do this?