Bob meets functional encryption
The other day Bob came across a new term – functional encryption. It sounded kind of ambiguous. What does it mean? Something that can encrypt functions? Or finally, encryption that works?
Bob didn't have a clue. Sometimes he thinks he should just stop reading cryptographic papers altogether. But you know – it is too tempting to read the stories where you and your best friend are the main characters.
Bob now knows a thing or two about traditional cryptography. In traditional encryption, Alice encrypts the messagewith a key and obtains ciphertext Bob decrypts and obtains
Note that in symmetric cryptography:. In asymmetric cryptography, is Bob's public key and is Bob's private key.
In functional encryption, Bob does not get. He gets some function of : In fact, what is decrypted (what function ) depends on the functional encryption key that Bob receives from the Key Generator:
But what kind of data can be encrypted? What kind of functions are possible?
It turns out the data needs to be presented as a vector. Let us say Alice has a vectorAlice encrypts and obtains a ciphertext
Alice does not want Bob to knowShe wants Bob to know only for some vector
In other words, for a messageAlice wants Bob to know where
After decryption, Bob knows nothing aboutexcept the value
This value is called the inner-product of vectorsand . It is denoted by :