Abstract:
Encryption is a method with which one can securely share data over an insecure channel.
The traditional public-key encryption follows an all-or-nothing approach where the receiver
is either able to get the whole message using a key or nothing. In functional encryption (FE)
it is possible to control the amount of information revealed to the receiver. The emerging
use of cloud computing and a massive amount of collected data leaves us with a question
of data privacy. For many applications, the regular notion of public-key encryption may be
insufficient. For example, a hospital may want to share patients’ private healthcare data
with researchers for analytics without disclosing patients’ private information. Functional
Encryption can be very useful in such a scenario, where the authority(hospital) can provide
a secret key skf to the researchers corresponding to a function f and the researcher can only
get the evaluation f (x), so the researchers can compute on patients’ data without violating
the privacy of the patients.
The idea functional encryption was first introduced in terms of identity-based encryp-
tion [6, 41], attribute-based encryption [38] and predicated encryption [22]. All of these
extensions and their variants can be unified under the name Functional Encryption for an
arbitrary function f . Inner Product Functional Encryption (IPFE) is one of the variants
of FE. IPFE has been instantiated based on different assumptions like decisional Diffie-
Hellman(DDH), learning with errors (LWE) assumptions [3, 4]. The first IPFE scheme based
on RLWE assumption has recently been introduced by Mera et al. [29]. RLWE schemes tend
to be efficient but the main bottlenecks in any RLWE scheme are Gaussian sampling and
large polynomial multiplication. These are the reasons concerning performance loss in these
schemes. Improvements are required to these operations for better performance.
Our primary objective in this thesis is two fold
(a) Improving the efficiency of RLWE-based IPFE [29]: One of the basic obser-
vations that we can have here is that we can run most of the sections in the scheme
parallelly without getting any changes in the result. We have used OpenMP to im-
plement a multi-threaded implementation of the scheme. This allows this code to run
parallelly on multiple cores simultaneously and improve the performance.Another aspect of performance optimization is AVX2 implementation. Intel Advanced
Vector Extensions (AVX) is a vector processor for doing single instruction multiple
data (SIMD) operations on Intel architecture CPUs. They were first supported by
i
Intel with the Haswell processor, which shipped in 2013. We propose a fast vectorized
polynomial multiplication using intel AVX2.
(b) Privacy preserving biometric authentication : We introduce an IPFE-based
privacy-preserving biometric authentication protocol. We use the optimized IPFE
library developed in this work. We then show the difference between using this IPFE-
based protocol and a similar HE-based approach of the protocol.