I am reasonably new to the cryptography. For my use-case I need a method where in I would need a receiver to accept encrypted messages from a range of senders (each having their own, say, public key). My use-case also needs that some of these users only have temporary access which can be revoked externally i.e. without explicitly telling the receiver but ensuring that receiver can no longer honour the encrypted messages from those senders.
Its very similar to the way public wifi hotspots work. Assuming the receiver is the Wifi Router, and each sender has their own passphrase which is short lived for the duration of the subscription.
However in this use-case there is no single receiver, but a network of receivers. All of them talk to each other using a common encryption key. What I am looking for is to have
- an encryption key to be a function of multiple sender's public keys.
- all of the receivers and the senders can decrypt the messages which were encrypted with that encryption key.
- Adding a new sender should be fairly less complex (I guess we need the encryption key to be updated in this case, but if any of the receivers missed the update how can they get attached again?)
- Removing a sender should be fairly less complex (Again I guess we need the encryption key to be updated which again comes with the case of how to deal with receivers missing such an update)
Could you please help point such an encryption technique already in place and possibly proven to be secure? Many thanks and please ask if you need further information to answer my query.