ES算法原理.pptVIP

  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算法原理

“ ” “ ” AES算法原理及实现 2015.4.20 AES算法简介 AES(The Advanced Encryption Standard),又称Rijndael加密法,该演算法为比利时密码学家Joan Daemen和Vincent Rijmen所设计,结合两位作者的名字,以Rijdael命名。是美国联邦政府采用的一种分块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院 (NIST)于2001年11月26日发布于FIPS PUB 197,并在2002年5月26日成为有效的标准。2006年,高级加密标准已然成为对称密钥加密中最流行的演算法之一。它被预期能成为人们公认的加密包括金融、电信和政府数字信息的方法。美国国家标准与技术研究所(NIST)在2002年5月26日建立了新的高级数据加密标准(AES)规范。 AES 是一个新的可以用于保护电子数据的加密算法。明确地说,AES 是一个迭代的、对称密钥分组的密码,它可以使用128、192 和 256 位密钥,并且用 128 位(16字节)分组加密和解密数据。与公共密钥密码使用密钥对不同,对称密钥密码使用相同的密钥加密和解密数据。通过分组密码返回的加密数据 的位数与输入数据相同。迭代加密使用一个循环结构,在该循环中重复置换(permutations )和替换(substitutions)输入数据。 AES算法描述 AES 算法是基于置换和代替的。置换是数据的重新排列,而代替是用一个单元数据替换另一个。AES 使用了几种不同的技术来实现置换和替换,包括: 字节代换(SubBytes),行循环移位(ShiftRows),列混合(MixColumn)运算,密钥加(AddRoundKey)。 表 1-1 AES的密钥长度和加密轮数列表 密钥长度(32bit) (Nk) 分组长度(Nb) 加密轮数(Nr) AES - 128 4 4 10 AES – 192 6 4 12 AES - 256 8 4 14 图 1-1 AES的加密/解密流程图 密文输出 轮密钥加 明文输入 密钥 扩展密钥 第1轮 第9轮 第10轮 第10轮 第9轮 第1轮 ω[4,7] ω[36,39] ω[40,43] ω[0,3] 字节代换 行移位 列混合 列混合 行移位 字节代换 字节代换 轮密钥加 轮密钥加 行移位 轮密钥加 … … 密文输入 明文输出 轮密钥加 逆字节代换 逆列混合 逆行移位 逆字节代换 逆字节代换 逆行移位 轮密钥加 逆行移位 逆列混合 … … 轮密钥加 轮密钥加 1.字节代换(byteSub) 字节代换是非线性变换,独立地岁状态的每个字节进行。代换表(即S-盒)是可逆的,由以下两个变换得到: 首先,将字节看作GF(28)上的元素,映射到自己的乘法逆元,’00’映射到自己。 其次,对字节做如下的(GF(2)上的,可逆的)仿射变换: y0 y1 y2 y3 y4 y5 y6 y7 1 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 1 x0 x1 x2 x3 x4 x5 x6 x7 1 1 0 0 0 1 1 0 = x ⊕ 字节代换 状态矩阵按照下面的方式映射成为一个新的字节: 把该字节的高4位作为行值,低4位作为列值,得到S盒或逆S盒的对应元素作为输出。 例如输入字节0x12,取S盒的第0x01行盒0x02列,得到0xC9。 字节代换(ByteSub) a00 a01 a02 a03 a04 a05 a10 a11 a12 a13 a14 a15 a20 a21 a22 a23 a24 a25 a30 a31 a32 a33 a34 a35 b00 b01 b02 b03 b04 b05 b10 B11 b12 b13 b14 b15 b20 b21 b22 b23 b24 b25 b30 b31 b32 b33 b34 b35 S盒 aij bij 2.行移位(ShiftRow) 在行循环移位变换中,状态阵列的后3行循环移位不同的偏移量。第0行不移动。第1行循环移位C1字节,第2行循环移位C2字节,第3行循环移位C3字节。 偏移量C1、C2、C3与分组长度Nb有关,如下表所示: Nb C1 C2 C3 4 1 2 3 6 1 2 3 8 1 3 4 行移位示意

文档评论(0)

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

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

1亿VIP精品文档

相关文档