AES 加解密算法及其安全性分析
2022-03-02王亚涛
◆王亚涛
(福建省漳州台商投资区 福建 363107)
加密算法是能够有效保障网络安全的一种技术,计算机网络的出现和发展,为各个行业和领域提供一种新的发展途径。将加密算法应用到计算机网络的运行当中,能够有效保障各种信息的传输安全。AES 算法是能够保障网络安全的一种技术,在当前社会对于网络安全的重视程度不断提高的背景下,对网络加解密算法AES 进行分析,能够为保障计算机网络的运行安全提供借鉴的经验。
1 AES 算法
网络信息技术的发展,改变了许多行业和领域的发展方式,各个行业对于计算机网络的依赖性也在逐渐增强。从当前我国计算机网络的运行和发展状况来看,许多网络应用系统还处于不设防的状态。在这种情况下,信息泄漏的风险也比较高。为了能够保障网络的安全运行,需要对其采取网络安全技术。而由于网络安全技术的应用是保障网络的运行安全,因而安全技术只能够依靠我国自主进行研发。在计算机网络运行数据和信息数量逐渐增多、规模逐渐扩展的背景下,原有的DES 算法已经很难满足维护网络信息安全的需要[1]。AES 算法是在DES 算法基础上出现并发展起来的,是一种高级加密的标准算法。该算法能够应用128、192 以及256 位的密钥,并通过128 位、16 字节来进行分组加密和解密数据。在这种算法的应用过程中,对称密钥的密码需要应用相同的密钥加密以及解密数据才能够实现信息之间的传递。再加上该算法本身在加密过程中体现出来的复杂性特点,能够有效保障网络信息的安全,因而在当前越来越重视网络信息安全的背景下,AES 算法具有广阔的发展前景[2]。
具体来说,AES 算法在实际应用中主要会涉及到有限域、状态矩阵和密钥矩阵、扩展密钥等概念。在实际应用AES 算法的过程中,在有限域的条件范围之内,将需要被加密的数据以及密钥数据划分成维数为4×4、4×6 或4×8 的矩阵,被加密数据组成的矩阵是状态矩阵,而由密钥数据组成的矩阵则是密钥矩阵[3]。在形成矩阵之后,应用不同的密钥对数据进行多轮次的加密,这些用于加密的所有密钥集合被称为扩展密钥。
2 网络加解密算法AES 的具体分析
与以往应用的DES 算法相比,AES 算法更能够符合当前社会的发展需求。AES 算法能够通过复杂的加密过程,保障计算机网络的安全运行。通过前面的分析可以发现,AES 算法所具有的应用优势,使得其在未来的社会中有着广阔的发展前景。在对网络加解密算法AES 进行分析时,主要可以从以下几个方面来入手:
2.1 加密过程
AES 算法之所以能够被应用到当前的计算机网络运行当中,最主要的原因就是这种算法本身具有良好的适应性,且无需占据较大的储存空间,密钥的灵活性也比较强,能够满足对于数据信息加密和传输的多种要求[4]。而AES 算法之所以能够体现出这些优势,最主要的原因就是AES 算法应用的分组解密算法。
分组解密算法具体包括加密和解密两个基本的部分,在应用该算法的过程中,能够通过圈变换的函数来实现对于信息的密码设置。圈变换的函数主要会受到非线性层、扩散层以及密钥调度等元素的影响,在应用中需要借助非线性替代以及线性混合函数来满足分组解密的要求[5]。从本质上来说,分组加密算法就是利用多种简单的函数变化,借助密钥调度来引入密钥,从而更好地满足对于算法加密效果的要求。在应用AES 算法进行加密时,首先需要明确AES 算法的主要结构组成。AES 算法是建立在替代/置换网络结构基础上的,由初始圈密钥、Nr-1 圈变换以及结尾圈变换三个主要的部分组成。
举例来说,在128 位密钥的加密过程中,在保证整个加密的过程都在明文分组状态的前提下,首先需要输入处于明文状态下的字节元素。通过前面的分析可以得知,状态矩阵以及密钥矩阵都是由以行数的固定值为4 的多维数矩阵呈现出来的,因而在整个加密过程中,明文分组的状态也可以应用矩阵阵列图来表示。用Nk 来表示密钥数据矩阵的列数,用Nb 来表示被加密数据矩阵的列数。由于数据在应用AES 算法进行加密的过程中,需要进行Nr+1 轮的加密环节,在行数固定的前提下,需要依据Nk 和Nb 的取值不同,依据AES 算法的对照表,列举出在不同字节元素情况下的矩阵阵列图。而这一图中呈现的多种密码密钥,就是能够对明文分组进行加密的主要依据。在得到矩阵阵列图之后,将明文分组按照矩阵阵列图中列出的数据顺序映射到状态列阵当中,将密码密钥也同样按照矩阵阵列图中呈现的顺序映射到密码密钥阵列当中。而在完成数据信息的加密过程之后,依据相同的顺序进行输出数据的分组,从而得到多轮次加密的数据。
2.2 密钥扩展
结合当前AES 算法的实际应用情况来看,大部分情况下,AES算法在应用中体现出来的加密密钥长度都以4Nb(Nr+1)字节为主。在对数据进行加密的过程中,这些加密密钥都需要依据4Nk 字节密码密钥的扩展算法才能够得到有效的实现。而通过前面的分析可以发现,扩展密钥就是对数据进行Nr+1 轮次的扩展来满足数据信息的加密过程的。在密钥扩展的过程中,如果将密码密钥的每一个列称为一个字,在Nr 个字的加密情况下,往往能够得到Nb(Nk+1)个字的加密密钥。结合AES 算法中扩展算法的实际应用情况,扩展算法主要可以被分为Nk≤6 或Nk>6 两种情况。举例来说,在Nk≤6 的应用情况下,借助函数SubBytes(w)来进行输出字节的移位。当加密密钥的前Nk 个字都是密码密钥的情况下,需要对得到的密码密钥进行一系列的变换,才能够更好地满足密钥扩展算法的应用需求。在进行密钥扩展的过程中,为了能够保证AES 加密算法应用的准确性,需要在进行函数的编程过程中仔细认真对待,减少在编程和应用算法中出错的概率,保障AES 算法的实际应用效果。
数字循环移位运算是密钥扩展功能实现的主要途径。在进行密钥扩展的过程中,还可以借助Rotword(w)函数来实现对于分组数据中数字循环左移一位的运算。在这个过程中,需要将数组中的左端第一个数字移动到数组的末端,但在应用这种算法进行运算的过程中,由于数组中原有的数字已经合并成一个数字,因而需要对数字进行循环移位运算。这样不仅能够对原有的数据和密钥运算过程进行有效的简化,还能够通过运算过程和步骤的简化来提高算法的运算效率。
2.3 解密过程
在应用AES 算法对密钥进行解密的过程中,主要是以被转换的加密算法为基础的,按照加密过程相反的顺序,能够直接形成AES的解密算法。在这种背景下,AES 算法需要借助轮函数才能够实现加密和解密的需求,在应用轮函数的基础上,借助行位移、字节代替、列混合以及加密钥四个计算部件,能够有效实现数据的解密过程。
具体来说,仍以128 位密钥为例,在应用AES 算法进行解密的过程中,首先需要采取行位移的方式,将状态列阵中的各行进行循环移位,而对于处在不同状态下的行来说,具体的循环位移量也存在一定的差异。在进行循环位移的过程中,从第一行开始向右移动C1 个字节,第二行向右移动C2 个字节,以此类推完成整个解密过程。考虑被加密数据矩阵列数对其产生的影响,能够在一定程度上确保位移量选择的准确性。其次,在完成行位移的操作之后,需要进行字节代替来实现对于加密密钥的有效转换。第三,在完成字节代替的操作之后,还需要应用列混合的方式,通过对明文分组状态下矩阵中的每一列进行运算操作,用以满足密钥的解密需求。而在这个过程中,还需要确保列混合变换的可逆性,以此来实现对于加密和解密过程之间的有效转换。最后,通过加密钥的逆变换来最终实现对于数据密钥的解密过程。
2.4 AES 实现过程
(1)加密处理
在明确AES 算法的实际应用原理之后,结合以往应用AES 算法的实际经验,首先需要从加密处理的角度入手。结合AES 算法应用的实际情况来看,这种算法主要是依据置换和代替原理来对数据进行重新排列和单元数据替换的。Rijndael 是AES 算法应用的最基本的密码算法,这种算法应用的就是置换的组合架构。在应用AES 算法对数据信息加密处理的过程中,借助分组加密数据的迭代加密形成一个循环结构,并在该结构的运行中完成多次重复置换和替换输入数据的操作。
具体来说,AES 加密处理的实现过程,具体包括SubBytes、ShiftRows、MixColumns、AddRoundKey 四个步骤。SubBytes 主要是指借助非线性的替换函数,以查找表为依据将其替换成相对应的字节;ShiftRows 主要是指对矩阵阵列图中的每个横向进行循环移位的过程;MixColumns 主要是指采用线性转换的方式来将矩阵中每行内的四个字节进行混合的过程,以便能够为数据的加密提供更加便利的条件。在实际应用AES 算法进行加密处理的过程中,有时可以省略这一步骤;AddRoundKey 则主要是指对矩阵中的字节和子密钥进行XOR 运算。在实际进行加密处理的过程中,MixColumns 和AddRoundKey之间是可以相互取代的关系。
(2)AES 密钥调度
从AES 密钥调度的角度来看,AES 算法在实际应用中具体包括密钥扩展以及轮密钥选取两个具体的部分,在将原始的密码密钥扩展成一个扩展密钥之后,经过多轮次的计算,将计算得到的结果呈现在轮密钥调度表中,然后按照扩展密钥的Nb 个4 字节的顺序,将轮密钥从扩展密钥中取出。结合当前AES 算法的实际应用情况来看,10轮循环能够满足大部分数据应用加密算法的要求,是当前能够有效保障网络运行安全的最为普遍的一种算法。
3 AES 的安全性分析
结合AES 算法的加密过程、密钥扩展以及解密过程来看,尽管这种算法在实际应用中仍然能够满足对于数据信息的加密处理和保障信息传输安全的需求,但这种算法仍然存在一定的缺陷和不足。与以往应用的DES 算法相比,尽管AES 的加密算法能够体现出更加安全的性能,但要想更好的保障AES 算法应用的安全性,还需要对AES算法的破解方法进行仔细的研究和分析。结合AES 算法的应用原理和实践经验,在对AES 算法进行破解时,主要可以应用到以下几种方法:
首先,采用最简单的暴力破解的方法,无论是针对128 位的密钥还是256 位的密钥来说,都无法对应用了AES算法的密码进行解密。而在密钥长度越复杂的情况下,应用暴力破解方法实现AES 破解的难度更大,消耗的时间也越来越长。
其次,应用时间选择攻击的方法,是最可能对AES 算法进行破解的方法之一。在应用这种方法对AES 密码进行攻击时,需要应用不同的密钥来对加密例程运行所消耗的时间进行精确的测量。在加密例程编码不完善的情况下,应用这种方法能够让执行时间更依赖于密钥值,进而为推导密钥的相关信息创造良好的条件。而针对这种破解方法,在应用AES 算法的过程中,一方面需要保证加密例程编码的完整性,另一方面也可以采取加入虚指令或将域乘汇总为一个查询表的方式,保证AES 算法的实际应用安全。
第三,采用旁道攻击的方法,是现阶段唯一成功实现AES 破解的方法。在应用这种方法对AES 密码进行破解的过程中,通过攻击实际作用于不安全系统上的加密系统,能够比攻击密码本身获得更加理想的效果。
第四,能量攻击法是一种针对硬件加密方法的破解方法。从当前计算机网络的运行和发展状况来看,由于硬件加密本身具有更高的运行速度以及更强的保密性等特点,因而能够实现对多种数据信息的有效加密。而能量攻击法在实际的应用过程中,主要是借助硬件加密法在运行中消耗能量所产生的电流或电压变化来检测设备运行状态的。从能量耗散以及电磁辐射等角度,借助能量消耗来实现对于密钥的破解,具有成本消耗更低的特点。
第五,基于AES 算法的应用原理,在对该算法进行破解时,还可以从算法本身具有的对称性入手,以逆序碰撞攻击的原理来对AES 算法的应用过程进行分析。结合AES 算法的实际应用情况来看,该破解方法的应用效率较高,但由于最终的破解结果存在较大的不确定性,因而破解AES 算法的实际效果并不明显。
综上所述,网络加解密算法AES 的应用,能够对保障网络的运行安全起到重要的作用。结合当前计算机网络行业发展的情况可以看出,维护网络的运行安全是最为重要的一项工作。从加密过程、密钥扩展、解密过程以及算法的实现过程等方面来看,将AES 算法应用到计算机网络的运行当中,能够对维护计算机网络的运行安全起到重要的作用,能够为当前计算机网络的运行发展创造良好的条件。