-1-第二章分组密码技术-2-第二章分组密码技术11.密码学的历史2.香农安全理论3.分组密码的基本概念4.分组密码设计原理5.典型的分组密码算法6.对分组密码的攻击7.分组密码的工作模式8.多重加密-3-密码学的历史密码学从形成到发展经历了5个重要阶段1.手工阶段2.机械阶段3.电气阶段4.计算机阶段5.网络化阶段。-4-第二章分组密码技术21.密码学的历史2.香农安全理论3.分组密码的基本概念4.分组密码设计原理5.典型的分组密码算法6.对分组密码的攻击7.分组密码的工作模式8.多重加密-5-保密系统模型-6-熵的概念定义2.1给定离散随机事件集合{|1,2,,}iXxin,事件ix出现的概率()0,ipx…1,2,,in,且1()1niipx。定义事件ix的信息量为2()log()iiIxpx(2.1)定义熵为集合X中事件的信息量的统计平均值21()()log()niiiHXpxpx(2.2)-7-联合熵定义2.2给定离散随机事件集合{|1,2,,}iXxin,{|1,2,,}iYyin,事件ix,iy出现的概率()0,()0,1,2,,iipypxin厖,且1()1niipx,1()1niipy,则联合事件集合{|1,2,,;1,2,,}ijXYxyinjn,(,)0ijpxy…,11()()1nnijijpxpy。集合XY的联合熵定义为2,1()(,)log(,)nijijijHXYpxypxy(2.3)-8-条件熵集合X相对于事件iyY的条件熵定义为21(|)(,)log(|)njijijiHXypxypxy(2.4)集合X相对于集合Y的条件熵定义为2111(|)(|)(,)log(|)nnnjijijjjiHXYHXypxypxy(2.5)-9-理论保密性定义2.3一个密码系统(,,,,)PCKED被称为是无条件安全的密码系统,如果满足()(|)HPHPC(2.6)“一次一密”的密码系统就是这样的无条件安全的密码系统。-10-实际保密性一个密码系统是计算上安全的是指,利用最好的算法(已知或者是未知的)来破解这个密码系统需要的计算量是O(N)的,N是一个很大的数。的计算量超过了攻击者所能控制的所有计算资源在合理的时间内能够完成的计算量。所以计算上安全也称为实际的保密性。-11-1.密码学的历史2.香农安全理论3.分组密码的基本概念4.分组密码设计原理5.典型的分组密码算法6.对分组密码的攻击7.分组密码的工作模式8.多重加密第二章分组密码技术3-12-什么是分组密码分组密码,顾名思义是将明文分成固定长度的组,如64位一组,用同一密钥和算法对每一块分组加密,输出固定长度的密文。分组密码加密函数实际上是从n位明文块到n位密文块之间的映射:{0,1}{0,1}nnkE,n称为块长。解密函数1kkDE满足(())kkDEmm。为了保证解密的唯一性,要求加密函数必须是双射。可以把加密函数看作长为n的位串集合上的置换,不同的密钥k定义不同的置换。-13-1.密码学的历史2.香农安全理论3.分组密码的基本概念4.分组密码设计原理5.典型的分组密码算法6.对分组密码的攻击7.分组密码的工作模式8.多重加密第二章分组密码技术4-14-分组加密的评价标准评价分组加密算法及其工作模式的一般标准是:预估的安全水平(如破译需要的密文数量等)密钥的有效位长分组大小加密映射的复杂性数据的扩张(DataExpansion)错误的扩散(Diffusion)/传播(Propagation)-15-分组加密的一般结构-16-Feistel网络结构-17-SP网络结构-18-1.密码学的历史2.香农安全理论3.分组密码的基本概念4.分组密码设计原理5.典型的分组密码算法6.对分组密码的攻击7.分组密码的工作模式8.多重加密第二章分组密码技术5-19-DES概述分组加密算法:明文和密文为64位分组长度;对称算法:加密和解密除密钥编排不同外,使用同一算法;密钥长度:56位,但每个第8位为奇偶校验位,可忽略;密钥可为任意的56位数,但存在弱密钥,容易避开;采用混乱和扩散的组合,每个组合先替代后置换,共16轮;只使用了标准的算术和逻辑运算,易于实现;-20-DES加密算法描述DES加密算法的一般描述-21-初始置换IP和初始逆置换IP—1-22-DES的一轮叠代Li-1(32比特)Ri-1(32比特)Li(32比特)48比特寄存器选择扩展运算E48比特寄存器子密钥Ki(48比特)32比特寄存器选择压缩运算S置换运算PRi(32比特)Li=Ri-1Li=Ri-1;Ri=Li-1F(Ri-1,Ki)-23-扩展置换E-盒-32位扩展到48位扩展-24-压缩替代S-盒-48位压缩到32位-25-压缩替代S-盒S-盒1S-盒4S-盒3S-盒2S-盒5S-盒6S-盒7S-盒8-26-S-盒的构造1234561626234521133911001110019bbbbbbbbSbbbb行:-盒子行列列:值:14=1100-27-S-盒的构造要求S-盒是许多密码算法的唯一非线性部件,因此,它的密码强度决定了整个算法的安全强度;提供了密码算法所必须的混乱作用;如何全面准确地度量S-盒的密码强度和设计有效的S-盒是分组密码设计和分析中的难题;非线性度、差分均匀性、严格雪崩准则、可逆性、没有陷门;-28-S-盒的构造准则S盒的每一行应该包括所有16种比特组合;没有一个S盒是它输入变量的线性函数;改变S盒的一个输入位至少要引起两位的输出改变;S盒的两个输入刚好在两个中间比特不同,则输出必须至少两个比特不同;S盒的两个输入在前两位不同,最后两位相同,两个输出必须不同;-29-P-盒的构造准则每个S盒输出的四个比特被分布开,一边其中的两个影响下次循环的中间比特,另外两个影响两端比特;每个S盒输出的四个比特影响下个循环6个不同的S盒;P置换的目的是增强算法的扩散特性,提供雪崩效应(明文或密钥的一个比特的变动都引起密文许多比特的变化)-30-k1(56位)(48位)ki(56位)(48位)64位密钥置换选择1C0(28位)D0(28位)循环左移循环左移C1(28位)D1(28位)循环左移循环左移Ci(28位)Di(28位)置换选择2置换选择2密钥表的计算逻辑循环左移:119121102321124212252132621427215282161DES中的子密钥的生成-31-DES的强度分析循环次数:循环次数越多,密码分析难度越大,循环次数的选择准则是密码分析工作量大于简单的穷举式密钥搜索工作量;函数F:依赖于S盒的使用,非线性程度越大,密码分析难度越大,还应具有良好雪崩性质;密钥调度算法:选择子密钥时要使得推测各个子密钥和由此推出主密钥的难度尽可能大;-32-IDEA(InternationalDataEncryptionAlgorithm)瑞士联邦理工学院XuejiaLai和JamesMassey提出;IDEA是对称、分组密码算法,输入明文为64位,密钥为128位,生成的密文为64位,它的设计目标:(1)密码强度:扰乱通过三种操作实现(逐位异或,整数模相加或乘积);(2)使用方便性:设计考虑到硬件和软件的实现;IDEA是一种相对较新的算法,虽有坚实理论基础,但仍应谨慎使用(尽管该算法已被证明可对抗差分分析和线性分析);IDEA是一种专利算法(在欧洲和美国),专利由Ascom-TechAG拥有,PGP中已实现了IDEA;-33-IDEA框图-34-IDEA轮函数-35-AESAES是DES的替代品,希望能有20-30年的使用寿命。在评选过程中,最后的5个候选算法:Mars,RC6,Rijndael,Serpent,和Twofish。2000年10月,Rijndael算法被选中;Rijndael算法的原型是Square算法,其设计策略是宽轨迹策略(WideTrailStrategy),以针对差分分析和线性分析;Rijndael是迭代分组密码,其分组长度和密钥长度都是可变的,为了满足AES的要求,分组长度为128bit,密码长度为128/192/256bit,相应的轮数r为10/12/14;2001年11月,美国NIST发布标准FIPSPUB197;-36-AES框图-37-1.密码学的历史2.香农安全理论3.分组密码的基本概念4.分组密码设计原理5.典型的分组密码算法6.对分组密码的攻击7.分组密码的工作模式8.多重加密第二章分组密码技术6-38-对分组密码的攻击1.穷举分析2.差分分析3.线性分析-39-1.密码学的历史2.香农安全理论3.分组密码的基本概念4.分组密码设计原理5.典型的分组密码算法6.对分组密码的攻击7.分组密码的工作模式8.多重加密第二章分组密码技术7-40-分组密码的工作模式电子密码本ECB(ElectronicCodebookMode)明文每次处理64bit,每个明文分组用同一密钥加密;密码分组链接CBC(CipherBlockChaining)输入是当前明文和前边明文的异或,每个分组使用相同密码;密码反馈CFB(CipherFeedbackMode)分组密码流密码;输出反馈OFB(OutputFeedbackMode)分组密码流密码;-41-电子密码本ECBiKiiKiC=E(P)P=D(C)-42-ECB的特点简单有效,可以并行实现;不能隐藏明文的模式信息,相同明文生成相同密文,同样信息多次出现造成泄漏;对明文的主动攻击是可能的信息块可被替换、重排、删除、重放;误差传递:密文块损坏仅对应明文块损坏;适合于传输短信息;-43-密码分组链接CBCiKii-1iKii-1C=E(PC)P=D(C)C-44-CBC的特点没有已知的并行实现算法;能隐藏明文的模式信息,相同明文生成不同密文,初始化向量IV可以用来改变第一块;对明文的主动攻击是不容易的,信息块不容易被替换、重排、删除、重放;误差传递:密文块损坏两明文块损坏;安全性好于ECB,适合于传输长度大于64位的报文,还可以进行用户鉴别,是大多系统的标准如SSL、IPSec;-45-密码反馈CFB加密Ci=Pi(EK(Si)的高j位);Si+1=(Sij)|Ci-46-密码反馈CFB解密Pi=Ci(EK(Si)的高j位);Si+1=(Sij)|Ci-47-CFB的特点分组密码流密码;没有已知的并行实现算法;隐藏了明文模式;需要共同的移位寄存器初始值IV;对于不同的消息,IV必须唯一;误差传递:一个单元损坏影响多个单元;-48-输出反馈OFB加密Ci=Pi(EK(Si)的高j位);Si+1=(Sij)|(EK(Si)的高j位)-49-输出反馈OFB解密Pi=Ci(EK(Si)的高j位);Si+1=(Sij)|(EK(Si)的高j位)-50-OFB的特点分组密码流密码;没有已知的并行实现算法;隐藏了明文模式;需要共同的移位寄存器初始值IV,对于不同的消息,IV必须唯一;误差传递:一个单元损坏只影响对应单元;对明文的主动攻击可能,信息块可被替换、重排、删除、重放;安全性较CFB差;-51-1.密码学的历史2.香农安全理论3.分组密码的基本概念4.分组密码设计原理5.典型的分组密码算法6.对分组密码的攻击7.分组密码的工作模式8.多重加密第二章分组密码技术8-52-DES的密钥长度分析关于DES算法的另一个最有争议的问题就是担心实际56比特的密钥长度不足以抵御穷举式攻击,因为密钥量只有个–强力攻击:平均255次尝试–差分密码分析法:平均247次尝试–线性密码分析法:平均243次尝试早在1977年,Diffie和Hellman已建议制造一个每秒能测试100万个密钥的VLSI芯片。每秒测试100万个密钥的机器大约需要一天就可以搜索整