整体思路是把待处理的大量数据划分为尺寸相同的多个小数据块,然后在GPU上使用的AES算法对各个小数据块进行并行的运算,运算完成后把每个小数据块的值按顺序保存在一起,这样就可以使用大量的线程来并行地对每个小数据块进行运算[12]。
AES算法并行实现的详细步骤为:
1、首先在主机端把所有文件顺序读入一个动态分配的数组中,方便向设备端传送数据。详见4.5.2节。
2、从键盘读入一个128位密钥,将其扩展为AES 10轮加密所需的11个四字节字的扩展密钥。详见4.5.3节。
3、调用内核函数,将数据传入设备端进行计算。调用形式如下[13]:
testKernel<<<  dim3 grid, dim3 threads >>>(char* d_odata , char* d_AES , char* d_AES_ES , size_t  width)
参数:
grid-栅格数
threads-线程数
d_odata-输出结果缓冲区指针
d_AES-存放密文的数组指针
d_AES_ES-存放扩展密钥的数组指针
width-线程块宽度 (size_t width = blockx * threadx)
4、内核加密完成后,由主机端从存放结果的缓冲区读出结果,并写入文件中。
4.4  程序流程图
4.4.1 加密部分
图 4.3 加密部分程序流程图
4.4.2 解密部分
上一篇:C#连锁酒店入住管理系统开发+文献综述
下一篇:ASP面向高校学生的驴友网站的设计与实现

高职院校公共机房的管理维护【2471字】

高级RFID阅读器應用對处理器的要求【1354字】

试析高职院校计算机专业...

论高职计算机應用专业課...

无跳线主板BIOS高级设置【706字】

提高实时操作系统的实时...

浅谈高职院校计算机网络实践教學【2060字】

承德市事业单位档案管理...

志愿者活动的调查问卷表

C#学校科研管理系统的设计

医院财务风险因素分析及管理措施【2367字】

中国学术生态细节考察《...

10万元能开儿童乐园吗,我...

AT89C52单片机的超声波测距...

公寓空调设计任务书

国内外图像分割技术研究现状

神经外科重症监护病房患...