DESIGN AND ACCELERATION OF CHEON, KIM, KIM, SONG (CKKS) TOTAL HOMOMORPHIC ENCRYPTION ALGORITHM ON GPU

Homomorphic encryption algorithms are encryptions that facilitate computation directly on encrypted data. An example of a homomorphic encryption algorithm is CKKS which allows homomorphic encryption of complex numbers. Homomorphic encryptions are proven to be highly secure due to its quantum safe...

Full description

Saved in:
Bibliographic Details
Main Author: Mario Reynaldi, Daniel
Format: Final Project
Language:Indonesia
Online Access:https://digilib.itb.ac.id/gdl/view/74368
Tags: Add Tag
No Tags, Be the first to tag this record!
Institution: Institut Teknologi Bandung
Language: Indonesia
Description
Summary:Homomorphic encryption algorithms are encryptions that facilitate computation directly on encrypted data. An example of a homomorphic encryption algorithm is CKKS which allows homomorphic encryption of complex numbers. Homomorphic encryptions are proven to be highly secure due to its quantum safe characteristics and the fact that data are always encrypted. However the adoption rate of homomorphic encryption in daily applications is still minimal due to the high execution time. Therefore, there needs to be an effort to parallelize homomorphic encryption algorithms to reduce the execution time. GPU is chosen to be the parallelization platform due to its ubiquity and high parallel processing capabilities for algorithms of single instruction multiple data stream type. Parallel implementation is done with the CUDA platform on Nvidia GPU. Serial implementation is done with C++ as a comparison. Tests are performed to verify the correctness and the performance of the implementations. The correctness or functionality test is done by encrypting a BMP image then decrypting the image, the resulting image is then compared visually to the input and the PSNR score is measured. The result is the implementation has been able to encrypt the image without significant loss of quality as displayed in the output image having visually no differences compared to the original image, and the PSNR value of 102. The performance tests are done by measuring the execution time of both serial and parallel implementations and measuring the speedup of the algorithms. The result of the tests show that the parallel implementations are able to achieve significant speedup compared to the serial implementation.