本来想整理下 “安全性归约” 的课程内容,便于复习。但是内容也太多了吧!(╬◣д◢)
算啦,先整理这一点儿吧 o(´^`)o
现代密码学的三个层次:
安全性:
可证明安全:给出安全模型,设计方案,归约证明安全性(攻击密码方案的计算复杂度,不低于求解基础困难问题)
构建密码方案过程:
图灵机(Turing machine):确定性图灵机、非确定性图灵机、概率图灵机。单带图灵机、多带图灵机。
图灵机本身也是字符串,可作为图灵机的输入输出。简记 M T M^T MT 为:图灵机 M M M 在执行过程中可以访问图灵机 T T T
归约:将求解一个问题,转化为求解另一个问题
可忽略函数(Negligible function):函数 μ : N → R \mu: \mathbb N \to \mathbb R μ:N→R 是可忽略的,如果对于任意多项式 p o l y poly poly,存在自然数 N N N,当 n > N n > N n>N 时总有 μ ( n ) < 1 / p o l y ( n ) \mu(n) < 1/poly(n) μ(n)<1/poly(n)
显著函数(noticeable function):函数 μ : N → R \mu: \mathbb N \to \mathbb R μ:N→R 是显著的,如果存在多项式 p o l y poly poly 和自然数 N N N,当 n > N n > N n>N 时总有 μ ( n ) ≥ 1 / p o l y ( n ) \mu(n) \ge 1/poly(n) μ(n)≥1/poly(n)
不可忽略函数 ≠ \neq = 显著函数: f ( n ) = 1 / n , n ≡ 0 ( m o d 2 ) f(n)=1/n,n \equiv 0 \pmod 2 f(n)=1/n,n≡0(mod2), f ( n ) = 1 / 2 n , n ≡ 1 ( m o d 2 ) f(n)=1/2^n,n \equiv 1 \pmod 2 f(n)=1/2n,n≡1(mod2)
统计距离(statistical distance):样本空间
Γ
\Gamma
Γ 上的两个随机分布(变量)
X
,
Y
X,Y
X,Y,
Δ
(
X
,
Y
)
:
=
1
2
∑
α
∈
Γ
∣
P
r
[
X
=
α
]
−
P
r
[
Y
=
α
]
∣
:
=
max
S
⊆
Γ
∣
P
r
[
X
∈
S
]
−
P
r
[
Y
∈
S
]
∣
Δ(X,Y):=12∑α∈Γ|Pr[X=α]−Pr[Y=α]|:=maxS⊆Γ|Pr[X∈S]−Pr[Y∈S]|
不可区分性:两个有无限个随机分布的随机分布族 { X n } n , { Y n } n \{X_n\}_n,\{Y_n\}_n {Xn}n,{Yn}n,一个区分器 D D D 不可区分它们,如果区分优势为 A d v D = Δ ( D ( X n ) , D ( Y n ) ) ≤ n e g l ( n ) Adv_D = \Delta(D(X_n),D(Y_n)) \le negl(n) AdvD=Δ(D(Xn),D(Yn))≤negl(n)
概率总体(Probability ensemble):令 I I I 是可抽样的可数(有限/无限)集合,由 I I I 索引的随机变量序列记为 X = { X i } i ∈ I X = \{X_i\}_{i \in I} X={Xi}i∈I,其中 ∀ i ∈ I , X i \forall i \in I,X_i ∀i∈I,Xi 是域 D i ⊂ { 0 , 1 } ∗ D_i \sub \{0,1\}^* Di⊂{0,1}∗ 上的随机变量。
(一致)计算不可区分:指标集合
I
⊆
{
0
,
1
}
∗
I \subseteq \{0,1\}^*
I⊆{0,1}∗,两个概率总体
X
=
{
X
s
}
s
∈
I
,
Y
=
{
Y
s
}
s
∈
I
X = \{X_s\}_{s \in I}, Y = \{Y_s\}_{s \in I}
X={Xs}s∈I,Y={Ys}s∈I 一致(Uniform)计算不可区分(Computational indistinguishability),如果对于任意 PPT 区分器
D
D
D,以及充分长的
s
s
s,都有
∣
P
r
X
s
,
D
[
D
(
X
s
,
s
)
=
1
]
−
P
r
Y
s
,
D
[
D
(
Y
s
,
s
)
=
1
]
∣
≤
n
e
g
l
(
∣
s
∣
)
\left| \underset{X_s,D}{Pr}[D(X_s,s)=1] - \underset{Y_s,D}{Pr}[D(Y_s,s)=1] \right| \le negl(|s|)
Xs,DPr[D(Xs,s)=1]−Ys,DPr[D(Ys,s)=1]
≤negl(∣s∣)
安全参数
∣
s
∣
|s|
∣s∣ 表示问题的规模。如果
I
=
N
I = \mathbb N
I=N,那么写作
∣
P
r
X
n
,
D
[
D
(
X
n
,
1
n
)
=
1
]
−
P
r
Y
n
,
D
[
D
(
Y
n
,
1
n
)
=
1
]
∣
≤
n
e
g
l
(
n
)
\left| \underset{X_n,D}{Pr}[D(X_n,1^n)=1] - \underset{Y_n,D}{Pr}[D(Y_n,1^n)=1] \right| \le negl(n)
Xn,DPr[D(Xn,1n)=1]−Yn,DPr[D(Yn,1n)=1]
≤negl(n)
非一致计算不可区分:指标集合
I
⊆
{
0
,
1
}
∗
I \subseteq \{0,1\}^*
I⊆{0,1}∗,两个概率总体
X
=
{
X
s
}
s
∈
I
,
Y
=
{
Y
s
}
s
∈
I
X = \{X_s\}_{s \in I}, Y = \{Y_s\}_{s \in I}
X={Xs}s∈I,Y={Ys}s∈I 非一致(Non-Uniform)计算不可区分,如果对于任意的非一致 PPT 电路簇
{
C
n
:
Ω
s
→
{
0
,
1
}
}
n
\{C_n:\Omega_s \to \{0,1\}\}_n
{Cn:Ωs→{0,1}}n,以及充分长的
s
s
s,都有
∣
P
r
X
s
,
C
∣
s
∣
[
C
∣
s
∣
(
X
s
)
=
1
]
−
P
r
Y
s
,
C
∣
s
∣
[
C
∣
s
∣
(
Y
s
)
=
1
]
∣
≤
n
e
g
l
(
∣
s
∣
)
\left| \underset{X_s,C_{|s|}}{Pr}[C_{|s|}(X_s)=1] - \underset{Y_s,C_{|s|}}{Pr}[C_{|s|}(Y_s)=1] \right| \le negl(|s|)
Xs,C∣s∣Pr[C∣s∣(Xs)=1]−Ys,C∣s∣Pr[C∣s∣(Ys)=1]
≤negl(∣s∣)
如果两个概率总体是非一致计算不可区分的,那么一定是(一致)计算不可区分的。存在与均匀分布是一致不可区分、但非一致可区分的分布。
可有效重构(efficiently constructible):概率总体 X = { X n } n ∈ N X = \{X_n\}_{n \in \mathbb N} X={Xn}n∈N,存在 PPT 算法 S S S,对于任意的 n n n,使得 S ( 1 n ) S(1^n) S(1n) 与 X X X 同分布(比信息论不可区分还强,完美不可区分)
重复抽样(Multiple samples)一致(非一致)计算不可区分:两个概率总体
X
=
{
X
n
}
n
∈
N
,
Y
=
{
Y
n
}
n
∈
N
X = \{X_n\}_{n \in \mathbb N}, Y = \{Y_n\}_{n \in \mathbb N}
X={Xn}n∈N,Y={Yn}n∈N 可有效重构,如果它们是一致(非一致)计算不可区分的,那么对于任意多项式
p
(
⋅
)
p(\cdot)
p(⋅),下述分布
X
‾
=
{
X
‾
n
=
(
X
n
(
1
)
,
⋯
,
X
n
p
(
n
)
)
}
n
∈
N
,
Y
‾
=
{
Y
‾
n
=
(
Y
n
(
1
)
,
⋯
,
Y
n
p
(
n
)
)
}
n
∈
N
\overline X = \{\overline X_n=(X_n^{(1)},\cdots,X_n^{p(n)})\}_{n \in \mathbb N},\, \overline Y = \{\overline Y_n=(Y_n^{(1)},\cdots,Y_n^{p(n)})\}_{n \in \mathbb N}
X={Xn=(Xn(1),⋯,Xnp(n))}n∈N,Y={Yn=(Yn(1),⋯,Ynp(n))}n∈N
也是一致(非一致)计算不可区分的,其中 X ‾ n , Y ‾ n \overline X_n,\overline Y_n Xn,Yn 是独立同分布的 p ( n ) p(n) p(n) 次抽样。
统计(信息论)不可区分:两个概率总体
X
=
{
X
n
}
n
∈
N
,
Y
=
{
Y
n
}
n
∈
N
X = \{X_n\}_{n \in \mathbb N}, Y = \{Y_n\}_{n \in \mathbb N}
X={Xn}n∈N,Y={Yn}n∈N 统计接近,如果它们的统计距离
Δ
(
X
n
,
Y
n
)
:
=
1
2
∑
α
∣
P
r
[
X
n
=
α
]
−
P
r
[
Y
n
=
α
]
∣
≤
n
e
g
l
(
n
)
\Delta(X_n,Y_n) := \frac{1}{2} \sum_\alpha \left| Pr[X_n=\alpha] - Pr[Y_n=\alpha] \right| \le negl(n)
Δ(Xn,Yn):=21α∑∣Pr[Xn=α]−Pr[Yn=α]∣≤negl(n)
如果
X
=
{
X
n
}
n
∈
N
,
Y
=
{
Y
n
}
n
∈
N
X = \{X_n\}_{n \in \mathbb N}, Y = \{Y_n\}_{n \in \mathbb N}
X={Xn}n∈N,Y={Yn}n∈N 统计接近,那么对于任意 PPT 算法
D
D
D,都有
Δ
(
D
(
X
n
)
,
D
(
Y
n
)
)
≤
Δ
(
X
n
,
Y
n
)
≤
n
e
g
l
(
n
)
\Delta(D(X_n),D(Y_n)) \le \Delta(X_n,Y_n) \le negl(n)
Δ(D(Xn),D(Yn))≤Δ(Xn,Yn)≤negl(n)
如果两个概率总体是统计不可区分的,那么一定是计算不可区分的。存在与均匀分布计算不可区分、但统计距离不可忽略的分布。
现代密码学体系结构:
现实世界(Real world):方案运行的真实环境。敌手除了可以获得公开参数,还可以获取到信道中泄露的信息
理想世界(Ideal world):仅有方案的描述,方案并不运行。敌手仅可以获得公开参数。因此,在理想模型中可以实现任意合理的安全目标。
安全模型:对于现实世界里的任意算法
A
A
A,在理想世界中存在算法
A
′
A'
A′,使得
A
′
A'
A′ 可以完成(计算意义下)
A
A
A 的任务,即
(
p
u
b
,
A
(
p
u
b
,
ρ
)
)
=
c
(
p
u
b
′
,
A
(
p
u
b
′
)
)
(pub, A(pub,\rho)) \overset{c}{=} (pub', A(pub'))
(pub,A(pub,ρ))=c(pub′,A(pub′))
以 PRF 为例,
现实的攻击实验:方案 F = { F n } F=\{F_n\} F={Fn},挑战者 C h Ch Ch 和敌手 D D D 玩一个交互游戏,敌手从交互信息中学习,输出结果。当某事件发生时,敌手赢得游戏,记为 E x p t D F n ( 1 n ) = 1 Expt_{D}^{F_n}(1^n) = 1 ExptDFn(1n)=1
理想的攻击实验:方案 F = { F n } F=\{F_n\} F={Fn},挑战者 C h Ch Ch 和敌手 D D D 玩一个交互游戏,挑战者仅发送公开参数,敌手直接输出结果。当某事件发生时,敌手赢得游戏,记为 E x p t D , I d e a l F n ( 1 n ) = 1 Expt_{D,Ideal}^{F_n}(1^n) = 1 ExptD,IdealFn(1n)=1
安全模型:任意的 PPT 敌手
D
D
D,其区分优势可忽略,即
A
d
v
D
F
n
:
=
2
∣
P
r
[
E
x
p
t
D
F
n
(
1
n
)
=
1
]
−
P
r
[
E
x
p
t
D
,
I
d
e
a
l
F
n
(
1
n
)
=
1
]
∣
≤
n
e
g
l
(
n
)
Adv_{D}^{F_n} := 2 \left| Pr[Expt_{D}^{F_n}(1^n) = 1] - Pr[Expt_{D,Ideal}^{F_n}(1^n) = 1] \right| \le negl(n)
AdvDFn:=2
Pr[ExptDFn(1n)=1]−Pr[ExptD,IdealFn(1n)=1]
≤negl(n)
以 PRF 为例,
基于假设的安全性:方案基于某一假设,要么方案是安全的,要么假设不成立。
安全性证明:攻击方案比攻击假设更难,即存在归约:
攻击假设
Γ
的算法
B
≤
攻击方案
Π
的算法
A
\textbf{攻击假设 } \Gamma \textbf{ 的算法 } B \le \textbf{攻击方案 } \Pi \textbf{ 的算法 } A
攻击假设 Γ 的算法 B≤攻击方案 Π 的算法 A
归约方式:
归约性能:如果 A A A 运行时间为 t t t 时成功概率为 ϵ \epsilon ϵ,归约的时间代价为 T T T,归约的概率损失为 L L L,那么算法 B B B 运行时间为 t ’ = t + T t’=t+T t’=t+T 时成功概率为 ϵ ′ = ϵ / L \epsilon'=\epsilon/L ϵ′=ϵ/L,
有些方案中,需要双方共享一个随机函数。
为了规避安全证明的困难性,使用共享的预言机 Oracle 取代随机函数 H H H,同时允许敌手进行常规询问外,可使用任意的 m m m 询问 Oracle 获得对应的 t = O ( m ) t=O(m) t=O(m)
以 PRF 为例,