Implementation of Encryption Algorithm In Parallel Architecture

Syed Saad Ahmed
4 min readJun 19, 2018

--

Objective

One of the major challenge in cloud computing environment is security of data. So as to guarantee the secure transfer and retrieval of user’s data between the cloud and user, modern techniques of encryption are used. In this project, the establishment of encryption techniques on a separate trusted third party server will be used with the help of GP-GPU. The GP-GPU will be deployed as a trusted third party resource for providing security between the user and the cloud service provider. When the data is shared by the user, or transferred on the cloud, the encryption mechanism encrypts it immediately, so as to divert any side channel attacks that could happen while the data is being transferred to cloud. Once the data reaches the third party encryption server, it will get encrypted though General Purpose — Graphical Processing Unit (GP-GPU) using modern cryptographic algorithm. After that, the transfer of data from the GP-GPU server to the cloud takes place, where the data is placed in encrypted format, thus keeping it safe from any possible harmful attacks.
When the data is needed by the user, it will be fetched from the cloud. The key to get that data decrypted is supplied by a random key policy which is established along with GP-GPU. The purpose of this policy is to generate the keys which shall be used to re-encrypt the data of the user as well as to decrypt it. This key generation policy has access only to the user’s re-encryption key, but it is unable to learn anything or get any information about the cipher-text.

Privacy is one of the critical concerns that restrict the user from the adoption of public cloud. For simple application such as storage of data, encryption is used to protect user’s data. But for big data processing on cloud, there is no satisfying solution for the security of data. One of the base line objective is to build a service for cloud computing, in a nutshell providing “Encryption as a service”. Further the objective is to provide a complete security solution for fast processing of Data between user and cloud service provider. The hardware security solution which this idea will be providing is a trusted hardware module which works as a third party between cloud service provider and user. The main objective will be accomplished using hardware and different advanced cryptographic algorithms like AES.

Work-Flow

In this project, the encryption algorithm will be established along with the trusted third party server which is the GP-GPU as well as at the user end. At the user end a complete web interface will be set up just to make sure that when user uploads his or her data on the cloud, The GP-GPU is chosen over plain CPU or FPGA, because it outperforms the general computational power of CPU by performing those applications using thousands of cores. In the recent years, the researchers have evolved the use and taking advantage
of GP-GPU techniques to increase the safety by boosting the encryption algorithms. For encrypting, large bulk of data, continuously being provided by the user, high computational power is required, which is fulfilled by the GP-GPU.
For the submission of data, the user has access to a web application. This web application will link the user end to the GP-GPU, which is linked through a web service built using RESTful API Architecture. When the user submits the data it will be received at the trusted third party server, on which the GP-GPU
is deployed, AES algorithm takes the files uploaded by the user, and encrypts it. After the data has been processed by the third party server, it is placed and stored on to cloud. At any later stage if the user needs the data to be retrieved, the server will fetch it from the cloud and decrypts it, after which it would be sent to the user who requested for it. However, the key for decrypting that data will be provided by a random key policy which is organized along with GP-GPU. This key generation policy serves the purpose of generation of the keys that are needed for re-encryption of the data, moreover to decrypt it as well.

Parallel Implementation of AES via GP-GPU

The AES algorithm is implemented in parallel using C++ by implementing it in OpenCL framework. OpenCL is the basic need of the kernel code, that GPGPU runs, which we call from our application. The main functions will be present in kernel code, which will consist of multithreading. Those parameters of multithreading can also customized and modified for further optimization. These parameters and kernel function are called upon by our AES program to implement the code in parallel.

--

--

Syed Saad Ahmed
Syed Saad Ahmed

Written by Syed Saad Ahmed

Python, DevOps, Cryptography, Infrastructure Automation. https://thesaadahmed.com/

No responses yet