上海交大密码学课件--第8讲-aes候选算法

上传人:kms****20 文档编号:51205915 上传时间:2018-08-12 格式:PPT 页数:25 大小:312.50KB
返回 下载 相关 举报
上海交大密码学课件--第8讲-aes候选算法_第1页
第1页 / 共25页
上海交大密码学课件--第8讲-aes候选算法_第2页
第2页 / 共25页
上海交大密码学课件--第8讲-aes候选算法_第3页
第3页 / 共25页
上海交大密码学课件--第8讲-aes候选算法_第4页
第4页 / 共25页
上海交大密码学课件--第8讲-aes候选算法_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《上海交大密码学课件--第8讲-aes候选算法》由会员分享,可在线阅读,更多相关《上海交大密码学课件--第8讲-aes候选算法(25页珍藏版)》请在金锄头文库上搜索。

1、第8讲 AES- Rijndael上海交通大学 郑东AES候选算法背景DES已走到了它生命的尽头 56比特密钥实在太小 DES的软件实现效率低(设计主要针对硬件实现) 1997年4月15日美国国家标准和技术研究所(NIST )征集AES(AESAdvanced Encryption Standard)算法 并成立了AES工作组。 目的是为了确定一个非保密的、公开披露的、全 球免费使用的加密算法,用于保护下一世纪政府 的敏感信息。也希望能够成为保密和非保密部门 公用的数据加密标准(DES)。AES候选算法要求 - 比三重DES快,至少还要一样的安全, - 应当具有128比特分组长度和256比特密

2、钥 长度(不过必须支持128和192比特的密钥) - 还应该具有较大的灵活性。AES候选算法(续2)评选过程中采用的方法1.用量化的或定性的尺度作为选择的标准;2.选择一种以上的算法;3.选择一个备用算法;4.考虑公众的建议以改进算法。AES候选算法(续3)1998年8月20日,NIST在第一阶段讨论(AES1 )中宣布了由12个国家提出的15个候选算法1999年3月开始的第二阶段讨论(AES2),1999年8月NIST选出5个算法候选:MARS、RC6、Rijndael、Serpent和Twofish。AES候选算法-过程在宣布最后的5个候选算法后,NIST再次恳 请公众参与对这些算法的评论

3、。公众对这五 种候选算法的评阅期于2000年5月15日结束 。NIST发布的AES主页2提供了大量的关于 算法描述、源程序、有关AES3的论文以及其 他公众评论的信息。2000年4月开始进行第 三阶段(AES3)的评选,AES3共收到37篇提 交给NIST的论文,并采用了其中的24篇。在 这一阶段的讨论中,这些算法得到了非常深 入的分析。NIST的AES小组综合所有公众对 候选算法的评价和分析作了一个非常彻底的 评论。AES候选算法-过程经过长时间的评审和讨论之后,NIST 在2000年5月宣布选择Rijndael作为 AES的算法。该算法的开发者提出以下 几种发音供选择“Reign Dah1

4、“,“Rain doll“和 “Rhine Dah1“。AES候选算法结果NIST最终选择了Rijndael作为AES的标准, 因为全面地考虑,Rijndael汇聚了安全,性 能好,效率高,易用和灵活等优点。 Rijndael使用非线性结构的S-boxes,表现出 足够的安全余地;Rijndael在无论有无反馈 模式的计算环境下的硬,软件中都能显示出 其非常好的性能;它的密钥安装的时间很好 ,也具有很高的灵活性;Rijndael的非常低 的内存需求也使它很适合用于受限的环境;AES候选算法-结果Rijndael的操作简单,并可抵御时间和 能量攻击,此外,它还有许多未被特别 强调的防御性能;Ri

5、jndael在分组长度 和密钥长度的设计上也很灵活,算法可 根据分组长度和密钥长度的不同组合提 供不同的迭代次数,虽然这些特征还需 更深入地研究,短期内不可能被利用, 但最终,Rijndael内在的迭代结构会显 示良好的潜能来防御入侵行为。AES (Rijndael)算法结构Rijndael:可变块长、可变密钥长度根据AES的要求,分组长度指定为128位 ,密钥长度为128,192或256位,相应 的迭代轮数R为10、12和14。AES 框架Plain TextInitial Round Add Round KeyStandard Round Byte Sub Shift Row Mix Co

6、lumn Add Round KeyFinal Round Byte Sub Shift Row Add Round KeyCipher TextNr-1 RoundsCipher KeyExpansionExpanded KeySelectionRound Key 1Round Key 2Round Key Nr-1Round Key NrAES 轮函数Rijndael的轮函数每一轮迭代的结构都一样,由 下述4个不同的变换构成,只是最后一轮省略了 列混合变换。 字节替换(ByteSub):对数据的每一字节应用 一个非线性变换。 行移位(ShiftRow):对每一行的字节循环重新 排序。 列混

7、合(MixColumn):对矩阵的列应用一个线 性变换。 轮密钥加(AddRoundKey):把轮密钥混合到中间 数据。AES轮函数(续)AES轮函数(续)1.字节替换=+替换盒表示替代表是一个1616的矩阵。表中纵向 的x取自状态矩阵中的高4比特,横向的 y取自低4比特。替代的过程如下表,x 行和y列的数据就用来替代的数据 字节替换表AES轮函数(续)2.行移位运算(ShiftRow):这是状态中字节的循环 移位运算。这个运算可以表示成为Bi , j = Ai , (i+j) mod 4 3.列混合变换:将状态的每一列视为 上多项式, 然后乘以固定多项式 ,并模除 .其中 ,(a(x)存在关

8、于 的 逆元. 变换公式如下:变换的矩阵表示:列混合变换运算结果:轮密钥“加”运算: 对状态和每轮的子密钥进行简单的异或操作。 每轮子密钥是通过密钥调度算法从主密钥中产生 ,子密钥长度等于分组长度。 轮密钥加运算需要用到4个导出的32比特子密钥。 AES子密钥生成Rijindael算法每一轮需要用到Nb比特的 子密钥,共有Nr轮,另外,第一次轮密 钥加的时候也需要用一轮子密钥,于是 总共需要比特的子密钥,对于AES-128 来说就是用1408比特的密钥 AES子密钥生成(续)第i-1轮的16个字节的子密钥被分成4组来处 理,每组4个字节。最后一组的4个字节先执 行一个字节的循环左移,由S盒(这个S盒与 字节替代时的S盒是一样的)来进行替代处 理,然后这4个字节结果中的第一个字节和 轮常数相异或,这个常数是由表3.14预先定 义的。最后,为了得到第i轮密钥,把得到的 4个字节的结果和轮密钥的最初4个字节按位 相异或,得到i轮密钥的最初4个字节,然后 又和密钥的下面的4个字节按位相异或,得 到i轮密钥的下面4个字节,以此类推。AES子密钥生成(续)i12345678910i01020408102040801B36AES解密过程在解密过程中,用的是字节替换的逆变 换:逆字节替换,行移位的逆变换:逆 行移位,列混合的逆变换:逆列混合, 以及轮密钥加的逆变换(即是其本身) 。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号