高级加密标准AES.ppt

上传人:本田雅阁 文档编号:2480044 上传时间:2019-04-02 格式:PPT 页数:37 大小:262.51KB
返回 下载 相关 举报
高级加密标准AES.ppt_第1页
第1页 / 共37页
高级加密标准AES.ppt_第2页
第2页 / 共37页
高级加密标准AES.ppt_第3页
第3页 / 共37页
亲,该文档总共37页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《高级加密标准AES.ppt》由会员分享,可在线阅读,更多相关《高级加密标准AES.ppt(37页珍藏版)》请在三一文库上搜索。

1、第5章 高级加密标准(AES),AES的起源 AES的设计原则 AES算法描述,1. AES的起源,1997年9月,NIST征集AES方案,以替代DES。 1999年8月,以下5个方案成为最终候选方案:MARS, RC6, Rijndael, Serpent, Twofish。 2000年10月,由比利时的Joan Daemen和Vincent Rijmen提出的算法最终胜出。( Rijndael 读成Rain Doll。) http:/www.esat.kuleuven.ac.be/rijmen/rijndael/,2. AES的设计原则,能抵抗所有已知的攻击; 在各种平台上易于实现,速度快

2、; 设计简单。,Rijndael是一个分组密码算法,其分组长度和密钥长度相互独立,都可以改变。,表 1. 分组长度和密钥长度的不同取值,3. AES 算法的一般描述,Rijndael Round的构成,ByteSubstitution,ByteRotation,MixColumn,+,Round Key,一般的轮变换,ByteSubstitution,ByteRotation,+,Round Key,最后一轮的轮变换,3. AES 算法加密部分的实现,明文分组和密钥的组织排列方式,Fig 1. 以明文分组为128bits为例组成的阵列,Fig 2. 以明文分组(或密钥)为128bits、192

3、bits 、256bits为例组成的阵列,一些相关的的术语定义和表示,状态(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

4、时的密钥布局,Nb = 6 Block Length = 192 bits,Nk = 4 Key Length = 128 bits,Fig 4. 分组长度和密钥长度均为128 bits时的Rijndael加密算法框图,Data / Key Addition,Rnd 0,Rnd 1,Rnd 8,Final Rnd,Key Schedule,Cipher Text,Key,Plain Text,表 2. 轮数(Round)的不同取值,用伪代码表示的Rijndael轮变换,一般的轮变换 Round(State, RoundKey) ByteSubstitution; ByteRotation; M

5、ixColumn; AddRounKey; ,结尾轮变换 FinalRound(State, RoundKey) ByteSubstituion; ByteRotation; AddRoundKey; ,ByteSubstitution(字节替代),ByteSubstitution是一个非线性的字节替代,独立地在每个状态字节上进行运算。它包括两个变换。 1. 在有限域GF(28)上求乘法逆,00映射到它自身。 2. 在GF(2)上进行下面的仿射变换:,y0 1 1 1 1 1 0 0 0 x0 0 y1 0 1 1 1 1 1 0 0 x1 1 y2 0 0 1 1 1 1 1 0 x2 1

6、y3 0 0 0 1 1 1 1 1 x3 0 y4 1 0 0 0 1 1 1 1 x4 0 y5 1 1 0 0 0 1 1 1 x5 0 y6 1 1 1 0 0 0 1 1 x6 1 y7 1 1 1 1 0 0 0 1 x7 1,Fig 6. ByteSubstitution 该变换可以用一个256字节的表来实现,取逆 仿射变换,ByteRotation(字节移位),在ByteRotation变换中,状态阵列的后3行循环移位不同的偏移量。第1行循环移位C1字节,第2行循环移位C2字节,第3行循环移位C3字节。 偏移量C1、C2、C3与分组长度Nb有关,如下表所示:,Fig 7. By

7、teRotation,循环左移1字节,循环左移2字节,循环左移3字节,MixColumn(列混合),将状态的列看作是有限域GF(28)上的多项式a(x),与多项式c(x) = 03 x3 + 01 x2 + 01 x +02相乘(模x41)。 令b(x) = c(x) a(x),写成矩阵形式为:,b0 02 03 01 01 a0 b1 = 01 02 03 01 a1 b2 01 01 02 03 a2 b3 03 01 01 02 a3,Fig 8. MixColumn 这一运算作用在每一列上, C(X),2.4 AddRoundKey(轮密钥加),将轮密钥与状态按比特异或。轮密钥是通过K

8、ey Schedule过程从密码密钥中得到的,轮密钥长度等于分组长度。,A3,3 K3,3 B3,3 (mod 2),Fig 7. Rijndael加密及解密的标准结构 Block , Key Length = 128 bits,Plaintext(128 bits),ByteSubstitution,MixColumn,Ciphertext(128 bits),K0,Ki,i=10,ByteRotation,for i=1 to 10,Ciphertext(128 bits),K10,InvMixCoumn,InvByteRotation,InvByteSubstitution,Ki,Pla

9、intext(128 bits),i = 9,for i=9 to 0,加密,解密,用伪代码表示的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加密算法描述,Ri

10、jndael ( State, ExpandedKey ) AddRoundKey ( State, ExpandedKey ); For ( i=1; iRnd; i+ ) Round ( State, ExpandedKey + Nb*i ); FinalRound ( State, ExpandedKey + Nb*Rnd ); ,AES 的密钥调度 密钥调度包括两个部分:密钥扩展和轮密钥选取。,密钥bit的总数分组长度(轮数Round1)例如当分组长度为128bits和轮数Round为10时,轮密钥长度为128(101)1408bits。 将密码密钥扩展成一个扩展密钥。 从扩展密钥中取

11、出轮密钥:第一个轮密钥由扩展密钥的第一个Nb个4字节字,第二个圈密钥由接下来的Nb个4字节字组成,以此类推。,密钥扩展,+,+,+,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,轮密钥选取,轮密钥0,轮密钥1,轮密钥2,AES的解密算法,解密算法与加密算法不同 每个阶段均可逆,因此易证解密函授的确可以恢复明文 见图5.7,P.12

12、1,AES 算法的设计原理,GF(28)中乘法使用的多项式是8次不可约多项式列表中的第一个多项式。 ByteSubstitution(称为S盒)在设计时考虑到抵抗差分密码分析、线性密码分析的要求,应满足以下条件:1. 可逆性; 2. 输入比特的线性组合与输出比特的组合之间的最大非平凡相关性的极小化; 3. 异或差分表中最大非平凡值的极小化; 4. GF(28)中代数表示的复杂性; 5. 描述的简单性。,满足前3条准则的S盒的构造方法已被给出,AES的作者从众多候选构造中选择将x映射到它的逆的S盒。该映射过于简单,为了抵抗插入攻击,加入仿射变换: b(x)=(x7 + x6 + x2 + x)

13、+ a(x)(x7 + x6 + x5 + x4 + 1) mod x8 + 1 模数多项式x8 + 1选择为可能是最简单的模数多项式。 可以找到其它的S盒满足以上准则。,MixColumn变换符合以下准则: 1. 可逆性; 2. GF(2)中的线性性; 3. 适当的扩散性能; 4. 8位处理器上实现速度快;5. 对称性; 6. 描述的简单性。选择模数多项式x41可满足准则2、5、6。准则1、3、4要求系数的值要小,故选00、01、02 、 03。 ByteRotation符合以下准则: 1. 4个位移量互不相同且C00; 2. 能抵抗差分截断攻击; 3. 能抗Square攻击; 4. 简单。

14、 从满足准则2和准则3出发,AES的作者选取了最简单的组合。,与一些其它算法的比较:,与DES相比: 1. 无DES中的弱密钥和半弱密钥; 2. 紧凑的设计使得没有足够的空间来隐藏陷门。 与IDEA相比: 无IDEA中的弱密钥。 具有扩展性:密钥长度可以扩展到为32bits倍数的任意密钥长度,分组长度可以扩展到为64bits倍数的任意分组长度。圈数和循环移位偏移量作为参数,要重新定义。,关于有限域G(28)的一些解释,G(28)可看为8位二进制比特串的集合 直观上有限域的运算可为密码算法的实现带来方便 只有满足一些规则后,G(28)才是有限域( 参加第4章,p.95),G(28)上的运算,加法 按位异或 乘法 可通过对多个中间结果的移位运算和异或一个特定的比特串(比如00011011)实现。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1