《计算机安全技术》课程报告模板 - 图文 联系客服

发布时间 : 星期二 文章《计算机安全技术》课程报告模板 - 图文更新完毕开始阅读d195648552ea551811a68713

AES加密技术概述与应用领域概括

2.1.2 有限域的加法运算

在有限域中,加法是将表达式中的两个元素的多项式表示式中的对应幂的系数进行相加来完成,这里的加指的是指异或操作,也可以理解为取2的模,比如 1⊕1 =0, 1⊕0 =1, 0 ⊕0 =0。有限域中的加法同样也可以表述为,字节中的对应位相加后再取 2 的模。比如字节

{a7 a6 a5 a4 a3 a2 a1 a0}和字节 {b7 b6 b5 b4 b3 b2 b1 b0}的和为 {c7 c6 c5 c4 c3 c2 c1 c0},

这里 ci = ai + bi (0≤ i ≤7)。那么下面表达式是等价的。 {01010111}⊕{10000011} ={11010100}(二进制表示);

{57}⊕{83} ={d4}(十六进制表示);

2.1.3 有限域的乘法运算

有限域中的乘法,是AES算法所基于的数学理论中的难点,对于大多数非数学专业的人来说是不好理解的,本论文作为一个重点来阐述。 AES 加密算法是建立在有限域 GF(28)上的运算。在多项式表达中,有限域中的乘法,先将两个多项式做相乘运算,然后再将所得结果对模为8的不可约分的多项式进行取模。这里所说不可约分多项式是指它的约数只有自身和1。在AES高级加密标准算法中的不可约分的多项式应为

或者用十六进制表示为{01}{1b}。

12

作者:段文超

AES加密技术概述与应用领域概括

第三章

高级数据加密标准(AES)算法详尽描述

3.1 AES加密算法

AES 算法的输入和输出都是由 128 位二进制数组成的序列,算法的密钥是由 128 位,192 位或 256 位二进制数组成的序列,但是其它可用的序列不受标准的限制。而在 AES加密算法中运算的基本单元是字节,通常需要把输入,输出和密钥都划分成字节矩阵或字节数组。我们通常把作为 AES 加密算法基本单元的二维字节数组上叫做状态矩阵。这里的状态矩阵一共有4行,每行有Nb(Nb=4)个字节,用S表示状态矩阵,每个字节的行下标用r(0≤r<4)表示,列下标用c(0≤c<Nb)表示,这样状态矩阵中的每一个字节就可以用Sr,c表示。在加密和解密开始的时候,我们首先需要将输入矩阵{in0, in1,?, in15}传送到状态矩阵中,如图 3.1 所示,加密和解密整个运算就是在在状态矩阵中完成的,加解密完成后得到的数据又会被传到输出矩阵{out0, out1,?, out15}中。

图3.1输入输出矩阵和状态矩

13

作者:段文超

AES加密技术概述与应用领域概括

加密过程可以用下面程序中的伪码来表示。变换SubBytes( )、ShiftRows( )、MixColumns( )和 AddRoundKey( )将在后面的部分做详细介绍。在下面程序中,数组w[]包含了密钥清单。

14

作者:段文超

AES加密技术概述与应用领域概括

3.1.1字节代换(SubByte)

SubBytes 变换是一个非线性替换,如前所说,AES 算法首先将 128 位明文转化成字节矩阵,前四个字节组成第一列,接下来的 4个字节组成第二列,按此类推,组成一个4×4 的矩阵,如图 3.2 所示。

图3.2算法明文的分组

AES 算法字节替换操作使用的是一个 16×16 的 S 盒,如图 3.3 所示,其中表 2.2为一个官方的 S 盒。明文矩阵中的每一个字节元素都是用来作为输入来确定 S 盒的行列地址:元素字节的前 4 位指定 S 盒的行,而元素字节的后 4 位指定 S 盒的列。将行列所对应的 S 盒中的元素字节用来取代了明文矩阵中相应位置上的字节元素,依次用此方法替换明文中的每一个元素,便可得到经过 SubBytes变换后的矩阵 bi,j(0≤i≤3,0≤i≤3)。

图 3.3 AES的字节替换操作示意图

15

作者:段文超