密码学基础课件:第八讲 对称密码学-3_第1页
密码学基础课件:第八讲 对称密码学-3_第2页
密码学基础课件:第八讲 对称密码学-3_第3页
密码学基础课件:第八讲 对称密码学-3_第4页
密码学基础课件:第八讲 对称密码学-3_第5页
已阅读5页,还剩40页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

1、第八讲 对称密码学-3AESAES 1997年1月,美国NIST向全世界密码学界发出征集21世纪高级加密标准(AESAdvanced Encryption Standard)算法的公告,并成立了AES标准工作研究室,1997年4月15日的例会制定了对AES的评估标准。 AES的标准提纲:(1)AES是公开的;(2)AES为单钥体制分组密码;(3)AES的密钥长度可变,可按需要增大;(4)AES适于用软件和硬件实现;(5)AES可以自由地使用,或按符合美国国家标准(ANST)策略的条件使用;(6)满足以上要求的AES算法,需按下述条件判断优劣:a. 安全性,b. 计算效率, c. 内存要求, d

2、. 使用简便性,e. 灵活性。 AES 1998年4月15日全面征集AES算法的工作结束。1998年8月20日举行了首届AES讨论会,对涉及14个国家的密码学家所提出的候选AES算法进行了评估和测试,初选并公布了15个被选方案,供大家公开讨论。 15个候选算法有:CAST-256,RC-6,CRYPTON-128,DEAL-128,FROG,简易布丁密码,LOKI-97,MAGENTA,MARS,Vaudenay的抗相关快速密码, RIJNDAEL,SAFER+,SERPENT,E-2,TWOFISH。这些算法设计思想新颖,技术水平先进,算法的强度都超过3-DES,实现速度快于3-DES。 1

3、999年8月9日NIST宣布第二轮筛选出的5个候选算法为:MARS(C.Burwick等,IBM),RC6TM(R. Rivest等,RSA Lab.),RIJNDEAL(J. Daemen,比),SERPENT(R. Anderson等,英、以、挪威),TWOFISH(B. Schiener)。AES2000年4月13日,第三次AES会议上,对这5个候选算法的各种分析结果进行了讨论。 2000年10月,由比利时的Joan Daemen和Vincent Rijmen提出的算法最终胜出。2001年11月,NIST完成了评估并发布了最终标准(FIPS PUB 197),选择Rijndeal作为AE

4、S算法。AES的设计原则能抵抗所有已知的攻击;在各种平台上易于实现,速度快;设计简单。 Rijndael是一个分组密码算法,其分组长度和密钥长度相互独立,都可以改变。分组长度(bit)128192256密钥长度(bit)128192256表 1. 分组长度和密钥长度的不同取值AES算法结构 AES 算法加密部分的实现1. 明文分组和密钥的组织排列方式 01234567891011121314150481215913261014371115Fig 1.1. 以明文分组为128bits为例组成的阵列04812159132610143711150481216201591317212610141822

5、3711151923048121620242815913172125292610141822263037111519232731Fig 1.2. 以明文分组(或密钥)为128bits、192bits 、256bits为例组成的阵列一些相关的的术语定义和表示状态(State):密码运算的中间结果称为状态。State的表示:状态用以字节为基本构成元素的矩阵阵列来表示,该阵列有4行,列数记为Nb。 Nb=分组长度(bits) 32 Nb可以取的值为4,6,8,对应的分组长度为128, 192, 256 bits。密码密钥(Cipher Key)的表示: Cipher Key类似地用一个4行的矩阵阵列

6、来表示,列数记为Nk。 Nk=密钥长度(bits)32 Nk可以取的值为4,6,8,对应的密钥长度为128, 192, 256 bits。Fig 1.3. 当Nb=6时的状态和Nk=4时的密钥布局a0,0a0,1a0,2a0,3a0,4a0,5a1,0a1,1a1,2a1,3a1,4a1,5a2,0a2,1a2,2a2,3a2,4a2,5a3,0a3,1a3,2a3,3a3,4a3,5Nb = 6Block Length = 192 bitsK0,0K0,1K0,2K0,3K1,0K1,1K1,2K1,3K2,0K2,1K2,2K2,3K3,0K3,1K3,2K3,3Nk = 4Key Len

7、gth = 128 bitsFig 1.4. 分组长度和密钥长度均为128 bits时的Rijndael加密算法框图Data / Key AdditionRnd0Rnd1Rnd8FinalRndKeyScheduleCipherTextKeyPlainText表 1.2. 圈数(Round)的不同取值圈数(Round)Block Length=128Block Length=192Block Length=256Key Length=128101214Key Length=192121214Key Length=256141414Fig 1.5. Rijndael Round的构成ByteSu

8、bstitutionByteRotationMixColumn+RoundKey一般的圈变换ByteSubstitutionByteRotation+RoundKey最后一圈的圈变换用伪代码表示的Rijndael圈变换一般的圈变换Round(State, RoundKey) ByteSubstitution; ByteRotation; MixColumn; AddRounKey; 结尾圈的变换FinalRound(State, RoundKey) ByteSubstituion; ByteRotation; AddRoundKey; ByteSubstitution(字节替代) ByteSu

9、bstitution是一个非线性的字节替代,独立地在每个状态字节上进行运算。它包括两个变换。 1. 在有限域GF(28)上求乘法逆,00映射到它自身。 2. 在GF(2)上进行下面的仿射变换: y0 1 1 1 1 1 0 0 0 x0 0y1 0 1 1 1 1 1 0 0 x1 1y2 0 0 1 1 1 1 1 0 x2 1y3 0 0 0 1 1 1 1 1 x3 0y4 1 0 0 0 1 1 1 1 x4 0y5 1 1 0 0 0 1 1 1 x5 0y6 1 1 1 0 0 0 1 1 x6 1y7 1 1 1 1 0 0 0 1 x7 1例3.5Fig 1.6. ByteSu

10、bstitution该变换可以用一个256字节的表来实现B0,0B0,1B0,2B0,3B1,0B1,1B1,2B1,3B2,0B2,1B2,2B2,3B3,0B3,1B3,2B3,3A0,0A0,1A0,2A0,3A1,0A1,1A1,2A1,3A2,0A2,1A2,2A2,3A3,0A3,1A3,2A3,3取逆仿射变换那个256字节的表ByteRotation(字节移位) 在ByteRotation变换中,状态阵列的后3行循环移位不同的偏移量。第1行循环移位C1字节,第2行循环移位C2字节,第3行循环移位C3字节。 偏移量C1、C2、C3与分组长度Nb有关,如下表所示:NbC1C2C341

11、2361238134Fig 1.7. ByteRotation04812159132610143711150481259131101426153711循环左移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例子 04 02 03 01 01

12、 d4 66 = 01 02 03 01 bf 81 01 01 02 03 5d e5 03 01 01 02 30Fig 1.8. MixColumn这一运算作用在每一列上A0,0A0,1A0,2A0,3A1,0A1,1A1,2A1,3A2,0A2,1A2,2A2,3A3,0A3,1A3,2A3,3B0,0B0,1B0,2B0,3B1,0B1,1B1,2B1,3B2,0B2,1B2,2B2,3B3,0B3,1B3,2B3,3 C(X)评价一个比特变化,导致不同的逆元,该逆元的比特统计特性进行了扩散。(字节代换)一个字节变化,导致一列变化。(列混合)一列字节变化,导致4列变化(行移位)Add

13、RoundKey(圈密钥加) 将圈密钥与状态按比特异或。圈密钥是通过Key Schedule过程从密码密钥中得到的,圈密钥长度等于分组长度。A0,0A0,1A0,2A0,3A1,0A1,1A1,2A1,3A2,0A2,1A2,2A2,3A3,0A3,1A3,2A3,3K0,0K0,1K0,2K0,3K1,0K1,1K1,2K1,3K2,0K2,1K2,2K2,3K3,0K3,1K3,2K3,3B0,0B0,1B0,2B0,3B1,0B1,1B1,2B1,3B2,0B2,1B2,2B2,3B3,0B3,1B3,2B3,3A3,3 K3,3 B3,3 (mod 2)Fig 1.7. Rijndae

14、l加密及解密的标准结构Block , Key Length = 128 bitsPlaintext(128 bits)ByteSubstitutionMixColumnCiphertext(128 bits) K0Kii=10ByteRotationfor i=1 to 10Ciphertext(128 bits) K10InvMixCoumnInvByteRotationInvByteSubstitution KiPlaintext(128 bits)i = 9for i=9 to 0加密解密Rijndael密码的构成一个初始圈密钥相加;(Rnd1)圈;一个结尾圈。Rijndael密码由以下

15、三个部分组成:用伪代码表示的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加密算法描述Rijndael ( State, ExpandedKey ) AddRound

16、Key ( 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。将密码密钥扩展成一个扩展密钥。从扩展密钥中取出圈密钥:第一个圈密钥由扩展密钥的第一个Nb个4字节字,第二个圈密钥由接下来的Nb

17、个4字节字组成,以此类推。密钥扩展K0,0K0,1K0,2K0,3K1,0K1,1K1,2K1,3K2,0K2,1K2,2K2,3K3,0K3,1K3,2K3,3K0K1K2K3K0K1K2K3K4K5K6K7+K0K1K2K3K4K5K6K7ByteSubstitutionByteRotate+RconWi-4Wi-3Wi-2Wi-1WiByteSubstituionByteRotate+Rcons+Key expansion4 = i 4 ( Rnd + 1 )i mod 4 = 0i mod 4 != 0圈密钥选取K0K1K2K3K4K5K6K7K8K9K10K11K12圈密钥0圈密钥1

18、圈密钥2AES 算法的在软硬件上的实现首先对算法的各步骤进行合并处理: ButeSubstitution变换: bi,j = S ai,j ShiftRow变换: c0,j b0,j c1,j = b1,j-1 c2,j b2,j-2 c3,j b3,j-3MixColumn变换: d0,j 02 03 01 01 c0,j d1,j = 01 02 03 01 c1,j d2,j 01 01 02 03 c2,j d3,j 03 01 01 02 c3,jAddRoundKey: e0,j d0,j k0,j e1,j = d1,j + k1,j e2,j d2,j k2,j e3,j d3,j k3,j将以上各步合并: e 02 03 01 01 s a k e = 02 03 01 01 s a + k e 02 03 01 01 s a k e 02 03 01 01 s a k改写成向量的线性组合: e 02 03 01 01 k e =sa 01 + sa 02 +sa

温馨提示

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

评论

0/150

提交评论