《图解密码技术》笔记4:分组密码的模式-分组密码是如何迭代的

目录

4.1 本章学习内容

4.2 分组密码的模式

4.2.1 分组密码与流密码

4.2.2 什么是模式

4.2.3 明文分组与密文分组

4.2.4 主动攻击者 Mallory

4.3 ECB模式

4.4 CBC模式

4.4.1 什么是CBC模式

4.4.2 初始化向量

4.4.3 CBC模式的特点

4.4.4 对CBC模式的攻击

4.5 CFB模式

4.5.1 什么是CFB模式

 4.5.2 初始化向量

4.5.3 CFB模式与流密码

4.5.4 CFB模式的解密

4.5.5 对CFB模式的攻击

4.6 OFB模式

4.6.1 什么是OFB模式

  4.6.2 初始化向量

 4.6.3 OFB算法和CFB算法的比较

 4.7 CTR模式

4.7.1 计数器的生成方法

4.7.2 OFB模式与CTR模式的对比

4.7.3 CTR模式的特点

4.7.4 错误与机密性

4.8 应该使用哪种模式


4.1 本章学习内容

        在第3章介绍的DES和AES都属于分组密码,它们只能加密固定长度的明文,如果需要加密任意长度的明文,就需要对分组密码进行迭代,而分组密码的迭代方式就称为分组密码的“模式”。

        本章节主要讲解内容包含:

        1)分组密码与流密码

        2)分组密码的主要模式(ECB、CBC、CFB、OFB、CTR)

4.2 分组密码的模式

4.2.1 分组密码与流密码

        分组密码:每次只能处理特定长度的一块数据的一类密码算法,一个分组的比特数就称为 分组长度。 前面讲的DES(64比特)、3DES(64比特)、AES(128比特)都属于分组密码。
        流密码:对数据流进行连续处理的一类密码算法,流密码中一般以1比特,8比特或32比特为单位进行加密和解密。

4.2.2 什么是模式

        当明文长度超过分组长度,需要对分组密码算法进行迭代,这种迭代的方法称为分组密码的模式(mode)

        分组密码的主要模式有以下5种:

  1. ECB模式:Electronic CodeBook Mode(电子密码本模式)
  2. CBC模式:Cipher Block Chaining mode(密码分组链接模式)
  3. CFB模式:Cipher FeedBack mode(密文反馈模式)
  4. OFB模式:Output FeedBack mode(输出反馈模式)
  5. CTR模式:CounTer mode(计数器模式)

4.2.3 明文分组与密文分组

        明文分组:分组加密算法中作为加密对象的明文
        密文分组:使用分组密码算法将明文分组加密之后所生成的密文

4.2.4 主动攻击者 Mallory

        窃听者Eve只能被动地进行窃听,而主动攻击者则可以主动介入发送者和接收者之间的通信过程,进行阻碍通信或者篡改密文等活动。

4.3 ECB模式

        将明文分组直接加密的方式就是ECB模式,这种模式非常简单,但是因为存在弱点因此一般不会使用。

4.3.1 什么是ECB模式

        在ECB模式中,明文分组加密之后的结果将直接成为密文分组。

加密过程:

解密过程:

         使用ECB模式时,相同的明文分组会被转化为相同的密文分组,也就是说,我们可以将其理解为一个巨大的 明文分组 -> 密文分组 的对应表,因此ECB模式被称为电子密码本模式。

        当最后一个明文分组的长度小于分组长度时,需要用一些特定的数据进行填充。

4.3.3 对ECB模式的攻击

       攻击者Mallory能够改变密文分组的顺序,当接收者对密文进行解密时,相应的明文分组顺序也会被改变,即攻击者无需破译密码即可操纵明文

        举例:假设分组长度为128比特,某银行的转账请求数据由以下3个分组构成:

        分组1:付款人A的银行账号
        分组2:收款人B的银行账号
        分组3:转账金额

我们可制作一个从 A-5374 账号 向 B-6671 账号转账1亿元的转账请求,用16进制数据表示如下:

加密后的密文对应如下:

        Mallory只需将分组1和分组2的密文调换一下顺序,即可将转账请求篡改成 从 B-6671 账号向 A-5374 账号转账1亿元。

        攻击者对密文进行的篡改,可以通过第8章介绍的消息认证码检测出来,不过如果使用其他模式,这种攻击从一开始就是不可能实现的。

4.4 CBC模式

4.4.1 什么是CBC模式

        CBC模式的全称是密文分组链接模式,是因为密文分组像链条一样相互连接在一起。

        CBC模式是将明文分组前一个密文分组进行XOR运算,然后再进行进行加密。这样可以避免ECB模式的弱点。

        CBC模式的加密和解密:

        ECB与CBC的区别: ECB模式只进行加密,而CBC则在加密之前进行一次XOR。

4.4.2 初始化向量

        当加密第一个明文分组时,因为不存在前一个密文分组,因此需要事先准备一个长度为分组长度的比特序列来代替,这个比特序列就是初始化向量,缩写为IV。随机产生。

4.4.3 CBC模式的特点

  1. CBC模式加密的1个密文分组损坏时,会影响2个明文分组。
  2. 密文分组中的比特缺失时,会影响后面所有的密文分组的错位与解析。

4.4.4 对CBC模式的攻击

  1. 初始化向量的比特反转:Mallory可以修改初始化向量的中某些比特位,这样就会造成解密后得到的明文分组1中的某些比特位翻转。
  2. 填充提示攻击:不仅限于CBC模式。
  3. 对初始化向量(IV)进行攻击:IV必须使用不可预测的随机数。在SSL/TLS的TLS1.0版本协议中,IV使用上一次CBC模式加密的最后一个分组。

4.5 CFB模式

4.5.1 什么是CFB模式

        CFB模式,全称为密文反馈模式。在CFB模式中,前一个密文分组会被送回到密码算法的输入端

        加密过程:

        解密过程:

 4.5.2 初始化向量

        与CBC模式是相同的机制。

4.5.3 CFB模式与流密码

        明文数据可以被逐比特加密,因此我们可以将CFB模式看作是一种使用分组密码来实现流密码的方式。  与一次性密码本非常相似。

        关于随机数,将在第12章详解。传送门——>

4.5.4 CFB模式的解密

         详见4.5.1章节的解密流程图。

4.5.5 对CFB模式的攻击

        对CFB模式可以实施重放攻击(replay attack)。

        假设第一天Bob向Alice发送了4个分组的密文,Mallory将这4个分组的密文保存起来,第二天Bob向Alice又发送了内容不同的4个密文分组。

        Mallory将后3个密文分组替换为昨天发送的后3个密文分组。

        这样Alice收到密文后,第一个分组可以正常解密,第二个分组解密失败,但是后2个密文分组同样可以解密成功。此时Alice没有办法分辨第2个分组出错到底是通信错误还是认为攻击。

        要做出这样的判断,需要使用第8章介绍的消息认证码。

4.6 OFB模式


4.6.1 什么是OFB模式

        全称为输出反馈模式。OFB模式并不是通过密码算法对明文直接加密,而是通过将明文分组和密码算法的输出进行 XOR 运算来产生密文分组的。

        OFB的加密与解密

  4.6.2 初始化向量

        与CBC、CFB模式是相同的机制。

 4.6.3 OFB算法和CFB算法的比较

        OFB算法和CFB算法的区别仅仅在于密码算法的输入。

  • CFB模式中,密码算法的输入是前一个密文分组
  • OFB模式中,密码算法的输入则是密码算法的前一个输出

 

4.7 CTR模式

        全称为计数器模式。CTR模式是一种通过将逐次累加的计数器进行加密来生成密钥流的流密码。

        CTR模式的加密和解密:

4.7.1 计数器的生成方法

        每次加密时都会生成一个不同的值(nonce)来作为计数器的初始值,当分组长度为128比特(16字节)时,计数器的初始值可能是像下面这样的形式:

         其中前8个字节为nonce,这个值在每次加密时都是不同的,后8个字节为分组序号,这个部分会逐次累加的。在加密过程中,计数器的值会产生以下变化:

4.7.2 OFB模式与CTR模式的对比

        相同点:都属于流密码。

        不同点:OFB是将加密的输出反馈到输入,而CTR模式则将计数器的值用作输入。

4.7.3 CTR模式的特点

  • 加密和解密使用完全相同的结构,在程序上实现比较容易。与OFB一样。
  • 可以以任意顺序进行加密和解密,就意味着可以实现并行计算。在支持并行计算的系统中,CTR模式的速度是非常快的。

4.7.4 错误与机密性

        CTR模式,密文分组出现比特反转时,解密后只有对应的明文分组被反转,这一错误不会被放大。这一弱点与OFB模式相同。

        在CTR模式基础上增加“认证”功能的模式称为GCM模式。 关于GCM模式的详细内容将在第8章讲解。

4.8 应该使用哪种模式

      ECB、CBC、CFB、OFB、CTR模式的优缺点:  参考《应用密码学》

 

 

 

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值