Nikolaos Alexandris, "Implementation of an application on a GPU, used for decryption of GSM data", Diploma Work, School of Electronic and Computer Engineering, Technical University of Crete, Chania, Greece, 2016
https://doi.org/10.26233/heallink.tuc.62733
In this work we designed an application, which uses the time/memory tradeoff technique to create Rainbow Tables. These tables are used to decrypt data of the 2.5G generation of the GSM mobile communication network, encrypted with the A5/3 algorithm. The A5/3 is a stream cipher which uses the KASUMI block cipher in an Output-Feedback-like mode of operation. The application is designed using the CUDA Programming Model, for parallel execution on a modern NVIDIA GPU, build with the CUDA architecture which offers support for General-Purpose GPU-Programming (GP-GPU Programming). Our main goal was to get accustomed with the general method of designing applications to run on parallel, but also, to harvest the computational power of the CUDA architecture and the abilities of the CUDA Programming Model, in order to optimize our application for the maximum possible level of parallelization and execution speed. For the sake of producing fairly comparable results, we developed a second application to be executed on CPUs only, using the OpenMP model for parallel execution on modern multicore CPUs. This second application is used as a measure of comparison.