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

第三讲 高级数据加密标准AES.ppt

  1. 1、本文档共63页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三讲 高级数据加密标准AES

高级数据加密标准 AES AES背景-i 1997年4月15日,(美国)国家标准技术研究所( NIST ) 发起征集高级加密标准( Advanced Encryption Standard)AES的活动,活动目的是确定一个非保密的、可以公开技术细节的、全球免费使用的分组密码算法,作为新的数据加密标准。 1997年9月12日,美国联邦登记处公布了正式征集AES候选算法的通告。作为进入AES候选过程的一个条件,开发者承诺放弃被选中算法的知识产权。 对AES的基本要求是:比三重DES快、至少与三重DES一样安全、数据分组长度为128比特、密钥长度128/192/256比特。 AES背景-ii 1998年8月12日,在首届AES会议上指定了15个候选算法。 1999年3月22日第二次AES会议上,将候选名单减少为5 个, 这5 个算法是RC6 , Rijndael ,SERPENT,Twofish和MARS。 2000年4月13日,第三次AES会议上,对这5个候选算法的各种分析结果进行了讨论。 2000年10月2日,NIST宣布了获胜者—Rijndael算法, 2001 年11 月出版了最终标准FIPSPUB197。 Rijndael算法 Rijndael算法是比利时的Joan Daemen和Vincent Rijmen设计的一个算法,该算法的原形是Square算法。它的设计策略是宽轨迹策略。宽轨迹策略是针对差分分析和线性分析提出的一种新的策略,其最大优点是可以给出算法的最佳差分特性的概率及最佳线性逼近的偏差的界。由上述条件可以分析算法抵抗差分密码分析和线性密码分析的能力。 AES的设计原则 能抵抗所有已知的攻击; 在各种平台上易于实现,速度快; 设计简单。 AES 算法的一般描述 AES 算法加密部分的实现 一些相关的的术语定义和表示 状态(State):密码运算的中间结果称为状态。 State的表示:状态用以字节为基本构成元素的矩阵阵列来表示,该阵列有4行,列数记为Nb。 Nb=分组长度(bits)÷ 32 Nb可以取的值为4,6,8,对应的分组长度为128, 192, 256 bits。 密码密钥(Cipher Key)的表示: Cipher Key类似地用一个4行的矩阵阵列来表示,列数记为Nk。 Nk=密钥长度(bits)÷32 Nk可以取的值为4,6,8,对应的密钥长度为128, 192, 256 bits。 Fig 3. 当Nb=6时的状态和Nk=4时的密钥布局 用伪代码表示的Rijndael轮变换 ByteSubstitution(字节替代) Fig 6. ByteSubstitution 该变换可以用一个256字节的表来实现 ByteRotation(字节移位) Rijndael 的轮函数由 4 个不同的计算部件组成 分别是: 字节代换 BS ( ByteSub ),非线性层 行移位 SR ( ShiftRow ),线性层 列混合 MC ( MixColumn ),线性层 密钥加ARK( AddRoundKey ),线性层 Fig 7. ByteRotation 字节代换是非线性变换,独立地对状态的每个字节进行。代换表(即 S-盒) ① S 盒变换是 AES 的唯一非线性变换,是 AES 安全的关键。 ② AES 使用 16 个相同的 S 盒, DES 使用 8 个不相同的 S 盒。 ③ AES 的 S 盒有 8 位输入,8 位输出, DES 的 S 盒有 6 位输入,4 位输出。 S-盒是可逆的,由以下两个变换的合成得到: ①首先,将字节看作 GF(28) 上的元素,映射到自己的乘法逆元, 00 映射到自己。 ②其次,对字节做如下的仿射变换: 图 3.20 行移位示意图( Nb=6 ) MixColumn(列混合) Fig 8. MixColumn 这一运算作用在每一列上 图 3.21 列混合运算示意图 2.4 AddRoundKey(轮密钥加) 密钥加是将轮密钥简单地与状态进行逐比特异或。 轮密钥由种子密钥通过密钥编排算法得到,轮密钥长度等于分组长度 Nb 。 状态说与轮密钥 RoundKey 的密钥加运算表示为 AddRoundKey(State, RoundKey) 用伪代码表示的Rijndael加密算法 提前进行密钥扩展后的Rijndael加密算法描述 AES 的密钥调度 密钥调度包括两个部分:密钥扩展和轮密钥选取。 密钥bit的总数=分组长度×(轮数Round+1)例如当分组长度为128bit

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档