aes加密算法在用户信息管理模块中的应用毕业设计论文内容摘要:

与明文按位模 2相加产生密文,它的安全基于密钥的随机性。 如果密钥是真正的随机数,则这种密码体制在理论上就是不可攻破的,这也可以称为一 次一密乱码本体制。 严格的该体制所需的密钥量不存在上限,且很难得到真正意义上的随机数序列。 实际中更多的是采用伪随机数序列。 为了提高安全强度,伪随机序列的周期要足够长,并且序列要有很好的随机性,但这也很难做到,因此除了一些高度保密的环境以外,很少使用。 应用在网络通信环境中的数据加密方法更多的是采用分组加密体制。 分组密码算法通常由加、解密算法和密钥扩展算法两部分组成,密钥扩展算法用于生成m个子密钥。 加密算法由一个密码学上的函数 f对数据分组进行一系列变换之后,每次与一个子密钥迭代,总共迭代 r次完成一个分组加密。 分 组密码已成为 PIesc和 SSL 等相关协议的应用层数据安全保护的主要手段。 我国信息化、网络化建设在技术与装备上对别国的极大依赖性,使信息安全问题尤为突出。 据报道,美国出口中国的计算机设备留有“暗门”,供美国政府随时启动,出口中国的计算机系统安全等级也只有 CZ级,为美国国防部规定的XX大学毕业设计 (论文 ) 第 1 页 8个级别中倒数第三。 我国的信息网络安全起步较晚,安全防护能力处于发展的初级阶段,与发达国家有较大的差距。 当前,国内许多信息网络应用系统尚处于不设防状态,存在很大的风险性 :有些重要的网络应用系统使用的安全设备都是从国外直接引进的,难 以保证安全利用和有效监控。 密码技术特别是加密技术是信息安全技术中的核心技术,国家关键基础设施中不可能引进或采用别人的加密技术,只能自主开发。 目前我国在密码技术的应用水平方面与国外还有一定的差距。 国外的密码技术必将对我们有一定的冲击力,特别是在加入 WTO组织后这种冲击力只会有增无减。 因而我们必须自主的开发我们自己的加密解密芯片,从而保证我们信息的安全性。 数据加密标准的发展过程 数据加密标准 DES 1972 年,国家标准局 (NBS)拟定了一个旨在保护计算机和通信数据的计划,开发一个单独的标准密 码算法, 1973 年公开征集算法, 1974 年第二次公开征集,IBM 的 Lucifer 的变形当选, 1976 年 H月宣布成为联邦标准 DES,随后投入使用。 不久 DES 的应用范围迅速扩大到涉及美国以外的公司,甚至某些美国的军事部门也使用了 DES。 DES 是世界上第一个公认的实用分组密码算法标准。 迄今为止,在针对 DES 的攻击中最有效的方法还是穷举,遍历密钥空间。 由于计算机硬件的速度越来越快, DES 密钥长度太短的缺陷就显露了出来。 最终能在合理的时间内完成对 56 位密钥的强力攻击。 1987 年宣布 DES 不安全,但由于商业上已广泛使用 ,且没有合适的方案替代。 进入上世纪九十年代后,另一种由 DES 衍生出来的算法 — 三重 DES,被广泛使用。 但是它的安全性并不意味着建立在 168 位的密钥之上,研究表明,可以将其转化为对 108 位密钥的攻击。 最重要的是,三重 DES的加密和解密时间消耗较大,不能很好的适用飞速增长的实时信息加密需求。 2020 年,原设计寿命 10 年左右的 DES 已使用 23年,单重已攻击成功。 高级加密标准 AES 1997 年 1 月 2 日,美国国家标准和技术研究所( NIST)宣布启动高级加密标准 (AES)的开发研究工作,并于同年 9 月 12 日正式发出了征集算法的公告。 NIST的目标是确定一种保护敏感信息的、公开的、免费的并且全球通用的算法作为AES,以弥补 DES退出后,数据加密标准留下的空缺。 在征集公告中, NIST 对算法作了最低要求 :算法必须是对称密钥体制的分组密码,并且要支持 128 位的分组长度和 12 19 256 位的密钥长度。 1998 年 8 月 20 日, NIST 召开了第一次AES 候选会议,在会议上宣布了 15个 AES 候选算法,并恳请公众对这 15个算法进行评估。 经过一年时间的评估, NIST 于 1999 年 8 月又召开了第二次候选会议,在这次会议上, NIST 宣布从巧个候选算法中选出了 5 个候选算法参加最后的决赛,并再次恳请公众对这 5 个候选算法进行评估,并规定评估于 2020 年 5 月 25日结束。 为了更好的选出一种候选算法作为 AES, NslT 在评估正式结束前的一个XX大学毕业设计 (论文 ) 第 2 页 多月又召开了第三次 AES 候选会议,在这次会议上,对各种评估结果作了详细的分析,为 AES 算法的确定提供了详尽的材料。 2020 年 10 月 2日, NIST 宣布采用助 Rijndael 算法作为 AES,此后 NIST 授权联邦信息处理标准出版社为 AES 制定了标准草案用以征集公众的评议,随后在公众评议的基础上对草案进行修改 ,于 2020 年 11 月 26 日发布了正式的 197 号标准 — AES 标准,并指出标准生效的具体时间为 2020 年 5月 26号,至此经历数年的 AES 开发研究才大功告成。 AES 的研究现状 目前对高级加密标准算法的研究主要集中在三个方面 :设计原理、安全性能分析和统计性能分析。 设计原理方面主要研究算法在设计时所遵循的原则、算法采用的整体结构以及各组成部分的数学基础和性能。 安全性能研究主要集中在分析抵抗现有已知密码攻击方法上,主要包括强力攻击、差分密码分析、线性密码分析、专用攻击和插值攻击。 目前对差分密码分析 和线性密码分析研究的比较深入,对专用攻击主要集中在基本攻击原理上,对插值攻击的研究主要集中在寻找算法的代数表示。 统计性能主要是研究算法随机化数据的能力,目前有关助 Rijndael 算法的统计性能方面的研究还较少,所见统计测试在测试项目的选择和测试数据的构造上也不尽相同,但大多测试都基于 NIST 统计测试工具包进行。 本论文中用户信息加密的实现采用了美国最新公布的 AES 加密算法, AES 算法被认为是至今为止理论上最为成功的加密算法。 本文主要研究的是 AES 加密算法及其应用,采用 C++语言对 算法进行简单的实现,模拟加密及其解密的过程,并在用户信息管理模块中得到应用。 2 AES加密算法原理介绍 第 3 页 2 AES 加密算法原理介绍 AES算法的相关数学知识 AES 算法中的许多运算是按字节定义的,一个字节为 8位。 AES 算法中还有一些运算是以 4个字节的字定义的,一个 4字节的字为 32位。 一个字节可以看成是有限域 GF(28)中的一个元素。 一个 4字节的字可以看成是系数在 GF(28)中并且次数小于 4 的多项式。 有限域 GF (28)上的运算 有限域 GF(28)中的元素可以用许多不同的 方式来表示,如多项式表示,二进制表示,十六进制表示等等,但是不同的表示方式对实现的复杂度是有影响的。 AES 加密算法选择用多项式表示有限域 GF(28)中的元素。 GF(28)中共有 256 个元素,每个元素都可以用 GF(2)中的元素表示,而且多项式的次幂都小于 8。 由 b7b6b5b4b3b2b1b0构成的一个字看成多项式 b7x7 + b6x6 + b5x5 + b4x4 + b3x3 + b2x2 + b1x + b0 ( ) 其中 bi ∈ GF(2), 0 ≤ i≤ 7,因此, GF(28)中的每一个元素都可以看成是一个 字节,例如,一个由 01010111 组成的字节可表示多项式 x6 + x4+ x 2+ x+ 1,也 可以是十六进制的‘ 57’。 在实际操作过程中,到底采用哪种表示方法,要看具 体的情况。 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 () GF(28)中两个元素的乘法为模 GF(2)域上的一个 8次不可约多项式的多项式乘法,乘法用 *表示。 一个多项式是不可约的,就是它除 1 和其自身之外没有其他的因子。 对于 AES,这个不可约多项式为 m ( x ) = x8+ x4+ x3+ x+ 1 () m ( x )用二进制表示为 0000000100011011( 两个字节 ) ,用十六进制表示为 0x011b。 有限域乘法比较复杂 ,先把两个输入化为多项式的形式,然后进行2 AES加密算法原理介绍 第 4 页 乘法运算,合并同类项,当 x次幂的系数大于 2时,此项消去,剩下次数为 1 的式子。 西安工业大学毕业设计 (论文 ) 第 5 页 例如: {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)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 () 这就说明 b ( x )的逆元素为 a ( x )1= b( x ) mod m( x) () 其中 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 加法运算 +和乘法运算 *下 ,256 个可 能字节值的集合构成了有限域 GF(28)。 系数在有限域 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 () 其中 c0 = a0‧ b0 () c1= a1‧ b0 ⊕ a0‧ b1 () c2= a2‧ b0 ⊕ a1‧ b1 ⊕ a0‧ b2 ()。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。