Dacă doriți ca C să poată decripta orice adresat lui B, atunci cel mai simplu lucru este să dați pur și simplu cheia de decriptare a lui B lui C.
Există și ceva numit re-criptare proxy asta este și în spiritul „re-adresării” unui text cifrat. În re-criptarea proxy, există un algoritm $\textsf{ProxyKey}(sk_B, pk_C) \to rk_{B\to C}$: ia ca intrare cheia privată a lui B și cheia publică a lui C și generează o cheie de re-criptare $rk_{B \la C}$. Oricine are această cheie de recriptare poate face $\textsf{ReEncrypt}(rk_{B \to C}, ctxt) \to ctxt'$, care ia un text cifrat $ctxt$ adresată lui $B$ și o transformă în $ctxt'$, o criptare a aceluiași lucru, dar adresată $C$.
(Există și variante în care $\textsf{ProxyKey}$ are nevoie de cheia privată a ambelor părți.)
Distincția importantă aici este că persoana care „re-abordează” textul cifrat („proxy”) poate fi altcineva decât B sau C. Un proxy care are doar $rk_{B\la C}$ dar cine nu cunoaște cheile private ale lui B sau C nu poate deschide texte cifrate adresate lui B sau C. Ele pot transforma doar texte cifrate pentru B în texte cifrate pentru C (și nu invers) fără să se uite în interior.Presupunând că proxy-ul și C sunt părți distincte, atunci C poate citi doar mesajele adresate lui B pe care proxy-ul alege să le transforme.