Functional encryption

From testwiki
Revision as of 16:12, 30 November 2024 by imported>AManWithNoPlan (duplicate info)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Template:Infobox encryption method

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.

Formal definition

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

  • (pk,msk)Setup(1λ): creates a public key pk and a master secret key msk.
  • skKeygen(msk,f): uses the master secret key to generate a new secret key sk for the function f.
  • cEnc(pk,x): uses the public key to encrypt a message x.
  • yDec(sk,c): uses secret key to calculate y=f(x) where x is the value that c encrypts.

The security of FE requires that any information an adversary learns from an encryption of x is revealed by f(x). Formally, this is defined by simulation.[1]

Applications

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.

History

Functional encryption was proposed by Amit Sahai and Brent Waters in 2005[2] and formalized by Dan Boneh, Amit Sahai and Brent Waters in 2010.[3] 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.[1][4][5][6]

References

Template:Reflist