ch-05分组密码的工作模式_第1页
ch-05分组密码的工作模式_第2页
ch-05分组密码的工作模式_第3页
ch-05分组密码的工作模式_第4页
ch-05分组密码的工作模式_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

1、密 码 学1第5讲 分组密码的工作模式我们已经对分组密码和数据加密标准DES有所了解。我们知道DES能够对64bit明文进行加密,然后得到64bit的密文。我们也了解到现在为止,还没有一种密码分析方法对DES有效,除非采用强力攻击。但是我们还想知道:DES究竟怎么用?是不是“基本算法+分组”就可以了?2密码模式密码模式通常由基本密码、一些反馈和一些简单运算组合而成。选择模式时,需要考虑(1)隐藏明文的模式;(2)模式的效率不会明显低于基本密码;(3)容错。3分组密码的工作模式电子密码本 (electronic codebook mode,ECB )密码分组链接 (cipher block ch

2、aining, CBC )密码反馈 (cipher feedback, CFB)输出反馈 (output feedback, OFB)计数器 (counter, CTR )4电子密码本ECB模式简称电码本模式,即“基本算法+简单分组”一次处理64位明文明文若长于64位,可简单地将其分成若干64位的明文分组。每个分组使用相同的密钥进行加密。解密也是一次执行一个分组,且使用相同的密钥。5ECB模式图示加密KP1C1加密KP2C2加密KPNCN解密KC1P1解密KC2P2解密KCNPN时间=1时间=2时间=N6填充(padding)大多数消息通常在尾部有一个短分组,需要将这个分组填充至64位。方法:

3、用一些规则的模式( 0、1或者0、1交替),把最后的分组填充成一个完整的分组。最后一个分组的最后一字节中加上填充字节的数目。即使明文以分组的边界结束,也必须添加一个整分组。7ECB错误扩散情况DESDES-1P1P2P3P4C1C2C3C4P1P2P3P4C1C2C3C4传输造成1位错误解密后整个分组不能正确恢复传输路径8ECB的特点简单和有效可以并行实现不能隐藏明文的模式信息因相同明文分组生成相同密文分组,若同样信息多次将出现造成泄漏,对于长消息,ECB模式可能不安全。对明文的主动攻击是可能的信息块可被替换、重排、删除、重放误差传递:密文块损坏 仅对应明文块损坏适合于传输短信息9分组重放(b

4、lock replay)攻击ECB最严重的问题是攻击者可以在不知道密钥的情况下修改被加密过的消息,以达到欺骗指定接受者的目的。10ECB模式下分组重放攻击示例例如:不同银行之间的资金转帐系统,采用标准的消息格式用来转帐。格式如下:每个“分组”对应一个8-字节的加密分组。金额储户账号储户姓名接受银行发送银行1.5个分组1.5个分组6个分组2个分组1个分组11Mallory的攻击前提:Mallory能够用计算机窃听并记录所有A银行和B银行之间的通信Mallory事先分别在A银行和B银行建立自己的账户Ma和MbMallory通过Ma向Mb转账100美元。接着,他又通过Ma向Mb转账100美元。他能窃

5、听到什么有用信息呢?不是所有信息都加密了吗?12他一定能够在这段时间所窃取的消息里发现一对完全相同的消息,他把它们记录下来,虽然他不能够解密该消息,但他最终能够分理出他自己的两个账户之间款项转移的消息。现在他可以按照他的意愿在通讯链路中插入n个这样的消息 (消息重放) ,每次都有100美元进入他的账户Mb,而实际上并没有从Ma上减去100美元。于是他成功盗得n个100美元。直到两个银行核对他们的往来账目。他早已逃之夭夭。13银行对协议的修改通过在消息中附加时间标记,使得每条消息不能被重复使用,以防止上述情况的发生:金额储户账号储户姓名接受银行发送银行1.5个分组1.5个分组6个分组2个分组1个

6、分组日期/时间标记1个分组14Mallory的攻击Mallory这次使用分组重放技术他截取从银行A到银行B得随机消息,并用自己的名字和账号替代分组5和分组12间相应的位消息,然后将其发往B银行。银行每天核对帐目,但是一切正常,直到某天合法客户注意到钱最终没存进他的账户。12345678910111213时间标记发送银行接受银行储户姓名储户账号存款金额分组号15银行有没有根本的解决方法银行可频繁改变密钥,尽可能降低风险。但这只意味着Mallory的行动要更加迅速。银行增加一个MAC字段,但这仍然不是根本性地解决方案。Mallory仍可以按自己的意愿重复、删除或改换密文分组。造成这一问题的原因:E

7、CB不能隐藏明文的模式。16有没有什么方法,使Mallary不能从消息中分离出单个分组,或者将相同的明文组加密成不同的密文组。这样Mallory就不能实施重放攻击了。分组链接CBC模式能满足这个要求。该问题的解决方法是在分组与分组之间建立起联系17密码分组链接(CBC)模式加密算法的输入是当前的明文组和上一个密文组和异或,各分组所用的密钥相同:加密过程为Ci =EK(Ci-1Pi)解密过程为Pi = DK(Ci) Ci-1=Ci-1PiCi-1 =Pi可见:所有的明文组链接起来了。加密算法的每次输入与本明文组没有固定的关系。即使有重复的64位明文组,加密后的密文祖也不相同。18CBC模式加密K

8、P1C1解密KP1C1加密KP2C2加密KPNCN解密KP2C2解密KPNCNCN-1CN-1IVIV时间=1时间=2时间=N19初始向量IV为初始矢量第一块明文可以和一个初始矢量(IV)异或后在加密。解密时将第一块密文解密的结果与IV异或而恢复出第一块明文。20错误扩散密文的小错误能够转变成明文很大的错误,这种现象叫做错误扩散(error extension)。 CBC模式具有密文前馈(feedforward)的性质,意味着要对错误进行处理。错误类型明文分组中单独一位发生错误;恢复的明文也只有1位错误。密文中一个单独位发生错误,影响两个整分组。同步差错,明文分组或密文分组中增加或者丢失若干比

9、特,这种错误的影响可能就很严重。21CBC的特点没有已知的并行实现算法能隐藏明文的模式信息需要共同的初始化向量IV相同明文 不同密文初始化向量IV可以用来改变第一块对明文的主动攻击是不容易的信息块不容易被替换、重排、删除、重放误差传递:密文块损坏 两明文块损坏安全性好于ECB适合于传输长度大于64位的报文,还可以进行用户鉴别,是大多系统的标准如SSL、IPSec22CBC模式下,整个数据分组在生成完之后才能进行加密,对许多网络应用来说,这是一个问题。例如,在一个安全的网络环境中,当从某个终端输入时,它必须把每个字符马上传给主机。当数据在字节大小的分组里进行时,CBC模式就不能做到了。23密码反

10、馈模式与输出反馈模式流密码有一个令人心动的性质:密文与明文等长。既不浪费传输能力,也不需要明文长度是分组长度的整数倍。密码反馈模式CFB与输出反馈模式OFB(下一小节)的思想都是:把分组密码也可以当作流密码使用。于是,数据可以在比分组小得多的单元里(如一个字符、1位)进行加密。24密码反馈模式CFBSi 为移位寄存器S在第i个时间的状态,j为流单元宽度加密: Ci =Pi(EK(Si)的高j位)Si+1=(Sij)|Ci解密: Pi=Ci(EK(Si)的高j位)Si+1=(Sij)|Ci25CFB模式加密示意图移位寄存器S64-jbit | jbit加密选择 丢弃jbit | 64-jbitK

11、6464jC1P1jIV移位寄存器S64-jbit | jbit加密选择 丢弃jbit | 64-jbitK6464jC2P2jj移位寄存器S64-jbit | jbit加密选择 丢弃jbit | 64-jbitK6464jCMPMjCM-126CFB模式解密示意图加密K6464jP1IV加密K6464jC2P2j加密K6464jCMPMjCM-1C1jj移位寄存器S64-jbit | jbit选择 丢弃jbit | 64-jbit移位寄存器S64-jbit | jbit选择 丢弃jbit | 64-jbit移位寄存器S64-jbit | jbit选择 丢弃jbit | 64-jbit27CF

12、B的特点可以把分组密码当作流密码使用隐藏了明文模式需要共同的移位寄存器初始值IV对于不同的消息,IV必须唯一没有已知的并行实现算法误差传递:一个单元损坏影响多个单元密文中的1位错误会使恢复明文产生9个字节的错误。除了用来获得保密性,也可用于认证28输出反馈模式OFBSi 为移位寄存器S在第i个时间的状态,j为流单元宽度加密: Ci =Pi(EK(Si)的高j位)Si+1=(Sij)|(EK(Si)的高j位)解密: Pi=Ci(EK(Si)的高j位)Si+1=(Sij)|(EK(Si)的高j位)29OFB加密示意图移位寄存器S64-jbit | jbit加密选择 丢弃jbit | 64-jbit

13、K6464jC1P1jIV移位寄存器S64-jbit | jbit加密选择 丢弃jbit | 64-jbitK6464jC2P2jj移位寄存器S64-jbit | jbit加密选择 丢弃jbit | 64-jbitK6464jCMPMjCM-130OFB解密示意图加密K6464jP1IV加密K6464jC2P2加密K6464jCMPMjCM-1C1jj移位寄存器S64-jbit | jbit选择 丢弃jbit | 64-jbit移位寄存器S64-jbit | jbit选择 丢弃jbit | 64-jbit移位寄存器S64-jbit | jbit选择 丢弃jbit | 64-jbitj31OFB

14、的特点可以把分组密码当作流密码使用隐藏了明文模式需要共同的移位寄存器初始值IV误差传递:一个单元损坏只影响对应单元没有已知的并行实现算法对明文的主动攻击是可能的信息块可被替换、重放安全性较CFB差可用于噪声通道上数据流的传输(如卫星通信)32计数器模式CTR尽管这种模式很早以前就已经被提出来了,但是直到最近人们才对它产生了浓厚的兴趣。CTR:分组密码 流密码与OFB 类似,但是加密一个计数器值,而不是密文反馈值必须对每一个明文使用一个不同的密钥和计数值加密端:Ci = Pi Oi (取Oi 与Pi长度相同的位数)解密端:Pi = Ci Oi Oi = DESK(i)应用于高速网络加密33CTR

15、模式加解密示意图加密KP1C1KP2C2KPNCN计数器计数器+1计数器+N-1加密加密加密KC1P1KC2P2KCNPN计数器计数器+1计数器+N-1加密加密34CTR的特点CTR:分组密码 流密码有效,表现在:可以并行实现可以预处理适用于高速网络可以随机访问加密的数据分组隐藏了明文模式,与CBC模式一样安全可以处理任意长度的消息误差传递:一个单元损坏只影响对应单元对于每次加密,需要使用不同的密钥的计数器值对明文的主动攻击是可能的信息块可被替换、重放35分组密码的工作模式总结模式描述典型应用电码本ECB用相同的密钥分别对明文组加密单个数据的安全传输(如一个加密密钥)密码分组链接CBC加密算法

16、的输入是上一个密文组和下一个明文组的异或普通目的的面向分组的传输认证密码反馈CFB一次处理j位。上一个分组密文作为产生一个伪随机数输出的加密算法的输入,该输入与明文异或,作为下分组的输入普通目的的面向分组的传输认证输出反馈OFB与CFB基本相同,只是加密算法的输入是上一次DES的输出噪声通道上的数据流的传输(如卫星通信)计数器CTR每个明文组是与加密的计数器的异或。对每个后续的组,计数器的累计的。普通目的的面向分组的传输、用于高速需求36三重DES算法DES在穷举攻击之下相对比较脆弱,替代的方案:设计全新的算法用DES进行多次加密,切实用多个密钥第二种方案能够保护已有使用DES的软件和硬件的投资。被广泛接受的算法是三重DES(3DES)37双重DES给定明文P及密钥K1和K2,密文C按如下方式生成:C=EK2EK1P解密时逆序使用这两个密钥:P=DK1DK2C密钥总长度为112位。38对双重DES的分析由于群的封闭型特点,对所有的56位密钥K1和K2 ,可能存在密钥K3,使得:EK2EK1P =EK3P分析结论:已知明文攻击可以成功对付密钥长度为112的双重DE

温馨提示

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

评论

0/150

提交评论