基于Verilog的AES加密算法的实现毕业论文 联系客服

发布时间 : 星期六 文章基于Verilog的AES加密算法的实现毕业论文更新完毕开始阅读8096294ba66e58fafab069dc5022aaea998f4192

东南大学本科生毕业设计(论文)

为了使加密和解密算法在结构上更加接近,最后一轮的线性混合层与前面各轮的线性混合层不同。可以证明这种设计不以任何方式提高或降低该密码的安全性。

2.2.2 字节运算(位运算)

有限域中的元素可以才用不同方式描述,在这里我们采用特征多项式描述。一个字节

a7a6a5a4a3a2a1a0可以看作是一个系数属于{0,1}的多项式:

a7x7+a6x6+a5x5+a4x4+a3x3+a2x2+a1x1?a0。根据取值的不同,共有256个字节和256个多项

式一一对应。例如某字节为16进制数57H(二进制数表示为01010111),其对应的多项式为

x6?x4?x2?x1?1。

定义两个字节的和为这两个字节逐位异或所得到的值。例如,0x57?0x83?0xd4,即“01010111”+“10000011”=“11010100”。

定义两个字节的乘积为他们所对应的多项式的乘积,再与一个8阶的不可约的二进制多项式m(x)相模。不可约的多项式是在GF(2)上除了1和自身外,不存在其他因子,其中

m(x)= x?x?x?x?1 。例如,0x57?0x83?0xc1,即

(x?x?x?x?1)(x?x?1) (2-18)

= x?x?x?x?x?x?x?x?x?x?x?x?x?x?1 = x?x?x?x?x?x?x?x?x?1

= (x?x?x?x?x?x?x?x?x?1)mod(x?x?x?x?1)

=x?x?1 (2-19)

2.2.3 四字节运算

和上述定义类似,一个四字节字{ a3a2a1a0}( ai为一个字节)和一个次数小于4的多项式

76131198536428431311985364213119877532642642178438a3x3?a2x2?a1x?a0对应。

定义两个字的加法为对应多项式相应系数之和,即

a(x)= a3x3?a2x2?a1x?a0, b(x)?b3x3?b2x2?b1x?b0 (2-20)

a(x)?b(x)?(a3?b3)x3?(a2?b2)x2?(a1?b1)x?(a0?b0) (2-21)

定义两个字的乘法为对应的两个多项式相乘再模d(x)= x?1,则

4 9

东南大学本科生毕业设计(论文)

a(x)?b(x)modd(x)?c(x)?c3x3?c2x2?c1x?c0 (2-22) c0?(a0?b0)?(a3?b1)?(a2?b2)?(a1?b3) (2-23) c1?(a1?b0)?(a0?b1)?(a3?b2)?(a2?b3) (2-24) c2?(a2?b0)?(a1?b1)?(a0?b2)?(a3?b3) (2-25) c3?(a3?b0)?(a2?b1)?(a1?b2)?(a0?b3) (2-26)

用矩阵表示为,

(2-27)

2.3 加密算法的四种主要工作模式

一种加密算法模式通常由基本加密算法、某种可选的反馈机制以及一些算术或逻辑运算组合而成,它构成了安全性算法的基础。模式中所包含的运算是简单易行的,因为算法的安全性依赖于基本加密算法,而并不依赖于算法模式。选择何种算法模式不会对算法所提供的安全性造成影响。

在信息安全领域中存在着四种最重要的加密算法模式,它们分别被称为电子编码本模式(Electronic CodeBook,ECB)、密码分组链接模式(Cipher BlockChaining,CBC)、密码反馈模式(Cipher Feedback,CFB)和输出反馈模式(Output Feedback,OFB)。前两种模式工作于分组密码之上,后两种模式是将分组密码视为流密码进行运算的算法模式。下面我将重点介绍本论文采用的ECB模式,并顺带简介其它模式。 (1) ECB模式(电子密码本)

电子编码本模式是最简单的一种算法模式。在这种模式下,待加密的明文被划分为等长的分组(Block),常见的分组长度为64比特或128比特,对每一个这样的分组使用相同的密钥进行独立的加密(见图2-1)。

10

东南大学本科生毕业设计(论文)

明文分组1明文分组2密钥加密密钥加密? ?密钥加密第一步密文分组1第二步密文分组2第n步图2-1 电子编码本模式的加密过程密文分组n明文分组3

信息接收者在接收到密文后,以同样的长度对密文进行分组,再使用与加密过程中相同的密钥进行解密,即可从密文中恢复出明文。在ECB模式中,内容相同的明文分组永远被加密为内容相同的密文分组,反之亦然,所以从理论上可以构造一个由明文分组及其对应密文分组构成的电子编码本(实质上是一个由二元组(明文分组、密文分组)构成的集合),这也是这种模式名字的由来。假设分组长度为128比特,那么电子编码本中最多可包含2128项,这个数字对于计算和存储来说都是一个很大的数目。还需指明的一点就是,每一个不同的密钥都对应着一个不同的电子编码本。

ECB模式的优点是易于实现,每一个明文分组可被独立地乱序加密,不必按照原文顺序进行。但由于对所有的明文分组使用相同的密钥进行加密,相同的明文分组被加密为相同的密文分组,这就为攻击者提供了蛛丝马迹特别在明文较长,分组数目较多,同一分组重复出现概率较高的情况下尤为明显。所以ECB模式只适用于加密分组少、分组重复出现概率低的短明文。 (2) CBC模式(密码分组链接)

CBC模式保证了即使在明文中同一分组多次重复出现,这些相同的明文分组也将被加密为各不相同的密文分组,从而克服ECB模式中固定分组映射和分组重复所带来的隐患。为了达到这一目标,在CBC模式中引入了一种被称为反馈(Feedback)的安全性增强机制:前一个明文分组的加密结果被反馈到(链接)当前分组的加密过程中,换句话说,就是每一个分组的加密结果都被用来调整和修正对下一个分组的加密。每个密文分组不仅仅依赖于产生它的明文分组,还依赖于它前面的所有明文分组。

在CBC模式中,一个明文分组被加密后,其结果被存储在反馈寄存器中,在下一个明文分组被加密之前,将反馈寄存器中的内容与待加密的明文分组进行异或运算,运算的结果作为下一次加密的输入,其结果又被存储在反馈寄存器中,再与下一个明文分组进行异或运算,依此类推,直至整个明文加密结束。解密时,一个密文分组被解密,该密文分组被存储在反馈寄存器中,在下一个密文分组被解密后,将解密结果与反馈寄存器中的内容进行异或运算,接着下一个密文分组又被存储在反馈寄存器中,依此类推,直至整个密文解密结束。

CBC模式可以保证属于同一明文的、内容相同的分组被加密为各不相同的密文分组,但是两个内容部分或全部相同的明文仍有可能被加密为相同的密文。为了避免发生此种情况,我们在对

11

东南大学本科生毕业设计(论文)

第一个明文分组进行加密时引入一个被称为初始化向量(Initialization Vector,IV)的随机数据。初始化向量本身并没有任何特殊含义,它的作用就是使每一个明文独一化。由于初始化向量是一个随机量,所以在对两个明文加密过程中使用了同一初始化向量的概率是很小的。在对第一个明文分组加密之前,将初始化向量与第一个明文分组进行异或运算,对运算结果进行加密,得到第一个密文分组。在对第一个密文分组进行解密之后,将解密结果与初始化向量进行异或运算,运算结果即为第一个明文分组(见图2)。其余步骤与前述相同。在使用初始化向量后,完全相同的明文将被加密为不同的密文。初始化向量本身并不需要保密,它可以明文形式与密文一起发送和接收。

(3) CFB模式(密码反馈)

并不是所有的应用程序都是工作在数据分组之上的,在面向字符流等的应用场合中同样存在着安全需求。在这些场合中我们必需使用流密码,CFB模式即满足了这种需要。在CFB模式下明文可以对比分组小得多的单元进行加密,假设明文分组长度为64比特,加密单元长度为8比特。CFB模式下的分组算法对输入的明文分组队列进行加密。首先,该队列就像在CBC模式下一样用一个初始化向量进行队首填充,然后对队列进行加密,加密后最左端的8比特与明文最初8比特进行异或运算,生成密文的最初8比特,并传送出去。这8比特被移至队列的最右端,然后其它位向左移动8比特,依此类推。解密过程与加密过程相反。 (4) OFB模式(输出反馈)

OFB模式与CFB模式极为相似,它们之间唯一的不同之处就是,在CFB模式下密文被反馈至加密过程的下一步,而在OFB模式中对初始化向量的加密被反馈至加密过程的下一步。除此之外,所有适用于CFB模式的细节皆可应用于OFB模式,所以我们不再对OFB进行赘述。

2.4 加密算法原理描述

对称密码算法根据对明文消息加密方式的不同可分为两大类,即分组密码和流密码。分组密码将消息分为固定长度的分组,输出的密文分组通常与输入的明文分组长度相同。AES算法属于分组密码算法,它的输入分组、输出分组以及加/解密过程中的中间分组都是128

比特。密钥的长度K为128,192或256比特。用Nk=4,6,8代表密钥串的字数(1字=32比特),在本文编制的程序中由用户选定。用Nr表示对一个数据分组加密的轮数(加密轮数与密钥长度的关系见表2-1)。每一轮都需要一个和输入分组具有同样长度(128比特)的扩展密钥Ke的参与。由于外部输入的加密密钥K长度有限,所以在AES中要用一个密钥扩展程序(Key Expansion)把外部密钥K扩展成更长的比特串,以生成各轮的加密密钥。

表2-1 轮数和密钥长度关系表 表2-2 字节装入矩阵

12