5.8 分组密码的工作模式和一般设计原理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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