文章目录
序:
Chapter 3 讲的是如何在open communication channel上安全通信,本章讲的是如何使用MAC检测message是否被篡改。
4.1.1 Secrecy VS. Integrity
重点理解:Secrecy != Integrity
4.1.2 Encryption vs. Message Authentication
大多数人存在一个普遍的误区:加密算法能够解决消息完整性问题。这就是把Encryption和Message Authentication混为一谈,实际上加密并不能够保证消息的完整性,也不能实现消息验证,除非是有特定的需要(4.5节会有介绍)。
Encryption using stream ciphers
考虑一种简单的加密方案,加密算法 E n c k ( m ) Enc_k(m) Enck(m)计算密文 c : = G ( k ) ⊕ m c:=G(k)\oplus m c:=G(k)⊕m,这种情况下,敌手翻转密文中的第 i i i位,明文中的第 i i i也会相应的得到翻转。
Encryption using block ciphers
对于上面提到篡改密文的方法也可用在上章
O
F
B
−
OFB-
OFB−和
C
T
R
−
CTR-
CTR−操作模式中,这两种操作模式的密文也是通过异或操作得到。
而
E
C
B
−
ECB-
ECB−和
C
B
C
−
CBC-
CBC−操作模式的密文
F
k
(
)
F_k()
Fk()计算,其中
F
k
(
)
F_k()
Fk()是Pseudorandom Permutation 或者 Strong Pseudorandom Permutation,显而易见求解明文需要计算
F
k
−
1
(
c
)
F_k^{-1}(c)
Fk−1(c)。设
c
′
c^{'}
c′和
c
c
c仅有1 bit的不同,但
F
k
−
1
(
c
)
F_k^{-1}(c)
Fk−1(c)和
F
k
−
1
(
c
′
)
F_k^{-1}(c^{'})
Fk−1(c′)可能完全不同。
例如,对于
E
C
B
−
ECB-
ECB−操作模式来说,篡改第
i
i
i个blcok的密文仅会对第
i
i
i个block的明文;另外对于
E
C
B
−
ECB-
ECB−操作模式,敌手还可以通过改变block的顺序来达到篡改message的目的。对于
C
B
C
−
CBC-
CBC−操作模式,修改初始化向量
I
V
IV
IV的第
j
j
j位仅会影响
m
1
m_1
m1的第
j
j
j位。
补充:分组密码和流密码
分组密码 | 流密码 | |
---|---|---|
区别 | 处理的单元是确定大小的分组 | 以一个元素作为处理单元 |