Functional encryption

Functional encryption (FE) is a generalization of public-key encryption in which possessing a secret key allows one to learn a function of what the ciphertext is encrypting.
01Formal definition
More precisely, a functional encryption scheme for a given functionality consists of the following four algorithms:
: creates a public key
and a master secret key
.
: uses the master secret key to generate a new secret key
for the function
.
: uses the public key to encrypt a message
.
: uses secret key to calculate
where
is the value that
encrypts.
The security of FE requires that any information an adversary learns from an encryption of is revealed by
. Formally, this is defined by simulation.
02Applications
Functional encryption generalizes several existing primitives including Identity-based encryption (IBE) and attribute-based encryption (ABE). In the IBE case, define to be equal to
when
corresponds to an identity that is allowed to decrypt, and
otherwise. Similarly, in the ABE case, define
when
encodes attributes with permission to decrypt and
otherwise.
03History
Functional encryption was proposed by Amit Sahai and Brent Waters in 2005 and formalized by Dan Boneh, Amit Sahai and Brent Waters in 2010. Until recently, however, most instantiations of Functional Encryption supported only limited function classes such as boolean formulae. In 2012, several researchers developed Functional Encryption schemes that support arbitrary functions.
Sources and credits
This article is adapted from the Wikipedia article “Functional encryption”, written by its contributors and licensed under CC BY-SA 4.0. Fathomly has changed the layout, removed citation markers, navigation and maintenance notices, and adjusted punctuation. This adapted version is shared under the same license. For references, see the original article.
Images, from Wikimedia Commons:
- Encryption.png by Unknown author, Public domain
Fathomly is not affiliated with or endorsed by the Wikimedia Foundation. Spotted a problem? Tell us.