下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

分组密码主要工作模式的详解

作者:课课家教育     来源: http://www.kokojia.com点击数:2526发布时间: 2017-07-18 15:00:05

标签: 信息安全工程师密码学分组密码分组密码工作模式

软考,您想通过吗?一次通过才是硬道理

      分组密码算法本身是为了使数据安全,但是如果多次使用相同的密钥对多个分组加密的话,会引发许多数据安全的问题。那么,为了能确保数据安全以及方便高效地使用分组密码,人们定义了很多分组密码的工作模式,以便于运用到不同环境当中的实际应用。而分组密码的主要工作模式分为电码本模式ECB、密码分组链接模式CBC、输出反馈模式OFB、密码反馈模式CFB以及计数器模式CTR。如表1-1所示:

分组密码主要工作模式的详解_信息安全工程师_密码学_分组密码_分组密码工作模式_课课家

  1.电码本模式ECB(Electric Code Book)

  这是最简单的一种工作模式,它直接利用分组密码对明文的各分组进行加密,是分组密码的基本工作模式,适合数据较少的情况下使用。

  假设明文M=(M1,M2,...,Mn),与其相对应的密文则为C=(C1,C2,...,Cn),其中

                                                  Ci=E(Mi,K),i=1,2,...,n                    (1-2)

  电码本方式是分组密码的基本工作模式。

  (1) ECB的一个缺点是要求数据的长度是密码分组长度的整数倍,否则最后一个数据块将是短块,这时需要特殊处理。

  (2) ECB方式的另一缺点是容易暴露明文的数据模式。在计算机系统中,许多数据都具有某种固有的模式。这主要是由数据冗余和数据结构引起的。例如,各种计算机语言的语句和指令部十分有限,因而在程序中便表现为少量的语句和指令的大量重复。各种语言程序往往具有某种固定格式。数据库的记录也往往具有某种固定结构,如学生成绩数据库一定包含诸如姓名、学号和各科成绩等字段。

  计算机通信通常按固定的步骤和格式进行。如工作站和网络服务器之间的联络一定从LOGIN开始。如果不采取措施,根据明文相同、密钥相同,则密文相同的道理,这些固有的数据模式将在密文中表现出来。掩盖明文数据模式的有效方法有采用某种预处理技术和链接技术。

  2.密码分组链接模式CBC(iphertext Block Chaining)

  CBC的加密算法输入是上一个密文组和下一个明文组的异或,与ECB一样,数据的长度要求也是密码分组长度的整数倍。

  先来看看明密文的链接方式:

  假设明文为M=(M1,M2,...,Mn),与此相对应的密文为C=(C1,C2,...,Cn),其中有

                                     明密文链接加密                        (1-2)

  Z是初始化向量。

  根据(1-2)的公式可以得知,就算Mi=Mj,但因为一般都有Mi-1⊕Ci-1≠Mj-1⊕Cj-1,进而或者使得Ci≠Cj,明文中的数据模式因而被掩盖了。同样由(1-3)这个公式可以得知加密时,若Mi或者Ci发生即使只有一位错误时,在这之后的人所有密文都会发生错误,这就是叫作错误传播无界。

  解密的时候有,

                                         明密文链接解密                       (1-3)

  而且解密时也是错误传播无界。

  进一步为了使相同的报文也产生不同的密文,应当使Z随机化,每次加密均使用不同的初始化向量Z。

  明密文链接的工作原理如图1-4所示,

明密文链接工作原理

图1-4明密文链接工作原理

  明密文链接方式具有加解密错误传播无界的特性,而磁盘文件加密通常希望解密错误传播有界,这个时候就可以采用密文链接方式。在式(1-2) 和(1-3) 中去掉参数Mi-1,也及时说明文不参与链接,而只让密文参与链接,这就成为了密文链接方式。

  密文链接的加密解密也都是错误传播无界。

  密文链接加密时,

                   密文链接加密                                (1-5)

  解密时,

                   密文链接解密                         (1-6)

  其工作原理如图1-7所示,

密文链接工作原理

图1-7密文链接工作原理

  与ECB 一样,CBC的一个缺点也是要求数据的长度是密码分组长度的整数倍,否则最后一个数据块将是短块,这时需要特殊处理。

  3.输出反馈模式OFB(Output FeedBack)

  输出反馈工作模式将一个分组密码转换为一个密码序列的产生器。进而可以实现用分组密码按流密码的方式来进行加解密。

  OFB的工作原理如图1-8所示,

输出反馈工作原理

图1-8输出反馈工作原理

  图中的R是作为移位寄存器。E是分组密码,例如SM4、DES、IDEA、AES等强密码,假设它的分组长度为n,I0为R的初始状态并且将之称作种子,K是密钥。分组密码E把移位寄存器R的状态内容作为明文,然后加密成密文。E输出的密文中最右边的s(1≤s≤n)位作为密钥的序列输出,与明文异或实现序列加密。与此同时,移位寄存器R要左移S位,E输出中最右边的这个S位又反馈到寄存器R。R的新状态内容作为E下一次加密的输入。如此的顺序循环继续。

  解密的时候R和E按加密时同样的方式工作而产生的相同的密钥流,与密文异或就完成了解密。

  这种工作模式将一个分组密码转换为一个序列密码。它具有普通序列密码的优缺点,如没有错误传播。设加密时mi错了一位,则只影响密文中对应一位,不影响其他位。同样,设解密时Ci错了一位,则只影响明文中对应一位,不影响其他位。

  输出反馈工作模式适于加密冗余度较大的数据,如语音和图像数据,但因无错误传播而对密文的篡改难以检测。

  4.密码反馈模式CFB(Cipher FeedBack)

  密码反馈的工作原理如图1-9,

密码反馈工作原理

图1-9密码反馈工作原理

  相信从工作原理图当中可以看出,密码反馈模式的工作原理和输出反馈模式的工作原理基本相同,不同的一点是密码反馈的将异或之后密文Ci的s位反馈到移位寄存器R上,而不是像输出反馈模式中E输出的最右s位反馈到移位寄存器R上。

  值得注意的是,解密的时候R和E按加密时同样的方式工作,然后再结合密文就可以产生出同样的密钥流,让其和密文异或就完成了解密。开始时, R= I0,E的输出为E (I0, K)。将E(I0, K)当中最右的S位和密文C1进行异或,继而能得到明文mi,与此同时将C1反馈到R中, 然后就又可以产生下一个正确的密钥流。如此继续循环下去,便可以形成完整的一个解密。

  密文反馈工作模式的错误传播情况与输出反馈工作模式不同。加密时若明文mi错了一位,则影响密文Ci 错,这一错误反馈到移位寄存器后将影响到后续的密钥序列错,导致后续的密文都错。同样,解密时若密文Ci 错了一位,则影响明文mi错,但密文的这一错误反馈窍移位寄存器后将影响到后续的密钥序列错,导致后续的明文都错。

  这种加解密都错误传播无界的特性,使得密文反馈工作模式适合数据完整性认证方面的应用。

  5.计数器模式(CTR)counter

  CTR将块密码变为流密码。它通过递增一个加密计数器以产生连续的密钥流,其中,计数器可以是任意保证不产生长时间重复输出的函数,但使用一个普通的计数器是最简单和最常见的做法。CTR使用与明文分组规模相同的长度,计数器首先被初始化位某一数值,然后随着消息块的增加计数器加1。加密时计数器加密后与明文分组异或得到密文分组,没有链接。解密时必须知道初始计数器的值。

  CTR模式的优点有适合任意长度的数据、效率高、加解密的速度快、可并行、Oi的计算可以预测处理,可以随机访问某一明文或者密文分组进行部分加密和解密等。因着有这些特点,CTR较为适合计算机随机文件的加密。

  CTR 模式与密文反馈工作模式和输出反馈工作模式一样,把分组密码转化为序列密码。在本质上是利用分组密码产生密锅序列,按序列密码的方式进行加解密。

  假设T1,T2,...,Tn-1,Tn是一个给定的计数序列,M1,M2,...,Mn-1,Mn是明文,其中M1,M2,...,Mn-1是标准块,Mn的长度等于u,u小于等于分组的长度。CTR的工作模式加密过程如下:

                                           CTR的工作模式加密过程                          (1-10)

  其中的MSBu(On)表示On中的高u位.

  解密过程为

                                           CTR的工作模式解密过程                            (1-11)

  CTR模式的加密算法是对合运算,加解密的过程仅仅涉及到加密运算,并不涉及解密运算,因此不需要实现解密算法。

  CTR模式的优点是可并行、效率高、Oi的计算可预处理、适合任意长度的数据、加解密速度快,而且在加解密处理方式上适合随机存取数据的加解密。因此,特别适合计算机随机文件的加密,因为随机文件要求能随机地访问。这对数据库加密是有重要意义的。

  CTR模式的加密算法是对合运算,加解密过程仅涉及加密运算,不涉及解密运算,因此不用实现解密算法。CTR模式的缺点是没有错误传播,因此不适合用于数据完整性认证。

  除了以上的一些密码的工作模式外,还有很多其他的密码工作模式,小编讲解的这些是属于分组密码当中的工作模式,其他的密码工作模式就不在这里讲了。主要是希望小编讲的这些内容可以帮到大家更系统地去学习分组密码当中工作模式这一块的内容,喜欢的大家可以点个赞哟!

赞(0)
踩(0)
分享到:
推荐查看
华为认证网络工程师 HCIE直播课视频教程