Abstract
The thesis is about implementation of LWE/MLWE encryption schemes in C++
and the use of the Number Theoretic Transform (NTT) in order to get faster mul-
tiplication operations over certain rings. We explore how much speed up we get
by using NTT in our different schemes, comparing performance of our NTT im-
plementation with the MulMod function of the NTL Library and the schoolbook
multiplication. We use Cooley-Turkey algorithm in the NTT forward step and
Gentleman-Sande algorithm in the NTT inverse step with ordinary modular re-
duction. After some experiments we came to the conclusion that, when we are
working on R_q = Z_q[X ]/(X^N + 1), for relative small N with our NTT implemen-
taion we get a performance similar compared to the MulMod function and for all
N we get much better results compared to the schoolbook multiplication.