高并行度的信息加解密算法研究(6)_毕业论文

毕业论文移动版

毕业论文 > 计算机论文 >

高并行度的信息加解密算法研究(6)


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)