Here is the use case: A uses B's public key to encrypt a message and sent it to B. In later stages, a new member C joins and B would like to let C be able to see this encrypted message (i.e., give the decryption ability to C) without sharing his/her private key or letting A encrypt the message again using C's public key. It is in [this question][1]. A useful solution in that question is proxy re-encryption. In that case, B will generate a re-encryption key using B's private key and C's public key and send it to a proxy. The proxy will re-encrypt the encrypted message using the re-encryption key and send it to C. Then C can use his/her private key to decrypt the re-encrypted message to get the original one. The main question is, after the encrypted message that was encrypted using B's public key earlier is re-encrypted using the re-encryption key generated from B's private key and C's public key, how can C use his/her private key to decrypt the re-encrypted message to get the original one? What makes this happen? Could anyone please give a gentle introduction on how this proxy re-encryption works? I know there are many papers about it and I have tried to understand them but still cannot make anything of them (e.g., [Lecture 17: Re-encryption][2], the most gentle material I found but still cannot understand...). Could anyone introduce it in a layman perspective, maybe via a working example? Introductions like [these][3] would be of great help. Sorry if this question is too shallow here, but I really need such introductions because I am not a cryptography guy while I need to use this concept and need to understand basic principles of it. Thank you! [1]: https://crypto.stackexchange.com/questions/99385/how-to-share-decryption-ability-to-others-whose-public-keys-are-not-used-during [2]: https://www.cs.jhu.edu/~susan/600.641/scribes/lecture17.pdf [3]: https://www.khanacademy.org/computing/computer-science/cryptography/modern-crypt/v/diffie-hellman-key-exchange-part-2