安全性归约(基础)

本来想整理下 “安全性归约” 的课程内容,便于复习。但是内容也太多了吧!(╬◣д◢)

算啦,先整理这一点儿吧 o(´^`)o

基础与方法

现代密码学的三个层次

  1. 基本困难问题
  2. 基于困难问题建立的密码原语(Cryptographic primitive)
  3. 密码方案、密码协议、应用系统

安全性:

  1. 信息论安全,两个分布几乎完全相同
  2. 计算安全,两个分布不同(甚至差异很大),但是概率多项式时间(PPT)不可区分

可证明安全:给出安全模型,设计方案,归约证明安全性(攻击密码方案的计算复杂度,不低于求解基础困难问题)

  1. 基于模拟的模型
  2. 基于游戏的模型

构建密码方案过程:

  1. 确立安全目标
  2. 明确敌手模型
  3. 给出安全性定义
  4. 根据适当假设或原语构建方案
  5. 归约证明方案满足安全性定义

图灵机(Turing machine):确定性图灵机、非确定性图灵机、概率图灵机。单带图灵机、多带图灵机。

  • 语言(Language):字符串子集 L ⊂ Σ ∗ L \sub \Sigma^* LΣ
  • 判定问题:判断 x ∈ L x \in L xL 还是 x ∉ L x \notin L x/L
  • 图灵可识别(Turing machine recognizable language):对于语言 L L L 以及字符串 x x x,存在一个图灵机,如果 x ∈ L x \in L xL 那么总是有限步停机,且进入接受状态。而 x ∉ L x \notin L x/L 时,图灵机可能拒绝,也可能无限循环。
  • 图灵可计算(Turing machine decidable language):对于语言 L L L 以及字符串 x x x,存在一个总是有限步停机、且可以正确判定的图灵机。这比图灵可识别的要求更严格。
  • Godel 不完全定理:某些真数学命题不能被证明。存在可数无穷个图灵可计算问题,以及不可数无穷个图灵不可计算问题。
  • Church-Turing 命题:任何可计算函数都可以被图灵机计算。如果是多项式时间可计算,那么可以被图灵机在多项式时间计算。

图灵机本身也是字符串,可作为图灵机的输入输出。简记 M T M^T MT 为:图灵机 M M M 在执行过程中可以访问图灵机 T T T

归约:将求解一个问题,转化为求解另一个问题

  • Cook 归约(问题间的归约):若 T T T 可以求解问题 Π 2 \Pi_2 Π2,存在 PPT 的 M M M,使得 M T M^T MT 可求解问题 Π 1 \Pi_1 Π1,记为 Π 1 ≤ Π 2 \Pi_1 \le \Pi_2 Π1Π2。图灵机 M M M 可以调用多项式次 Π 2 \Pi_2 Π2 的神谕。
  • Karp 归约(语言间的归约):存在可有效计算的函数 f f f,使得 x ∈ L 1    ⟺    f ( x ) ∈ L 2 x \in L_1 \iff f(x) \in L_2 xL1f(x)L2。注意 Karp 归约比 Cook 更加标准,它只调用一次 L 2 L_2 L2 上的神谕。如果函数 f f f 是满的(总存在伪逆),那么 Karp 归约给出了两个语言的等价性。
  • Levin 归约(关系间的归约):从关系 R 1 R_1 R1 到关系 R 2 R_2 R2,存在多项式时间可计算函数 f , g , h f,g,h f,g,h,使得
    • x ∈ L ( R 1 )    ⟺    f ( x ) ∈ L ( R 2 ) x \in L(R_1) \iff f(x) \in L(R_2) xL(R1)f(x)L(R2)
    • ∀ ( x , y ) ∈ R 1 \forall (x,y) \in R_1 (x,y)R1,那么 ( f ( x ) , g ( x , y ) ) ∈ R 2 (f(x),g(x,y)) \in R_2 (f(x),g(x,y))R2
    • ∀ x , z , ( f ( x ) , z ) ∈ R 2 \forall x,z,(f(x),z) \in R_2 x,z,(f(x),z)R2,推出 ( x , h ( x , z ) ) ∈ R 1 (x,h(x,z)) \in R_1 (x,h(x,z))R1

不可区分性

可忽略函数(Negligible function):函数 μ : N → R \mu: \mathbb N \to \mathbb R μ:NR 是可忽略的,如果对于任意多项式 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 μ:NR 是显著的,如果存在多项式 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,n0(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,n1(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 ] ∣ \begin{aligned} \Delta(X,Y) &:= \frac{1}{2} \sum_{\alpha \in \Gamma} |Pr[X=\alpha] - Pr[Y=\alpha]| \\ &:= \max_{S \subseteq \Gamma} |Pr[X \in S] - Pr[Y \in S]| \end{aligned} Δ(X,Y):=21αΓPr[X=α]Pr[Y=α]:=SΓmaxPr[XS]Pr[YS]

不可区分性:两个有无限个随机分布的随机分布族 { 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}iI,其中 ∀ i ∈ I , X i \forall i \in I,X_i iI,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}sI,Y={Ys}sI 一致(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)

  • 封闭性:如果 X = c Y X \overset{c}{=} Y X=cY,那么对于任意 PPT 算法 M M M,都有 { M ( X n ) } = c { M ( X n ) } \{M(X_n)\} \overset{c}{=} \{M(X_n)\} {M(Xn)}=c{M(Xn)}
  • 传递性:如果 X = c Y X \overset{c}{=} Y X=cY Y = c Z Y \overset{c}{=} Z Y=cZ,那么 X = c Z X \overset{c}{=} Z X=cZ

安全参数 ∣ 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}sI,Y={Ys}sI 非一致(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,CsPr[Cs(Xs)=1]Ys,CsPr[Cs(Ys)=1] negl(s)

如果两个概率总体是非一致计算不可区分的,那么一定是(一致)计算不可区分的。存在与均匀分布是一致不可区分、但非一致可区分的分布。

可有效重构(efficiently constructible):概率总体 X = { X n } n ∈ N X = \{X_n\}_{n \in \mathbb N} X={Xn}nN,存在 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}nN,Y={Yn}nN 可有效重构,如果它们是一致(非一致)计算不可区分的,那么对于任意多项式 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))}nN,Y={Yn=(Yn(1),,Ynp(n))}nN

也是一致(非一致)计算不可区分的,其中 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}nN,Y={Yn}nN 统计接近,如果它们的统计距离
Δ ( 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}nN,Y={Yn}nN 统计接近,那么对于任意 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

在这里插入图片描述

归约方式

  • 黑盒归约: B B B 以黑盒方式利用 A A A。也就是当作一个预言机(Oracle),可以询问,然后获得回应。
  • 非黑盒归约:除了黑盒以外的方式利用 A A A。比如,有算法 A A 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

  • 松散归约: T , L T,L T,L 多项式有界
  • 紧致归约: T T T 多项式有界, L L L 是常数

RO 模型

有些方案中,需要双方共享一个随机函数。

为了规避安全证明的困难性,使用共享的预言机 Oracle 取代随机函数 H H H,同时允许敌手进行常规询问外,可使用任意的 m m m 询问 Oracle 获得对应的 t = O ( m ) t=O(m) t=O(m)

以 PRF 为例,

在这里插入图片描述

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值