Functional encryption is a generalisation of the classical public-key encryption, and it enables control over the amount of information that is revealed to the receiver after decryption. It enables different users to compute various functions on the ciphertext without revealing the underlying plaintext. An important application of functional encryption, which plays a major role in privacy-preserving machine learning among other things, is the computation of inner products (scalar products). In this bachelor’s thesis, we present the basic definitions of functional encryption. We focus on a scheme which allows the holders of the secret key for vector y to reveal the inner product ⟨x, y⟩ from the ciphertext of vector x and nothing else. We prove that the scheme is secure, if the decisional Diffie-Hellman problem is hard. Additionally, we provide an implementation of the scheme, we test it on a practical example and we present the measured execution times.
|