Ioannis-Leonidas Steiakakis, "Implementation of homomorphic encryption techniques", Diploma Work, School of Electrical and Computer Engineering, Technical University of Crete, Chania, Greece, 2024
https://doi.org/10.26233/heallink.tuc.101288
Cryptography is the primary tool used to secure our data in public environments, where possible malicious adversaries may desire to intercept or tamper it. Encryption is the cryptographic technique used against eavesdropping adversaries. The newly arising concept of homomorphic encryption encompasses techniques for encrypting data in a way such that a desired algebraic structure is preserved, hence allowing to perform ``blind computations'', i.e., to perform operations directly on encrypted data, without the need for decryption first; the operand(s) and the result remain encrypted throughout the process. This diploma thesis is focused on lattice-based cryptosystems (i.e., the underlying mathematical problems ensuring security are problems on lattices), with lattice-based cryptography forming the new NIST post-quantum cryptography standard. We explore (a part of) the deep theory of lattice-based cryptography and study thoroughly the potentials and constraints of homomorphic encryption, which enables to design and implement efficiently a small suite of algorithms for encrypted computations. The programming library (written in C++) that we used for the implementation part is the Microsoft Simple Encrypted Arithmetic Library (SEAL), which provides some very basic encrypted math operations (like addition, subtraction, and multiplication). Using SEAL, some of the encrypted operations that we implemented are encrypted number inversion, encrypted square root, encrypted absolute value, encrypted linear algebra operations, encrypted fast Fourier transform (FFT), and an encrypted version of the if-else statement.