欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载  

    AES加密算法在用户信息管理模块中的应用 毕业设计论文.doc

    • 资源ID:4489048       资源大小:1.82MB        全文页数:67页
    • 资源格式: DOC        下载积分:8
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要8
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    AES加密算法在用户信息管理模块中的应用 毕业设计论文.doc

    本科毕业设计(论文)题目: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算法;加密;解密;实现;应用IAES Encryption Algorithm In The User Information Management Module AbstractWith the information industry to play an increasingly important role in China's national economy, information security and more attention. Information security by security protocols and cryptographic algorithms, cryptographic algorithms is the foundation and core of information security. Therefore, research and analysis of today's popular cryptographic algorithms on the information security of our country has great significance. The block cipher is one of the two development directions of the development of modern cryptography, it has a fast, easy standardization and ease of hardware and software, has been widely used in the field of computer communications and information security. This paper first describes the mathematical basis of the AES algorithm derived from the basis of mathematical description of the encryption algorithm. Highlights the principle steps of the AES encryption algorithm, the core algorithm is divided into key generation and encryption process cycle, the key core replacement and instead, the encryption process cycle State matrix to perform four different operations in the specification The known as SubBytes (byte substitution), ShiftRows (line shift transformation), the MixColumns (mixcolumn transformation) and AddRoundKey. Second, we use C + to implement the AES encryption and decryption algorithm. Today's society, people attach great importance to information security, so in the end the algorithm to the user information management module, the specific application.Key Words: Information security; AES algorithm; encryption; decryption; implementation; application II目 录1绪论.11.1前言11.2密码学简介和我国信息安全现状11.3 数据加密标准的发展过程11.3.1数据加密标准DES11.3.2 高级加密标准AES11.4 AES的研究现状21.5本文主要研究内容22 AES加密算法原理介绍32.1 AES算法的相关数学知识32.1.1 有限域GF (28)上的运算32.1.2 系数在有限域GF(28)上的多项式的运算42.2 AES 算法描述62.2.1算法的总体描述62.2.2 算法的基本变换82.2.3 密钥扩展算法92.2.4 解密算法102.3 AES安全性能分析122.3.1安全性目标122.3.2安全性原则122.3.3加密算法的对比122.3.4 AES算法的安全性142.3.5结论153 AES加密算法的实现163.1开发工具与环境163.2用 C+ 编写 AES 类163.3用C+编写的AES Cipher方法203.4 用C+编写的AES InCipher方法224 用户信息管理模块设计和实现244.1 用户信息管理模块功能244.1.1 权限分析244.1.2 用户信息管理244.2 设计方法244.3设计流程图244.4实现过程254.4.1管理员登陆254.4.2 查询记录功能264.4.3添加记录功能264.4.4删除记录功能274.4.5更新记录功能274.4.6设计数据库285 AES加密算法在用户信息管理模块中的应用305.1用户信息管理模块在后台对AES加密算法调用关系305.2 AES加密算法在用户信息管理模块中的应用效果演示306 结论34致 谢35参考文献36毕业设计(论文)知识产权声明37毕业设计(论文)独创性声明38附录 外文原文及翻译.39 主 要 符 号 表 GF(28) 有限域 a-1( x ) 逆元 mod 求模运算符 Nr 加密轮数 Nb 分组长度的列数 Nk 密钥长的列数 异或运算符号 多项式乘法 III1 绪论 1 绪论1.1前言 近年来,随着Internet的迅猛发展,计算机网络技术正在日益广泛的应用到商业,金融,国防等各个领域,人们对用户信息安全性的要求也越来越高,如何保证数据的安全已经成为了一个重要问题,因此本课题主要运用AES加密算法在用户信息管理模块对用户信息进行加密,以提高用户信息的安全性。 AES作为新一代的分组数据加密标准,以其没有显著的攻击方法、编码易于实现和加、解密速度快等优点,满足了人们不同信息安全等级的需要.随着计算机网络的发展,数据加密的重要性也逐渐提高,AES加密技术得到了迅速的发展和广泛的应用。1.2密码学简介和我国信息安全现状 密码学的基本思想是对机密信息进行交换,以保护信息在传送过程中不被非法窃取、解读和利用。 密码体制的分类方法有很多,一般是通过加密算法与解密算法所使用的密钥是否相同的原则分为:对称密钥密码体制和公开密钥密码体制。后者一般基于一个数学上的实现,适用于开放的使用环境,可以安全方便的实现数字签名和认证,通常用于密钥的分配与传输上,但对数据加、解密的速度较慢。而前者的安全性基于复杂的非线性变换,由于其加密速度比公钥密码相对较快,因此是目前商业领域比较重要而流行的一种加密体制。对称密钥密码体制从加密模式上又可分为:序列密码和分组密码。序列密码使用密钥短的位串生成长的位串,然后再与明文按位模2相加产生密文,它的安全基于密钥的随机性。如果密钥是真正的随机数,则这种密码体制在理论上就是不可攻破的,这也可以称为一次一密乱码本体制。严格的该体制所需的密钥量不存在上限,且很难得到真正意义上的随机数序列。实际中更多的是采用伪随机数序列。为了提高安全强度,伪随机序列的周期要足够长,并且序列要有很好的随机性,但这也很难做到,因此除了一些高度保密的环境以外,很少使用。应用在网络通信环境中的数据加密方法更多的是采用分组加密体制。分组密码算法通常由加、解密算法和密钥扩展算法两部分组成,密钥扩展算法用于生成m个子密钥。加密算法由一个密码学上的函数f对数据分组进行一系列变换之后,每次与一个子密钥迭代,总共迭代r次完成一个分组加密。分组密码已成为PIesc和SSL等相关协议的应用层数据安全保护的主要手段。我国信息化、网络化建设在技术与装备上对别国的极大依赖性,使信息安全问题尤为突出。据报道,美国出口中国的计算机设备留有“暗门”,供美国政府随时启动,出口中国的计算机系统安全等级也只有CZ级,为美国国防部规定的第 57 页XX大学毕业设计(论文) 8个级别中倒数第三。我国的信息网络安全起步较晚,安全防护能力处于发展的初级阶段,与发达国家有较大的差距。当前,国内许多信息网络应用系统尚处于不设防状态,存在很大的风险性:有些重要的网络应用系统使用的安全设备都是从国外直接引进的,难以保证安全利用和有效监控。密码技术特别是加密技术是信息安全技术中的核心技术,国家关键基础设施中不可能引进或采用别人的加密技术,只能自主开发。目前我国在密码技术的应用水平方面与国外还有一定的差距。国外的密码技术必将对我们有一定的冲击力,特别是在加入WTO组织后这种冲击力只会有增无减。因而我们必须自主的开发我们自己的加密解密芯片,从而保证我们信息的安全性。1.3 数据加密标准的发展过程1.3.1数据加密标准DES1972年,国家标准局(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.4 AES的研究现状 目前对高级加密标准算法的研究主要集中在三个方面:设计原理、安全性能分析和统计性能分析。设计原理方面主要研究算法在设计时所遵循的原则、算法采用的整体结构以及各组成部分的数学基础和性能。安全性能研究主要集中在分析抵抗现有已知密码攻击方法上,主要包括强力攻击、差分密码分析、线性密码分析、专用攻击和插值攻击。目前对差分密码分析和线性密码分析研究的比较深入,对专用攻击主要集中在基本攻击原理上,对插值攻击的研究主要集中在寻找算法的代数表示。统计性能主要是研究算法随机化数据的能力,目前有关助Rijndael算法的统计性能方面的研究还较少,所见统计测试在测试项目的选择和测试数据的构造上也不尽相同,但大多测试都基于NIST统计测试工具包进行。1.5本文主要研究内容本论文中用户信息加密的实现采用了美国最新公布的AES加密算法,AES算法被认为是至今为止理论上最为成功的加密算法。本文主要研究的是AES加密算法及其应用,采用C+语言对算法进行简单的实现,模拟加密及其解密的过程,并在用户信息管理模块中得到应用。 2 AES加密算法原理介绍 2 AES加密算法原理介绍2.1 AES算法的相关数学知识 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+ x 2+ x+ 1,也可以是十六进制的57。在实际操作过程中,到底采用哪种表示方法,要看具体的情况。 a.有限域GF(28)中的两个元素相加,输入的元素用多项式表示,其系数是两个元素中的对应系数的模2相加。显然,有限域GF(28)中的两个元素的加法与两个字节的按位模2加是一致的。两个字节的按位模2加用+表示。例如:57+83=D4 0 1 0 1 0 1 1 1 +1 0 0 0 0 0 1 1 1 1 0 1 0 1 0 0实际上,加法就是最简单的二进制的按位异或的结果,或者也可用多项式概念:( 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的式子。西安工业大学毕业设计(论文) 例如:5783=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)mod m ( x ) = (x13 + x11 + x9 + x8 + x6 + x5 + x4 + x3 + 1)mod m ( x8 + x4 + x3 +x+1 )= x7 + x6+1如果 a ( x )b ( x )mod m ( 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 ) mod m( 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 )= c6x 6+ c5x5 + c4 x4+ c3x3+ c2x2 + c1x +c0 (2.7)其中 c0 = a0b0 (2.8) c1= a1 b0 a0b1 (2.9) c2= a2b0 a1b1 a0b2 (2.10) c3= a3b0 a2 b1 a1 b2 a0b3 (2.11) c4= a3b1 a2b2 a1b3 (2.12) c5= a3b2 a2b3 (2.13) c6 = a3b3 (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 )= d3 x3 + d2 x2 + d 1x + d0,其中 d3 = a3b0 a2b1 a1b2 a0b3 (2.15) d2 = a2b0 a1b1 a0b2 a3b3 (2.16) d1 = a1b0 a0b1 a3b2 a2b3 (2.17) d0 = a0b0 a3b1 a2b2 a1b3 (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 + 01x+02 (2.20) a-1( x ) = 0b x3 + 0d x2 + 09x + 0e (2.21) a ( x ) a -1( x ) = a ( x ) a -1( x) = 01 (2.22)考虑用多项式x乘b ( x ),显然 x b ( x )= b2 x3 + b1 x2 + b0 x +b3假设 c ( x ) = x b ( x )= c3x3 + c2x2 + c1x + c0则矩阵形式表示为 (2.23)因此,用x或者x的方幂GF(28)上的多项式等于一个4字节的左循环移位。2.2 AES 算法描述2.2.1算法的总体描述AES分组长度为128位,有三种可选的密钥长度,即128位、192位和256位。AES是一个迭代型密码;轮数Nr依赖于密钥长度。如果密钥长度为128位,则Nr = 10;如果密钥长度位192位,Nr = 12;如果密钥长度位256位,则Nr = 14。AES的密钥长度与加密轮数之间的变动,如表2.1所示。 表2.1 AES的密钥长度与加密轮数的对照 标准 密钥长度 加解密轮数(Nr) AES-128 AES-192 AES-256 128 192 256 10 12 14AES 算法中分组长和密钥长的组合决定了需要加密多少轮后才能达到安全性的要求。加密轮数与分组长和密钥长的对照表如表2.2,Nb 是分组长度的列数,Nr 加密轮数,Nk 密钥长的列数。 表2.2 加密轮数与分组长和密钥长的对照表 AES中的操作都是以字节为基础的,所有用到的变量都是由适当数量的字节组成。中间变量State用4 * 4字节矩阵表示,如表2.3所示。 表2.3 四行四列的矩阵 a00 a01 a02 a03 a10 a11 a12 a13 a20 a21 a22 a23 a30 a31 a32 a33下面给我出AES加密的总体描述: a.给定一个明文M,将State初始化为M,并将轮密钥和State异或(称为AddRoundKey); b.对前Nr-1轮中的第一轮,用S-盒进行一次替换操作(称为SubBytes);对替换结果State做行移位操作(称为ShiftRows);再对State做列

    注意事项

    本文(AES加密算法在用户信息管理模块中的应用 毕业设计论文.doc)为本站会员(白大夫)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开