曾小丽
(广东互维科技有限公司 广东广州 510663)
资源共享的并行AES加密/解密算法及实现研究
曾小丽
(广东互维科技有限公司 广东广州 510663)
为了能有效的对高级加密标准(AES)进行改善,我们可以通过资源共享以及并行来实现AES的加密以及解密,并且,我们对AES算法的不同变换、密钥扩展特点性质等进行分析,然后选择合理的置换及变换方式,提高密钥的有效扩展方案,仅为帮助资源共享的并行AES加密/解密算法实现。
资源共享;加密/解密;高级加密标准;并行
高级加密标准简称AES,它是由美国国家标准与技术研究院在2001年发布,然后在2002年5月份正式成为标准。AES是当前最主流的对称密钥的加密算法之一。安全系统利用软件加密解密的工作时,密钥的明文会存在的计算机中,但是利用硬件加密解密安全系统则不会出现明文的流动,实现了安全系统的保密性,并且,硬件的运行速度快且可靠性非常高。
1.1 AES算法的基本变换方法
AES的加密解密主要是通过循环操作一定轮数的明文来实现的。通常分组的长度为16字节,也就是128位。本文分析研究的为10个循环轮数,128位的密钥算法。AES加密解密算法的基本变换的方法主要是以下的四种:①字节置换变换;这种字节替代变换的方法主要是利用非线性查找表来完成字节替代来实现的,每一个字节都可以表示为地址地址利用替代表来完成查表替换的工作,每个字节都能替换成对应的字节。②行移位变换;在进行行移位变换的过程中,我们可以将字节构成的矩阵进行循环移位,循环移位包括矩阵中每一行的元素,并且不同行位在移位是位移的量也是不同的。③列混合变换;列混合变换主要是将混合矩阵中的每个元素进行充分的混合,这种混主要是在有限域的情况下通过线性转换来对矩阵中的每个元素进行混合,进而实现最佳线性分支数。④轮密钥变换;这种变换主要是为了获得每一轮需要的子密钥,在矩阵中所有的元素都有其向对应的子密钥来完成运算。
1.2 AES加密/解密的算法
加密算法是从第0轮的变换开始的,明文以及种子密钥都是通过循环密钥来添加的,然后其结果为第1轮变换的输入,然后依次进行输入,将变换过程循环进行10轮,第10轮输出密文。并且第10轮不需要完成列字节的混合变换过程。
等效解密的过程与加密的过程相类似。需要注意的是,等效解密的取逆过程、等效解密的轮密钥等都与加密过程不相同。并且,等效解密在进行第0轮以及第10轮时的轮密钥与加密过程第10轮以及第0轮使用的轮密钥分别相同,中间解密轮换过程中使用的轮密钥分别与加密过程逆序后的轮密钥相同。等效解密流程示意图中的第0轮为种子密钥。“*”表示的是逆向列的字节混合变换。
2.1 字节置换加密/解密的算法
AES加密/解密算法中消耗资源最大并且影响时延最大的主要因素是字节置换以及列字节的混合变换。我们同仿射变换公式以及逆仿射变换公式可以构造出S盒查找表,进而完成字节置换的过程,该置换的速度虽然比较快,但是消耗的资源比较大,并且需要逆向的S盒来解密。但是,有限域GF(28)不适宜利用硬件来实现,我们可以在复合域中来进行字节置换的过程,并且该过程能有效的节约硬件资源。正向字节在置换的过程中,将输入字节从GF(28)映射到GF(42),并且进行乘法逆的过程,然后反映射到GF(28),最后在GF(2)GF仿射变换。其中,Affine以及InvAffine代表的是有限域GF(28)放射变换以及逆放射变换;Map以及InvMap代表的是映射以及反映射。
2.2 AES算法加密/解密算法并行实现
AES加密/等效解密轮的变化结构如图1所示。
如图1中所示,S表示的为正向/逆向字节置换结构,MC/IMC表示的为正向/逆向列字节混合变换的结构,key表示的为加密/等效解密循环密钥扩展结构中输出轮密钥kout,enc以及sel的是能,并且密钥扩展与加密/等效解密循环密钥扩展结构相同,每轮的输入din、输出dout代表的为下一轮的din输出,在循环11轮(其中包括第0轮),输出也就是密文或是明文。
图1 加密/等效解密轮变换结构图
2.3 实验算法以及比较
AES的加密/解密算法可以通过FPGA来实现,进而实现资源共享的并行,我们在实验时的描述可以采用VerilogHDL语言门级来进行,通过层间的模块结构来进行计算。Verilog门级的描述能力相当于其他的HDL来说更加出色,控制影响的行为能力特别强,几乎能够直接控制,这也资源的控制也就更加方便。算法中我们先对小单元进行门级描述,将其定位为子模块,然后在更大的模块中调用子模块,通过各个变换描述来实现相互连接并且具有层次的子模块,最后在将所有的变换模块构成整个的系统。并且,在实验中我们也能够发现,FPGA实现的算法能够完成AES加密/解密的算法,并且资源消耗以及吞吐率也能实现较好的平衡。
本文对AES算法中的字节置换进行了分析,并且通过复合域来实现字节置换的变换,通过结构的简化来完成列字节的混合变换,这样就有效的解决了资源的消耗以及变换时延,进而通过资源共享的并行来完成AES加密/解密的算法。这种算法的资源消耗以及资源吞吐率能获得较好的平衡,具有一定的实用价值。
[1]谭永栓,戴选民.资源共享的并行AES加密/解密算法及其实现[J].计算机仿真,2008,25(9).
[2]郭艳珍,韩文报,赵龙,刘佳潇.AES列混合变换[J].解放军理工大学学报(自然科学版),2009,10(3).
TP309
A
1004-7344(2016)03-0276-01
2016-1-11
曾小丽(1982-),女,汉族,广东广州人,注册会计师,本科,研究方向为大数据数据挖掘与萃取算法设计、信息安全等。