In this talk, I will explain techniques to achieve fast and secure implementations.
I will introduce a vector unit which is a part of a CPU and ways to utilize it. I will also briefly emphasize the importance of and ways to prevent software side-channel attacks. Then, I will explain how to optimize scalar multiplication in Curve41417 and polynomial multiplication Streamlined NTRU Prime $9829^{739}$.
Karatsuba’s method play an important role in the former case, while combinations of Karatsuba’s method and Toom–Cook’s method are crucial in the latter case. Both implementations utilize the CPU’s vector unit.