1分组密码的运行模式2即使有了安全的分组密码算法,也需要采用适当的工作模式来隐蔽明文的统计特性、数据的格式等,以提高整体的安全性,降低删除、重放、插入和伪造成功的机会。美国在FIPS中定义了五种运行模式。电码本(ECB)密码分组链接(CBC)密码反馈(CFB)输出反馈(OFB)计数器模式(CTR)分组密码的运行模式3一个1G大小的文件,采用DES和AES加密?1G=220*8bitDES算法总块数:220*8/64=215*8AES算法总块数:220*8/128=213*8一个50B大小的文件,采用DES和AES加密?4填充(Padding)给定加密消息的长度是随机的,按64bit分组时,最后一组消息长度可能不足64bit。可以填充一些数字,通常用最后1字节作为填充指示符(PI)。它所表示的十进制数字就是填充占有的字节数。数据尾部、填充字符和填充指示符一起作为一组进行加密。数据填充PI5电码本ECB(Electroniccodebook)模式分组加密明文分组P1密文分组C1K分组加密明文分组P2密文分组C2K分组加密明文分组PN密文分组CNK...(a)加密密文分组C1密文分组C2密文分组CN分组解密K分组解密K分组解密K...明文分组P1明文分组P2明文分组PN(b)解密6ECB模式实例例如明文“IthoughtwasnotthethoughtIthoughtIthought”,空白去掉,则采用ECB模式加密?7EBC模式8EBC模式EBC模式DES算法加密后9分组重放攻击银行转帐的例子:日期/时间标记:1分组银行1:发送者1.5分组银行2:接收者1.5分组储户姓名6分组储户帐号2分组存款金额1分组10分组重放攻击To:BankFrom:ATMAction:DepositAmount:$100.00To:BankFrom:ATMAction:DepositAmount:$900.00“1”=0011001“9”=001110111电码本ECB模式直接利用加密算法分别对分组数据组加密。最大特性:在给定的密钥下,同一明文组总产生同样的密文组。这会暴露明文数据的格式和统计特征。明文数据都有固定的格式,需要以协议的形式定义,重要的数据常常在同一位置上出现,使密码分析者可以对其进行统计分析、重传和代换攻击。错误传播:单个密文分组中有一个或多个比特错误只会影响该分组的解密结果。12密码分组链接CBC模式(Cipher-blockchaining)1nKnnCECP11111KnnKKnnnnnnnDCCDECPCCPCP13CBC模式原始图CBC模式14ECB模式与CBC模式originalECBCBC密码分组链接CBC模式初始矢量IV(InitialVector):第一组明文加密时无反馈密文,为此需要在寄存器中预先置入一个,收发双方必须选用同一IV。每个明文组加密之前,先与反馈至输入端的前一组密文按位模2求和后,再送至加密算法加密实际上,IV的完整性要比其保密性更为重要。在CBC模式下,最好是每发一个消息,都改变IV,比如将其值加一。16CBC的错误传播1.明文有一组中有错,会使以后的密文组都受影响,但经解密后的恢复结果,除原有误的一组外,其后各组明文都正确地恢复。2.若在传送过程中,某组密文组出错时,则该组恢复的明文和下一组恢复数据出错。再后面的组将不会受中错误比特的影响。1711jCPSEIV11jPCSEIVj-比特密码反馈CFB模式(Cipherfeedback)18j-比特密码反馈CFB模式若待加密消息必须按字符(如电传电报)或按比特处理时,可采用CFB模式。CFB实际上是将加密算法DES作为一个密钥流产生器。CFB与CBC的区别是反馈的密文长度为j,且不是直接与明文相加,而是反馈至密钥产生器。解密:采用相同方案,但是使用加密函数而非解密函数。19CFB模式错误传播1、明文某一组中有错,会使以后的密文组都受影响,但经解密后的恢复结果,除原有误的一组外,其后各组明文都正确地恢复。2、密文里的一位错误会引起明文的一个单独错误,此处,错误进入移位寄存器,导致密文成为无用信息,直到该错误从移位寄存器中移出。例:对于8位(1个字节)的加密,则会产生9字节的错误20输出反馈OFB模式(Outputfeedback)21输出反馈OFB模式1、将分组密码算法作为一个密钥流产生器,其输出的j-bit密钥直接反馈至分组密码的输入端,同时这j-bit密钥和输入的j-bit明文段进行对应位模2相加。2、克服了CBC和CFB的错误传播所带来的问题。3、对于密文被篡改难以进行检测22计数器模式(CTR)Countermode23CTR模式–使用与明文分组规则相同的计数器长度–加密不同的分组所使用的计数器值必须不同–解密:采用相同方案,但是使用加密函数而非解密函数。计数器模式(CRT)24处理效率:能够对多块报文的加、解进行并行处理预处理:进行异或之前的基本加密处理不依赖明文和密文的输入随机访问:密文分组的处理与其它密文无关实现简单计数器模式(CTR)25比较和选用ECB模式,简单、高速,但最弱、易受重发攻击,一般不推荐。CBC适用于文件加密,但较ECB慢。安全性加强。OFB和CFB较CBC慢许多。每次迭代只有少数bit完成加密。若可以容忍少量错误扩展,此时用CFB。在字符为单元的流密码中多选CFB模式。OFB用于高速同步系统,没有错误传播。CTR适用于对实时性和速度要求比较高的场合