第8讲-AES候选算法.ppt_第1页
第8讲-AES候选算法.ppt_第2页
第8讲-AES候选算法.ppt_第3页
第8讲-AES候选算法.ppt_第4页
第8讲-AES候选算法.ppt_第5页
免费预览已结束,剩余20页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第8讲AES-Rijndael,上海交通大学郑东Zheng-dong,AES候选算法,背景DES已走到了它生命的尽头56比特密钥实在太小DES的软件实现效率低(设计主要针对硬件实现)1997年4月15日美国国家标准和技术研究所(NIST)征集AES(AESAdvancedEncryptionStandard)算法并成立了AES工作组。目的是为了确定一个非保密的、公开披露的、全球免费使用的加密算法,用于保护下一世纪政府的敏感信息。也希望能够成为保密和非保密部门公用的数据加密标准(DES)。,AES候选算法,要求-比三重DES快,至少还要一样的安全,-应当具有128比特分组长度和256比特密钥长度(不过必须支持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再次恳请公众参与对这些算法的评论。公众对这五种候选算法的评阅期于2000年5月15日结束。NIST发布的AES主页2提供了大量的关于算法描述、源程序、有关AES3的论文以及其他公众评论的信息。2000年4月开始进行第三阶段(AES3)的评选,AES3共收到37篇提交给NIST的论文,并采用了其中的24篇。在这一阶段的讨论中,这些算法得到了非常深入的分析。NIST的AES小组综合所有公众对候选算法的评价和分析作了一个非常彻底的评论。,AES候选算法-过程,经过长时间的评审和讨论之后,NIST在2000年5月宣布选择Rijndael作为AES的算法。该算法的开发者提出以下几种发音供选择ReignDah1,Raindoll和RhineDah1。,AES候选算法,结果NIST最终选择了Rijndael作为AES的标准,因为全面地考虑,Rijndael汇聚了安全,性能好,效率高,易用和灵活等优点。Rijndael使用非线性结构的S-boxes,表现出足够的安全余地;Rijndael在无论有无反馈模式的计算环境下的硬,软件中都能显示出其非常好的性能;它的密钥安装的时间很好,也具有很高的灵活性;Rijndael的非常低的内存需求也使它很适合用于受限的环境;,AES候选算法-结果,Rijndael的操作简单,并可抵御时间和能量攻击,此外,它还有许多未被特别强调的防御性能;Rijndael在分组长度和密钥长度的设计上也很灵活,算法可根据分组长度和密钥长度的不同组合提供不同的迭代次数,虽然这些特征还需更深入地研究,短期内不可能被利用,但最终,Rijndael内在的迭代结构会显示良好的潜能来防御入侵行为。,AES(Rijndael)算法结构,Rijndael:可变块长、可变密钥长度根据AES的要求,分组长度指定为128位,密钥长度为128,192或256位,相应的迭代轮数R为10、12和14。,AES框架,AES轮函数,Rijndael的轮函数每一轮迭代的结构都一样,由下述4个不同的变换构成,只是最后一轮省略了列混合变换。字节替换(ByteSub):对数据的每一字节应用一个非线性变换。行移位(ShiftRow):对每一行的字节循环重新排序。列混合(MixColumn):对矩阵的列应用一个线性变换。轮密钥加(AddRoundKey):把轮密钥混合到中间数据。,AES轮函数(续),AES轮函数(续),1.字节替换,=,+,替换盒表示,替代表是一个1616的矩阵。表中纵向的x取自状态矩阵中的高4比特,横向的y取自低4比特。替代的过程如下表,x行和y列的数据就用来替代的数据,字节替换表,AES轮函数(续),2.行移位运算(ShiftRow):这是状态中字节的循环移位运算。这个运算可以表示成为Bi,j=Ai,(i+j)mod4,3.列混合变换:将状态的每一列视为上多项式,然后乘以固定多项式,并模除.其中,(a(x)存在关于的逆元.变换公式如下:,变换的矩阵表示:,列混合变换运算结果:,轮密钥“加”运算:,对状态和每轮的子密钥进行简单的异或操作。每轮子密钥是通过密钥调度算法从主密钥中产生,子密钥长度等于分组长度。轮密钥加运算需要用到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个字

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论