高级加密标准AES介绍.pptVIP

  • 3
  • 0
  • 约5.49千字
  • 约 40页
  • 2019-12-22 发布于广东
  • 举报
混淆变换示意图 轮密钥加 轮密钥加(AddRoundKey( ))在轮密钥变换中,128位的State按位与128位子密钥异或 也可以看成是两者之间的字节异或 AES的密钥扩展 当分组长度和密钥长度都是128位时,AES的加密算法共迭代10轮,需要11个子密钥 AES的密钥扩展的目的是将输入的128位密钥扩展成11个128位的子密钥 AES的密钥扩展算法是以字为一个基本单位 一个字等于4个字节,共32位,刚好是密钥矩阵的一列 因此4个字(128位)密钥需要扩展成11个子密钥,共44个字 若Nr表示加密算法轮数,那么密钥扩展总共生成Nb(Nr+1)个字 扩展后的密钥编排结果由一个4-byte字的线性数组组成 第一个子密钥的Nk个字由密码的原始密钥直接填充 下面以Nk=4(即密钥为128位)为例,说明AES的密钥扩展过程 密钥扩展过程 (1) 将输入密钥直接复制到扩展密钥数组的前4个字中,得到w[0],w[1],w[2],w[3]。 (2) 然后每次用4个字填充扩展密钥数组w的余下部分,w[i]值依赖于 w[i-1]和 w[i-4],i ≥4。 (3) 当数组w下标不是4的倍数时, w[i]值为 w[i-1]和 w[i-4] 的异或。 (4) 当数组w下标为4的倍数时,按照下面方法计算: ① 将一个字的四个字节循环左移一个字节,即将输入字[b0, b1, b2, b3]变为[b1, b2, b3, b0]; ② 用S盒对输入字的每个字节进行字节代换; ③ 将步骤①和步骤②的结果再与轮常数Rcon[i]相异或 轮常数Rcon[i]是一个字,这个字的最右边三个字节总是0 与轮常数的一个字异或,其结果即是与该字最左边的字节相异或 每轮的轮常数均不同,其定义为Rcon[i] = (RC[i], {00}, {00}, {00}),其中RC[1] ={01},RC[i] = {02} ( RC[i-1]),用多项式表示为RC[i] = x ( RC[i-1]) = xi-1,i≥2 前10个轮常数RC[i]的值如表3.4所示,对应的Rcon[i] 如表3.5所示 AES解密算法 AES解密算法是AES加密算法的逆变换 解密算法和加密算法轮结构的顺序不同 在加密过程中,其轮结构是字节代换、行移位、列混淆和轮密钥加。在解密过程中,其轮结构是逆向行移位、逆向字节代换、轮密钥加和逆向列混淆 其缺点是在于对同时要求加密和解密的应用而言, 需要两个不同的软件或者固件模块 需要构造一个等价的解密算法,解密时各个变换的操作顺序与加密(由逆向变换取代原来的变换)相同 通过两处改进可以使解密算法结构和加密算法结构一致 交换逆向字节代换和逆向字节代换和交换轮密钥加和逆向列混淆 AES的安全性 AES的设计的各个方面都使它具有能够抵抗所有已知攻击的能力 AES的轮函数设计是基于宽轨迹策略(Wide Trail strategy),这种设计策略是针对差分密码分析和线性密码分析制定的 宽轨迹策略的最大优点是可以估计算法的最大差分特征概率和最大线性逼近概率,由此可以评估算法抵抗差分密码分析和线性密码分析的能力 AES的密钥长度也足以抵抗穷举密钥攻击 AES算法对密钥的选择没有任何限制,还没有发现弱密钥和半弱密的存在 高级加密标准 DES存在安全问题,而三重DES算法运行速度比较慢 其次三重DES的分组长度为64位,就效率和安全性而言,分组长度应该更长 美国国家标准技术研究所(NIST )在1997年公开征集新的高级加密标准(Advanced Encryption Standards, AES) 要求AES比3DES快而且至少和3DES一样安全,并特别提出高级加密标准的分组长度为128位的对称分组密码,密钥长度支持128位、192位、256位。 AES的基本运算 AES算法中有些是以字节为单位进行运算 也有的是以4个字节(即一个字)为单位的 AES将一个字节看作是在有限域GF(28)上的一个元素 一个字看成是系数取自GF(28),并且次数小于4的多项式。 AES中的字节运算 AES中一个字节是用有限域GF(28)上的元素表示 有限域上的元素有多种表示方法,AES主要采用多项式表示 有限域GF(28)上的加法定义为二进制多项式的加法,其系数是模2相加, 加法即异或运算(记为 ) 对于两个字节 和 其和为 , 下述表达式彼此等价: (x6+ x4+ x2+ x+1)+(x7+ x+

文档评论(0)

1亿VIP精品文档

相关文档