This talk is devoted to proxy re-encryption (PRE), a cryptographic primitive that constitutes a practical solution to the problem of secure data sharing, from the perspective of both functionality and efficiency. Proxy re-encryption is a type of public-key encryption that also allows a proxy entity to transform ciphertexts from one public key to another, without learning anything about the underlying message. From a functional point of view, proxy re-encryption can be seen as a means of securely delegating access to encrypted information, representing therefore a natural candidate to construct cryptographically-enforced access control mechanisms. In addition, this primitive is in itself of great theoretical interest, since its security definitions have to simultaneously balance the security of ciphertexts and the possibility of transforming them through re-encryption, which represents a challenging dichotomy. This talk will follow a transversal approach, ranging from the very definitions of security models for proxy re-encryption to the specifics of applications.