1、2018/9/26,1,第三章 分组密码,一、分组密码概述 二、DES 三、分组密码运行模式 四、IDEA 五、AES 六、分组密码的分析,2018/9/26,2,三、分组码的运行模式,2018/9/26,3,DES算法只解决了如何对一个64比特的明文分组进行加密保护的问题,对于比特数不等于64的明文如何加密,并不关心。这个问题,就由分组密码的工作模式解决。,2018/9/26,4,主要工作模式,即使有了安全的分组密码算法,也需要采用适当的工作模式来隐蔽明文的统计特性、数据的格式等,以提高整体的安全性,降低删除、重放、插入和伪造成功的机会。 电码本(ECB)模式 密码分组链接(CBC)模式 密
2、码反馈(CFB)模式 输出反馈(OFB)模式,分组密码的“工作模式”是指以某个分组密码算法为基础,解决对任意长度的明文的加密问题的方法。,这几种工作模式适用于不同的应用需求.,2018/9/26,5,2018/9/26,6,Electronic CodeBook,2018/9/26,7,电码本ECB模式,直接利用加密算法分别对分组数据组加密。 在给定的密钥下同一明文组总产生同样的密文组。这会暴露明文数据的格式和统计特征。明文数据都有固定的格式,需要以协议的形式定义,重要的数据常常在同一位置上出现,使密码分析者可以对其进行统计分析、重传和代换攻击。,缺陷,Electronic CodeBook,
3、2018/9/26,8,优点: (1) 实现简单; (2) 不同明文分组的加密可并行实施,尤其是硬件实现时速度很快.,典型应用:(1)用于随机数的加密保护;(2)用于单分组明文的加密。,2018/9/26,9,例: 假设银行A和银行B之间的资金转帐系统所使用报文模式如下:,敌手C通过截收从A到B的加密消息,只要将第5至第12分组替换为自己的姓名和帐号相对应的密文,即可将别人的存款存入自己的帐号。,2018/9/26,10,为了克服ECB的安全性缺陷,我们希望设计一个工作模式,可以使得当同一个明文分组重复出现时产生不同的密文分组。一个简单的方法是密码分组链接,从而使输出不仅与当前输入有关,而且与
4、以前输入和输出有关。,2018/9/26,11,为了让重复的明文分组产生不同的密文分组!,2018/9/26,12,密码分组链接CBC模式,Cipher block chaining,上一个分组的密文,2018/9/26,13,密码分组链接CBC模式,每个明文组xi加密之前,先与反馈至输入端的前一组密文yi-1按位模2求和后,再送至加密算法加密。 各密文组yi不仅与当前明文组xi有关,而且通过反馈作用还与以前的明文组x1, x2, xi-1,有关。 从而使明文的统计规律在密文中得到了较好的隐蔽。,Cipher block chaining,2018/9/26,14,2018/9/26,15,初
5、始矢量IV,初始矢量IV(Initial Vector):第一组明文xi加密时尚无反馈密文,为此需要在寄存器中预先置入一个。收发双方必须选用同一个IV。 可为每个消息选择不同的IV,那么即使两个消息使用相同的密钥,也将有不同的密文。在CBC模式下,最好是每发一个消息,都改变IV,比如将其值加一。 同时,IV的安全性问题。使用ECB加密模式。,2018/9/26,16,填充(Padding),给定加密消息的长度是随机的,按64 bit分组时,最后一组消息长度可能不足64 bit。可以填充一些数字,通常用最后1字节作为填充指示符(PI)。它所表示的十进制数字就是填充占有的字节数。数据尾部、填充字符
6、和填充指示符一起作为一组进行加密。,2018/9/26,17,密码分组链接CBC模式,2018/9/26,18,CBC的错误传播,1. 明文有一组中有错,会使以后的密文组都受影响,但经解密后的恢复结果,除原有误的一组外,其后各组明文都正确地恢复。 2.若在传送过程中,某组密文组yi出错时,则该组恢复的明文xi和下一组恢复数据xi+1出错。再后面的组将不会受yi中错误比特的影响。,2018/9/26,19,明文错1组,则以后密文都受影响,但不影响解密正确性,除当前错的1组。,密文错1组,则只影响当前和下1组的解密正确性。,2018/9/26,20,典型应用:(1) 数据加密;(2) 完整性认证和
7、身份认证;,完整性认证的含义完整性认证是一个“用户”检验它收到的文件是否遭到第三方有意或无意的篡改。因此,完整性认证:不需检验文件的制造者是否造假;文件的制造者和检验者利益一致,不需互相欺骗和抵赖。,2018/9/26,21,利用CBC模式可实现报文的完整性认证,目的:检查文件在(直接或加密)传输和存储中是否遭到有意或无意的篡改.关键技术:(1) 文件的制造者和检验者共享一个密钥(2) 文件的明文必须具有检验者预先知道的冗余度(3) 文件的制造者用共享密钥对具有约定冗余度的明文用CBC模式加密(4) 文件的检验者用共享密钥对密文解密,并检验约定冗余度是否正确.,2018/9/26,22,报文完
8、整性认证的具体实现技术,(1) 文件的制造者和检验者共享一个密钥;(2) 文件的明文m产生一个奇偶校验码r的分组; (3) 采用分组密码的CBC模式,对附带校验码的已扩充的明文(m, r)进行加密,得到的最后一个密文分组就是认证码;,2018/9/26,23,n分组明文 , 校验码为,(1) 仅需对明文认证,而不需加密时,传送明文m和认证码Cn+1,此时也可仅保留Cn+1的 t 个比特作为认证码; (2) 既需对明文认证,又需要加密时,传送密文C和认证码Cn+1,2018/9/26,24,Step1 产生明文m的校验码,Step2 利用共享密钥使用CBC模式对(m,r)加密,将得到的最后一个密
9、文分组与接受到的认证码Cn+1比较,二者一致时判定接收的明文无错;二者不一致时判定明文出错。,检验方法:(1)仅需对明文认证而不需加密时,此时验证者仅收到明文m和认证码Cn+1,他需要:,2018/9/26,25,例: 电脑彩票的防伪技术 -彩票中心检查兑奖的电脑彩票是否是自己发行的,问题:如何防止电脑彩票的伪造问题。方法:(1)选择一个分组密码算法和一个认证密钥,将他们存于售票机内; (2)将电脑彩票上的重要信息,如彩票期号、彩票号码、彩票股量、售票单位代号等重要信息按某个约定的规则作为彩票资料明文;(3)对彩票资料明文扩展一个校验码分组后,利用认证密钥和分组密码算法对之加密,并将得到的最后
10、一个分组密文作为认证码打印于彩票上面;认证过程:执行(3),并将计算出的认证码与彩票上的认证码比较,二者一致时判定该彩票是真彩票,否则判定该彩票是假彩票。,2018/9/26,26,密码反馈(CFB-Cipher Feedback)模式,若待加密消息需按字符、字节或比特处理时,可采用CFB模式。并称待加密消息按 j 比特处理的CFB模式为 j 比特CFB模式。适用范围:适用于每次处理 j比特明文块的特定需求的加密情形,能灵活适应数据各格式的需要.例如,数据库加密要求加密时不能改变明文的字节长度,这时就要以明文字节为单位进行加密.,2018/9/26,27,利用CFB和OFB可将分组密码变成流密
11、码,实时性。,2018/9/26,28,Cipher FeedBack,DES未作用于明文!,2018/9/26,29,j-比特密码反馈CFB模式,若待加密消息必须按字符(如电传电报)或按比特处理时,可采用CFB模式。 CFB实际上是将加密算法DES作为一个密钥流产生器,当k1时就退化为前面讨论的流密码了。 CFB与CBC的区别是反馈的密文长度为j,且不是直接与明文相加,而是反馈至密钥产生器。,2018/9/26,30,密文反馈模式的解密,2018/9/26,31,j-比特密码反馈CFB模式,CFB的优点 它特别适于用户数据格式的需要,不用填充。 能隐蔽明文数据图样,也能检测出对手对于密文的篡
12、改。 CFB的缺点 对信道错误较敏感,且会造成错误传播。 CFB也需要一个初始矢量,并要和密钥同时进行更换。,2018/9/26,32,2018/9/26,33,Output FeedBack,2018/9/26,34,优点:(1)这是将分组密码当作序列密码使用的一种方式,但乱数与明文和密文无关!(2)不具有错误传播特性!只要密文在传输过程中不丢信号,即使信道不好,也能将明文的大部分信号正常恢复。 适用范围:(1)明文的冗余度特别大,信道不好但不易丢信号,明文错些信号也不影响效果的情形。如图象加密,语音加密等。缺点:(1)不能实现报文的完整性认证。(2)乱数序列的周期可能有短周期现象。,2018/9/26,35,OCB模式,2018/9/26,36,比较和选用,ECB模式,简单、高速,但最弱、易受重发攻击,一般不推荐。 CBC适用于文件加密,但较ECB慢。安全性加强。当有少量错误时,也不会造成同步错误。 OFB和CFB较CBC慢许多。每次迭代只有少数bit完成加密。若可以容忍少量错误扩展,则可换来恢复同步能力,此时用CFB。在字符为单元的流密码中多选CFB模式。 OFB用于高速同步系统,不容忍差错传播。,