第四讲现代分组加密技术 - sjtulonghuan/teaching/p033507/04.pdf ·...

52
第四讲 现代分组加密技术 上海交通大学计算机系

Upload: others

Post on 31-May-2020

23 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 第四讲现代分组加密技术 - SJTUlonghuan/teaching/P033507/04.pdf · 解密及解密密钥生成 加密解密实质相同,算法也相同但使用不同的密钥 解密密钥来自加密密钥,以如下方法从加密子密钥Z

第四讲 现代分组加密技术

上海交通大学计算机系

Page 2: 第四讲现代分组加密技术 - SJTUlonghuan/teaching/P033507/04.pdf · 解密及解密密钥生成 加密解密实质相同,算法也相同但使用不同的密钥 解密密钥来自加密密钥,以如下方法从加密子密钥Z

内容

三重DES — 3DES 国际数据加密算法 — IDEA 高级数据加密标准—AES 分组密码的工作模式

Page 3: 第四讲现代分组加密技术 - SJTUlonghuan/teaching/P033507/04.pdf · 解密及解密密钥生成 加密解密实质相同,算法也相同但使用不同的密钥 解密密钥来自加密密钥,以如下方法从加密子密钥Z

序言

DES的56比特的密钥长度太小,注定将被取

代。本章将探讨当前最重要几种对称密码算

法。这些密码算法均具有如下特征:

高密码强度

应用广泛

代表了至DES以来的现代对称密码技术

Page 4: 第四讲现代分组加密技术 - SJTUlonghuan/teaching/P033507/04.pdf · 解密及解密密钥生成 加密解密实质相同,算法也相同但使用不同的密钥 解密密钥来自加密密钥,以如下方法从加密子密钥Z

1.DES的变形

DES在穷举攻击下,理论上脆弱—需要寻找替代算法

多次使用DES,且使用多个密钥

设计新的密码算法

最简单形式:双重DES两次进行加密,每次使用不同的密钥

]][[ 12 PEEC KK=

加密

]][[ 21 CDDP KK=

解密

Page 5: 第四讲现代分组加密技术 - SJTUlonghuan/teaching/P033507/04.pdf · 解密及解密密钥生成 加密解密实质相同,算法也相同但使用不同的密钥 解密密钥来自加密密钥,以如下方法从加密子密钥Z

双重DES

][]][[ 312 PEPEE KKK =

如果成立,不管用DES进行了多少次加密,效果均等同于用一个 56 bit 密钥进行一次DES加密

Page 6: 第四讲现代分组加密技术 - SJTUlonghuan/teaching/P033507/04.pdf · 解密及解密密钥生成 加密解密实质相同,算法也相同但使用不同的密钥 解密密钥来自加密密钥,以如下方法从加密子密钥Z

对双重DES的攻击(1)

中间相遇攻击

针对所有分组密码

原理

CPEE KK =]][[ 12

XCDPE KK == ][][ 21

如果:

则有:

算法步骤

给定明文密文对(P, C),对P按照K1的所有可能值( 256 个)加

密,所得结果按照X的值排序放在表T内 再对C用K2的所有可能值( 256 个)解密

每解密一次,将结果与T表中的值比较

如果等式成立,则用K1,K2依次对P加密,若结果为C,则获

得正确密钥

Page 7: 第四讲现代分组加密技术 - SJTUlonghuan/teaching/P033507/04.pdf · 解密及解密密钥生成 加密解密实质相同,算法也相同但使用不同的密钥 解密密钥来自加密密钥,以如下方法从加密子密钥Z

对双重DES的攻击(2)

中间相遇攻击的成功概率

双重DES密文空间长度:264

双重DES密钥长度112,密钥空间2112

对固定明文P,运行双重DES得到固定密文C的密钥个数平均为

2112/264=248。其中仅一个密钥是正确的。因此对第一个(P, C)对,平

均能找到248个密钥对(K1, K2)

对第二个(P’, C’)对,用K1K2对P’加密,若所得结果为C’ ,则认为(K1, K2)对正确。第二次出错的概率为248/264=2-16

结论:使用中间相遇攻击,在已知两组明文密文对时,付出数量级为256

的代价,可以成功攻击密钥长度为2112的双重DES (CP. DES, 攻击数

量级为255攻击)。双重DES不能提高DES的安全性

Page 8: 第四讲现代分组加密技术 - SJTUlonghuan/teaching/P033507/04.pdf · 解密及解密密钥生成 加密解密实质相同,算法也相同但使用不同的密钥 解密密钥来自加密密钥,以如下方法从加密子密钥Z

三重DES (3DES)(1) 思想:为了对抗中间相遇攻击,使用三个密钥进行三次加密,使得已知

明文攻击的代价上升为 2112 数量级。(安全!)

广泛替代了DES,用于密钥管理标准ANS X9.17和 ISO 8732 弱点:密钥长度为168位 Tuchman建议使用两个密钥进行三次加密: 加密-解密-加密(EDE) 加密与解密

]]][[[ 121 PEDEC KKK=

加 密

]]][[[ 121 CDEDP KKK=

解 密

Page 9: 第四讲现代分组加密技术 - SJTUlonghuan/teaching/P033507/04.pdf · 解密及解密密钥生成 加密解密实质相同,算法也相同但使用不同的密钥 解密密钥来自加密密钥,以如下方法从加密子密钥Z

三重DES(2) EDE的目的:与DES兼容(设K1=K2即可)

对3DES的攻击

目前对3DES没有可行攻击方法。

已证明穷举攻击代价为2112≈5×1033数量级

可以对抗差分攻击、线性攻击:攻击代价按指数增长,比DES超过1052倍

Merkle,Hellman攻击(不实际)

逐个查看可能的明文,看哪一个明文的第一个中间值(A)为0 再使用中间相遇攻击

代价:256数量级。但是选择明文攻击,所需明文密文对数量为256

已知明文攻击:给定n个明文密文对 (P, C) (运算数量级约256-log n,也不实际)

1)随机选择a

2) 对所有可能密钥Ki = i,计算Pi=Di[a]

3)若P属于已知对,计算Bi=Di[C],入表并排序

4) 对所有可能K2=j,计算 a 对应的第二个中间值Bj=Dj[a]

5)若 Bj=Bi

则认为(K1,K2)=(i, j)

Page 10: 第四讲现代分组加密技术 - SJTUlonghuan/teaching/P033507/04.pdf · 解密及解密密钥生成 加密解密实质相同,算法也相同但使用不同的密钥 解密密钥来自加密密钥,以如下方法从加密子密钥Z

三重DES(3)

虽然二密钥的3DES可以对抗上述攻击,但研究

者仍不放心

很多研究者推荐使用3个密钥的三重DES

兼容性

与DES兼容: K3=K2,或K1=K2

三密钥的3DES的应用

PGP (Pretty Good Privacy )S/MIME (Secure Multipurpose Internet Mail Extensions 多用途网际邮件

扩充协议 )

]]][[[

]]][[[

123

123

PDEDP

PEDEC

KKK

KKK

=

=

Page 11: 第四讲现代分组加密技术 - SJTUlonghuan/teaching/P033507/04.pdf · 解密及解密密钥生成 加密解密实质相同,算法也相同但使用不同的密钥 解密密钥来自加密密钥,以如下方法从加密子密钥Z

三重DES的优点与缺点

NIST在1999年发布新版DES标准(FIPS PUB46-3),指出

DES只能用于遗留系统,3DES将取代DES成为新标准。

优点

密钥长度112bit,足够长

底层算法与DES相同,因此受密码分析时间远远长于其他加密算法,

对密码分析攻击有很强免疫力。

仅考虑安全性,3DES会成为未来数十年加密算法的合适选择

缺点

DES的设计主要针对硬件实现,而今在许多领域,需要用软件方法

来实现它,在这种情况下,DES效率相对较低。

分组长度64,似乎应该更长

因此,3DES不能成为长期使用的加密算法标准

Page 12: 第四讲现代分组加密技术 - SJTUlonghuan/teaching/P033507/04.pdf · 解密及解密密钥生成 加密解密实质相同,算法也相同但使用不同的密钥 解密密钥来自加密密钥,以如下方法从加密子密钥Z

2. IDEA简介 由瑞士的Xuejia Lai和James Massey于1990的

EuroCrypt’90年公布了IDEA密码算法第一版,称为PES (Proposed Encryption Standard)

在EuroCrypt’91上,为抗击差分密码攻击,他们增强了算法的强度,称IPES(Improved PES)

并于1992年改名为IDEA(International Data Encryption Algorithm)

IDEA已由瑞士的Ascom公司注册专利(欧洲、美国),以商业目的使用IDEA算法必须向该公司申请许可

分组大小:64bit;密钥长度:128bit ;不是Feistel结构

抗穷搜索攻击能力比DES强 目前没有对IDEA的有效攻击

IDEA的“混淆”和“扩散”设计原则来自三种运算,它们易于软、硬件实现(加密速度快)

Page 13: 第四讲现代分组加密技术 - SJTUlonghuan/teaching/P033507/04.pdf · 解密及解密密钥生成 加密解密实质相同,算法也相同但使用不同的密钥 解密密钥来自加密密钥,以如下方法从加密子密钥Z

IDEA简介

按位异或运算( )

整数模216加( + ) 整数模216+1乘( )(IDEA的S盒)

扩散由称为MA结构的算法基本构件提供

16

16

16 Z6

F2F1

Z5

G1 G2

16

16

16

16

1616

Page 14: 第四讲现代分组加密技术 - SJTUlonghuan/teaching/P033507/04.pdf · 解密及解密密钥生成 加密解密实质相同,算法也相同但使用不同的密钥 解密密钥来自加密密钥,以如下方法从加密子密钥Z

逐位异或,记做 例如:

0010001011000100 1010001011000101 = 1000000000000001

模216的整数加,记做 例如:

0010001011000100 1010001011000101 = 1100010110001001

模216+1的整数乘,记做 定义为:

a b = ab mod (216+1) 注意,全零的分组代表216 = -1(因此0的乘法逆元是0),

0000 0000 0000 0000 1 000 0000 0000 0000 = 1000 0000 0000 0001

既 216×215 mod (216+1)= 215+1

IDEA基本运算单元

Page 15: 第四讲现代分组加密技术 - SJTUlonghuan/teaching/P033507/04.pdf · 解密及解密密钥生成 加密解密实质相同,算法也相同但使用不同的密钥 解密密钥来自加密密钥,以如下方法从加密子密钥Z

IDEA加密

概述

使用子分组:16bit的子分组;使用简单操作(易

于加法、移位等操作实现)加密解密过程类似;

规则的结构(便于VLSI实现)

每轮轮密钥长度为96 bit(6×16)64位的明文分成4块: X1,X2,X3,X4

明文经过8轮迭代和一个输出变换,得到64位的

密文 Y1,Y2,Y3,Y4

可以看作是8.5轮:8轮轮函数+0.5轮输出变换

Page 16: 第四讲现代分组加密技术 - SJTUlonghuan/teaching/P033507/04.pdf · 解密及解密密钥生成 加密解密实质相同,算法也相同但使用不同的密钥 解密密钥来自加密密钥,以如下方法从加密子密钥Z

IDEA加密示意图

由128bit密钥,经过密钥扩展,生成52个长度为16的子密钥

密钥扩展

128位密钥

Z1 Z52

16

Page 17: 第四讲现代分组加密技术 - SJTUlonghuan/teaching/P033507/04.pdf · 解密及解密密钥生成 加密解密实质相同,算法也相同但使用不同的密钥 解密密钥来自加密密钥,以如下方法从加密子密钥Z

IDEA轮函数

Z1 Z2 Z3

Z5

Z4

Z6

X1 X3 X4X2

Page 19: 第四讲现代分组加密技术 - SJTUlonghuan/teaching/P033507/04.pdf · 解密及解密密钥生成 加密解密实质相同,算法也相同但使用不同的密钥 解密密钥来自加密密钥,以如下方法从加密子密钥Z

IDEA的密钥生成

由128bit密钥,经过密钥扩展,生成52个长度为16的子密钥

前8个子密钥直接从密钥中取出;

对前8个16比特的子密钥进行25bit的循环左移,得到下一个8×16比特,该

过程循环7次接下来的密钥就从中取出;

重复进行直到52个子密钥都产生出来。

轮 数

Page 20: 第四讲现代分组加密技术 - SJTUlonghuan/teaching/P033507/04.pdf · 解密及解密密钥生成 加密解密实质相同,算法也相同但使用不同的密钥 解密密钥来自加密密钥,以如下方法从加密子密钥Z

IDEA解密及解密密钥生成

加密解密实质相同,算法也相同但使用不同的密钥

解密密钥来自加密密钥,以如下方法从加密子密钥Z1-Z52中导出:

解密循环i的头4个子密钥从加密循环10-i的头4个子密钥中导出;解

密密钥第1、4个子密钥对应于1、4加密子密钥的乘法逆元;2、3对应

2、3的加法逆元;

对前8个循环来说,循环i的最后两个子密钥等于加密循环9-i的最后两

个子密钥;

Page 21: 第四讲现代分组加密技术 - SJTUlonghuan/teaching/P033507/04.pdf · 解密及解密密钥生成 加密解密实质相同,算法也相同但使用不同的密钥 解密密钥来自加密密钥,以如下方法从加密子密钥Z

IDEA的速度和密码分析

软件实现比DES快两倍

抗穷举攻击

若有每秒测试十亿个密钥的芯片,并采用十亿个芯片并行处理,需要1013—比宇宙年龄更长

若有1024个上述芯片并行处理,可在一天内找出密钥—但宇宙中没有足够硅原子来制作这样的芯片

目前比穷举攻击更快对IDEA的攻击仅对2.5轮以下有效。4轮IDEA很快且刚好是安全的

抗差分攻击 Lai证明了IDEA的第四轮以后对差分免疫

存在极其少的弱密钥,但被选中的概率为(1/296),且很容易被修订

虽然IDEA有坚强的理论基础、高效且安全、已经实用化,Bruce Schneier 认为IDEA是DES的最好替代,但要取代一个当今正在使用的算法仍不容易

Page 22: 第四讲现代分组加密技术 - SJTUlonghuan/teaching/P033507/04.pdf · 解密及解密密钥生成 加密解密实质相同,算法也相同但使用不同的密钥 解密密钥来自加密密钥,以如下方法从加密子密钥Z

3. AES 1997年4月15日美国国家标准和技术研究所(NIST)发起征

集AES(AES—Advanced Encryption Standard)算法的活

动,并成立了AES工作组

目的是为了确定一个非保密的、公开披露的、全球免费使用

的加密算法,用于保护下一世纪政府的敏感信息

AES的基本要求:

比三重DES快至少和三重DES一样安全

分组长度128比特

支持密钥长度为128/192/256比特

Page 23: 第四讲现代分组加密技术 - SJTUlonghuan/teaching/P033507/04.pdf · 解密及解密密钥生成 加密解密实质相同,算法也相同但使用不同的密钥 解密密钥来自加密密钥,以如下方法从加密子密钥Z

历史

1998: 21个候选算法中的15 个候选算法通过第一轮评估

1999: 5个候选算法入围:

Mars (IBM): -complex, fast, high security margin RC6 (MIT):-v. simple, v. fast, low security margin Rijndael(比利时,Joan Daemen & Vincent Rijmen):-clean, fast, good

security margin Serpent(英,以,美): -slow, clean, v. high security margin

Twofish(美): -complex, v. fast, high security margin

2000: Rijndael算法被选中

其原型是Square算法,可抗击差分分析和线性分析

迭代分组密码,其分组长度和密钥长度都是可变的

根据AES的要求,分组长度为128bit,密码长度为128/192/256bit,相应的

轮数r为10/12/14;

2001年11月,美国NIST发布标准FIPS PUB 197

Page 24: 第四讲现代分组加密技术 - SJTUlonghuan/teaching/P033507/04.pdf · 解密及解密密钥生成 加密解密实质相同,算法也相同但使用不同的密钥 解密密钥来自加密密钥,以如下方法从加密子密钥Z

NIST评估标准

第一轮及第二轮 安全性:实际安全、随机性、可靠性、其它

成本:无专利, 软硬件效率、存储空间需求(电路门数、RAM大小)

算法和执行特征:灵活性、简洁性、适用性

最终评估标准 一般安全性:对抗现有攻击

软件实现:速度、跨平台能力、密钥长度导致执行速度变化

受限空间环境:RAM/ROM受限环境

硬件实现:如硬件设备存储区域加倍将导致设备费用上升

对执行的攻击:如计时攻击和能量分析攻击

加密与解密:算法若不一致,会占用存储空间,且存在执行时间差异

密钥灵活性:用少量资源快速改变密钥

多功能性和灵活性:密钥长度、分组长度、轮数的变化;特定环境下的优化

指令级并行执行的潜力:当前和未来处理器中利用ILP特征的能力

Page 25: 第四讲现代分组加密技术 - SJTUlonghuan/teaching/P033507/04.pdf · 解密及解密密钥生成 加密解密实质相同,算法也相同但使用不同的密钥 解密密钥来自加密密钥,以如下方法从加密子密钥Z

选择Rijndael的原因

NIST最终选择了Rijndael作为AES的标准,因为全面地考虑,Rijndael汇聚了安全,性能好,效率高,易用和灵活等优点

Rijndael使用非线性结构的S-boxes,表现出足够的安全余地;

Rijndael在无论有无反馈模式的计算环境下的硬,软件中都能显示出其

非常好的性能

它的密钥安装的时间很好,也具有很高的灵活性;

Rijndael的非常低的内存需求也使它很适合用于受限的环境;

Rijndael的操作简单,并可抵御时间和能量攻击,此外,它还有许多未

被特别强调的防御性能;

Rijndael在分组长度和密钥长度的设计上也很灵活,算法可根据分组长

度和密钥长度的不同组合提供不同的迭代次数,虽然这些特征还需更深

入地研究,短期内不可能被利用,但最终,Rijndael内在的迭代结构会

显示良好的潜能来防御入侵行为。

Page 26: 第四讲现代分组加密技术 - SJTUlonghuan/teaching/P033507/04.pdf · 解密及解密密钥生成 加密解密实质相同,算法也相同但使用不同的密钥 解密密钥来自加密密钥,以如下方法从加密子密钥Z

AES参数

密钥长度

(bit)分组大小

(bit)迭代轮数

(bit)轮密钥长度

(bit)扩展密钥长度

(bit)

AES-128 128 128 10 128 44×32

AES-192 192 128 12 128 52×32

AES-256 256 128 14 128 60×32

Page 27: 第四讲现代分组加密技术 - SJTUlonghuan/teaching/P033507/04.pdf · 解密及解密密钥生成 加密解密实质相同,算法也相同但使用不同的密钥 解密密钥来自加密密钥,以如下方法从加密子密钥Z

AES基本运算

一个被Rijndael处理的数据块(称为状态)和密钥均可用一个矩

阵列图来表示

每一列为一个4字节阵列(1字=4字节=32位)Nb代表分组长度对应的列数(=n/32)Nk代表密钥长度对应的列数(=k/32)每次加密操作的迭代次数(Nr) 分为10、12、14三种

以AES-128为例,明文长度n=128, 密钥长度k=128 不是Feistel结构

Page 28: 第四讲现代分组加密技术 - SJTUlonghuan/teaching/P033507/04.pdf · 解密及解密密钥生成 加密解密实质相同,算法也相同但使用不同的密钥 解密密钥来自加密密钥,以如下方法从加密子密钥Z

密钥和扩展密钥的结构

K0 K4 K8 K12

K1 K5 K9 K13

K2 K6 K10 K14

K3 K7 K11 K15

wo w1 w2 w42 w43

输入 State数组 输出

密钥 扩展密钥

从上到下,从左到右,每列8×4=32比特

扩展为44个字(每个字为32比特,4字节)。每列代表一个字

从上到下,从左到右,每列8×4=32比特

Page 29: 第四讲现代分组加密技术 - SJTUlonghuan/teaching/P033507/04.pdf · 解密及解密密钥生成 加密解密实质相同,算法也相同但使用不同的密钥 解密密钥来自加密密钥,以如下方法从加密子密钥Z

AES的完整结构(AES-128)

Page 30: 第四讲现代分组加密技术 - SJTUlonghuan/teaching/P033507/04.pdf · 解密及解密密钥生成 加密解密实质相同,算法也相同但使用不同的密钥 解密密钥来自加密密钥,以如下方法从加密子密钥Z

AES具体结构

不是Feistel结构,加密解密算法不同

对于加密和解密

均以轮密钥加作为开始

9轮迭代,每轮包括

字节代换:S盒子 (代换,之前有密钥,属于混淆,非线性)

行移位:简单置换 (属于扩散,线性)

列混淆:利用域GF(28)上的算术特性(属于扩散,线性)

轮密钥加:当前分组 XOR 轮密钥 (Vernam密码,线性)

第10轮只包含 字节代换、行移位、轮密钥加

目的是满足算法的可逆性

仅在轮密钥加阶段使用密钥

每个阶段均可逆

具有非常明晰的代数结构

Page 31: 第四讲现代分组加密技术 - SJTUlonghuan/teaching/P033507/04.pdf · 解密及解密密钥生成 加密解密实质相同,算法也相同但使用不同的密钥 解密密钥来自加密密钥,以如下方法从加密子密钥Z

AES的一轮加密过程

字节代换

行移位

8

8

8

8

8

8

列混淆

轮密钥加

Page 32: 第四讲现代分组加密技术 - SJTUlonghuan/teaching/P033507/04.pdf · 解密及解密密钥生成 加密解密实质相同,算法也相同但使用不同的密钥 解密密钥来自加密密钥,以如下方法从加密子密钥Z

AES的字节代换及逆变换(S盒子)

正向字节代换:简单查表

S盒子是一个16×16矩阵,包含8位值所能表达的全部256种可能的变换

字节代换时,对每个字节,高四位作为行值,低四位作为列值,找到S盒子

中的对应元素输出

例 S {95}={2A} S-1{2A}={95}

正向S盒子 逆向S盒子

Page 33: 第四讲现代分组加密技术 - SJTUlonghuan/teaching/P033507/04.pdf · 解密及解密密钥生成 加密解密实质相同,算法也相同但使用不同的密钥 解密密钥来自加密密钥,以如下方法从加密子密钥Z

AES演示

AES演示

Page 34: 第四讲现代分组加密技术 - SJTUlonghuan/teaching/P033507/04.pdf · 解密及解密密钥生成 加密解密实质相同,算法也相同但使用不同的密钥 解密密钥来自加密密钥,以如下方法从加密子密钥Z

4.1 分组密码的工作模式—电码本模式(ECB模式)

Electronic Codebook

工作方式:用相同密钥对各个明文组分别加密,一次处理64

位明文每个64位明文对应唯一密文

明文长度大于64位:明文分段,最后一段可能需要填充

特征:相同64位明文对应相同64位密文

攻击:

若消息有固定开头

交换明文组顺序,并交换对应密文组顺序—对分组的代换或重排

攻击成功的原因:对各个分组的加密彼此独立

应用:单个数据的安全传输

Page 35: 第四讲现代分组加密技术 - SJTUlonghuan/teaching/P033507/04.pdf · 解密及解密密钥生成 加密解密实质相同,算法也相同但使用不同的密钥 解密密钥来自加密密钥,以如下方法从加密子密钥Z

Electronic Codebook (ECB) 模式

ECB加密

ECB 解密

Page 36: 第四讲现代分组加密技术 - SJTUlonghuan/teaching/P033507/04.pdf · 解密及解密密钥生成 加密解密实质相同,算法也相同但使用不同的密钥 解密密钥来自加密密钥,以如下方法从加密子密钥Z

4.2 分组密码的工作模式—密码分组链接模式

Cipher Block Chaining (CBC) 目的:克服ECB的弱点

思路:将消息分为很多块,并通过加密进行

链接。已加密的密文分组与当前的明文分组

链接在一起。

使用初始向量IV Ci= EK(Pi⊕Ci-1) C0= IV 应用:对大量数据的加密和认证

Page 37: 第四讲现代分组加密技术 - SJTUlonghuan/teaching/P033507/04.pdf · 解密及解密密钥生成 加密解密实质相同,算法也相同但使用不同的密钥 解密密钥来自加密密钥,以如下方法从加密子密钥Z

CBC加密解密

CBC加密

CBC解密

Page 38: 第四讲现代分组加密技术 - SJTUlonghuan/teaching/P033507/04.pdf · 解密及解密密钥生成 加密解密实质相同,算法也相同但使用不同的密钥 解密密钥来自加密密钥,以如下方法从加密子密钥Z

CBC消息填充与优缺点

消息的最后一个Block小于64比特时,需要填充

方法一:填充“NULL”方法二:写入填充个数[b1 a2 c3]=>[b1 a2 c3 0 0 0 0 5]

优点

每个密文分组均依据于之前的全部分组

对任意一个分组的改动都会影响后继的所有密文分组

需要初始向量

缺点

收发双方都必须知道IV如果攻击者获得了IV,可以通过预先改变IV中的某些位,使得接收者

的明文中部分位被取反

P1[i] = IV[i] ⊕ Dk(C1[i]) 解决方法:IV为固定值,或者在发送消息前用ECB来保护IV

Page 39: 第四讲现代分组加密技术 - SJTUlonghuan/teaching/P033507/04.pdf · 解密及解密密钥生成 加密解密实质相同,算法也相同但使用不同的密钥 解密密钥来自加密密钥,以如下方法从加密子密钥Z

4.3 密码反馈模式(CFB) Cipher FeedBack 消息被看作比特流,本质是分组加密,可以用于实现流密码。

实现每次对任意比特的加密。(CFB-1, CFB-8, CFB-64, CFB-128)

明文消息与分组加密的输出进行异或,所得结果反馈进入移

位寄存器作为下一阶段的输入

加密:Ci= Pi ⊕As(EK(Ss(Ci-1))), 其中s是流密码每次加密的长度=|Pi|=|Ci|, C-1= IV, Ss代表移位寄存器S移动s位,

As代表取前s位解密:Pi=Ci ⊕ As(EK(Ss(Ci-1)))

•用途:流密码加密,认证

Page 40: 第四讲现代分组加密技术 - SJTUlonghuan/teaching/P033507/04.pdf · 解密及解密密钥生成 加密解密实质相同,算法也相同但使用不同的密钥 解密密钥来自加密密钥,以如下方法从加密子密钥Z

CFB加密

移位寄存器64-s位 | s 位

选择 丢弃

s位 | 64 - s位

移位寄存器64-s位 | s 位

移位寄存器64-s位 | s 位

选择 丢弃

s位 | 64 - s位选择 丢弃s位 | 64 - s位

CM-1

Page 41: 第四讲现代分组加密技术 - SJTUlonghuan/teaching/P033507/04.pdf · 解密及解密密钥生成 加密解密实质相同,算法也相同但使用不同的密钥 解密密钥来自加密密钥,以如下方法从加密子密钥Z

CFB解密

移位寄存器64-s位 | s 位

移位寄存器64-s位 | s 位

移位寄存器64-s位 | s 位

选择 丢弃s位 | 64-s 位

选择 丢弃s位 | 64-s 位

选择 丢弃s位 | 64-s 位

CM-1

Page 42: 第四讲现代分组加密技术 - SJTUlonghuan/teaching/P033507/04.pdf · 解密及解密密钥生成 加密解密实质相同,算法也相同但使用不同的密钥 解密密钥来自加密密钥,以如下方法从加密子密钥Z

CFB的优缺点

优点

非常适合数据流的加密,是最常见的流密码模式

缺点

每得到s个输入比特,需要暂停进行分组加密

存在误差扩散:密文传输中某位发生错误,会影

响后继的解密

Page 43: 第四讲现代分组加密技术 - SJTUlonghuan/teaching/P033507/04.pdf · 解密及解密密钥生成 加密解密实质相同,算法也相同但使用不同的密钥 解密密钥来自加密密钥,以如下方法从加密子密钥Z

4.4 输出反馈模式(OFB) Output FeedBack 与CFB非常相似,消息被看作比特流

与CFB不同,加密函数的输出被反馈回移位寄存器作为下一

次的输入(而不是密文单元)。

因为反馈值与明文消息无关,所以反馈值都可以预先计算

分组加密的输出与明文异或得到密文

加密

Ci= Pi ⊕Oi

Oi=As(EK(Ss(Oi-1))) O-1= IV

用途:有信道噪声环境下的流密码

Page 44: 第四讲现代分组加密技术 - SJTUlonghuan/teaching/P033507/04.pdf · 解密及解密密钥生成 加密解密实质相同,算法也相同但使用不同的密钥 解密密钥来自加密密钥,以如下方法从加密子密钥Z

OFB加密

移位寄存器64-s位 | s 位

选择 丢弃

s位 | 64 - s位

移位寄存器64-s位 | s 位

移位寄存器64-s位 | s 位

选择 丢弃

s位 | 64 - s位选择 丢弃s位 | 64 - s位

CM-1

Page 45: 第四讲现代分组加密技术 - SJTUlonghuan/teaching/P033507/04.pdf · 解密及解密密钥生成 加密解密实质相同,算法也相同但使用不同的密钥 解密密钥来自加密密钥,以如下方法从加密子密钥Z

OFB解密

移位寄存器64-s位 | s 位

选择 丢弃

s位 | 64 - s位

移位寄存器64-s位 | s 位

移位寄存器64-s位 | s 位

选择 丢弃

s位 | 64 - s位选择 丢弃s位 | 64 - s位

CM-1

Page 46: 第四讲现代分组加密技术 - SJTUlonghuan/teaching/P033507/04.pdf · 解密及解密密钥生成 加密解密实质相同,算法也相同但使用不同的密钥 解密密钥来自加密密钥,以如下方法从加密子密钥Z

OFB优缺点

优点

传输过程中,比特差错不会扩散

可以预计算分组,流加密时不需停顿

缺点

对抗消息流篡改攻击的能力弱于CFB:若对密文

取反,则解密后的明文也取反

可以看作是一次一密的变形(Vernam密码)

所以绝对不能重复使用相同的密钥序列和IV发送方和接收方必须同步

Page 47: 第四讲现代分组加密技术 - SJTUlonghuan/teaching/P033507/04.pdf · 解密及解密密钥生成 加密解密实质相同,算法也相同但使用不同的密钥 解密密钥来自加密密钥,以如下方法从加密子密钥Z

4.5 计数器模式(CRT) Counter 在70年代已经被提出,直到在ATM和IPSec中应用,才被人

们广泛研究

与OFB相似处:明文与分组的输出异或得到密文。

与OFB的差异:分组加密的输入是计数

对每个明文,必须使用不同的分组密钥和计算器值(绝不重

用)

可以并行处理

加密

Ci= Pi ⊕ Oi

Oi = EK(Counter)

用途:高速网络加密

Page 48: 第四讲现代分组加密技术 - SJTUlonghuan/teaching/P033507/04.pdf · 解密及解密密钥生成 加密解密实质相同,算法也相同但使用不同的密钥 解密密钥来自加密密钥,以如下方法从加密子密钥Z
Page 49: 第四讲现代分组加密技术 - SJTUlonghuan/teaching/P033507/04.pdf · 解密及解密密钥生成 加密解密实质相同,算法也相同但使用不同的密钥 解密密钥来自加密密钥,以如下方法从加密子密钥Z

CTR的优缺点

优点

高效

可以并行处理多块明文密文

可以预计算

good for bursty high speed links 随机访问:密文的第i个分组可以随机访问,不需知道前面i-1个密

文组(c.p. CBC)

可证安全:是CPA安全的

前提:使用了真正的随机数生成器,且每个计数器值绝不重用

缺点

密钥、计数器值绝不能重用

Page 50: 第四讲现代分组加密技术 - SJTUlonghuan/teaching/P033507/04.pdf · 解密及解密密钥生成 加密解密实质相同,算法也相同但使用不同的密钥 解密密钥来自加密密钥,以如下方法从加密子密钥Z

总结

知识要点

三重DES — 3DES,两个密钥的3DES,参

国际数据加密算法 — IDEA的参数及优点

高级数据加密标准—AES的参数及优点

分组密码的工作模式,各种模式的优缺点

Page 51: 第四讲现代分组加密技术 - SJTUlonghuan/teaching/P033507/04.pdf · 解密及解密密钥生成 加密解密实质相同,算法也相同但使用不同的密钥 解密密钥来自加密密钥,以如下方法从加密子密钥Z

下一讲预告

用对称密码实现保密性

Page 52: 第四讲现代分组加密技术 - SJTUlonghuan/teaching/P033507/04.pdf · 解密及解密密钥生成 加密解密实质相同,算法也相同但使用不同的密钥 解密密钥来自加密密钥,以如下方法从加密子密钥Z

谢谢!