1、第第 2 2 章章 分组密码与数据加密标准分组密码与数据加密标准DESDES2.1 2.1 分组密码的基本概念分组密码的基本概念 分组密码,就是一个明文分组被当作一个整体来产生一个等长(通常)的密文分组的密码。第第 2 2 章章 分组密码与数据加密标准分组密码与数据加密标准DESDES分组密码的一般设计原理分组密码的一般设计原理 分组密码是将明文消息编码表示后的数字(简称分组密码是将明文消息编码表示后的数字(简称明文数字)序列,划分成长度为明文数字)序列,划分成长度为n n的组(可看成长度的组(可看成长度为为n n的矢量),每组分别在密钥的控制下变换成等长的矢量),每组分别在密钥的控制下变换成
2、等长的输出数字(简称密文数字)序列的输出数字(简称密文数字)序列.2.1 2.1 分组密码的基本概念分组密码的基本概念 第第 2 2 章章 分组密码与数据加密标准分组密码与数据加密标准DESDES扩散(diffusion)将明文及密钥的影响尽可能迅速地散布到较多个输出的密文中(将明文冗余度分散到密文中)。产生扩散的最简单方法是通过“置换(Permutation)”(比如:重新排列字符)。分组密码的设计思想(分组密码的设计思想(C.E.Shannon)C.E.Shannon)2.1 2.1 分组密码的基本概念分组密码的基本概念 第第 2 2 章章 分组密码与数据加密标准分组密码与数据加密标准DE
3、SDES混淆混淆(confusion)confusion)其目的在于使作用于明文的密钥和密文之间的关系复杂其目的在于使作用于明文的密钥和密文之间的关系复杂化,是明文和密文之间、密文和密钥之间的统计相关特性化,是明文和密文之间、密文和密钥之间的统计相关特性极小化,从而使极小化,从而使统计分析攻击不能奏效统计分析攻击不能奏效。通常的方法是。通常的方法是“替换替换Substitution”)”Substitution”)”(回忆恺撒密码)。(回忆恺撒密码)。分组密码的设计思想(分组密码的设计思想(C.E.Shannon)C.E.Shannon)2.1 2.1 分组密码的基本概念分组密码的基本概念 第
4、第 2 2 章章 分组密码与数据加密标准分组密码与数据加密标准DESDES1)1)分组长度足够大分组长度足够大 2)2)密钥量要足够大密钥量要足够大 3)3)算法足够复杂(包括子密钥产生算法)算法足够复杂(包括子密钥产生算法)4)4)加密、解密算法简单,易软、硬件实现加密、解密算法简单,易软、硬件实现5)5)无数据扩展无数据扩展 分组密码设计的要求分组密码设计的要求2.1 2.1 分组密码的基本概念分组密码的基本概念 第第 2 2 章章 分组密码与数据加密标准分组密码与数据加密标准DESDES分组密码实现的原则分组密码实现的原则 软件实现的要求软件实现的要求:使用子块和简单的运算:使用子块和简
5、单的运算 密码运算在子块上进行,要求子块的长度能自然地适应密码运算在子块上进行,要求子块的长度能自然地适应软件编程,如软件编程,如8 8、1616、3232比特等;应尽量避免按比特置换,比特等;应尽量避免按比特置换,在子块上所进行的密码运算尽量采用易于软件实现的运算;在子块上所进行的密码运算尽量采用易于软件实现的运算;最好是用标准处理器所具有的一些基本指令,如加法、乘最好是用标准处理器所具有的一些基本指令,如加法、乘法、移位等。法、移位等。硬件实现的要求硬件实现的要求:加密和解密的相似性,即加密和解密过程的不同应仅仅加密和解密的相似性,即加密和解密过程的不同应仅仅在密钥使用方式上,以便采用同样
6、的器件来实现加密和解在密钥使用方式上,以便采用同样的器件来实现加密和解密,以节省费用和体积;尽量采用标准的组件结构,以便密,以节省费用和体积;尽量采用标准的组件结构,以便能适应于在超大规模集成电路中实现。能适应于在超大规模集成电路中实现。2.1 2.1 分组密码的基本概念分组密码的基本概念 第第 2 2 章章 分组密码与数据加密标准分组密码与数据加密标准DESDESDESDES算法的历史算法的历史b19731973年年5 5月月1515日日,NBS,NBS开始公开征集标准加密算法开始公开征集标准加密算法,并公布了并公布了它的设计要求它的设计要求:算法必须提供高度的安全性算法必须提供高度的安全性
7、 算法必须有详细的说明算法必须有详细的说明,并易于理解并易于理解 算法的安全性取决于密钥算法的安全性取决于密钥,不依赖于算法不依赖于算法 算法适用于所有用户算法适用于所有用户 算法适用于不同应用场合算法适用于不同应用场合 算法必须高效、经济算法必须高效、经济 算法必须能被证实有效算法必须能被证实有效 算法必须是可出口的算法必须是可出口的2.2 2.2 数据加密标准数据加密标准DES DES 第第 2 2 章章 分组密码与数据加密标准分组密码与数据加密标准DESDESb19741974年年8 8月月2727日日,美国国家标准局美国国家标准局(NBS)NBS)开始第二次征集开始第二次征集,IBM,
8、IBM提交了算法提交了算法LUCIFERLUCIFER,该算法由,该算法由IBMIBM的工程师的工程师W.Tuchman W.Tuchman 和和 C.MeyerC.Meyer在在1971197219711972年研制。年研制。b19751975年年3 3月月1717日日,NBS,NBS公开了全部细节。公开了全部细节。b19761976年年,NBS,NBS指派了两个小组进行评价。指派了两个小组进行评价。b19761976年年1111月月2323日,采纳为联邦标准,批准用于非军事场合日,采纳为联邦标准,批准用于非军事场合的各种政府机构。的各种政府机构。b19771977年年1 1月月1515日日
9、,“,“数据加密标准数据加密标准”FIPS PUB 46FIPS PUB 46发布发布,同年同年7 7月月1515日开始生效。日开始生效。b该标准规定每五年审查一次,计划十年后采用新标准。该标准规定每五年审查一次,计划十年后采用新标准。b最近的一次评估是在最近的一次评估是在19941994年年1 1月,已决定月,已决定19981998年年1212月以后,月以后,DESDES将不再作为联邦加密标准。将不再作为联邦加密标准。DESDES算法的历史算法的历史2.2 2.2 数据加密标准数据加密标准DES DES 第第 2 2 章章 分组密码与数据加密标准分组密码与数据加密标准DESDESDESDES
10、算法的应用算法的应用b美国国家安全局美国国家安全局NSANSA(National Security Agency)National Security Agency)参与参与了美国国家标准局制定数据加密标准的过程。了美国国家标准局制定数据加密标准的过程。NBSNBS接受接受了了NSANSA的某些建议,对算法做了修改,并将密钥长度从的某些建议,对算法做了修改,并将密钥长度从LUCIFERLUCIFER方案中的方案中的128128位压缩到位压缩到5656位位b19791979年,美国银行协会批准使用年,美国银行协会批准使用DESDESb19801980年,年,DESDES成为美国标准化协会成为美国标
11、准化协会(ANSI)(ANSI)标准标准b19801980年,美国国家标准局(年,美国国家标准局(NBSNBS)赞同)赞同DESDES作为私人使用作为私人使用的标准的标准,称之为称之为DEADEA(ANSI X.392ANSI X.392)。)。b19831983年,国际化标准组织年,国际化标准组织ISOISO赞同赞同DESDES作为国际标准,称作为国际标准,称之为之为DEA-1DEA-1。b19841984年年2 2月,月,ISOISO成立的数据加密技术委员会成立的数据加密技术委员会(SC20)(SC20)在在DESDES基础上制定数据加密的国际标准工作。基础上制定数据加密的国际标准工作。2
12、.2 2.2 数据加密标准数据加密标准DES DES 第第 2 2 章章 分组密码与数据加密标准分组密码与数据加密标准DESDESDES DES 算法细节算法细节b分组加密算法:明文和密文为分组加密算法:明文和密文为6464位分组长度位分组长度b对称算法:加密和解密除密钥编排不同外,使用同一算法对称算法:加密和解密除密钥编排不同外,使用同一算法b密钥长度:密钥长度:5656位,但每个第位,但每个第8 8位为奇偶校验位,可忽略位为奇偶校验位,可忽略b密钥可为任意的密钥可为任意的5656位数,但存在弱密钥,容易避开位数,但存在弱密钥,容易避开b采用混乱和扩散的组合,每个组合先替代后置换,共采用混乱
13、和扩散的组合,每个组合先替代后置换,共1616轮轮b只使用了标准的算术和逻辑运算,易于实现只使用了标准的算术和逻辑运算,易于实现2.2 2.2 数据加密标准数据加密标准DES DES 第第 2 2 章章 分组密码与数据加密标准分组密码与数据加密标准DESDES1.DES1.DES加(解)密过程加(解)密过程输入输入64比特明文数据比特明文数据初始置换初始置换IP在密钥控制下在密钥控制下16轮迭代轮迭代初始逆置换初始逆置换IP-1输出输出64比特密文数据比特密文数据交换左右交换左右32比特比特 2.2 2.2 数据加密标准数据加密标准DES DES 第第 2 2 章章 分组密码与数据加密标准分组
14、密码与数据加密标准DESDES2.DES2.DES算法一般描述算法一般描述 64位明文 56位密钥初始置换IP第1轮置换选择1循环左移置换选择2K1第2轮置换选择2循环左移K2第16轮K16置换选择2循环左移32bits 对换逆初始置换IP164位密文48bits2.2 2.2 数据加密标准数据加密标准DES DES 第第 2 2 章章 分组密码与数据加密标准分组密码与数据加密标准DESDES3.DES3.DES的一轮迭代的一轮迭代S盒替代2.2 2.2 数据加密标准数据加密标准DES DES 第第 2 2 章章 分组密码与数据加密标准分组密码与数据加密标准DESDES4.DES4.DES加密
15、过程加密过程b令i表示迭代次数,表示逐位模2求和,f为加密函数)(6416,2,1),(16,2,1)64(1616111100LRIPbitikRfLRiRLbitIPRLiiiiii密文输入码2.2 2.2 数据加密标准数据加密标准DES DES 第第 2 2 章章 分组密码与数据加密标准分组密码与数据加密标准DESDES5.DES5.DES解密过程解密过程b令令i i表示迭代次数,表示迭代次数,表示逐位模表示逐位模2 2求和,求和,f f为加密函数为加密函数)(641,15,16),(1,15,16)64(0011111616LRIPbitikRfRLiLRbitIPLRiiiiii明文
16、密文2.2 2.2 数据加密标准数据加密标准DES DES 第第 2 2 章章 分组密码与数据加密标准分组密码与数据加密标准DESDES初始置换初始置换IPIP和初始逆置换和初始逆置换IPIP-1-12.2 2.2 数据加密标准数据加密标准DES DES 第第 2 2 章章 分组密码与数据加密标准分组密码与数据加密标准DESDES2014MM1420MMIPIP1IPIP和和IPIP-1-1第第 2 2 章章 分组密码与数据加密标准分组密码与数据加密标准DESDES扩展置换扩展置换-盒盒3232位扩展到位扩展到4848位位扩展扩展2.2 2.2 数据加密标准数据加密标准DES DES 第第 2
17、 2 章章 分组密码与数据加密标准分组密码与数据加密标准DESDES压缩替代压缩替代S-S-盒盒4848位压缩到位压缩到3232位位共共8个个S盒盒2.2 2.2 数据加密标准数据加密标准DES DES 第第 2 2 章章 分组密码与数据加密标准分组密码与数据加密标准DESDES8个S盒S-盒1S-盒2S-盒3S-盒4S-盒5S-盒6S-盒7S-盒8第第0和第和第5位作为行号,第位作为行号,第14位作为列号。位作为列号。2.2 2.2 数据加密标准数据加密标准DES DES 第第 2 2 章章 分组密码与数据加密标准分组密码与数据加密标准DESDESS-S-盒的构造盒的构造bDESDES中其它
18、算法都是线性的,而中其它算法都是线性的,而S-S-盒运算则是盒运算则是非线性的非线性的bS-S-盒不易于分析,它提供了更好的安全性盒不易于分析,它提供了更好的安全性b所以所以S-S-盒是算法的关键所在盒是算法的关键所在2.2 2.2 数据加密标准数据加密标准DES DES 第第 2 2 章章 分组密码与数据加密标准分组密码与数据加密标准DESDES置换置换p-p-盒的构造盒的构造2.2 2.2 数据加密标准数据加密标准DES DES 第第 2 2 章章 分组密码与数据加密标准分组密码与数据加密标准DESDESp-p-盒的构造准则盒的构造准则bP置换的目的是提供雪崩效应b明文或密钥的一点小的变动
19、都引起密文的较大变化2.2 2.2 数据加密标准数据加密标准DES DES 第第 2 2 章章 分组密码与数据加密标准分组密码与数据加密标准DESDES密钥置换算法的构造准则密钥置换算法的构造准则b设计目标:子密钥的统计独立性和灵活性设计目标:子密钥的统计独立性和灵活性b实现简单实现简单b速度速度b不存在简单关系:不存在简单关系:(给定两个有某种关系的种子密钥给定两个有某种关系的种子密钥,能预能预测它们轮子密钥之间的关系测它们轮子密钥之间的关系)b种子密钥的所有比特对每个子密钥比特的影响大致相同种子密钥的所有比特对每个子密钥比特的影响大致相同b从一些子密钥比特获得其他的子密钥比特在计算上是难的
20、从一些子密钥比特获得其他的子密钥比特在计算上是难的b没有弱密钥没有弱密钥2.2 2.2 数据加密标准数据加密标准DES DES 第第 2 2 章章 分组密码与数据加密标准分组密码与数据加密标准DESDES子密钥的产生子密钥的产生2.2 2.2 数据加密标准数据加密标准DES DES 第第 2 2 章章 分组密码与数据加密标准分组密码与数据加密标准DESDESDESDES的安全性的安全性b弱密钥半弱密钥互补密钥:减少子密钥数量弱密钥半弱密钥互补密钥:减少子密钥数量bDESDES的破译:差分密码分析线性密码分析较有效的破译:差分密码分析线性密码分析较有效b密钥长度的争论密钥长度的争论 199819
21、98年年EFFEFF制造的制造的2525万元密钥搜索机可在万元密钥搜索机可在56h56h穷举破译。穷举破译。19991999年年1010万台计算机协同在万台计算机协同在2222:1515内穷举破译。内穷举破译。bDESDES的轮数:恰好的轮数:恰好1616轮只有穷举法最有效。轮只有穷举法最有效。bS-S-盒(盒(F F函数函数)的设计原理未知)的设计原理未知 除除S S盒外的设计全是线性的盒外的设计全是线性的.S.S盒的安全性至关重要。盒的安全性至关重要。猜测可能有陷门,但一直未被证明。猜测可能有陷门,但一直未被证明。2.2 2.2 数据加密标准数据加密标准DES DES 第第 2 2 章章
22、分组密码与数据加密标准分组密码与数据加密标准DESDES弱密钥弱密钥b初始密钥被分成两部分,每部分都单独做移位。如果每一部分的每一位都是0或都是1,则每一圈的子密钥都相同。这样的密钥被称为弱密钥。b DES存在4个弱密钥2.2 2.2 数据加密标准数据加密标准DES DES 第第 2 2 章章 分组密码与数据加密标准分组密码与数据加密标准DESDES半弱密钥半弱密钥b有些成对的密钥会将明文加密成相同的密文,即一对密有些成对的密钥会将明文加密成相同的密文,即一对密钥中的一个能用来解密由另一个密钥加密的消息,这种钥中的一个能用来解密由另一个密钥加密的消息,这种密钥称作密钥称作半弱密钥半弱密钥。这些
23、密钥不是产生。这些密钥不是产生1616个不同的子密个不同的子密钥,而是产生两种不同的子密钥,每一种出现钥,而是产生两种不同的子密钥,每一种出现8 8次。次。b半弱密钥半弱密钥:EK1=EK2:EK1=EK2,至少有,至少有1212个半弱密钥个半弱密钥2.2 2.2 数据加密标准数据加密标准DES DES 第第 2 2 章章 分组密码与数据加密标准分组密码与数据加密标准DESDES半半弱密钥半半弱密钥b还有些密钥只产生四种子密钥,每种出现四次。还有些密钥只产生四种子密钥,每种出现四次。b这种密钥称为这种密钥称为半半弱密钥半半弱密钥。共。共4848个。个。2.2 2.2 数据加密标准数据加密标准D
24、ES DES 第第 2 2 章章 分组密码与数据加密标准分组密码与数据加密标准DESDES1)1)Horst FeistelHorst Feistel根据可逆的根据可逆的乘积加密乘积加密方法所设计方法所设计2)2)输入是长度为输入是长度为2w2w位的明文块以及密钥位的明文块以及密钥K K3)3)明文块分成明文块分成L L0 0、R R0 0两部分,这两部分经过两部分,这两部分经过n n回合的处回合的处理之后,会结合而成为密文块理之后,会结合而成为密文块4)4)实际上是香农的实际上是香农的混合与扩散思想的扩展混合与扩散思想的扩展 2.3 2.3 FeistelFeistel_分组密码重要的设计原
25、理分组密码重要的设计原理1.Feistel1.Feistel加密架构加密架构第第 2 2 章章 分组密码与数据加密标准分组密码与数据加密标准DESDES替代运算替代运算(1)(1)先将右半部信息输入函先将右半部信息输入函数数F F,再用,再用XORXOR运算结合运算结合F F的的结果和左半部的信息结果和左半部的信息.(2)(2)每一回合的函数每一回合的函数F F都相同,都相同,但输出会受到子密钥但输出会受到子密钥KiKi影响影响置换运算置换运算 替代运算完成之后,接替代运算完成之后,接着会执行置换运算,也就是着会执行置换运算,也就是对调左右两部分的信息对调左右两部分的信息2.3 2.3 Fei
26、stelFeistel_分组密码重要的设计原理分组密码重要的设计原理1.Feistel1.Feistel加密架构加密架构第第 2 2 章章 分组密码与数据加密标准分组密码与数据加密标准DESDES分组大小分组大小 (DES 64,AES 128)DES 64,AES 128)密钥大小密钥大小 (DES 56,AES 128)DES 56,AES 128)循环次数循环次数 (DES 16)DES 16)子密钥产生算法子密钥产生算法圈函数圈函数F F2.3 2.3 FeistelFeistel_分组密码重要的设计原理分组密码重要的设计原理2.Feistel2.Feistel架构的设计参数架构的设计
27、参数第第 2 2 章章 分组密码与数据加密标准分组密码与数据加密标准DESDESb分组密码算法:分组密码算法:仅提供输入到输出的加仅提供输入到输出的加/解密变换解密变换 与输入输出的形式无关与输入输出的形式无关b改变分组密码的输入与输出的形式,可产生不同的分改变分组密码的输入与输出的形式,可产生不同的分组密码组密码操作方式操作方式2.4 2.4 分组密码的操作方式分组密码的操作方式第第 2 2 章章 分组密码与数据加密标准分组密码与数据加密标准DESDES填充填充(Padding)给定加密消息的长度是随机的,若按给定加密消息的长度是随机的,若按64 bit64 bit分组时,分组时,最后一组消
28、息长度可能不足最后一组消息长度可能不足64 bit64 bit。可以填充一些数字,。可以填充一些数字,通常用最后通常用最后1 1字节作为填充指示符(字节作为填充指示符(PIPI)。它所表示的。它所表示的十进制数字就是填充占有的字节数。数据尾部、填充字十进制数字就是填充占有的字节数。数据尾部、填充字符和填充指示符一起作为一组进行加密。符和填充指示符一起作为一组进行加密。数据填 充PI2.4 2.4 分组密码的操作方式分组密码的操作方式第第 2 2 章章 分组密码与数据加密标准分组密码与数据加密标准DESDES主要工作模式主要工作模式b即使有了安全的分组密码算法,也需要采用即使有了安全的分组密码算
29、法,也需要采用适适当的工作模式当的工作模式来隐蔽明文的统计特性、数据的来隐蔽明文的统计特性、数据的格式等,以提高整体的安全性,降低删除、重格式等,以提高整体的安全性,降低删除、重放、插入和伪造成功的机会。放、插入和伪造成功的机会。电码本电码本(Electric Code Book)(Electric Code Book)密码分组链接密码分组链接(Cipher Block Chaining)(Cipher Block Chaining)密码反馈密码反馈(Cipher Feed Back)(Cipher Feed Back)输出反馈输出反馈(Output Feed Back)(Output Fee
30、d Back)2.4 2.4 分组密码的操作方式分组密码的操作方式第第 2 2 章章 分组密码与数据加密标准分组密码与数据加密标准DESDES(1)电码本电码本ECB模式模式b直接直接利用加利用加/解密算法分别对分组数据组加解密算法分别对分组数据组加/解密解密b每个分组之间彼此每个分组之间彼此独立。独立。b相同明文相同明文(在相同密钥下在相同密钥下)得出相同密文。得出相同密文。这会暴露明文数据的格式和统计特征。这会暴露明文数据的格式和统计特征。明文数据都有固定的格式明文数据都有固定的格式,需要以协议的形式定义,需要以协议的形式定义,重要的数据常常在同一位置上出现,使密码分析者重要的数据常常在同
31、一位置上出现,使密码分析者可以对其进行统计分析、重传和代换攻击可以对其进行统计分析、重传和代换攻击。b单个密文分组中的一个或多个比特错误只会影响该分单个密文分组中的一个或多个比特错误只会影响该分组的解密结果。组的解密结果。Ci=EK(Pi);Pi=DK(Ci)2.4 2.4 分组密码的操作方式分组密码的操作方式第第 2 2 章章 分组密码与数据加密标准分组密码与数据加密标准DESDES(1)电码本电码本ECB模式模式2.4 2.4 分组密码的操作方式分组密码的操作方式第第 2 2 章章 分组密码与数据加密标准分组密码与数据加密标准DESDESb不能隐藏数据模式不能隐藏数据模式b易遭受插入、删除
32、等主动攻击易遭受插入、删除等主动攻击xykDESyxkDES-1ECBECB模式的安全缺陷模式的安全缺陷2.4 2.4 分组密码的操作方式分组密码的操作方式第第 2 2 章章 分组密码与数据加密标准分组密码与数据加密标准DESDES(2)密码分组链接密码分组链接CBC模式模式b每个明文组每个明文组xi加密之前,先与反馈至输入端的前一加密之前,先与反馈至输入端的前一组密文组密文yi-1按位模按位模2求和后,再送至加密算法加密求和后,再送至加密算法加密Ci=EK(Pi Ci-1)Pi=DK(Ci)Ci-12.4 2.4 分组密码的操作方式分组密码的操作方式第第 2 2 章章 分组密码与数据加密标准
33、分组密码与数据加密标准DESDES(2)密码分组链接密码分组链接CBC模式模式2.4 2.4 分组密码的操作方式分组密码的操作方式第第 2 2 章章 分组密码与数据加密标准分组密码与数据加密标准DESDES特性特性b在相同的密钥和在相同的密钥和IVIV下,相同的明文分组会得到相同的密下,相同的明文分组会得到相同的密文分组文分组b各密文组各密文组y yi i不仅与当前明文组不仅与当前明文组x xi i有关,而且通过反馈作用有关,而且通过反馈作用还与所有以前的明文组还与所有以前的明文组x x1 1,x x2 2,x xi i-1-1有关有关b单个密文分组单个密文分组y yi i中的一个比特错误会影
34、响分组中的一个比特错误会影响分组y yi i和和y yi i+1+1的的解密。解密。b若单个密文分组若单个密文分组y yi i出现错误,则能自同步;只要出现错误,则能自同步;只要y yi i+1+1没有没有错误,则错误,则y yi i+2+2可正确解密可正确解密(2)密码分组链接密码分组链接CBC模式模式2.4 2.4 分组密码的操作方式分组密码的操作方式第第 2 2 章章 分组密码与数据加密标准分组密码与数据加密标准DESDESb初始矢量初始矢量IVIV(Initial Vector)(Initial Vector):第一组明文第一组明文x xi i加密时尚无反馈密文,为此需要在寄存器中加密
35、时尚无反馈密文,为此需要在寄存器中预先置入一个预先置入一个。收发双方必须选用同一收发双方必须选用同一IVIV。b实际上,实际上,IVIV的完整性的完整性要比其保密性更为重要。要比其保密性更为重要。在在CBCCBC模式下,最好是每发一个消息,都改变模式下,最好是每发一个消息,都改变IVIV,比如将其值加一。,比如将其值加一。(2)密码分组链接密码分组链接CBC模式模式2.4 2.4 分组密码的操作方式分组密码的操作方式第第 2 2 章章 分组密码与数据加密标准分组密码与数据加密标准DESDES(3)k-比特比特CFB模式模式+xixiyiyikkXi 64bitXi 64bitYi 64bitY
36、i 64bit加密加密 加密加密 选最左边 k 位 选最左边 k 位k bitk bityi-Lyi-2yi-1加加 密密解解 密密2.4 2.4 分组密码的操作方式分组密码的操作方式第第 2 2 章章 分组密码与数据加密标准分组密码与数据加密标准DESDESb若待加密消息必须按字符若待加密消息必须按字符(如电传电报如电传电报)或按比特处理时,或按比特处理时,可采用可采用CFB模式模式。bCFB实际上是将加密算法作为一个密钥流产生器,当实际上是将加密算法作为一个密钥流产生器,当分组长度分组长度k1时就退化为前面讨论的流密码了。时就退化为前面讨论的流密码了。bCFB与与CBC的区别的区别 是反馈
37、的密文分组长度是反馈的密文分组长度k为为1或或8 不是直接与明文相加,而是反馈至密钥产生器;不是直接与明文相加,而是反馈至密钥产生器;若使用非对称的分组算法,则不能用若使用非对称的分组算法,则不能用CFB模式模式b用于要求无延迟的加密和传播的应用中。用于要求无延迟的加密和传播的应用中。2.4 2.4 分组密码的操作方式分组密码的操作方式(3)k-比特比特CFB模式模式第第 2 2 章章 分组密码与数据加密标准分组密码与数据加密标准DESDES第第 2 2 章章 分组密码与数据加密标准分组密码与数据加密标准DESDESb在相同的密钥和在相同的密钥和IVIV下,相同的明文分组会得到相同的下,相同的
38、明文分组会得到相同的密文分组密文分组 (与与CBCCBC模式一样模式一样)b各密文组各密文组y yi i不仅与当前明文组不仅与当前明文组x xi i有关,而且通过反馈有关,而且通过反馈作用还与以前的作用还与以前的 个明文组个明文组x xi i-64/j-64/j,x xi i-64/j+1-64/j+1,x xi i-1-1有关有关b单个密文分组单个密文分组y yi i中的一个比特错误会影响分组中的一个比特错误会影响分组y yi i和后和后续的续的 个密文分组的解密。个密文分组的解密。b若单个密文分组若单个密文分组y yi i出现错误,则能自同步;只要后续出现错误,则能自同步;只要后续的的 没
39、有错误,则可自动恢复同步没有错误,则可自动恢复同步64/j64/j64/j特性特性2.4 2.4 分组密码的操作方式分组密码的操作方式(3)k-比特比特CFB模式模式第第 2 2 章章 分组密码与数据加密标准分组密码与数据加密标准DESDES +xiyik64bit64bit加密加密 选最左边 k 位64 bit 寄存器k bitk bit+xiyik64bit64bit加密加密 选最左边 k 位64 bit 寄存器k bit(4)OFB模式模式2.4 2.4 分组密码的操作方式分组密码的操作方式第第 2 2 章章 分组密码与数据加密标准分组密码与数据加密标准DESDESb在相同的密钥和在相同
40、的密钥和IVIV下,相同的明文分组会得到相同的密文分组下,相同的明文分组会得到相同的密文分组 (与与CBCCBC、CFBCFB模式一样模式一样)b密钥流是独立于明文的;(密钥流可预计算)密钥流是独立于明文的;(密钥流可预计算)b单个密文分组单个密文分组y yi i中的一个比特错误仅会影响当前分组中的一个比特错误仅会影响当前分组y yi i的解密。的解密。b能从密文比特错误中得以恢复;但丢失密文比特后会无法实现自能从密文比特错误中得以恢复;但丢失密文比特后会无法实现自同步;同步;b若使用非对称的分组加密算法,则不能用若使用非对称的分组加密算法,则不能用OFBOFB模式模式bIVIV虽无须保密但必
41、须变化;虽无须保密但必须变化;b适用于必须避免错误传播的应用领域适用于必须避免错误传播的应用领域特性特性(4)OFB模式模式2.4 2.4 分组密码的操作方式分组密码的操作方式第第 2 2 章章 分组密码与数据加密标准分组密码与数据加密标准DESDES第第 2 2 章章 分组密码与数据加密标准分组密码与数据加密标准DESDES比较和选用比较和选用bECBECB模式,简单、高速,但最弱、易受重发攻击,一般不模式,简单、高速,但最弱、易受重发攻击,一般不推荐。推荐。bCBCCBC适用于文件加密,但较适用于文件加密,但较ECBECB慢。安全性加强。当有少慢。安全性加强。当有少量错误时,也不会造成同步错误。量错误时,也不会造成同步错误。bOFBOFB和和CFBCFB较较CBCCBC慢许多。每次迭代只有少数慢许多。每次迭代只有少数bitbit完成加密。完成加密。若可以容忍少量错误扩展,则可换来恢复同步能力,若可以容忍少量错误扩展,则可换来恢复同步能力,此时用此时用CFBCFB。在字符为单元的流密码中多选在字符为单元的流密码中多选CFBCFB模式。模式。OFBOFB用于高速同步系统,不存在差错传播。用于高速同步系统,不存在差错传播。2.4 2.4 分组密码的操作方式分组密码的操作方式