密码学基础课件:第八讲 对称密码学-3.ppt

密码学基础课件:第八讲 对称密码学-3.ppt

  1. 1、本文档共45页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
用伪代码表示的Rijndael加密算法 Rijndael ( State, CipherKey ) { KeyExpansion ( CipherKey, ExpandedKey ); AddRoundKey ( State, ExpandedKey ); For ( i=1; iRnd; i++ ) Round ( State, ExpandedKey + Nb*i ); FinalRound ( State, ExpandedKey + Nb*Rnd ); } 提前进行密钥扩展后的Rijndael加密算法描述 Rijndael ( State, ExpandedKey ) { AddRoundKey ( State, ExpandedKey ); For ( i=1; iRnd; i++ ) Round ( State, ExpandedKey + Nb*i ); FinalRound ( State, ExpandedKey + Nb*Rnd ); } AES 算法的密钥调度 密钥调度包括两个部分:密钥扩展和圈密钥选取 密钥bit的总数=分组长度×(圈数Round+1)例如当分组长度为128bits和圈数Round为10时,圈密钥长度为128×(10+1)=1408bits。 将密码密钥扩展成一个扩展密钥。 从扩展密钥中取出圈密钥:第一个圈密钥由扩展密钥的第一个Nb个4字节字,第二个圈密钥由接下来的Nb个4字节字组成,以此类推。 密钥扩展 K0,0 K0,1 K0,2 K0,3 K1,0 K1,1 K1,2 K1,3 K2,0 K2,1 K2,2 K2,3 K3,0 K3,1 K3,2 K3,3 K0 K1 K2 K3 K0 K1 K2 K3 K4 K5 K6 K7 + + + K0 K1 K2 K3 K4 K5 K6 K7 Byte Substitution ByteRotate + Rcon Wi-4 Wi-3 Wi-2 Wi-1 Wi Byte Substituion Byte Rotate + Rcons + Key expansion 4 = i 4 ( Rnd + 1 ) i mod 4 = 0 i mod 4 != 0 圈密钥选取 K0 K1 K2 K3 K4 K5 K6 K7 K8 K9 K10 K11 K12 圈密钥0 圈密钥1 圈密钥2 AES 算法的在软硬件上的实现 首先对算法的各步骤进行合并处理: ButeSubstitution变换: bi,j = S[ ai,j ] ShiftRow变换: c0,j b0,j c1,j = b1,j-1 c2,j b2,j-2 c3,j b3,j-3 MixColumn变换: d0,j 02 03 01 01 c0,j d1,j = 01 02 03 01 c1,j d2,j 01 01 02 03 c2,j d3,j 03 01 01 02 c3,j AddRoundKey: e0,j d0,j k0,j e1,j = d1,j + k1,j e2,j d2,j k2,j e3,j d3,j k3,j 将以上各步合并: e 02 03 01 01 s[ a ] k e = 02 03 01 01 s[ a ] + k e 02 03 01 01 s[ a

文档评论(0)

学习让人进步 + 关注
实名认证
内容提供者

活到老,学到老!知识无价!

1亿VIP精品文档

相关文档