分组密码的模式

Posted BlackBeer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分组密码的模式相关的知识,希望对你有一定的参考价值。

1. 分组密码的模式

  为了解决加密任意长度的明文,需要对分组密码进行迭代。分组密码的迭代方法就是分组密码的模式。

 

2. 分组密码和流密码

  2.1 分组密码

    每次只能处理特定长度一块数据的算法。一块就是分组,一个分组的比特数就是分组长度。

    DES,3DES分组长度都是64比特。密钥长度:DES是56比特,3DES长度是168比特。

    AES分组长度是128比特。密钥长度:128比特,192比特,256比特。

  2.2 流密码

    对数据进行连续处理的一类密码算法。

    流密码一般以1比特,8比特,或者32比特位单位进行加密和解密。

  2.3 分组密码和流密码的区别

    分组密码不需要内部状态记录加密的进度。

    流密码对一串数据流进行处理,需要记录内部状态。

  2.4 分组密码的主要模式

    ECB模式:电子密码本模式

    CBC模式:密码分组链接模式

    CFB模式:密文反馈模式

    OFB模式:输出反馈模式

    CTR模式:计数器模式

 

3. ECB模式(Electronic CodeBook,电子密码本模式)

  加密与解密:将明文分组加密后的结果直接成密文分组。最后一个分组的内容小于分组长度时,用特定的数据进行填充padding。

  特点:通过观察密文就知道明文存在怎样的重复组合,以此为线索进行破译。

  ECB模式的攻击:攻击者改变分组密码密文的顺序,即可改变明文的顺序,在不破译的情况下操作明文。比如 a给b转账10000,变成b给a转账10000。

 

4. CBC模式(Cipher Black Chaining,密文分组链接模式)

  加密与解密:首先将明文分组与前一个密文分组进行XOR运算,然后进行加密。

  加密流程:

  

 

   解密流程:

  

 

 

     特点:

      需要初始化向量,解决了ECB模式的缺点。

      分组(密文)的损坏可能导致分组明文和关联的密文解密的明文错误。

      只要有1比特缺失,缺失比特后的密文解密错误。

      加密不支持并行计算。

    对CBC的攻击:

      初始向量中任意比特进行反转,明文中相应比特也会反转。

      填充提示攻击:攻击者反复发送密文,每次都对填充部分进行少许修改,服务无法解密就返回一个错误,

             根据提示可以得到明文相关的信息,这种攻击不限于CBC模式。防御方法:密文认证

      初始化向量攻击:IV必须使用不可预测的随机数。

                SSL/TLS的TLS1.0中使用了上一次CBC模式的最后一组密文。

              TLS1.1中改为必须显示的传送IV。

    应用实例:

      SSL/TLS中使用CBC模式确保机密性,对应的加密算法有3DES_EDE_CBC和AES_256A_CBC。

 

5. CFB模式(Cipher FeedBack,密文反馈模式)

  前一个密文分组送回到密码算法的输入端。

  加密流程:

  

  解密流程:

   

 

 

 

  特点:

    需要初始化向量IV,每次加密时生成一个随机的比特序列作为初始化向量。

    CFB中用密码算法生成的比特序列称为密钥流。

    CFB中密码算法相当于用来生成密钥流的伪随机数生成器,初始化向量是伪随机数生成器的种子。

    加密不支持并行计算。

  CFB模式的攻击:

    重放攻击:攻击者保留之前通信部分密文分组,新的通信中进行替换发送,结果是替换的第一个分组解密出错后,后续的内容被替换。

            防御方法是消息认证码。

 

6. OFB模式(Output-Feedback,输出反馈模式)

  密码算法的输出反馈到密码算法的输入中去。

  加密流程:

  

  解密流程:

  

 

 

   特点:

    需要初始化向量。

    OFB模式中,XOR所需要的比特序列(密钥流)可事先通过密码算法生成,与明文分组无关。

    可以事先进行加密和解密的准备,不支持并行计算。

 

7. CTR模式(CounTeR,计数器模式)

  通过将逐次累加的计数器进行加密生成密钥流。

  每一个分组对应一个逐次累加的计数器。

  加密流程:

  

  解密流程:

  

 

 

   计数器的生成方法:

    每一次加密生成一个不同的值once作为计数器的初始值。

      计数器 = once + 分组序列号

  特点:

    加密解密使用相同的结构。

    计数器可以直接使用once和分组序列号计算出来,加密和解密都能并行计算。

  增强版:

    在CTR模式上增加认证功能的模式称为GCM模式。

 

  总体上都不建议使用ECB模式。

以上是关于分组密码的模式的主要内容,如果未能解决你的问题,请参考以下文章

分组密码的模式

分组密码的五种工作模式

分组密码的模式

分组密码模式: OFB模式(输出反馈模式)

分组密码模式: ECB模式(电子密码本模式)

分组密码模式: CFB模式(密文反馈模式)