高并行度的信息加解密算法研究(6)
时间:2017-05-21 15:05 来源:毕业论文 作者:毕业论文 点击:次
4、加轮密钥AddRoundKey():与加密过程完全相同,因为加轮密钥是自逆的。 3.3.2 AES解密算法的伪代码 EqInvCipher( byte in[4*Nb], byte out[4*Nb], word dw[Nb*(Nr+1)] ) begin byte state[4,Nb] ; state = in ; AddRoundKey(state, dw[Nr*Nb, (Nr+1)*Nb-1]) ; for round = Nr-1 step 1 downto 1 InvShiftRows(state) ; // 逆移行 InvSubBytes(state) ; // 逆字节替代 AddRoundKey(state, dw[round*Nb, (round+1)*Nb-1]) ; InvMixColumns(state) ; // 逆混列 end for InvSubBytes(state) ; // 最后一轮不含逆混列 InvShiftRows(state) ; AddRoundKey(state, dw[0, Nb-1]) ; out = state ; // 输出明文分组 end 3.4 AES算法优点 1、设计简单。无论使用硬件或软件方式实现,无论是否使用反馈模式,AES算法都能显示出非常良好的性能。 2、AES算法的密钥安装时间非常短,具有良好的灵敏度。 3、AES算法的内存需求非常低,非常适合在受限制的环境中使用。这点在并行计算中非常重要,因为在并行计算中往往需要同时处理大量文件,内存易出现分配不足的情况而出错。 4、AES算法的操作简单,在大部分平台上都有良好的运行状况,支持并行处理,并可以抵抗时间和空间上的攻击。 5、AES算法在分组和密钥大小上都具有很大的灵活性[11]。 4 AES算法在GPU上的并行实现 4.1 编程环境 4.1.1 硬件环境 处理器:Intel(R)Core (TM)i5-2500K @3.30GHz 内存(RAM):16.0 GB 显卡:NVIDIA Geforce GTS 450 GPU:Tesla C2050 显存:3GB GDDR5 CUDA核心: 448 图 4.1 显卡信息4.1.2 软件环境 系统类型:Windows 7 Ultimate 64位操作系统 (SP 1) CUDA版本:4.0 编程工具:Visual Studio 2010 图 4.2 设备查询结果4.2 数据格式 4.2.1. Files for ozone and meteorological data (only land area) . File name: 00001-16555.txt . Data format: 表 4.1 数据格式 Julian Day Hour Temp RH SWDOWN WS O3_2000 O3_2020 数据文件格式,例如00001.txt 第一列: 1 0 0.29833E+03 0.84708E+02 0.00000E+00 0.00000E+00 0.18685E+02 0.18685E+02 每个文件共记录366天的数据,每天24小时,共16555个文件。 4.2.2. File for phenology and others information. . File name : header.txt 表 4.2 头文件格式 File num Long (deg) Lat (deg) Flowering day Fraction of cultivated area index (注:本实验所有数据均来自中科院土壤所。)4.3设计思路 按照CUDA的编程模型,实现AES并行加密和解密将有更大的灵活性,例如,线程块的文数、线程间数据、存储空间类型的选择的共享等。但基于CUDA的编程方法与传统的CPU编程方法相比较,仍然是一项比较复杂的工作。 (责任编辑:qin) |