The aim of this Master's Thesis was to compare the serial implementations of block ciphers that run on CPU with corresponding parallel implementations that run on GPU. By analyzing the five finalists of the AES competition (Rijndael, Serpent, Twofish, MARS and RC6) we searched for possible improvements in their parallel implementations. Using the data parallelism techniques we implemented the algorithms in parallel and achieved the speed that was 20 times higher in comparison to the underlying serial implementations. We have also compared two different platforms for writing parallel programs on GPU: CUDA and OpenCL. In addition we implemented the bitslice implementations of algorithms Rijndael and Serpent for CUDA platform and compared them to data parallelism based implementations.
|