Font Size: a A A

The Multi-thread Parallel AES Algorithm Based On Opencl

Posted on:2013-09-04Degree:MasterType:Thesis
Country:ChinaCandidate:Y PeiFull Text:PDF
GTID:2248330371983033Subject:Network and information security
Abstract/Summary:PDF Full Text Request
AES(Advanced Encryption Standard) is published by the American Association ofStandards and Technology (NIST) in2001. AES is a symmetric block cipher, which meansthat the key of encryption and decryption is the same. The reason that AES can replace DES isthat AES has a lot of advantage. One of the most important advantage is the high safty.AESCan resist almost all attacks that have been found. AES has a wide range of applications, notonly can guarantee the security of data but also can ensure the data integrity, so,the study ofAES is significant.For AES, the efficiency is a very important assessment indicators, and parallelization isan effective way to improve the speed, an effective way to achieve parallelization ismulti-threaded, In the traditional serial computing devices such as CPU, the cost of threadswitching is relatively high, so in general, it is not to encourage programmers to open a largenumber of threads for an algorithm. Compared width CPU, GPU has a lot of uniquecharacteristics, these characteristics determine that GPU’s computational model is based on aparallel way. In parallel computing devices such as GPU, thread switching is veryinexpensive, these devices also use thread switching to hide memory access latency,compared with CPU, generally parallel device is not to encourage the equipment running theprogram with very few threads. These features of GPU show that it has a good parallelcomputing ability.OpenCL (Open Computing Language) is an open royalty-free standard for generalpurpose parallel programming across CPUs, GPUs and other processors, giving softwaredevelopers portable and efficient access to the power of these heterogeneous processingplatforms.OpenCL supports a wide range of applications, ranging from embedded and consumersoftware to HPC solutions, through a low-level, high-performance, portable abstraction. Bycreating an efficient, close-to-the-metal programming interface, OpenCL will form thefoundation layer of a parallel computing ecosystem of platform-independent tools,middleware and applications. OpenCL is particularly suited to play an increasingly significantrole in emerging interactive graphics applications that combine general parallel computealgorithms with graphics rendering pipelines. OpenCL consists of an API for coordinatingparallel computation across heterogeneous processors; and a cross-platform programminglanguage with a well specified computation environment.OpenCL provides the interface of parallel computing device control, and OpenCL is class C programming language that can control the behavior of computing unit, users can takeadvantage of OpenCL interface developed a high degree parallelization program that can runon the GPU or other processing equipment.In this paper, I write a kernel program for AES in accordance with the OpenCLspecification that can run on the GPU.The OpenCL API running in the host side managementthis kernel. Finally, on experimental results show that, when the input data is large-scale, theAES kernel running on GPU is much faster than serial program running on CPU.Finally, Ioptimize this kernel. Making the speed increased two times.
Keywords/Search Tags:AES, Parallel, OpenCL, GPU
PDF Full Text Request
Related items