Harman Patil (Editor)

Functional encryption

Updated on
Edit
Like
Comment
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit

Functional encryption 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.

More precisely, a functional encryption scheme for a given functionality F consists of the following four algorithms:

  • ( p k , m s k ) S e t u p ( 1 λ ) : creates a public key p k and a master secret key m s k .
  • s k K e y g e n ( m s k , k ) : uses the master secret key to generate a new secret key s k for value k .
  • c E n c ( p k , x ) : uses the public key to encrypt a message x .
  • F ( k , x ) D e c ( s k , c ) : uses secret key to calculate a function of the value c encrypts.
  • Functional encryption generalizes several existing primitives including Identity-based encryption (IBE) and Attribute-based encryption (ABE). In the IBE case, define F ( k , x ) to be equal to x when k corresponds to an identity that is allowed to decrypt, and otherwise. Similarly, in the ABE case, define F ( k , x ) = x when k encodes attributes with permission to decrypt and otherwise.

    Background

    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.

    References

    Functional encryption Wikipedia