毕业设计论文AES加密算法.docx
- 文档编号:14438187
- 上传时间:2023-04-23
- 格式:DOCX
- 页数:70
- 大小:1.15MB
毕业设计论文AES加密算法.docx
《毕业设计论文AES加密算法.docx》由会员分享,可在线阅读,更多相关《毕业设计论文AES加密算法.docx(70页珍藏版)》请在冰豆网上搜索。
毕业设计论文AES加密算法
本科毕业设计(论文)
题目:
AES加密算法在用户信息管理模块中的应用
院(系):
计算机科学与工程学院
专业:
xXXXXXXXXXXX
班级:
0906XX
学生:
XXXXX
学号:
0906XXXXX
指导教师:
XX
2013年6月
本科毕业设计(论文)
题目:
AES加密算法在用户信息管理模块中的应用
院(系):
计算机科学与工程学院
专业:
xXXXXXXXXXXX
班级:
0906XX
学生:
XXXXX
学号:
0906XXXXX
指导教师:
XX
2013年6月
XX大学毕业设计(论文)任务书
院(系)计算机学院专业XXXX班XX姓名XX学号XX
1.毕业设计(论文)题目:
AES加密算法在用户信息管理模块中的应用
2.题目背景和意义:
随着internet的发展,对用户信息安全性的要求也越来越高,因此本课题主要运行AES加密算法对用户信息管理模块对用户信息进行加密,以提高用户信息的安全性。
AES作为新一代的分组数据加密标准,以其没有显著的攻击方法、编码易于实现和加、解密速度快等优点,满足了人们不同信息安全等级的需要.随着计算机网络的发展,数据加密的重要性也逐渐提高,AES加密技术得到了迅速的发展和广泛的应用。
3.设计(论文)的主要内容(理工科含技术指标):
(1)使用MFC体系结构实现用户管理模块。
(2)运用C++实现AES加密算法。
(3)在后台对用户信息进行加密,并将其存入数据库中。
(4)加密使用数据项级运用AES加密算法在DBMS外层进行加密。
4.设计的基本要求及进度安排(含起始时间、设计地点):
第(1----2)周:
查阅各类文献,对AES加密算法进行系统的学习。
第(3----6)周:
完成AES加密算法的编码工作,并对其进行测试。
第(7--13)周:
完成用户管理模块,并将AES加入到用户管理模块中。
第(14-16)周:
对整个系统进行测试
第(16--20)周:
写论文,准备答辩。
5.毕业设计(论文)的工作量要求
(1)完成1.5万字左右的论文
(2)外文翻译(与此技术相关)3000字左右
①实验(时数)*或实习(天数):
不低于80课时
②图纸(幅面和张数)*:
③其他要求:
指导教师签名:
年月日
学生签名:
年月日
系(教研室)主任审批:
年月日
AES加密算法在用户信息管理模块中的应用
摘要
随着信息产业在我国国民经济中扮演越来越重要的角色,信息安全越来越受到重视。
信息安全主要是由安全协议和密码算法组成,其中密码算法是信息安全的基础和核心。
所以研究和分析当今流行的密码算法对我国的信息安全有很大的意义。
而分组密码是现代密码体制发展的两个发展方向之一,它具有速度快、易于标准化和便于软硬件实现等特点,因此在计算机通信和信息安全领域中得到了广泛的应用。
本文首先描述了AES算法的数学基础以及从数学的基础上得出的加密算法的描述。
着重介绍了AES加密算法的原理步骤,核心算法主要分为密钥的生成和加密流程循环,其中密钥核心为置换和代替,加密流程循环对State矩阵执行四中不同的操作,在规范中被称为SubBytes(字节替换)、ShiftRows(行移位变换)、MixColumns(列混合变换)和AddRoundKey。
其次使用C++将AES加密和解密算法进行实现。
由于当今社会人们对信息安全非常重视,所以最后将算法加入到用户信息管理模块中,实现具体的应用。
关键词:
信息安全;AES算法;加密;解密;实现;应用
AESEncryptionAlgorithmInTheUserInformationManagementModule
Abstract
WiththeinformationindustrytoplayanincreasinglyimportantroleinChina'snationaleconomy,informationsecurityandmoreattention.Informationsecuritybysecurityprotocolsandcryptographicalgorithms,cryptographicalgorithmsisthefoundationandcoreofinformationsecurity.Therefore,researchandanalysisoftoday'spopularcryptographicalgorithmsontheinformationsecurityofourcountryhasgreatsignificance.Theblockcipherisoneofthetwodevelopmentdirectionsofthedevelopmentofmoderncryptography,ithasafast,easystandardizationandeaseofhardwareandsoftware,hasbeenwidelyusedinthefieldofcomputercommunicationsandinformationsecurity.
ThispaperfirstdescribesthemathematicalbasisoftheAESalgorithmderivedfromthebasisofmathematicaldescriptionoftheencryptionalgorithm.HighlightstheprinciplestepsoftheAESencryptionalgorithm,thecorealgorithmisdividedintokeygenerationandencryptionprocesscycle,thekeycorereplacementandinstead,theencryptionprocesscycleStatematrixtoperformfourdifferentoperationsinthespecificationTheknownasSubBytes(bytesubstitution),ShiftRows(lineshifttransformation),theMixColumns(mixcolumntransformation)andAddRoundKey.Second,weuseC++toimplementtheAESencryptionanddecryptionalgorithm.Today'ssociety,peopleattachgreatimportancetoinformationsecurity,sointheendthealgorithmtotheuserinformationmanagementmodule,thespecificapplication.
KeyWords:
Informationsecurity;AESalgorithm;encryption;decryption;implementation;application
1绪论..........................................................................................................1
附录外文原文及翻译............................................................................39
主要符号表
GF(28)有限域
a-1(x)逆元
mod求模运算符
Nr加密轮数
Nb分组长度的列数
Nk密钥长的列数
⊕异或运算符号
ⓧ多项式乘法
1绪论
1.1前言
近年来,随着Internet的迅猛发展,计算机网络技术正在日益广泛的应用到商业,金融,国防等各个领域,人们对用户信息安全性的要求也越来越高,如何保证数据的安全已经成为了一个重要问题,因此本课题主要运用AES加密算法在用户信息管理模块对用户信息进行加密,以提高用户信息的安全性。
AES作为新一代的分组数据加密标准,以其没有显著的攻击方法、编码易于实现和加、解密速度快等优点,满足了人们不同信息安全等级的需要.随着计算机网络的发展,数据加密的重要性也逐渐提高,AES加密技术得到了迅速的发展和广泛的应用。
1.2密码学简介和我国信息安全现状
密码学的基本思想是对机密信息进行交换,以保护信息在传送过程中不被非法窃取、解读和利用。
密码体制的分类方法有很多,一般是通过加密算法与解密算法所使用的密钥是否相同的原则分为:
对称密钥密码体制和公开密钥密码体制。
后者一般基于一个数学上的实现,适用于开放的使用环境,可以安全方便的实现数字签名和认证,通常用于密钥的分配与传输上,但对数据加、解密的速度较慢。
而前者的安全性基于复杂的非线性变换,由于其加密速度比公钥密码相对较快,因此是目前商业领域比较重要而流行的一种加密体制。
对称密钥密码体制从加密模式上又可分为:
序列密码和分组密码。
序列密码使用密钥短的位串生成长的位串,然后再与明文按位模2相加产生密文,它的安全基于密钥的随机性。
如果密钥是真正的随机数,则这种密码体制在理论上就是不可攻破的,这也可以称为一次一密乱码本体制。
严格的该体制所需的密钥量不存在上限,且很难得到真正意义上的随机数序列。
实际中更多的是采用伪随机数序列。
为了提高安全强度,伪随机序列的周期要足够长,并且序列要有很好的随机性,但这也很难做到,因此除了一些高度保密的环境以外,很少使用。
应用在网络通信环境中的数据加密方法更多的是采用分组加密体制。
分组密码算法通常由加、解密算法和密钥扩展算法两部分组成,密钥扩展算法用于生成m个子密钥。
加密算法由一个密码学上的函数f对数据分组进行一系列变换之后,每次与一个子密钥迭代,总共迭代r次完成一个分组加密。
分组密码已成为PIesc和SSL等相关协议的应用层数据安全保护的主要手段。
我国信息化、网络化建设在技术与装备上对别国的极大依赖性,使信息安全问题尤为突出。
据报道,美国出口中国的计算机设备留有“暗门”,供美国政府随时启动,出口中国的计算机系统安全等级也只有CZ级,为美国国防部规定的
8个级别中倒数第三。
我国的信息网络安全起步较晚,安全防护能力处于发展的初级阶段,与发达国家有较大的差距。
当前,国内许多信息网络应用系统尚处于不设防状态,存在很大的风险性:
有些重要的网络应用系统使用的安全设备都是从国外直接引进的,难以保证安全利用和有效监控。
密码技术特别是加密技术是信息安全技术中的核心技术,国家关键基础设施中不可能引进或采用别人的加密技术,只能自主开发。
目前我国在密码技术的应用水平方面与国外还有一定的差距。
国外的密码技术必将对我们有一定的冲击力,特别是在加入WTO组织后这种冲击力只会有增无减。
因而我们必须自主的开发我们自己的加密解密芯片,从而保证我们信息的安全性。
1.3数据加密标准的发展过程
1.3.1数据加密标准DES
1972年,国家标准局(NBS)拟定了一个旨在保护计算机和通信数据的计划,开发一个单独的标准密码算法,1973年公开征集算法,1974年第二次公开征集,IBM的Lucifer的变形当选,1976年H月宣布成为联邦标准DES,随后投入使用。
不久DES的应用范围迅速扩大到涉及美国以外的公司,甚至某些美国的军事部门也使用了DES。
DES是世界上第一个公认的实用分组密码算法标准。
迄今为止,在针对DES的攻击中最有效的方法还是穷举,遍历密钥空间。
由于计算机硬件的速度越来越快,DES密钥长度太短的缺陷就显露了出来。
最终能在合理的时间内完成对56位密钥的强力攻击。
1987年宣布DES不安全,但由于商业上已广泛使用,且没有合适的方案替代。
进入上世纪九十年代后,另一种由DES衍生出来的算法—三重DES,被广泛使用。
但是它的安全性并不意味着建立在168位的密钥之上,研究表明,可以将其转化为对108位密钥的攻击。
最重要的是,三重DES的加密和解密时间消耗较大,不能很好的适用飞速增长的实时信息加密需求。
2000年,原设计寿命10年左右的DES已使用23年,单重已攻击成功。
1.3.2高级加密标准AES
1997年1月2日,美国国家标准和技术研究所(NIST)宣布启动高级加密标准(AES)的开发研究工作,并于同年9月12日正式发出了征集算法的公告。
NIST的目标是确定一种保护敏感信息的、公开的、免费的并且全球通用的算法作为AES,以弥补DES退出后,数据加密标准留下的空缺。
在征集公告中,NIST对算法作了最低要求:
算法必须是对称密钥体制的分组密码,并且要支持128位的分组长度和128、192、256位的密钥长度。
1998年8月20日,NIST召开了第一次AES候选会议,在会议上宣布了15个AES候选算法,并恳请公众对这15个算法进行评估。
经过一年时间的评估,NIST于1999年8月又召开了第二次候选会议,在这次会议上,NIST宣布从巧个候选算法中选出了5个候选算法参加最后的决赛,并再次恳请公众对这5个候选算法进行评估,并规定评估于2000年5月25日结束。
为了更好的选出一种候选算法作为AES,NslT在评估正式结束前的一个多月又召开了第三次AES候选会议,在这次会议上,对各种评估结果作了详细的分析,为AES算法的确定提供了详尽的材料。
2000年10月2日,NIST宣布采用助Rijndael算法作为AES,此后NIST授权联邦信息处理标准出版社为AES制定了标准草案用以征集公众的评议,随后在公众评议的基础上对草案进行修改,于2001年11月26日发布了正式的197号标准—AES标准,并指出标准生效的具体时间为2002年5月26号,至此经历数年的AES开发研究才大功告成。
1.4AES的研究现状
目前对高级加密标准算法的研究主要集中在三个方面:
设计原理、安全性能分析和统计性能分析。
设计原理方面主要研究算法在设计时所遵循的原则、算法采用的整体结构以及各组成部分的数学基础和性能。
安全性能研究主要集中在分析抵抗现有已知密码攻击方法上,主要包括强力攻击、差分密码分析、线性密码分析、专用攻击和插值攻击。
目前对差分密码分析和线性密码分析研究的比较深入,对专用攻击主要集中在基本攻击原理上,对插值攻击的研究主要集中在寻找算法的代数表示。
统计性能主要是研究算法随机化数据的能力,目前有关助Rijndael算法的统计性能方面的研究还较少,所见统计测试在测试项目的选择和测试数据的构造上也不尽相同,但大多测试都基于NIST统计测试工具包进行。
1.5本文主要研究内容
本论文中用户信息加密的实现采用了美国最新公布的AES加密算法,AES算法被认为是至今为止理论上最为成功的加密算法。
本文主要研究的是AES加密算法及其应用,采用C++语言对算法进行简单的实现,模拟加密及其解密的过程,并在用户信息管理模块中得到应用。
2AES加密算法原理介绍
2.1AES算法的相关数学知识
AES算法中的许多运算是按字节定义的,一个字节为8位。
AES算法中还有一些运算是以4个字节的字定义的,一个4字节的字为32位。
一个字节可以看成是有限域GF(28)中的一个元素。
一个4字节的字可以看成是系数在GF(28)中并且次数小于4的多项式。
2.1.1有限域GF(28)上的运算
有限域GF(28)中的元素可以用许多不同的方式来表示,如多项式表示,二进制表示,十六进制表示等等,但是不同的表示方式对实现的复杂度是有影响的。
AES加密算法选择用多项式表示有限域GF(28)中的元素。
GF(28)中共有256个元素,每个元素都可以用GF
(2)中的元素表示,而且多项式的次幂都小于8。
由b7b6b5b4b3b2b1b0构成的一个字看成多项式
b7x7+b6x6+b5x5+b4x4+b3x3+b2x2+b1x+b0(2.1)
其中bi∈GF
(2),0≤i≤7,因此,GF(28)中的每一个元素都可以看成是一个
字节,例如,一个由01010111组成的字节可表示多项式x6+x4+x2+x+1,也
可以是十六进制的‘57’。
在实际操作过程中,到底采用哪种表示方法,要看具
体的情况。
a.有限域GF(28)中的两个元素相加,输入的元素用多项式表示,其系数是两个元素中的对应系数的模2相加。
显然,有限域GF(28)中的两个元素的加法与两个字节的按位模2加是一致的。
两个字节的按位模2加用+表示。
例如:
{57}+{83}={D4}
01010111
+10000011
11010100
实际上,加法就是最简单的二进制的按位异或的结果,或者也可用多项式概
念:
(x6+x4+x2+x+1)+(x7+x+1)=x7+x6+x4+x2(2.2)
b.有限域GF(28)中两个元素的乘法为模GF
(2)域上的一个8次不可约多项式的多项式乘法,乘法用*表示。
一个多项式是不可约的,就是它除1和其自身之外没有其他的因子。
对于AES,这个不可约多项式为
m(x)=x8+x4+x3+x+1(2.3)
m(x)用二进制表示为0000000100011011(两个字节),用十六进制表示为0x011b。
有限域乘法比较复杂,先把两个输入化为多项式的形式,然后进行乘法运算,合并同类项,当x次幂的系数大于2时,此项消去,剩下次数为1
的式子。
例如:
{57}‧{83}={C1}
由(x6+x4+x2+x+1)*(x7+x+1)
=x13+x11+x9+x8+x6+x5+x4+x3+1
(x13+x11+x9+x8+x6+x5+x4+x3+1)modm(x)
=(x13+x11+x9+x8+x6+x5+x4+x3+1)modm(x8+x4+x3+x+1)
=x7+x6+1
如果a(x)‧b(x)modm(x)=1,则称b(x)是a(x)的逆元。
但是实际计算时用此方法的比较少,因为b(x)很难找到,需要很多次的尝试。
所以经常用欧几里德扩展算法来求输入元素的逆元。
对任何的系数在二元域GF
(2)中并且次数小于8的多项式b(x),利用欧几里德扩展算法可以计算b(x)和c(x),使得
a(x)b(x)+c(x)m(x)=1(2.4)
这就说明b(x)的逆元素为
a(x)-1=b(x)modm(x)(2.5)
其中a(x)为输入元素的多项式表示,b(x)就是输入元素的逆元。
另外,对于任意的a(x),b(x),c(x)∈GF(28),都有
a(x)‧(b(x)+c(x))=a(x)‧b(x)+a(x)‧c(x)(2.6)
由上面的讨论不难看出,在按位模2加法运算+和乘法运算*下,256个可
能字节值的集合构成了有限域GF(28)。
2.1.2系数在有限域GF(28)上的多项式的运算
在AES算法中还要用到有限环GF(28)[x]/(x4+1)中的运算。
该环中的加
法定义为简单的比特位异或,乘法运算相对复杂。
假定有两个系数为GF(28)上的多项式:
a(x)=a3x3+a2x2+a1x+a0和b(x)=b3x3+b2x2+b1x+b0,则显然c(x)=b(x)a(x),乘积定义如下:
c(x)=c6x6+c5x5+c4x4+c3x3+c2x2+c1x+c0(2.7)
其中
c0=a0‧b0(2.8)
c1=a1‧b0⊕a0‧b1(2.9)
c2=a2‧b0⊕a1‧b1⊕a0‧b2(2.10)
c3=a3‧b0⊕a2‧b1⊕a1‧b2⊕a0‧b3(2.11)
c4=a3‧b1⊕a2‧b2⊕a1‧b3(2.12)
c5=a3‧b2⊕a2‧b3(2.13)
c6=a3‧b3(2.14)
可以看出,c(x)不是一个4字节的字。
通过对c(x)模一个4次多项式求余
可以得到一个次数小于4的多项式。
在AES中,这一模多项式为:
M(x)=x4+1。
AES中两个GF(28)上的多项式的乘法定义为模M(x)乘法,这种乘法可以
用
表示。
设d(x)=a(x)
b(x)
可计算为:
d(x)=d3x3+d2x2+d1x+d0,
其中
d3=a3‧b0⊕a2‧b1⊕a1‧b2⊕a0‧b3(2.15)
d2=a2‧b0⊕a1‧b1⊕a0‧b2⊕a3‧b3(2.16)
d1=a1‧b0⊕a0‧b1⊕a3‧b2⊕a2‧b3(2.17)
d0=a0‧b0⊕a3‧b1⊕a2‧b2⊕a1‧b3(2.18)
可以看出,用一个固定的多项式a(x)与多项式b(x)作
运算可以写成矩阵乘法,即
(2.19)
其中矩阵是一个循环矩阵。
由于x4+1不是GF(28)上的不可约多项式,因此多项式a(x)=a3x3+a2x2+a1x+a0,ai∈GF(28)不一定有可逆元素,但是如果gcd(a(x),x4+1)=1,则a(x)在GF(28)[x]/(x4+1)中有可逆元。
那么在AES中选择一个由逆元的固定多项式:
a(x)={03}‧x3+{01}‧x2+{01}‧x+{02}(2.20)
a-1(x)={0b}‧x3+{0d}‧x2+{09}‧x+{0e}(2.21)
a(x)
a-1(x)=a(x)
a-1(x)={01}(2.22)
考虑用多项式x乘b(x),显然
x
b(x)=b2x3+b1x2+b0x+b3
假设c(x)=x
b(x)=c3x3+c2x2+c1x+c0
则矩
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 论文 AES 加密算法