第3章分组密码—3_第1页
第3章分组密码—3_第2页
第3章分组密码—3_第3页
第3章分组密码—3_第4页
第3章分组密码—3_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

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

文档简介

1、1第第3 3章章 分组密码分组密码本章主要内容本章主要内容 概述概述 分组密码的设计原则与评估分组密码的设计原则与评估 分组密码的设计方法分组密码的设计方法 数据加密标准数据加密标准DESDES 高级加密标准高级加密标准AES AES 分组密码的工作模式分组密码的工作模式 其它分组密码其它分组密码 2第第3 3章章 分组密码分组密码3.1 3.1 概述概述 分组密码加解密速度快、易于标准化和便于软硬件实分组密码加解密速度快、易于标准化和便于软硬件实现,得到许多芯片的支持。通常是信息与网络安全中实现,得到许多芯片的支持。通常是信息与网络安全中实现数据加密和认证的核心体制,它在计算机通信和信息现数

2、据加密和认证的核心体制,它在计算机通信和信息系统安全领域有着最广泛的应用。系统安全领域有着最广泛的应用。分组密码(分组密码(Block cipher):是现代密码学的重要体制):是现代密码学的重要体制,是应用最为广泛、影响最大的一种密码体制,其主要,是应用最为广泛、影响最大的一种密码体制,其主要任务是提供数据保密性。分组密码一般是指分组对称密任务是提供数据保密性。分组密码一般是指分组对称密码。码。3第第3 3章章 分组密码分组密码3.1 3.1 概述概述也称块密码,它是将明文消息经编码表示后的二进制序也称块密码,它是将明文消息经编码表示后的二进制序列列M=x0,x1,xi, 划分成若干长度为划

3、分成若干长度为m的组块。的组块。Mi=(x0,x1,xm-1),各组分别在密钥,各组分别在密钥k=(k0,k1,kt-1)的控的控制下转换成长度为制下转换成长度为n的密文分组的密文分组Ci =(c0,c1,cn-1)。其本质。其本质是一个从明文空间(是一个从明文空间(m长的比特串的集合)长的比特串的集合) M到密文空间到密文空间(n长的比特串的集合长的比特串的集合)C的一一映射。的一一映射。 1)一般而言,)一般而言, m=n,即为无数据扩展和压缩的分组密码,即为无数据扩展和压缩的分组密码2)mn,有数据压缩的分组密码,有数据压缩的分组密码4第第3 3章章 分组密码分组密码3.2 3.2 分组

4、密码的设计原则与评估分组密码的设计原则与评估3.2.1 3.2.1 分组密码的设计原则分组密码的设计原则针对安全性的一般设计原则针对安全性的一般设计原则1.明文分组长度和密钥长度望尽可能大明文分组长度和密钥长度望尽可能大 :当分组长度较小时,攻击者通过穷举明文空间,得到密码变换规律,当分组长度较小时,攻击者通过穷举明文空间,得到密码变换规律,难于难于抵御选择明文攻击抵御选择明文攻击如果密钥量小,攻击者可以有效地通过穷举密钥,对密文进行解密,如果密钥量小,攻击者可以有效地通过穷举密钥,对密文进行解密,以得到有意义的明文,难于以得到有意义的明文,难于抵御唯密文攻击抵御唯密文攻击2.混乱原则:指在加

5、解密变换过程中明文、密钥以及密文之间的关混乱原则:指在加解密变换过程中明文、密钥以及密文之间的关系尽可能地复杂化,以防密码破译者采用解析法系尽可能地复杂化,以防密码破译者采用解析法(建立并求解一些方建立并求解一些方程程) 进行破译攻击。混乱原则:进行破译攻击。混乱原则:具有复杂的非线性因素具有复杂的非线性因素3.扩散原则:密钥的每一比特影响密文的许多位,防止对密钥逐段扩散原则:密钥的每一比特影响密文的许多位,防止对密钥逐段破译;明文的每一位也影响密文的许多位,以隐蔽明文的统计特破译;明文的每一位也影响密文的许多位,以隐蔽明文的统计特性。性。5第第3 3章章 分组密码分组密码3.2 3.2 分组

6、密码的设计原则与评估分组密码的设计原则与评估3.2.1 3.2.1 分组密码的设计原则分组密码的设计原则针对实现的设计原则针对实现的设计原则 软件实现的设计原则软件实现的设计原则子块:子块长度适合软件编程,如子块:子块长度适合软件编程,如6464位位,128128位等。位等。简单运算:避免难于实现的按位置换。简单运算:避免难于实现的按位置换。硬件实现的设计原则硬件实现的设计原则 规则结构,以适用于用超大规模集成电规则结构,以适用于用超大规模集成电路实现。路实现。6第第3 3章章 分组密码分组密码3.2.2 3.2.2 分组密码的评估分组密码的评估 (1)(1)安全性安全性评估中的最重要因素,包

7、括下述要点:算法抗密评估中的最重要因素,包括下述要点:算法抗密码分析的强度,可靠的数学基础,算法输出的随机性码分析的强度,可靠的数学基础,算法输出的随机性,与其他候选算法比较的相对安全性,与其他候选算法比较的相对安全性 (2)(2)性能性能在各种平台上的计算效率和对存储空间的需求在各种平台上的计算效率和对存储空间的需求 (3)(3)算法和实现特性算法和实现特性 灵活性、硬件和软件适应性、算法的简单性等灵活性、硬件和软件适应性、算法的简单性等 7第第3 3章章 分组密码分组密码3.3 3.3 分组密码常见的设计方法分组密码常见的设计方法乘积密码乘积密码: :以某种方式连续执行两个或多个密码,所得

8、结果的密以某种方式连续执行两个或多个密码,所得结果的密码强度将强于所有单个密码的强度。码强度将强于所有单个密码的强度。乘积密码常伴随一系列置换与替代操作,常见的乘积密乘积密码常伴随一系列置换与替代操作,常见的乘积密码是码是迭代密码迭代密码Feistel和和SPN是两种常用的分组密码设计是两种常用的分组密码设计结构:结构:DES等分组密码采用等分组密码采用Feistel 结构;结构;AES采用采用SPN结构。结构。8第第3 3章章 分组密码分组密码3.3 3.3 分组密码常见的设计方法分组密码常见的设计方法3.3.1 Feistel3.3.1 Feistel结构结构FeistelFeistel结

9、构是典型的迭代密码结构是典型的迭代密码.Feistel.Feistel结构的解结构的解密与加密是完全一样的,除了所使用的子密钥的顺序密与加密是完全一样的,除了所使用的子密钥的顺序正好相反。正好相反。 Li-1Ri-1FKiLi = Ri-1Ri = Li-1 F(Ri-1, Ki)9第第3 3章章 分组密码分组密码3.3.2 SPN3.3.2 SPN结构结构 SPN结构也是一种特殊的迭代密码结构也是一种特殊的迭代密码 。SPN结构和结构和Feistel结构相比,可以得到更快速的扩散结构相比,可以得到更快速的扩散,但是,但是SPN密码的加解密通常不相似。密码的加解密通常不相似。 103.4 3.

10、4 数据加密标准数据加密标准(DES)(DES)DESDES是从是从19751975年被美国联邦政府确定为非敏感信息的加密标年被美国联邦政府确定为非敏感信息的加密标准准. . 第第3 3章章 分组密码分组密码DES是一个是一个16轮的轮的Feistel型结构密码。型结构密码。明文分组长度为明文分组长度为64比特比特密钥长度为密钥长度为64比特。其中,实用比特。其中,实用56比特,另比特,另8位用作奇偶校验位用作奇偶校验密文分组长度也为密文分组长度也为64比特。比特。11第第3 3章章 分组密码分组密码121. 1. 给定明文,通过一个固定的初始置换给定明文,通过一个固定的初始置换IPIP来重排

11、输来重排输入明文块入明文块P P中的比特,得到比特串中的比特,得到比特串P P0 0=IP(P)=L=IP(P)=L0 0R R0 0,这里这里L L0 0和和R R0 0分别是分别是P P0 0的前的前3232比特和后比特和后3232比特比特IP58504234261810260524436282012462544638302214664564840322416857494133251791595143352719113615345372921135635547393123157初始置换初始置换IPIP第第3 3章章 分组密码分组密码DES算法算法13DESDES算法算法-Feistel-F

12、eistel结构结构2. 2. 按下述规则进行按下述规则进行1616次迭代,即次迭代,即1 1i i1616 这里这里 是异或,是异或,f f 是是一个函数(称为轮函一个函数(称为轮函数);数);1616个长度为个长度为4848比特的子比特的子密钥密钥K Ki i(1(1i i16)16)是是由密钥由密钥k k经密钥编排经密钥编排函数计算出来的函数计算出来的. .-11-1 (,)iiiiiiLRRLf RKL Li-1i-1R Ri-1i-1f f+ +L Li iR Ri ik ki i第第16轮迭代左右两块轮迭代左右两块不交换不交换第第3 3章章 分组密码分组密码1414IP-14084

13、8165624643239747155523633138646145422623037545135321612936444125220602835343115119592734242105018582633141949175725初始置换初始置换的逆置换的逆置换IPIP-1-13.3.对比特串对比特串R R1616L L1616使用逆置换使用逆置换IPIP-1-1得到密文得到密文C C,即,即C=IPC=IP-1-1(R(R1616L L1616) )。(注意(注意L L1616和和R R1616的相反顺序)的相反顺序)第第3 3章章 分组密码分组密码DESDES算法算法15第第3 3章章 分

14、组密码分组密码密码函数密码函数f:Ri-1(32位位)Ki-1(32位位)E (E (Ri-1) )(4848位)位)B B1 1B B2 2B B3 3B B4 4B B5 5B B6 6B B7 7B B8 8S S1 1S S2 2S S3 3S S4 4S S5 5S S6 6S S7 7S S8 8C C1 1C C2 2C C3 3C C4 4C C5 5C C6 6C C7 7C C8 8f (f (Ri-1 ,K ,Ki i) )(3232)位)位+ +P PE EE扩展扩展密钥加密钥加S盒代换盒代换P置换置换有两个参数,分别为有两个参数,分别为长度为长度为3232比特串比特串

15、R Ri-1i-1和和长度为长度为4848比特串比特串K Ki i。产生长度为产生长度为3232比特的比特的输出。输出。16第第3 3章章 分组密码分组密码密码函数密码函数f:E E扩展扩展:3232比特的比特的R Ri-1i-1根据扩展规则扩展为根据扩展规则扩展为4848比特长比特长度的串;度的串;E比特选择表321234545678989101112131213141516171617181920212021222324252425262728292829303132117第第3 3章章 分组密码分组密码密码函数密码函数f:密钥加:密钥加:计算计算 并将结果写成并将结果写成8 8个比特串个

16、比特串B=B1B2B3B4B5B6B7B8 ,作为,作为8 8个个S S盒(盒( S1S8 )的)的输入。每个输入。每个Bi 是长度为是长度为6 6的比特串,记为的比特串,记为Bi =(b1b2b3b4b5b6)1()iiBE RKS S盒代换盒代换:每个每个S S盒盒S Si i是一个固定的是一个固定的4 4* *1616阶矩阵,每行是阶矩阵,每行是015015之间整数的一个置换之间整数的一个置换. . 给给B Bi i计算如下计算如下: : 1) b 1) b1 1b b6 6两个比特确定了两个比特确定了S Si i的行的行r r的二进制表示(的二进制表示(0 0r r3 3),), 2)

17、 b 2) b2 2b b3 3b b4 4b b5 5四个比特确定了四个比特确定了S Si i的列的列c c的二进制表示(的二进制表示(0 0c15c15),), 3) S 3) Si i(B(Bi i) )定义成长度为定义成长度为4 4的比特串的值的比特串的值S Si i(r,c)(r,c)。由此。由此可以算出可以算出C Ci i=S=Si i(B(Bi i),1),1i i8.8.S S盒的输出为:盒的输出为: C=C C=C1 1C C2 2C C3 3C C4 4C C5 5C C6 6C C7 7C C8 8 ,共共3232比特比特18第第3 3章章 分组密码分组密码S S盒盒 (

18、Substitution Box)(Substitution Box)3.5 3.5 数据加密标准数据加密标准DESDES48bit块通过S盒压缩成32bit块48bit寄存器寄存器32bit寄存器寄存器 S1S2S3S4S5S6S7S86bit4bit共共8个个S盒盒19第第3 3章章 分组密码分组密码 (3)(3)压缩替代压缩替代 S S盒盒 (Substitution Box)(Substitution Box)S1盒盒14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 70 15 7 4 14 2 13 1 10 6 12 11 9 5 3 84 1 14 8 13

19、 6 2 11 15 12 9 7 3 10 5 015 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13作用作用:将:将6 6个输入位映射为个输入位映射为4 4个输出位;个输出位;方法方法:若定义:若定义6 6个输入位为个输入位为a1a2a3a4a5a6a1a2a3a4a5a6,a1a1代表第代表第1 1位,位,a6a6代表代表第第6 6位,将位,将a1a6a1a6组成组成2 2位二进制数,对应位二进制数,对应S S盒表中的行号;将盒表中的行号;将a2a3a4a5a2a3a4a5组成一个组成一个4 4位的位的2 2进制数,对应进制数,对应S S盒表中的列号;映射到盒表中的

20、列号;映射到交叉点的数据就是该交叉点的数据就是该S S盒的输出。盒的输出。输入为输入为101011101011的输出是的输出是?交叉点数据为交叉点数据为9 9转化为二进制为:转化为二进制为:10011001a1a6=11-3-a1a6=11-3-第第3 3行行a2a3a4a5=0101-5-a2a3a4a5=0101-5-第第5 5列列3.5 3.5 数据加密标准数据加密标准DESDES2020P置换置换:长度为:长度为32比特串比特串C=C1C2C3C4C5C6C7C8, 根据固定置换根据固定置换P(*)进行置换,得到比特串进行置换,得到比特串P(C).达到雪崩效应。达到雪崩效应。第第3 3

21、章章 分组密码分组密码密码函数密码函数f:16 07 20 21 29 12 28 1701 15 23 26 05 18 31 1002 08 24 14 32 27 03 0919 13 30 06 22 11 04 2521 可以看出,可以看出,DESDES加密需要四个关键点:加密需要四个关键点: (1)IP(1)IP置换表和置换表和IPIP-1-1逆置换表逆置换表; ; (2)(2)函数函数f;f; (3)(3)子密钥子密钥K Ki i。 (4)S(4)S盒的工作原理。盒的工作原理。 DES DES算法的实现步骤算法的实现步骤第第3 3章章 分组密码分组密码3.5 3.5 数据加密标准

22、数据加密标准DESDES22密钥编排算法密钥编排算法根据密钥根据密钥K K来获得每轮中所使用的子密钥来获得每轮中所使用的子密钥K Ki i: :第第3 3章章 分组密码分组密码密钥(56bit)PC-1K1C0置换选择1D0LS1LS1C1D1LS2LS2C2D2PC-2置换选择228bit28bit56bitK2PC-256bitLS16LS16C16D16K16PC-256bit48bit48bit48bit循环左移循环左移1234567811222222091011121314151612222221密钥表的计算逻辑:密钥表的计算逻辑:轮数轮数2357 49 41 33 25 17 9

23、1 58 50 42 34 26 1810 2 59 51 43 25 27 19 11 3 60 52 44 36 63 55 47 39 31 23 15 7 62 54 46 38 30 22 14 6 61 53 45 37 29 21 13 5 28 20 12 4 14 17 11 24 1 5 3 28 15 6 21 1023 19 12 4 26 8 16 7 27 20 13 241 52 31 37 47 5530 40 51 45 33 48 44 49 39 56 34 5346 42 50 36 29 32置换选择置换选择PC-1 置换选择置换选择PC-2子密钥生成

24、器子密钥生成器- -置换选择置换选择第第3章章 分组密码分组密码3.5 3.5 数据加密标准数据加密标准DESDES24第第3 3章章 分组密码分组密码 DES DES结构结构3.5 3.5 数据加密标准数据加密标准DESDES25第第3 3章章 分组密码分组密码3.4.2 DES3.4.2 DES的安全性分析的安全性分析 DESDES算法正式公开发表以后,引起了一场激烈的争论算法正式公开发表以后,引起了一场激烈的争论。19771977年年DiffieDiffie和和HellmanHellman提出了制造一个每秒能测提出了制造一个每秒能测试试106106个密钥的大规模芯片,造价昂贵个密钥的大规

25、模芯片,造价昂贵 19971997年年1 1月月2828日,美国的日,美国的RSARSA公司在互联网上开展了一公司在互联网上开展了一项名为项名为“密钥挑战密钥挑战”的竞赛,悬赏一万美元,破解一的竞赛,悬赏一万美元,破解一段用段用5656比特密钥加密的比特密钥加密的DESDES密文。密文。19971997年年6 6月月1717日日RockeRocke和志愿者们成功地找到了密钥,在计算机上公和志愿者们成功地找到了密钥,在计算机上公布了明文:布了明文:“Strong cryptography makes the Strong cryptography makes the world a safer

26、place”world a safer place”。26第第3 3章章 分组密码分组密码3.5.3 3.5.3 三重三重DESDES为了增强为了增强DESDES算法的安全性,人们提出了许多算法的安全性,人们提出了许多DESDES的改进方案。其中,称为三重的改进方案。其中,称为三重DESDES的多重加密算法是的多重加密算法是DESDES的一个重要的改进算法。的一个重要的改进算法。 DES解密DES加密DES加密DES加密DES解密DES解密明文M密文CK1K2K3加密27第第3 3章章 分组密码分组密码3.5 3.5 高级加密标准高级加密标准AESAESAESAES是是DESDES的替代者。的

27、替代者。19971997年年9 9月月1212日,日,NISTNIST发布了发布了征集算法的正式公告,要求征集算法的正式公告,要求AESAES具有具有128128比特的分组长比特的分组长度,并支持度,并支持128128、192192和和256256比特的密钥长度,而且要比特的密钥长度,而且要求求AESAES要能在全世界范围内免费使用。要能在全世界范围内免费使用。 20002000年年1010月月2 2日,日,RijndaelRijndael算法被选择为高级加密算法被选择为高级加密标准。标准。 AESAES的候选算法根据以下三条主要原则进行评判的候选算法根据以下三条主要原则进行评判 安全性安全性

28、 代价代价 算法与实现特性算法与实现特性283.5.1 AES算法的数学基础算法的数学基础 AES中的运算是按字节的,并把一个字节看成是系数在有限域GF(2)上的次数小于8的多项式(即把一个字节看成是有限域GF(28)中的一个元素) 。 一、有限域GF(28) 可以把出b7b6b5b4b3b2b1b0构成的一个字节看成是系数在(0, 1)中取值的多项式: b7 x7 + b6 x6 + b5 x5 + b4 x4 + b3 x3 + b2 x2 + b1 x + b0 如57(01010111)可写成: x6 + x4 + x2 + x + 1第第3章章 分组密码分组密码291. 多项式加法多

29、项式加法 在多项式表示中,两个元素的和是一个多项式,其系数是两个元素的对应系数的模2加(即异或)。例如:“57”和“83”的和为: 57 83D4,或者采用其多项式记法: 5701010111 x6+x4+x2+x+1 83 10000011 x7+x+1 (x6+x4+x2+x+1)+(x7+x+1)x7+x6+x4+x2 11010100 D4显然,该加法与简单的以字节为单位的比特异或是一致的。 01010111 10000011 110101002. 多项式乘法多项式乘法 有限域GF(28)中两个元素的乘法为模2元域GF(2)上的一个8次不可约多项式的多项式乘法。对于AES这一8次不可约

30、多项式为例:m(x) = x8+x4+x3+x+1 用十六进制表示为11B。第第3章章 分组密码分组密码30 【例】 计算:57 83 = ? (x6+x4+x2+x+1) (x7+x+1) = x13+ x11+ x9+ x8+ x7+ x7+ x5+ x3+ x2+ x+ x6+x4+x2+x+1 =x13+ x11+ x9+ x8+ x6+ x5+ x4+ x3+ 1而: (x13+ x11+ x9+ x8+ x6+ x5+ x4+ x3+ 1)mod m(x) = (x13+ x11+ x9+ x8+ x6+ x5+ x4+ x3+ 1)mod (x8+x4+x3+x+1) ;计算时按

31、降幂排 = x7+x6+1所以: (x6+x4+x2+x+1) (x7+x+1) = x7+x6+1 (多项式表示) 01010111 10000011=11000001 (2进制表示) 57 83 = C1 (16进制表示)第第3章章 分组密码分组密码313. x乘法乘法考虑用 x 乘以多项式B(x): ( b7b6b5b4b3b2b1b0 ) B(x)b7 x7+ b6x6+ b5x5+ b4x4+ b3x3+ b2x2+ b1x + b0 x B(x)b7 x8+ b6x7+ b5x6+ b4x5+ b3x4+ b2x3+ b1x2 + b0 x将上面的结果模m(x)求余就得到x B(x

32、)。如果 b7 0,则:x B(x)b6x7+ b5x6+ b4x5+ b3x4+ b2x3+ b1x2 + b0 x mod (x8+x4+x3+x+1) 即所得结果字节为:即所得结果字节为: (b6b5b4b3b2b1b00)如果 b7 1,则:x B(x) x8+ b6x7+ b5x6+ b4x5+ b3x4+ b2x3+ b1x2 + b0 x mod (x8+x4+x3+x+1) = x8+ b6x7+ b5x6+ b4x5+ b3x4+ b2x3+ b1x2 + b0 x + (x8+x4+x3+x+1) 1 = b6x7+ b5x6+ b4x5+ b3x4+ b2x3+ b1x2

33、 + b0 x + (x4+x3+x+1) 即所得结果字节为:即所得结果字节为: (b6b5b4b3b2b1b00) (00011011)所以 ,x B(x) =(b6b5b4b3b2b1b00) ;b7 0 (b6b5b4b3b2b1b00) (00011011) ;b7 1第第3章章 分组密码分组密码32第第3章章 分组密码分组密码例例1:f(x)=x6+x4+x2+x+1,g(x)=x7+x+1, m(x)=x8+x4+x3+x+1,求,求f(x)*g(x)modm(x)求求57*83现在我们用二进制运算的方法来计算,即(现在我们用二进制运算的方法来计算,即(01010111)*(100

34、00011).首先要求出首先要求出x幂乘幂乘01010111的中间结果:的中间结果:(01010111)*(00000010)=(10101110) (01010111) *(00000100) =(10101110)*(00000010)=(01011100)(00011011)=(01000111)(00011011)=(01000111) (01010111) *(00001000)=(10001110) (01010111) *(00010000)=(00011100)(00011011)=(00000111)(00011011)=(00000111) (01010111) *(001

35、00000)=(00001110) (01010111) *(01000000)=(00011100) (01010111) *(10000000)=(00111000)所以:所以:(01010111) *(10000011)=(01010111)*(00000001)+(00000010)+(10000000) =(01010111) (10101110) (00111000)=(11000001) (10101110) (00111000)=(11000001)1100000111000001等价于等价于x x7 7+x+x6 6+1+133第第3 3章章 分组密码分组密码二、二、GFGF

36、(2 28 8)域上的多项式)域上的多项式一个(4字节)字可以看作是GF( 28 )域上的多项式,每个字对应于一个次数小于4的多项式。1. 1. 多项式加法多项式加法多项式加法通过对应的系数简单相加可以实现。2. 2. 多项式乘法多项式乘法 GF(2 28 8)域上的多项式乘法为模 M(x) = x4 + 1的乘法。343.5.2 AES3.5.2 AES算法总体描述算法总体描述 轮数、密钥长度的关系轮数、密钥长度的关系35 AES 算法加密的实现1. 明文分组和密钥的组织排列方式明文分组和密钥的组织排列方式 012345678910111213141504812159132610143711

37、15Fig 2.1. 以明文分组为以明文分组为128bits为例组成的阵列为例组成的阵列3.5.2 AES3.5.2 AES算法总体描述算法总体描述36 AESAES加解密流程图加解密流程图1给定一个明文给定一个明文M,将轮密钥与将轮密钥与M异或(称异或(称为为轮密钥加轮密钥加);); 2对前对前9轮中的每轮中的每轮轮,用,用s盒进行一次盒进行一次字节字节代换代换操作;对替换的结操作;对替换的结果做果做行移位行移位操作;再对操作;再对结果做结果做列混淆列混淆变换;然变换;然后进行后进行(轮密钥加轮密钥加操作操作3在最后一轮中依次在最后一轮中依次进行进行字节代换字节代换,行移位行移位,列混淆列混

38、淆操作。操作。4得到密文得到密文C。3.5.2 AES3.5.2 AES算法总体描述算法总体描述37AESAES特点特点3.5.2 AES3.5.2 AES算法总体描述算法总体描述38 每一轮加密的过程每一轮加密的过程中间态数据有的地方也被记为中间态数据有的地方也被记为State3.5.2 AES3.5.2 AES算法总体描述算法总体描述39 AES 算法加密的实现1. 明文分组和密钥的组织排列方式明文分组和密钥的组织排列方式 01234567891011121314150481215913261014371115Fig 2.1. 以明文分组为以明文分组为128bits为例组成的阵列为例组成的

39、阵列3.5.2 AES3.5.2 AES算法总体描述算法总体描述401 字节代换(字节代换(SubBytes)S盒的替换操作盒的替换操作3.5.3 算法的基本变换算法的基本变换411 字节代换(字节代换(SubBytes)S盒的替换表盒的替换表3.5.3 算法的基本变换算法的基本变换421 字节代换(字节代换(SubBytes)设输入字节为 A = ( a0 a1a2 a3 a4 a5 a6 a7 ), (1) 先将该字节A变换为有限域GF(2)中的乘法逆元素T。 T= A-1 mod m(x) ; m(x) = x8+x4+x3+x+1 即 AT TA 1mod m(x) (2) 对X作GF

40、(2)上的仿射变换: Y = M T B0110001111111000011111000011111000011111100011111100011111100011111100017654321076543210ttttttttyyyyyyyyYMTB3.5.3 算法的基本变换算法的基本变换43S盒字节代换举例盒字节代换举例3.5.3 算法的基本变换算法的基本变换442、行移位变换、行移位变换 ShiftRows(): 在行移位(ShiftRows)变换中,状态矩阵中的每一行将以字节为单位,循环右移不同的位移量。33323130232221201312111003020100sssssss

41、sssssssss32313033212023221013121103020100ssssssssssssssss循环左移1字节循环左移2字节循环左移3字节第0行不变453、列混合变换、列混合变换 MixColumns(): 列混合变换MixColumns()对一个状态逐列进行变换,它将一个状态的每一列视为有限域GF(28)上的一个多项式。 在列混合变换中,每一列所表示的多项式将乘以一个固定的多项式C(x), C(x)=03 x3+01 x2+01x +02 对应4字节向量为( 03 01 01 02),模多项式为 (x4 + 1)。46列混淆的数学基础列混淆的数学基础 b0 c0 c3 c2

42、 c1 a0 b1 = c1 c0 c3 c2 a1 b2 c2 c1 c0 c3 a2 b3 c3 c2 c1 c0 a347列混淆的数学基础列混淆的数学基础 b0 02 03 01 01 a0 b1 = 01 02 03 01 a1 b2 01 01 02 03 a2 b3 03 01 01 02 a3AES中,中,48AddRoundKey(AddRoundKey(轮密钥加轮密钥加) )将轮密钥与中间态数据(将轮密钥与中间态数据(State)按比特异或。)按比特异或。轮密钥是通过轮密钥是通过Key Schedule过程从密码密钥中得到的,过程从密码密钥中得到的,轮密钥长度等于分组长度。轮

43、密钥长度等于分组长度。K0,0K0,1K0,2K0,3K1,0K1,1K1,2K1,3K2,0K2,1K2,2K2,3K3,0K3,1K3,2K3,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,3K3,3 K3,3 B3,3 (mod 2)AES每轮密钥加操作,需要每轮密钥加操作,需要128bit(16字节,字节,4个字)的轮密钥。算法中有个字)的轮密钥。算法中有11次次轮密钥操作。故轮

44、密钥操作。故AES算法共需要算法共需要44个字个字长度的密钥。长度的密钥。49密钥扩展密钥扩展K0,0K0,1K0,2K0,3K1,0K1,1K1,2K1,3K2,0K2,1K2,2K2,3K3,0K3,1K3,2K3,3K0K1K2K3K0K1K2K3K4K5K6K7+K4的生成:下页的生成:下页K5、K6、K7的生成:如右的生成:如右50K0K1K2K3K4K5K6K7ByteSubstitutionByteRotKte+RconK4的生成的生成51Wi-4Wi-3Wi-2Wi-1WiByteSubstituionByteRotKte+Rcons+Key expKnsion Key exp

45、Knsion 4 = i 4 ( Rnd + 1 )i mod 4 = 0i mod 4 != 052轮密钥选取轮密钥选取K0K1K2K3K4K5K6K7K8K9K10K11K12轮密钥轮密钥0轮密钥轮密钥1轮密钥轮密钥253第第3 3章章 分组密码分组密码3.6 3.6 分组密码的工作模式分组密码的工作模式 DESAESDESAES算法只解决了如何对一个算法只解决了如何对一个6464128128比特的明比特的明文分组进行加密保护的问题文分组进行加密保护的问题, ,对于比特数不等于对于比特数不等于6464 128的明文如何加密的明文如何加密, ,并不关心。这个问题并不关心。这个问题, ,就由分

46、就由分组密码的工作模式解决。组密码的工作模式解决。54第第3 3章章 分组密码分组密码3.6 3.6 分组密码的工作模式分组密码的工作模式分组密码的分组密码的“工作模式工作模式”是指以某个分是指以某个分组密码算法为基础组密码算法为基础,解决对任意长度的明文的解决对任意长度的明文的加密问题的方法。加密问题的方法。 1电码本(ECB)模式 2密码分组链接(CBC)模式 3密码反馈(CFB)模式 4输出反馈(OFB)模式 5. 计数器模式这五种工作模式适用于不同的应用需求这五种工作模式适用于不同的应用需求. .55(),1,2, .ikiCEMin3.6 3.6 分组密码的工作模式分组密码的工作模式3.6.13.6.1电子密码本模式(电子密码本模式(ECBECB)56第第3 3章章 分组密码分组密码3.6 3.6 分组密码的工作模式分组密码的工作模式3.6.13.6.1电子密码

温馨提示

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

最新文档

评论

0/150

提交评论