Proxy re-encryption is a form of public-key encryption that allows a user Alice to “delegate” her decryption rights to another user Bob.

In a proxy re-encryption scheme, Alice delegates a semi-trusted proxy (BeSafe Key Server) to translate cyphertexts encrypted under her key into cyphertexts encrypted under Bob’s key. Once delegated, the proxy operates independently of Alice. The proxy is considered “semi-trusted” because it does not see the content of the messages being translated, nor can it re-encrypt Alice’s messages to users for whom Alice has not granted decryption rights.

To delegate her decryption rights to Bob, Alice generates a “delegation key” (or “re-encryption key”), and sends this key to the proxy server. The proxy server uses this key to translate messages from Alice’s key to Bob’s key. The schemes implemented by BeSafe are unidirectional. In a unidirectional scheme, delegations are “one-way”, i.e., the proxy can re-encrypt Alice’s messages to Bob, but cannot re-encrypt Bob’s messages to anyone. Furthermore, Alice can generate a delegation key (to Bob) using only Bob’s public key (and her secret key). It is not necessary that Bob be online or even know that delegation has taken place.