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=c∣M=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=c∣M=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=c∣M=m]⋅Pr[M=m]=Pr[M=m]
应用贝叶斯定力,等式左边等于
lr
[
M
=
m
∣
C
=
c
]
\operatorname{lr}[M=m \mid C=c]
lr[M=m∣C=c]。因此
Pr
[
M
=
m
∣
C
=
c
]
=
Pr
[
M
=
m
]
\operatorname{Pr}[M=m \mid C=c]=\operatorname{Pr}[M=m]
Pr[M=m∣C=c]=Pr[M=m]是完善的保密加密方案。
完美不可区分性(Perfect indistinguishability)
C的概率分布独立于明文,用C(m)表示加密m∈M时的密文分布,要求每一个
m
0
,
m
1
∈
M
m_{0}, m_{1} \in \mathcal{M}
m0,m1∈M,
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,m1∈M,以及每个
c
∈
C
c \in \mathcal{C}
c∈C
都有
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=c∣M=m0]=Pr[C=c∣M=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,m1∈M。
(2)由Gen产生一个随机密钥k,并且从{0,1}中随机选择一个比特b(b,<-{0,1})。然后,一个密文
c
←
Enc
k
(
m
b
)
c \leftarrow \operatorname{Enc}_{k}\left(m_{b}\right)
c←Enck(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
a⊕b表示把二进制串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}
2−l)
(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:=k⊕m
(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:=k⊕m
Introduction to Modern cryptograhy阅读笔记(二)
最新推荐文章于 2022-12-15 22:09:43 发布