AES加密算法原理(图文).docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
标准实用 标准实用 文案大全 文案大全 标准实用 标准实用 文案大全 文案大全 AES加密算法原理(图文) 随着对称密码的发展QES数据加密标准算法由于密钥长度较小(56位), 已经不适应当今分布式开放网络对数据加密安全性的要求,因此 1997年NIST 公开征集新的数据加密标准,即AES[1]。经过三轮的筛选,比利时JOan Daeman 和VinCent Rijmen提交的Rijndael算法被提议为AES的最终算法。此算法将成 为美国新的数据加密标准而被广泛应用在各个领域中。 尽管人们对AES还有不同 的看法,但总体来说,AES作为新一代的数据加密标准汇聚了强安全性、高性能、 高效率、易用和灵活等优点。AES设计有三个密钥长度:128,192,256位,相对而 言,AES的128密钥比DES的 56密钥强1021倍[2] OAES算法主要包括三个方面: 轮变化、圈数和密钥扩展。 AES是一个新的可以用于保护电子数据的加密算法。明确地说, AES是一 个迭代的、对称密钥分组的密码,它可以使用 128、192和256位密钥,并且 用128位(16字节)分组加密和解密数据。与公共密钥密码使用密钥对不同, 对称密钥密码使用相同的密钥加密和解密数据。通过分组密码返回的加密数据 的位数与输入数据相同。迭代加密使用一个循环结构,在该循环中重复置换 (PermUtatiOns )和替换(SUbStitUtiOnS )输入数据。FigUre 1 显示了 AES 用 192位密钥对一个16位字节数据块进行加密和解密的情形。 FigUre 1 部分数据 AES算法概述 AES算法是基于置换和代替的。置换是数据的重新排列,而代替是用 一个单元数据替换另一个。AES使用了几种不同的技术来实现置换和替换。 为了 阐明这些技术,让我们用FigUre 1所示的数据讨论一个具体的 AES加密例子。 下面是你要加密的128位值以及它们对应的索引数组: 00 11 22 33 44 55 66 77 88 99 aa bb CC dd ee ffθ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 192位密钥的值是: 00 01 02 03 04 05 06 07 08 09 Oa Ob OC Od Oe Of 10 11 12 13 14 15 16 170 1 2 3 4 5 6 7 8 9 10 1112 13 14 15 16 17 18 19 20 21 22 23 当AES的构造函数(COnStruCtOr )被调用时,用于加密方法的两个 表被初始化。第一个表是代替盒称为 S-盒。它是一个16× 16的矩阵。S-盒的前 五行和前五列如FigUre 2所示。在幕后,加密例程获取该密钥数组并用它来生 成一个名为w[]的密钥调度表,FigUre 3所示。 FigUre 3 密钥调度表(Key SChed) w[]最初的Nk (6)行被作为种子,用原始密钥值(0x00到0x17)。 剩余行从种子密钥来产生。变量Nk代表以32位字为单位的种子密钥长度。稍 后我分析AES实现时你将清楚地看到 w[]是怎样产生的。 关键是这里现在有 许多密钥使用而不只是一个。这些新的密钥被称为轮密钥(rou nd keys)以将它 们与原始种子密钥区别开来。 ?0 44 CC It 5S W IH Ibb n FigUre 4 State (态)数组 AES加密例程开始是拷贝16字节的输入数组到一个名为 State (态)的4 ×4字节矩阵中。(参见FigUre 4)。AES加密算法 取名为CiPher, 它操作State[],其过程描述的伪代码参见FigUre 5 。 在规范中,加密算法实现的一个预备的处理步骤被称为 AddROu ndKey(轮 密钥加)。AddROUndKey用密钥调度表中的前四行对State矩阵实行一个字节 一个字节的异或(XOR操作,并用轮密钥表 w[c,r] 异或输入State[r,c]。 举个例子,如果State矩阵的第一行保存的字节是{ 00, 44, 88, CC } , 第一列密钥调度表是{ 00, 04, 08, Oc } ,那么新的State[0,2] 值是用 w[2,0]( 0x08 或 0x80 )异或 State[0,2](0x88) 的结果: 1 0 0 0 1 0 0 00 0 0 0 1 0 0 0 XOR1 0 0 0 0 0 0 0 AES算法的主循环对State 矩阵执行四个不同的操作,在规范中被称为 SUbByteS (字节替换)、ShiftROWS (行位移变换)、MiXCOIUmns (列混合变换) 和AddROUndKey。除了每次循环AddROUndKey都被调用并使用密钥调度表的下

文档评论(0)

dongguiying + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档