◆高家奇 李斌勇 廖怀凯 齐佳昕 杨恒麟
高级加密AES算法研究及性能分析
◆高家奇 李斌勇 廖怀凯 齐佳昕 杨恒麟
(成都信息工程大学网络空间安全学院 四川 610225)
由于传统DES加密算法加密强度低、易破解的问题日益突出,采用安全性更为可靠的加密算法无疑是目前应用的热点。本文围绕新一代高级加密标准AES,从其算法特征出发,分析了AES算法的输入输出形式、明文初始化及算法流程,并根据其算法流程,对其算法效率和安全性进行了剖析。本文研究为读者熟悉当前加密应用问题,提供了一定参考。
高级加密;AES;轮数;性能分析
随着计算效率和水平的不断提升,信息安全所面临的隐患日益突出。例如曾经流行的一二重DES加密算法已经开始被预测会被暴力破解,并且三重DES实现起来也并不高效。随着加解密技术的逐步发展,迫切需要一个新的加密算法来替换DES。后来,由美国ANSI开始发起征集AES(高级加密标准)算法的活动,目的是为了确定一个对全世界征集非保密的,可以公开细节的,全球免费的对称密码算法,并且保证在至少15年之内是安全的。经过层层筛选最终决定在满足要求的15个AES中采用比利时的Joan Daemen和Vincent Rijmen设计的Rijndael算法成为新的AES算法,就此成为新一代数据加密的标准。
AES是一种分组密码算法,相对于其他传统加密算法,AES在扩散性、混淆性和数据加/解密效率、安全性等方面具有较为明显的优势。目前已经成为广泛应用的高级加密规范,尤其是在数据信息的传输加密方面,已经逐步取代了传统DES加密算法。
AES密码与分组密码Rijndael基本上完全一致,分组大小和秘钥大小都可以分为128,192或256位。但是AES的标准只要求128位,所以只有128位的Rijndael才称为AES算法。先将明文拆分为128bit的小块,结尾不足处用0补齐。
图1 AES算法输入输出形式
AES加密中随着密钥长度的不同,加密的轮数(次数)也随之不同,这种设计是根据NIST的要求来设计的,具体的密钥长度和轮数n关系,如表1所示。
表1 密钥长度与轮数关系
首先对初始的128明文进行分块,以8bit为基本单位分成16块,然后按照从上到下从左到右的顺序填写到一个4×4的矩阵之中,并且接下来的操作中都是以矩阵中每个元素来进行变化和运算,这个矩阵成为State状态阵。可见,AES算法归根结底是对矩阵的有序变换和运算,如图2所示,其中X代表8bit。
图2 明文初始化示意图
AES算法实现流程主要分为轮密钥加,字节代替,行移位,列混合四个部分,并将每个部分按照如图3所示的流程进行。
图3 AES算法实现流程
与DES不同,AES就是专门为高效性设计的,通过计算机最擅长的异或运算,利用编程软件的特性,达到耗费资源少、处理效率高的目标。具体可以从算法内部进行分析。
列混合中虽然运算较为复杂,但是因为左乘矩阵固定且内部元素相对较少,可以通过移位的方式进行运算,大大降低了CPU的功耗。
然而上述每一步虽然复杂度都不高,但是当把每一步加起来时,还是显得较为低效。于是Rijndael提出一个简洁的方法,上述多处用到查表且内容固定,因此就将所有轮函数需要查询的表,都融合到一个表进行查询,这样虽然加大了每个表的项数,但是会大大减少每一步都需要查不同的表所需要的时间,1.2GHz的Intel处理器可以实现400Mb/s的吞吐率在一个67位2GHz的CPU中理论值达到1.6Gb/s的吞吐率。而DES,通常在32位CPU上加密一个分组大概需要240个周期,如果在一个2GHz的CPU上,这个周期可以换算成533MB/s的吞吐量,相比之下效率大大提高。
如表2所示为不同明文长度所对应的加密时间和比率耗时关系。实际情况是,在抵抗暴力破解方面,就目前最主流的破解方式来说,AES目前为止几乎是牢不可破。按照目前市场主流的CPU的计算能力来计算,也大概需要225年,这样的理论值,使得该算法实现了时间的不可达性。
表2 明文长度与加密耗时关系表
在时间优越性中,破解者可以精确地测量加密的时间,来大致推测出密钥的长度,从而通过对比来进一步获取一些密钥的信息,针对该问题可通过如图4所示的加密所耗时间关系图进行表示。
由此可见,加密时间随着明文长度增长而增长,但是整体体现出线性关系。随着明文长度急剧增加,每个字节耗时几乎相同,时间优越性由此体现,而攻击者通过这些细小的差别,几乎是得不到任何信息。
图4 加密时间关系图
随着科技的进步和时代的发展,许多科学家尝试去破解AES,但是都没有明显的突破,这表明AES是经得起考验的,同时AES的易于PC软件实现,体积小,耗能少,高保密性对于无线通信和Internet有着广阔的市场前景,同时对于这种基于数学运算困难的方式,也给人们带来了新的思路和方法去研究新一代的加密方法。
AES加密思想巧妙地将数学中一些运算结合在一起,为安全领域作出了重要贡献。不难预见,这种加密技术在手机、智能卡等硬件设备上将具有更为广泛的应用发展空间。
[1]杨静.一种AES算法加密传输系统的设计与实现[J].电子设计工程,2019,27(03):123-126.
[2]王方鑫.基于AES算法的研究[J].民营科技,2018(12):189.
[3]吴镜聪.基于AES算法的功耗分析攻击防御方法研究[D].华南理工大学,2018.
[4]何丰,王耀灯.AES密钥扩展算法的研究[J].微电子学与计算机,2017,34(10):68-71.
[5]张伟,高俊雄,王耘波,武文斌.一种优化的AES算法及其FPGA实现[J].计算机与数字工程,2017,45(03):502-505.
国家自然科学青年基金项目(71701026),四川省科技计划项目(2018GZ0307),四川省教育厅重点项目(17ZA0069)。