Introduction to Modern cryptograhy阅读笔记(二)

Chapter two
密钥生成算法Gen是一种概率算法输出密钥K,K根据一定的概率分布来选取。用K表示密钥空间,Gen输出所有可能的密钥集合,而且K必须是有穷的。
加密算法可能是概率的,以至于 E n c k ( m ) Enc_{k}(m) Enck(m)多次运行时输出不同的密文。
明文根据一些分布来进行选择
从敌手的观点,不同的消息有不同的发送概率
密钥 K K K和明文 M M M的分布是独立的, K K K的分布由加密方案决定, M M M的分布随着使用加密方案的通信方变化。
保密加密
如果有adversary知道M的概率分布,随后得知密文,理想情况下,这些密文对敌手没有任何影响,密文的后验概率与密文将要被发送的先验概率相同。
密文没有泄露任何明文信息,截获一个密文不能得到任何关于明文的信息。
在这里插入图片描述
当明文和密文上的分布是独立的,方案才是完善的保密加密(Perfect secrecy)
等价公式
明文空间为M的加密方案(Gen,Enc,Dec)是完善保密加密,当且仅当对于任意M上的概率分布,任意一个明文m∈M,和任意一个密文c∈C,有
Pr ⁡ [ C = c ∣ M = m ] = Pr ⁡ [ C = c ] \operatorname{Pr}[C=c \mid M=m]=\operatorname{Pr}[C=c] Pr[C=cM=m]=Pr[C=c]
证明:(充分条件)
选定一个M上的分布,对于任意的m∈M和c∈C,有
Pr ⁡ [ C = c ∣ M = m ] = Pr ⁡ [ C = c ] \operatorname{Pr}[C=c \mid M=m]=\operatorname{Pr}[C=c] Pr[C=cM=m]=Pr[C=c]
在等式两边同时乘以 Pr ⁡ [ M = m ] / Pr ⁡ [ C = c ] \operatorname{Pr}[M=m] / \operatorname{Pr}[C=c] Pr[M=m]/Pr[C=c],得
Pr ⁡ [ C = c ∣ M = m ] ⋅ Pr ⁡ [ M = m ] Pr ⁡ [ C = c ] = Pr ⁡ [ M = m ] \frac{\operatorname{Pr}[C=c \mid M=m] \cdot \operatorname{Pr}[M=m]}{\operatorname{Pr}[C=c]}=\operatorname{Pr}[M=m] Pr[C=c]Pr[C=cM=m]Pr[M=m]=Pr[M=m]
应用贝叶斯定力,等式左边等于 lr ⁡ [ M = m ∣ C = c ] \operatorname{lr}[M=m \mid C=c] lr[M=mC=c]。因此 Pr ⁡ [ M = m ∣ C = c ] = Pr ⁡ [ M = m ] \operatorname{Pr}[M=m \mid C=c]=\operatorname{Pr}[M=m] Pr[M=mC=c]=Pr[M=m]是完善的保密加密方案。
完美不可区分性(Perfect indistinguishability)
C的概率分布独立于明文,用C(m)表示加密m∈M时的密文分布,要求每一个 m 0 , m 1 ∈ M m_{0}, m_{1} \in \mathcal{M} m0,m1M C ( m 0 ) \mathcal{C}\left(m_{0}\right) C(m0) C ( m 1 ) \mathcal{C}\left(m_{1}\right) C(m1)的分布是相同的。密文中不包含任何明文信息。
引理
明文空间为M的加密方案是完善保密加密,当且仅当对于任意M上的概率分布,每个 m 0 , m 1 ∈ M m_{0}, m_{1} \in \mathcal{M} m0,m1M,以及每个 c ∈ C c \in \mathcal{C} cC
都有
Pr ⁡ [ C = c ∣ M = m 0 ] = Pr ⁡ [ C = c ∣ M = m 1 ] \operatorname{Pr}\left[C=c \mid M=m_{0}\right]=\operatorname{Pr}\left[C=c \mid M=m_{1}\right] Pr[C=cM=m0]=Pr[C=cM=m1]
敌手不可区分性(Adversarial indistinguishability)
敌手不能区分出密文是来自哪个明文的加密,因而叫做敌手不可区分性。
窃听不可区分实验Privk A , Π ev  { }_{\mathcal{A}, \Pi}^{\text {ev }} A,Πev 
(1)敌手A输出一对信息 m 0 , m 1 ∈ M m_{0}, m_{1} \in \mathcal{M} m0,m1M
(2)由Gen产生一个随机密钥k,并且从{0,1}中随机选择一个比特b(b,<-{0,1})。然后,一个密文 c ← Enc ⁡ k ( m b ) c \leftarrow \operatorname{Enc}_{k}\left(m_{b}\right) cEnck(mb)被计算出来并交给A。
(3)A输出一个比特 b ′ b^{\prime} b
(4)如果 b ′ = b b^{\prime}=b b=b,定义实验的输出为1,否则为0。如果输出为1,用PrivK A , Π eav  = 1 _{\mathcal{A}, \Pi}^{\text {eav }}=1 A,Πeav =1表示,此时称A成功。
敌手A会设法猜测实验中的b,当猜测值 b ′ b^{\prime} b正确时A就取得成功。
完善保密加密的另一种定义:如果没有敌手A能以大于1/2的概率成功,这种加密方案就是完善保密加密。
定义
明文空间为M的加密方案(Gen, Enc, Dec)为完善保密加密,当对于所有敌手都满足 Pr ⁡ [ Priv ⁡ K A , Π eav ⁡ = 1 ] = 1 2 \operatorname{Pr}\left[\operatorname{Priv} K_{\mathcal{A}, \Pi}^{\operatorname{eav}}=1\right]=\frac{1}{2} Pr[PrivKA,Πeav=1]=21
一次一密(One time pad)
a ⊕ b a \oplus b ab表示把二进制串a和二进制串b按比特位异或。
一次一密方案定义如下:
(1)令整数l>0,设明文空间M,密钥空间K和密文空间C都等于{0,1}
(2)密钥产生算法Gen从 K = { 0 , 1 } l \mathcal{K}=\{0,1\}^{l} K={ 0,1}l中依据分布选择一个二进制比特串,( 2 l 2^{l} 2l个串空间中任何一个被选中的概率都为 2 − l 2^{-l} 2l
(3)加密算法Enc:给定一个密钥 k ∈ { 0 , 1 } l k \in\{0,1\}^{l} k{ 0,1}l和一个明文 m ∈ { 0 , 1 } l m \in\{0,1\}^{l} m{ 0,1}l,输出 c : = k ⊕ m c:=k \oplus m c:=km
(4)解密算法Dec:给定一个密钥 k ∈ { 0 , 1 } l k \in\{0,1\}^{l} k{ 0,1}l和一个密文 c ∈ { 0 , 1 } l c \in\{0,1\}^{l} c{ 0,1}l,输出 m : = k ⊕ m m:=k \oplus m m:=km

猜你喜欢

转载自blog.csdn.net/Annalovecoding/article/details/108951214