第三章分组密码 内容提要 93.1分组密码概述 93.2数据加密标准DES 93.3差分密码分析和线性密码分析 3.4分组密码的运行模式 3.5 IDEA 3.6 AES-Rijndael 历华毫子代枝大学 21
内容提要 3.1 分组密码概述 3.2 数据加密标准DES 3.3 差分密码分析和线性密码分析 3.4 分组密码的运行模式 3.5 IDEA 3.6 AES-Rijndael 2/ 第三章 分组密码
第三章分组密码:3.1分组密码概述 3.1.1分组密码的基本概念和发展 分组密码(Block Cipher),一类对称密码算法: 。将明文消息分组,逐组加密; ● 将明文消息编码表示后的数字序列x心1,,…划分成长为的组 x=(c0水1,xm-1)eVm(长为n的失量) 各组分别在密钥k=(ko,k1,,k)∈K控制下变换成输出序列 =(0yoy1,…'m-)∈Vm(长为m的失量) 其加密函数E:VnXK→Vm,K为密钥空间 ● 与流密码相比无记忆性。在相同密钥下分别对长为的输入明文组 实施相同变换,所以只需研究对任一组明文数字的变换规则。 分组密码实质上是字长为m的数字序列的代换密码 密钥k=(ko,k,k.1) 密钥k=(ko,k1…,k1) 分组密码框图 明文 加密算法 解密算法 明文 X=(X0X1…Xn-1) 密文y=00,y1…ym-1) X=(X0X1…,Xm-1) 历些毛子代技大学 3/
3.1.1分组密码的基本概念和发展 分组密码(Block Cipher),一类对称密码算法: ⚫ 将明文消息分组,逐组加密; ⚫ 将明文消息编码表示后的数字序列x0 ,x1 ,…,xi ,…划分成长为n的组 x=(x0 ,x1 ,…,xn-1 )Vn(长为n的矢量) ⚫ 各组分别在密钥k=(k0 ,k1 ,…,kt-1 ) K控制下变换成输出序列 y=(y0 ,y1 ,…,ym-1 ) Vm (长为m的矢量) ⚫ 其加密函数E:Vn×K→Vm,K为密钥空间 ⚫ 与流密码相比无记忆性。在相同密钥下分别对长为n的输入明文组 实施相同变换,所以只需研究对任一组明文数字的变换规则。 ⚫ 分组密码实质上是字长为m的数字序列的代换密码 3/ 第三章 分组密码:3.1 分组密码概述 加密算法 明文 分组密码框图 解密算法 明文 x=(x0,x1,...,xn-1) x=(x0,x1,...,xn-1) 密文 y=(y0,y1,...,ym-1) 密钥 k=(k0,k1,...,kt-1) 密钥 k=(k0,k1,...,kt-1)
第三章分组密码:3.1分组密码概述 3.1.1分组密码的基本概念和发展 算法的输入长度和输出长度 。通常取n(用于加密) 若m≠n,则为有数据扩展(m>n)/压缩(m<n)/的分组密码(用于认证) 当前主流分组密码中,明文x和密文均为二元数字序列 分组密码的优缺点 。适合软硬件实现,软件实现及标准化优于流密码 。没有有效的数学工具,安全性一般无法证明 ·参考资料:《对称密码学》胡予濮,张玉清等著 9 《密码分析学》冯登国 历些毛子代枚大学 4/
3.1.1分组密码的基本概念和发展 算法的输入长度和输出长度 ⚫ 通常取m=n (用于加密) ⚫ 若mn,则为有数据扩展(m>n)/压缩(m<n)/的分组密码(用于认证) 当前主流分组密码中,明文x和密文y均为二元数字序列 分组密码的优缺点 ⚫ 适合软硬件实现,软件实现及标准化优于流密码 ⚫ 没有有效的数学工具,安全性一般无法证明 参考资料:《对称密码学》胡予濮,张玉清等著 《密码分析学》冯登国 4/ 第三章 分组密码:3.1 分组密码概述
第三章分组密码:3.1分组密码概述 3.1.1分组密码的基本概念和发展 分组密码的作用 。加密(适合软硬件实现) 。构成其它密码功能的基本模块 ·1.构造伪随机数生成器。用于产生性能良好的随机数 ·适合产生少量随机数,如ANSIX9.17(基于EDE算法) ·2.构造流密码。 ·速度比移位寄存器慢得多,但软件实现方便 ·采用适当的分组链接模式(CFB或OFB)可实现 ·3.消息认证和数据完整性保护 ·通过用于构造消息认证码MAC)和杂凑函数等来实现 历些毛子代枚大学 5/
3.1.1分组密码的基本概念和发展 分组密码的作用 ⚫ 加密(适合软硬件实现) ⚫ 构成其它密码功能的基本模块 ⚫ 1. 构造伪随机数生成器。用于产生性能良好的随机数 ▪ 适合产生少量随机数,如ANSI X9.17(基于EDE算法) ⚫ 2. 构造流密码。 ▪ 速度比移位寄存器慢得多,但软件实现方便 ▪ 采用适当的分组链接模式(CFB或OFB)可实现 ⚫ 3. 消息认证和数据完整性保护 ▪ 通过用于构造消息认证码(MAC)和杂凑函数等来实现 5/ 第三章 分组密码:3.1 分组密码概述
第三章分组密码:3.1分组密码概述 3.1.1分组密码的基本概念和发展 分组密码算法设计的研究发展概况 。(一)古典密码学阶段 )算法保密,出现了代换和置换的方法 ●2)产生了乘积密码的思想 ·指顺序地执行两个或多个基本密码系统,使最后结果的密码强度高于 每个基本密码系统的强度 ·多轮加密3.1.3节1段),或叫多轮迭代 0 3)基尔霍夫准则:密码系统的安全性不依赖于算法,而只依赖于 密钥的保密性 历些鼋子代枝大学 6/
3.1.1分组密码的基本概念和发展 分组密码算法设计的研究发展概况 (一)古典密码学阶段 ⚫ 1)算法保密,出现了代换和置换的方法 ⚫ 2)产生了乘积密码的思想 ⚫ 指顺序地执行两个或多个基本密码系统,使最后结果的密码强度高于 每个基本密码系统的强度 ⚫ 多轮加密(3.1.3节1段),或叫多轮迭代 ⚫ 3)基尔霍夫准则:密码系统的安全性不依赖于算法,而只依赖于 密钥的保密性 6/ 第三章 分组密码:3.1 分组密码概述
第三章分组密码:3.1分组密码概述 3.1.1分组密码的基本概念和发展 (二)近代密码学阶段(1949-1975)分组密码的酝酿期 1)计算机技术的发展,开始了密码学面向商业应用的设计 ●2)C.E.Shannon(1916~2002)的工作:1949年,建立了保密系统的 通信理论,50-70年代Shannon的工作起着决定性的指导作用。对密 码理论的贡献主要有两点 ·其一,用信息论刻划了密码学中的安全性 提出了语言冗余度和“熵”的概念,论述了破译密码需多少信息量 ·定义了“计算安全”与“无条件安全”; ·其二,提出了密码设计中的扩散准则和混淆准则 在一次一密无法实现的情况下,这两个准则是设计密码体制的最基 本准则。今天仍然是设计密码体制极其重要的指导准则 03) Smith关于Lucifer密码的设计研究 4) Feistel网络密码结构,除子密钥的顺序,加解密算法完全相同 历些毫子代枝大学 71
3.1.1分组密码的基本概念和发展 (二)近代密码学阶段(1949-1975)-分组密码的酝酿期 ⚫ 1)计算机技术的发展,开始了密码学面向商业应用的设计 ⚫ 2)C. E. Shannon(1916~2002 )的工作:1949年,建立了保密系统的 通信理论,50-70年代Shannon的工作起着决定性的指导作用。对密 码理论的贡献主要有两点 ⚫ 其一,用信息论刻划了密码学中的安全性 ▪ 提出了语言冗余度和“熵”的概念,论述了破译密码需多少信息量 ▪ 定义了“计算安全”与“无条件安全”; ⚫ 其二,提出了密码设计中的扩散准则和混淆准则 ▪ 在一次一密无法实现的情况下,这两个准则是设计密码体制的最基 本准则。今天仍然是设计密码体制极其重要的指导准则 ⚫ 3)Smith关于Lucifer密码的设计研究 ⚫ 4)Feistel网络密码结构,除子密钥的顺序,加解密算法完全相同 7/ 第三章 分组密码:3.1 分组密码概述
第三章分组密码:3.1分组密码概述 3.1.1分组密码的基本概念和发展 (三)现代密码学阶段一走向成熟 。)密码学由专门应用转向商业应用 0 美国数据加密标准DES(Data Encryption Standard)颁布,激 发了人们对密码学的研究兴趣 ●寸 早期的研究基本上是围绕DES进行的,推出了一些类似的算法, 例如:LOKI,FEAL,GOST等 2)1990年Biham和Shamira差分密码分析方法differential cryptanalysis)以及1993年Mitsuru Matsui线性密码分析方法 (linear cryptanalysis)问世,从理论上讲是攻击分组密码最有 效的方法,迫使人们不得不研究新的密码结构 。从实际上看强力攻击是攻击分组密码最可靠的方法 。3)1992年DEA密码打破了DES类密码的垄断局面 历粤毛子代枝大学 8/
3.1.1分组密码的基本概念和发展 (三)现代密码学阶段-走向成熟 ⚫ 1)密码学由专门应用转向商业应用 ⚫ 美国数据加密标准DES(Data Encryption Standard)颁布,激 发了人们对密码学的研究兴趣 ⚫ 早期的研究基本上是围绕DES进行的,推出了一些类似的算法, 例如:LOKI,FEAL,GOST等 ⚫ 2)1990年Biham和Shamir差分密码分析方法(differential cryptanalysis)以及1993年Mitsuru Matsui线性密码分析方法 (linear cryptanalysis)问世,从理论上讲是攻击分组密码最有 效的方法,迫使人们不得不研究新的密码结构 ⚫ 从实际上看强力攻击是攻击分组密码最可靠的方法 ⚫ 3)1992年IDEA密码打破了DES类密码的垄断局面 8/ 第三章 分组密码:3.1 分组密码概述
第三章分组密码:3.1分组密码概述 3.1.1分组密码的基本概念和发展 4)随后出现了SQUARE、SHARK、SAFER-64等采用了结构非 常清晰的代换一置换(SP)网络 从理论上给出了最大差分特征概率和最佳线性逼近优势的界, 证明了密码对差分密码分析和线性密码分析的安全性 5)1997~2000年间美国高级加密标准AES的征集活动以及 2000~2003年间欧洲NESSIE计划的实施,再次掀起了密码研究的 新高潮 ·15个AES候选算法和24个NESSIE终选算法反映了当前密码设 计的水平,也可以说是近几年研究成果的一个汇总。 6)目前分组密码形成了很多标准 ● 国际分组密码三大标准DES/3DES、IDEA、AES ·3GPP标准中的KASUMⅡ算法、我国无线网标准SM4 欧洲NESSIE计划中的MSTY1、Camellia、SHACAL2 ●瑞典人Jakob Jonsson和美国人Burt Kaliskij设计的RC6 历些毛子代枝大学 9/
3.1.1分组密码的基本概念和发展 ⚫ 4)随后出现了SQUARE、SHARK、SAFER-64等采用了结构非 常清晰的代换—置换(SP)网络 ⚫ 从理论上给出了最大差分特征概率和最佳线性逼近优势的界, 证明了密码对差分密码分析和线性密码分析的安全性 ⚫ 5)1997~2000年间美国高级加密标准AES的征集活动以及 2000~2003年间欧洲NESSIE计划的实施,再次掀起了密码研究的 新高潮 ⚫ 15个AES候选算法和24个NESSIE终选算法反映了当前密码设 计的水平,也可以说是近几年研究成果的一个汇总。 ⚫ 6)目前分组密码形成了很多标准 ⚫ 国际分组密码三大标准DES/3DES、IDEA、AES ⚫ 3GPP标准中的KASUMI算法、我国无线网标准SM4 ⚫ 欧洲NESSIE计划中的MISTY1、Camellia、SHACAL2 ⚫ 瑞典人Jakob Jonsson和美国人Burt Kaliski设计的RC6 9/ 第三章 分组密码:3.1 分组密码概述
第三章分组密码:3.1分组密码概述 3.1.2分组密码算法的设计要求 分组密码算法设计满足的要求如下: 9I.应用要求: 。实际应用中对于分组密码可能提出多方面的要求,除了 安全性外,还有: 运行速度 ·存储量(程序的长度、数据分组长度、高速缓存大小) 实现平台(硬件、软件、芯片)、 ·运行模式等限制条件。 这些都需要与安全性要求之间进行适当的折中选择 历粤毛子代枚大学 101
3.1.2 分组密码算法的设计要求 分组密码算法设计满足的要求如下: I. 应用要求: ⚫ 实际应用中对于分组密码可能提出多方面的要求,除了 安全性外,还有: ⚫ 运行速度 ⚫ 存储量(程序的长度、数据分组长度、高速缓存大小) ⚫ 实现平台(硬件、软件、芯片)、 ⚫ 运行模式等限制条件。 ⚫ 这些都需要与安全性要求之间进行适当的折中选择 10/ 第三章 分组密码:3.1 分组密码概述
第三章分组密码:3.1分组密码概述 3.1.2分组密码算法的设计要求 9Ⅱ.算法设计的要求 分组密码是一种在密钥控制下的代换(可逆映射),用来对当前输入 的明文数字组进行加密变换,密钥个数决定了不同代换的个数。 ①分组长度n要足够大,使分组代换字母表中的元素个数 2”足够大,防止明文穷举攻击法奏效。 0 这时,可以假定攻击者控制了加密机,但不知道密钥,那么可以 利用加密机黑盒子对所有可能明文加密,看是否等于要攻击的密 文进行破译。也可称为一种可能字攻击 0 DES、DEA等分组密码都采用n=64,在生日攻击下用232组密文成 功概率为1/2,同时要求232×64b=215MB=32GB存贮,故现在采用 穷举攻击已经可以实现(时间存储攻击) 。生日攻击请参考5.2.3节 历些毛子代枚大学 11/
3.1.2 分组密码算法的设计要求 II. 算法设计的要求 ⚫ 分组密码是一种在密钥控制下的代换(可逆映射),用来对当前输入 的明文数字组进行加密变换,密钥个数决定了不同代换的个数。 ① 分组长度n要足够大,使分组代换字母表中的元素个数 2 n足够大,防止明文穷举攻击法奏效。 ⚫ 这时,可以假定攻击者控制了加密机,但不知道密钥,那么可以 利用加密机黑盒子对所有可能明文加密,看是否等于要攻击的密 文进行破译。也可称为一种可能字攻击 ⚫ DES、IDEA等分组密码都采用n=64,在生日攻击下用2 32组密文成 功概率为1/2,同时要求2 32×64b=215MB=32GB存贮,故现在采用 穷举攻击已经可以实现(时间存储攻击) ⚫ 生日攻击请参考5.2.3节 11/ 第三章 分组密码:3.1 分组密码概述