Implementing modular arithmetic using OpenCL
MetadataShow full item record
Problem description: Most public key algorithms are based on modular arithmetic. The simplest, and original, implementation of the protocol uses the multiplicative group of integers modulo p, where p is prime and g is primitive root mod p. This is the way Diffie-Hellman is implemented. RSA is implemented in a similar way c=me mod p*q. For this reason public key crypto RSA is much slower than symmetric key algorithms, like DES and AES. Recently the field of using Graphics Processing Units (GPUs) for general purpose computing has become more widespread. Many computational problems have gained a significant performance increase by using the highly parallel properties of the GPU. Motivation: Implementing public key algorithms using OpenCL allows the implementation to query the system for OpenCL enabled devices(GPU,CPU and other parallel processors) to select the best device in order to run the encrypting/decrypting of data. The same implementation can be run on a variety of different system with different GPUs, CPU as long as at least one device is able to run OpenCL programs/code. Planned contribution: The planned outcome of this project is a fast implementation of public key algorithms able to run in parallel on a variety of parallel devices(GPU,CPU and other parallel processors) that is capable to run OpenCL code/programs.