1 分组密码 : 分组密码的工作模式 《现代密码学》第 4 章 (3)
2 本节主要内容 1 、分组密码的工作模式 2 、 Block Modes ECB, CBC 3 、 Stream Modes CFB, OFB
3 分组密码在加密时, 明文分组的长度是固 定的,而实际应用中待加密消息的数据量是 不定的,数据格式可能是多种多样的。为了 能在各种应用场合使用 DES ,美国在 FIPS PUS 74 和 81 中定义了 DES 的 4 种运行模式, 如表 3.5 所示。这些模式也可用于其他分组密 码,下面以 DES 为例来介绍这 4 种模式。(见 49 页表 3.5 ) 分组密码的运行模式
4 分组密码工作模式 分组密码加密固定长度的年信息, eg. DES 加 密 64-bit ,使用 56-bit key 需要一种使用方法,加密任意长度的消息,这种 使用方法叫做工作模式 Mode of Use 对于 DES ,定义了 4 种模式( in ANSI standard ANSI X Modes of Use ) 四种模式 : Block Modes ECB, CBC Stream Modes CFB, OFB
5 ECB(electronic codebook) 模式是最简 单的运行模式,它一次对一个 64 比特长的明 文分组加密,而且每次的加密密钥都相同, 如图 4.10 所示。当密钥取定时,对明文的每 一个分组,都有一个惟一的密文与之对应。 因此形象地说,可以认为有一个非常大的电 码本,对任意一个可能的明文分组,电码本 中都有一项对应于它的密文。 1. 电码本( ECB )模式
6 DES 加密 第1次第1次 DES 加密 第2次第2次 K K DES 加密 第2次第2次 K 1. 电码本( ECB )模式
7 DES 加密 第1次第1次 DES 加密 第2次第2次 K K DES 加密 第2次第2次 K 解密 1. 电码本( ECB )模式
8 ECB 模式示意图
9 如果消息长于 64 比特,则将其分为长为 64 比特的分组,最后一个分组如果不够 64 比 特,则需要填充。解密过程也是一次对一个 分组解密,而且每次解密都使用同一密钥。 图 4.10 中,明文是由分组长为 64 比特的分组 序列 P 1 , P 2 , … , P N 构成,相应的密文分组 序列是 C 1 , C 2 , … , C N 。 1. 电码本( ECB )模式
10 ECB 在用于短数据(如加密密钥)时非常理想, 因此如果需要安全地传递 DES 密钥, ECB 是最合适 的模式。 ECB 的最大特性是同一明文分组在消息中重复 出现的话,产生的密文分组也相同。 1. 电码本( ECB )模式
11 ECB 的优势与局限 相同的明文对于相同的密文 结构化明文 消息有重复部分 主要用于发送少数量的分组数据
12 ECB 用于长消息时可能不够安全,如果消息有 固定结构,密码分析者有可能找出这种关系。例 如,如果已知消息总是以某个预定义字段开始, 那么分析者就可能得到很多明文密文对。如果消 息有重复的元素而重复的周期是 64 的倍数,那么 密码分析者就能够识别这些元素。以上这些特性 都有助于密码分析者,有可能为其提供对分组的 代换或重排的机会。 1. 电码本( ECB )模式
13 为了解决 ECB 的安全缺陷,可以让重复 的明文分组产生不同的密文分组, CBC ( cipher block chaining )模式就可满足 这一要求。图 4.11 是 CBC 模式示意图,它一 次对一个明文分组加密,每次加密使用同一 密钥, 加密算法的输入是当前明文分组和前一 次密文分组的异或,因此加密算法的输入不 会显示出与这次的明文分组之间的固定关系, 所以重复的明文分组不会在密文中暴露出这 种重复关系。 2. 密码分组链接( CBC )模式
14 2. 密码分组链接 (CBC) 模式 加密 x1 IV=y0 DES 加密 C1 K x2 C2 K x3 C3 K DES 加密 DES 加密
15 CBC 模式解密 DES 解密 K C1 IV=y0 P1 DES 解密 K C2 P2 DES 解密 K C3 P3 2. 密码分组链接 (CBC) 模式
16 CBC 模式示意图
17 解密时,每一个密文分组被解密后,再 与前一个密文分组异或,即 (设 ) 因而产生出明文分组。 2. 密码分组链接( CBC )模式
18 在产生第 1 个密文分组时,需要有一个初 始向量 IV 与第 1 个明文分组异或。解密时, IV 和解密算法对第 1 个密文分组的输出进行 异或以恢复第 1 个明文分组。 IV 对于收发双方都应是已知的,为使安 全性最高, IV 应像密钥一样被保护,可使用 ECB 加密模式来发送 IV 。保护 IV 的原因如下: 2. 密码分组链接( CBC )模式
19 如果敌手能欺骗接收方使用不同的 IV 值, 敌手就能够在明文的第 1 个分组中插入自己 选择的比特值,这是因为: 用 X(i) 表示 64 比特分组 X 的第 i 个比特,那 么 ,由异或的性质得 其中撇号表示比特补。 2. 密码分组链接( CBC )模式
20 上式意味着如果敌手篡改 IV 中的某些比 特,则接收方收到的 P1 中相应的比特也发生 了变化。 由于 CBC 模式的链接机制, CBC 模式对 加密长于 64 比特的消息非常合适。 CBC 模式除能够获得保密性外,还能用 于认证。 2. 密码分组链接( CBC )模式
21 消息分成模块 加密是相互联系的 密文与明文联结 利用一个初始向量开始: C i = DES K1 (P i XOR C i-1 ) C -1 = IV 适合加密长度大于64比特的消息 还可以用来进行用户鉴别(见报文鉴别部分) 2. ( CBC )模式特点
22 Advantages and Limitations of CBC each ciphertext block depends on all message blocks thus a change in the message affects all ciphertext blocks after the change as well as the original block need Initial Value (IV) known to sender & receiver however if IV is sent in the clear, an attacker can change bits of the first block, and change IV to compensate hence either IV must be a fixed value (as in EFTPOS) or it must be sent encrypted in ECB mode before rest of message at end of message, handle possible last short block by padding either with known non-data value (eg nulls) or pad last block with count of pad size eg. [ b1 b2 b ] <- 3 data bytes, then 5 bytes pad+count
23 如上所述, DES 是分组长为 64 比特的分 组密码,但利用 CFB ( cipher feedback )模 式或 OFB 模式可将 DES 转换为流密码。流密 码不需要对消息填充,而且运行是实时的。 因此如果传送字母流,可使用流密码对每个 字母直接加密并传送。 流密码具有密文和明文一样长这一性质, 因此,如果需要发送的每个字符长为 8 比特, 就应使用 8 比特密钥来加密每个字符。如果 密钥长超过 8 比特,则造成浪费。 3. 密码反馈( CFB )模式
24 图 4.12 是 CFB 模式示意图,设传送的每 个单元(如一个字符)是 j 比特长,通常取 j=8 ,与 CBC 模式一样,明文单元被链接在一 起,使得密文是前面所有明文的函数。 3. 密码反馈( CFB )模式
25 密码反馈 (CFB) 模式 方法:加密时,加密算法的输入是 64 比 特移位寄存器,其初值为某个初始向量 IV 。 加密算法输出的最左 ( 最高有效位 )J 比特与明 文的第一个单元 P1 进行异或,产生密文的第 一个单元 C1, 并传送该单元。然后将移位寄 存器的内容左移 j 位并将 C1 送入送入移位寄 存器最右边的 j 位。这一过程一直进行到明文 的所有单元都被加密为止。具体的过程如下:
26 CFB 加密模式示意图 64-j 比特 j 比特 DES 加密 K 选 j 比特丢弃 64-j 比特 64-j 比特 j 比特 DES 加密 K 选 j 比特丢弃 64-j 比特 64-j 比特 j 比特 DES 加密 K 选 j 比特丢弃 64-j 比特 c1c2 IV( 移位寄存器 ) CmCm
27 CFB 解密模式示意图 64-j 比特 j 比特 DES 加密 K 选 j 比特丢弃 64-j 比特 64-j 比特 j 比特 DES 加密 K 选 j 比特丢弃 64-j 比特 64-j 比特 j 比特 DES 加密 K 选 j 比特丢弃 64-j 比特 c1c2 IV( 移位寄存器 ) CmCm
28 CFB 模式示意图
29 加密时,加密算法的输入是 64 比特移位 寄存器,其初值为某个初始向量 IV 。加密算 法输出的最左(最高有效位) j 比特与明文的 第一个单元 P 1 进行异或,产生出密文的第 1 个 单元 C 1 ,并传送该单元。然后将移位寄存器 的内容左移 j 位并将 C 1 送入移位寄存器最右边 (最低有效位) j 位。这一过程继续到明文的 所有单元都被加密为止。 3. 密码反馈( CFB )模式
30 解密时,将收到的密文单元与加密函数 的输出进行异或。注意这时仍然使用加密算 法而不是解密算法,原因如下: 设 Sj(X) 是 X 的 j 个最高有效位,那么 因此 ; 可证明以后各步也有类似的这种关系。 CFB 模式除能获得保密性外,还能用于 认证。 3. 密码反馈( CFB )模式
31 消息被看作 bit 流 被加到分组密文的输出 并把结果反馈到下一阶段 标准允许反馈任意比特 (1,8 or 64 or whatever) 记作 CFB-1, CFB-8, CFB-64 etc CFB-64 : C i = P i XOR DES K1 (C i-1 ) C -1 = IV ( CFB )模式特点
32 CFB 特点 适合数据以比特或字节为单位出现 错误传播
33 Advantages and Limitations of CFB appropriate when data arrives in bits/bytes most common stream mode limitation is need to stall while do block encryption after every n-bits note that the block cipher is used in encryption mode at both ends errors propogate for several blocks after the error
34 OFB ( output feedback )模式的结构类 似于 CFB ,见图 4.13 。不同之处如下: OFB 模式是将加密算法的输出反馈到移位寄存器, 而 CFB 模式中是将密文单元反馈到移位寄存 器。 4. 输出反馈 (OFB) 模式
35 OFB 模式加密示意图 64-j 比特 j 比特 DES 加密 K 选 j 比特丢弃 64-j 比特 64-j 比特 j 比特 DES 加密 K 选 j 比特丢弃 64-j 比特 64-j 比特 j 比特 DES 加密 K 选 j 比特丢弃 64-j 比特 c1c2 IV( 移位寄存器 ) CmCm
36 OFB 模式解密示意图 64-j 比特 j 比特 DES 加密 K 选 j 比特丢弃 64-j 比特 64-j 比特 j 比特 DES 加密 K 选 j 比特丢弃 64-j 比特 64-j 比特 j 比特 DES 加密 K 选 j 比特丢弃 64-j 比特 c1c2 IV( 移位寄存器 ) CmCm
37 OFB 模式示意图
38 OFB ( output feedback )模式的结构类 似于 CFB ,见图 4.13 。不同之处如下: OFB 模式是将加密算法的输出反馈到移 位寄存器,而 CFB 模式中是将密文单元反馈 到移位寄存器。 4. 输出反馈 (OFB) 模式
39 OFB 模式的优点是传输过程中的比特错 误不会被传播。 例如 C 1 中出现 1 比特错误,在解密结果 中只有 P 1 受到影响,以后各明文单元则不受 影响。 而在 CFB 中, C 1 也作为移位寄存器的输 入,因此它的 1 比特错误会影响解密结果中 各明文单元的值。 4. 输出反馈 (OFB) 模式
40 OFB 的缺点是它比 CFB 模式更易受到对消 息流的篡改攻击,比如在密文中取 1 比特的 补,那么在恢复的明文中相应位置的比特也 为原比特的补。因此使得敌手有可能通过对 消息校验部分的篡改和对数据部分的篡改, 而以纠错码不能检测的方式篡改密文。 4. 输出反馈 (OFB) 模式
41 OFB 的特点 消息作为比特流 分组加密的输出与被加密的消息相加 比特差错不容易传播
42 Advantages and Limitations of OFB used when error feedback a problem or where need to encryptions before message is available superficially similar to CFB but feedback is from the output of cipher and is independent of message a variation of a Vernam cipher hence must never reuse the same sequence (key+IV) sender and receiver must remain in sync, and some recovery method is needed to ensure this occurs originally specified with m-bit feedback in the standards subsequent research has shown that only OFB-64 should ever be used
43 5. 计算器模式 Counter(CTR)
44 Advantages and Limitations of CTR 效率 可并行加密 预处理 吞吐量仅受可使用并行数量的限制 加密数据块的随机访问 可证明安全 简单性(只要求实现加密算法)
45 THE END !