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 message
with a key and obtains ciphertext Bob decrypts and obtainsNote 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 vector
Alice encrypts and obtains a ciphertextAlice does not want Bob to know
She wants Bob to know only for some vectorIn other words, for a message
Alice wants Bob to know whereAfter decryption, Bob knows nothing about
except the valueThis value is called the inner-product of vectors
and . It is denoted by :