Alice has symmetrically encrypted the large (100Mb) MessageA with a random key K1, and then asymmetrically encrypted K1 with Bobs public key. She then stores the encrypted large message in a central and public repository and sends Bob's key to him.
Can Bob then decrypt the key K1 with his private key and then encrypt the key K1 again with Charles' public key, and send the resulting key to Charles - Giving Charles the ability to decrypt MessageA in the central repository?
I'm looking for a cryptographic approach to giving multiple users access to the same data without having to massage the actual data. (A gives to B, B gives to C and E, etc). Are there mechanisms for revocation?