网站大量收购独家精品文档,联系QQ:2885784924

AES加密算法研究精品.pdfVIP

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
AES 加密算法研究 作者/kingbir 1、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)输入数据。 2、AES 加密算法描述 AES 算法是基于置换和代替的。置换是数据的重新排列,而代替是用一个单元数据替换另一个。AES 使 用了几种不同的技术来实现置换和替换,包括:S盒置换(SubBytes),行循环移位(ShiftRows),伽洛瓦域多项 式运算,列混合预算。 2.1、分组(State) 密码运算的中间结果称为状态(State)。 State 的表示:状态用以字节为基本构成元素的矩阵阵列来表示,该阵列有4 行,列数记为Nb. Nb=分组长度(bits)÷ 32 Nb 可以取的值为4,6,8,对应的分组长度为128, 192, 256 bits。 2.2、密钥(Cipher Key) Cipher Key 类似地用一个4 行的矩阵阵列来表示,列数记为Nk. Nk=密钥长度(bits)÷ Nk 可以取的值为4,6,8,对应的密钥长度为128, 192, 256 bits. 密钥扩展:密钥bit 的总数=分组长度×(轮数Round+1)例如当分组长度为128bits和轮数Round 为10 时,轮密钥长度为128×(10+1)=1408bits。密钥的长度是够使用的,所以必须将密码密钥扩展成 一个扩展密钥。扩展算法:第i-1轮的分组长度个字节的子密钥被分成4 组来处理,每组4 个字节。最后 一组的4 个字节先执行一个字节的循环左移,由S 盒(这个S 盒与字节替代时的S 盒是一样的)来进行替 代处理,然后这4 个字节结果中的第一个字节和轮常数相异或,这个轮常数是预先定义的,并且固定值。 最后,为了得到第i 轮密钥,把得到的4 个字节的结果和轮密钥的最初4 个字节按位相异或,得到i轮密 钥的最初4 个字节,然后又和密钥的下面的4 个字节按位相异或,得到i轮密钥的下面4 个字节,以此类 推。 2.2、SBox 置换(SubBytes) SBox 称为S 盒,它是一个16×16的固定值的矩阵。sbox 置换法则:将需要置换的矩阵的每个字节的 低4 位作为s 盒的纵坐标,将其高4 位作为s 盒的横坐标,使用这两个值取得对应的S 盒中的值,作为置换 后的值。 bytes[0] = AseSbox [ bytes[0] 4][bytes [0] 0x0f ]; bytes[1] = AseSbox [ bytes[1] 4][bytes [1] 0x0f ]; bytes[2] = AseSbox [ bytes[2] 4][bytes [2] 0x0f ]; bytes[3] = AseSbox [ bytes[3] 4][bytes [3] 0x0f ]; 2.3、行循环移位(ShiftRows) 在行循环移位(ShiftRows)变换中,状态阵列的后3 行循环移位不同的偏移量。第1行循环移位C1 字 节,第2 行循环移位C2 字节

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档