5.8 分组密码的工作模式和一般设计原理

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第八节

分组密码的工作模式和一般设计原理

1

分组密码的工作模式

为什么要设计工作模式?

分组密码的工作模式是:根据不同的数据格式和安全性要求, 以一个具体的分组密码算法为基础构造一个分组密码系统的方法。分组密码的工作模式应当力求简单, 有效和易于实现。

2

1980年12月, FIPS 81标准化了为DES开发

的五种工作模式。这些工作模式适合任何分组密码。现在, AES的工作模式正在研发, 这些AES

的工作模式可能会包含以前DES的工作模式, 还

有可能包括新的工作模式。我们仅以DES为例介

绍分组密码主要的五种工作模式。

3

4直接使用DES 算法对64bit 的数据进行加密的工作模式就是ECB 模式。在这种工作模式下, 加密变换和解密变换分别为:

DES ()i i k c m = i =1,2,… (4.12)

1DES ()i i k m c −= i

=1,2,… (4.13) 这里k 是DES 的种子密钥, i m 和i

c 分别是第i 组明文和密文。

电码本(ECB)模式

在给定密钥下, i m有64

2种可能的取值, i c也有64

2种可能的取值, 各(i m, i c)彼此独立, 构成一个巨大的单表代替密码, 因而称其为电码本模式。

5

+=,则相应的密文ECB模式的缺点是:如果n i i

m m

+=,即在给定密钥k下,同一明文组总是产生同n i i

c c

一密文组,这会暴露明文组的数据格式。某些明文的数据格式会使得明文组有大量的重复或较长的零串,一些重要的数据常常会在同一位置出现,特别是格式化的报头、作业号、发报时间、地点等特征都将被泄露到密文之中,使攻击者可以利用这些特征。

6

该模式好的一面就是用同个密钥加密的单独消

息,其结果是没有错误传播。实际上,每一个分组可被看作是用同一个密钥加密的单独消息。密文中数据出了错,解密时,会使得相对应的整个明文分组解密错误,但它不会影响其他明文。然而,如果密文中偶尔丢失或添加一些数据位,那么整个密文序列将不能正确的解密。除非有某帧结构能够重新

排列分组的边界。

7

大多数消息并不是刚好分成64-位(或者任意分组长)的加密分组,它们通常在尾部有一个短分组。ECB要求是64-位分组。处理该问题的一个方法是填充(padding)。用一些规则的模式——0、1或者0、1交替——把最后的分组填充成一个完整的分组。

8

密码分组链接(CBC)模式

如上所述,ECB工作模式存在一些显见的缺陷。为了克服这些缺陷, 我们应用分组密码链接技术来改变分组密码的工作模式。

9

10CBC 工作模式是在密钥固定不变的情况下,改变每个明文组输入的链接技术。在CBC 模式下,每个明文组i m 在加密之前, 先与反馈至输入端的前一组密文1i c −逐比特模2相加后再加密。假设待加密的

明文分组为m = m 1, m 2, m 3, 我们按如下方式加密各

组明文m i (i = 1,2,⋅⋅⋅):

01.c IV =(初始值);

12.DES ()i i i k c m c −=+, i =1,2,……

这样, 密文组i c不仅与当前的明文组有关, 而且通过反馈的作用还与以前的明文组m1, m2,⋅⋅⋅

m i−1有关. 易见, 使用CBC链接技术的分组密码

的解密过程为:

1. c0 = IV (初始值);

2. m i= DES k−1(c i) +c i−1

11

CBC工作模式的优点为:

(1) 能隐蔽明文的数据模式.

(2) 在某种程度上能防止数据篡改, 诸如明文组的重放,嵌入和删除等.

CBC模式的不足是会出现错误传播(error propagation). 密文中任一位发生变化会涉及后面一些密文组. 但CBC模式的错误传播不大, 一个传输错误至多影响两个消息组的接收结果(思考).

12

密文反馈(CFB)模式

分组密码算法也可以用于同步序列密码,就是所谓的密码反馈(Cipher-FeedBack, CFB)模式。在CBC模式下,整个数据分组在接收完之后才能进行加密。

13

对许多网络应用来说,这是个问题。例如,在一个安全的网络环境中,当从某个终端输入时,它必须把每一个字符马上传输给主机。当数据在字节大小的分组里进行处理时,CBC模式就不能做到了。若待加密的消息必须按字符比特处理时,可采用CFB模式,见下图所示。在CFB模式下,每次加密s bit明文。一般s = 8, L = 64/s。

14

15

i L c − …… 2i c − 1i c − ……

i x

64bit i x 6 4bit

k k i y

64bit i y 64bit

选最左边的s 比特 选最左边的s 比特 s 比特 s 比特 ⊕ ⊕

i m i c i c i m

DES

DES

上图上端是一个开环移位寄存器。加密之前,先给该移位寄存器输入64bit的初始值IV,它就是DES 的输入, 记为0x。DES的输出i y的最左边s bit和第i 组明文i m逐比特模2相加得密文i c。i c一方面作为第i组密文发出,另一方面反馈至开环移位寄存器最右边的s个寄存器,使下一组明文加密时DES的输入64bit 依赖于密文i c。

16

CFB模式与CBC模式的区别是反馈的密文不再是64bit, 而是s bit,且不直接与明文相加,而是反馈至密钥产生器中。

17

相关文档
最新文档