Lecture 2. Hybrid Argument and PKE


问题:我们已经有了单比特 CPA 安全的 PKE,能否有多比特 CPA 安全的 PKE?


LorR-CPA 安全. 允许敌手进行多项式次 CPA,但 bb 只生成 1 次,敌手需要猜 bb

Pr[(pk,sk)Gen(1κ);b{0,1};bALorRb({m0(i)},{m1(i)})(pk):b=b]=12±negl(κ)\text{Pr}\left[\begin{matrix}(pk,sk) \leftarrow \text{Gen}(1^\kappa);b\leftarrow\{0,1\};\\b'\leftarrow\mathcal{A}^{LorR_b(\{m_0^{(i)}\},\{m_1^{(i)}\})}(pk)\end{matrix}:b'=b\right] = \frac{1}{2}\pm\text{negl}(\kappa)

LorR-CPA Game.

CA(pk,sk)Gen(1κ)pkb{0,1}choose m0(i),m1(i),i[Q(κ)](m0(i),m1(i))LorR oracle query Q(κ) timescompute c(i)=Enc(pk,mb(i)){c(i)}A wins iff b=bbcompute b\color{darkblue}\begin{matrix}\mathcal{C} & & \mathcal{A} \\ (pk,sk)\leftarrow\text{Gen}(1^\kappa) & \stackrel{pk}{\longrightarrow} & \\b\leftarrow \{0,1\}& \\ & & \text{choose } m_0^{(i)},m_1^{(i)},i\in[Q(\kappa)]\\ & \stackrel{(m_0^{(i)},m_1^{(i)})}{\longleftarrow} & \text{LorR oracle query }Q(\kappa) \text{ times} \\ \text{compute }c^{(i)}=\text{Enc}(pk,m_b^{(i)}) &\stackrel{\{c^{(i)}\}}{\longrightarrow} \\ \mathcal{A} \text{ wins iff }b'=b &\stackrel{b'}{\longleftarrow} & \text{compute } b' \end{matrix}

类似地,我们可以写出 LorR-CPA Game (Experiment),即 bb 为提前给定参数的版本。那么,与 CPA Game 类似,我们可以将 LorR-CPA 安全的定义转化 advantage 形式。

AdvPKE,ALorR-CPA(κ):=Pr[ExpPKE,ALorR-CPA-1(κ)=1]Pr[ExpPKE,ALorR-CPA-0(κ)=1]\begin{aligned}\textbf{Adv}^{\text{LorR-CPA}}_{\text{PKE},\mathcal{A}}(\kappa):=\left|\text{Pr}[\textbf{Exp}_{\text{PKE},\mathcal{A}}^\text{LorR-CPA-1}(\kappa)=1]-\text{Pr}[\textbf{Exp}_{\text{PKE},\mathcal{A}}^\text{LorR-CPA-0}(\kappa)=1]\right|\end{aligned}
💡
一个显然的事实是,如果我们有 LorR-CPA 安全性,就一定有 CPA 安全性。等价于,如果有一个敌手能打破 CPA 安全性,就一定能打破 LorR 安全性。显然可以简单规约证明。

我们想要说明另一方向,即事实上 LorR-CPA 安全性和 CPA 安全性完全等价。

💡
Theorem. 如果一个 PKE 是 CPA 安全的,其一定是 LorR-CPA 安全的。

【证明】利用一系列 games、相邻 games 之间的 advantage 以及三角不等式进行说明。

考虑 Game 0ExpPKE,ALorR-CPA-0(κ)\textbf{Exp}_{\text{PKE},\mathcal{A}}^\text{LorR-CPA-0}(\kappa)Game iiExpPKE,ALorR-CPA-0(κ)\textbf{Exp}_{\text{PKE},\mathcal{A}}^\text{LorR-CPA-0}(\kappa) 的修改版(前 iib=1b=1 其余 b=0b=0);最终的 Game QExpPKE,ALorR-CPA(1)\textbf{Exp}_{\text{PKE},\mathcal{A}}^\text{LorR-CPA}(1)。于是,

AdvPKE,ALorR-CPA(κ)=Pr[ ExpPKE,ALorR-CPA-1(κ)=1]Pr[ExpPKE,ALorR-CPA-0(κ)=1]=Pr[Game 0=1]Pr[Game Q=1]=Pr[Game 0=1]Pr[Game 1=1]+Pr[Game 1=1]Pr[Game 2=1]+Pr[Game Q=1]i=1QPr[Game i1=1]Pr[Game i=1]\begin{aligned}\textbf{Adv}^{\text{LorR-CPA}}_{\text{PKE},\mathcal{A}}(\kappa)&=\left|\text{Pr}[\ \textbf{Exp}_{\text{PKE},\mathcal{A}}^\text{LorR-CPA-1}(\kappa)=1]-\text{Pr}[\textbf{Exp}_{\text{PKE},\mathcal{A}}^\text{LorR-CPA-0}(\kappa)=1]\right| \\&=\left|\text{Pr}[\textbf{Game }0=1]-\text{Pr}[\textbf{Game }Q=1]\right| \\ &=\left|\text{Pr}[\textbf{Game } 0=1]-\text{Pr}[\textbf{Game } 1=1]+\text{Pr}[\textbf{Game } 1=1]-\text{Pr}[\textbf{Game } 2=1]+\cdots-\text{Pr}[\textbf{Game }Q=1]\right|\\ &\leq\sum_{i=1}^Q|\text{Pr}[\textbf{Game } i-1=1]-\text{Pr}[\textbf{Game } i=1]|\end{aligned}

如果我们证明了 Pr[Game i1=1]Pr[Game i=1]=negl(κ)|\text{Pr}[\textbf{Game } i-1=1]-\text{Pr}[\textbf{Game } i=1]| =\text{negl}(\kappa),那么

AdvPKE,ALorR-CPA(κ)Qnegl(κ)=negl(κ)\textbf{Adv}^{\text{LorR-CPA}}_{\text{PKE},\mathcal{A}}(\kappa) \leq Q\text{negl}(\kappa)=\text{negl}(\kappa)

即证明了其一定是 LorR-CPA 安全的。因此,我们需要证明

Pr[Game i1=1]Pr[Game i=1]=negl(κ)\color{blue}|\text{Pr}[\textbf{Game } i-1=1]-\text{Pr}[\textbf{Game } i=1]| =\text{negl}(\kappa)

即,若有一个敌手能区分 Game ii Game i1i-1,那么这个 PKE 就不是 CPA 安全的。很容易利用这样的敌手构造可以赢得 (单比特)CPA game 的敌手(前 i1i-1 次使用 m0m_0;第 ii 次使用挑战者生成的密文;后面均使用 m1m_1;通过敌手的区分结果判断第 ii 次挑战者生成的随机数即可)。于是,不存在可以区分 Game ii Game i1i-1 的敌手,即上式成立。


多比特 PKE(无 CPA 安全版).

多比特 PKE(CPA 安全版,通过 TDP + hard-core bit 构造).

💡
Theorem. 该版本多比特 PKE 也是 CPA 安全的。

【证明】通过 LorR-CPA 安全进行规约。1 比特 PKE 是 CPA 安全的,因此是 LorR-CPA 安全的。因此我们反证,假设有敌手 A\mathcal{A} 能打破多比特 PKE 的 CPA 安全性,其就能打破 1 比特 PKE 的 LorR-CPA 安全性。

CA/CA(f,f1)Gen(1κ)r{0,1}κb{0,1}(f,r)(f,r)(m0(i),m1(i))l queries(m0,m1)choose m0,m1xi{0,1}κc1(i):=f(xi)c2(i):=hGL(xi,r)mb(i)c(i):=(c1(i),c2(i))c(i)c{c(i)}cbbcompute b\color{darkblue}\begin{matrix}\mathcal{C'} & & \mathcal{A'}/\mathcal{C} & & \mathcal{A}\\ (f,f^{-1}) \leftarrow\text{Gen}(1^\kappa) \\ r\leftarrow\{0,1\}^\kappa\\b\leftarrow \{0,1\}& \stackrel{(f,r)}{\longrightarrow} && \stackrel{(f,r)}{\longrightarrow} \\ & \stackrel{(m_0^{(i)},m_1^{(i)})}{\longleftarrow}& l\text{ queries} & \stackrel{(m_0,m_1)}{\longleftarrow}& \text{choose } m_0,m_1 \\ x_i\leftarrow\{0,1\}^\kappa\\c^{(i)}_1:= f(x_i)\\c_2^{(i)}:=h_{GL}(x_i,r)\oplus m_b^{(i)}\\c^{(i)}:=(c_1^{(i)},c_2^{(i)}) & \stackrel{c^{(i)}}{\longrightarrow}& c\leftarrow\{c^{(i)}\}&\stackrel{c}{\longrightarrow}\\ & \stackrel{b'}{\longleftarrow}& & \stackrel{b'}{\longleftarrow}& \text{compute }b'\end{matrix}

于是,

Pr[A wins]=Pr[b=b]=Pr[A wins]\text{Pr}[\mathcal{A'} \text{ wins}]=\text{Pr}[b=b']=\text{Pr}[\mathcal{A} \text{ wins}]

即该版本多比特 PKE 也是 CPA 安全的。

Efficient 多比特 PKE. 复用 yi=f(xi)y_i=f(x_i) 作为下一轮的 xi+1x_{i+1}.


Hard-Core 的等价定义 2. 挑战者抛硬币决定是发送 hard-core bit 给敌手还是发送随机数给敌手;敌手猜挑战者抛硬币的结果(收到的结果是随机数还是 hard-core bit)。对应的 Hard-Core Game 2 如下:

CA(f,f1)Gen(1κ)x{0,1}κ;yf(x)β{0,1}if β=1 then Thκ(x) else T{0,1}f,y,TA wins iff β=ββCompute β\color{darkblue}\begin{matrix}\mathcal{C} & & \mathcal{A} \\ (f,f^{-1}) \leftarrow\text{Gen}(1^\kappa) \\x\leftarrow \{0,1\}^\kappa;y\leftarrow f(x)\\\beta\leftarrow \{0,1\}\\\text{if }\beta=1 \text{ then } T\leftarrow h_\kappa(x) \text{ else } T\leftarrow\{0,1\}& \stackrel{f,y,T}{\longrightarrow} & \\ \mathcal{A} \text{ wins iff }\beta'=\beta & \stackrel{\beta'}{\longleftarrow}& \text{Compute } \beta'\end{matrix}

Hard-Core 的等价定义 3. 挑战者抛硬币决定是发送 hard-core bit 给敌手还发送 1 - hard-core bit 给敌手;敌手猜挑战者抛硬币的结果(收到的结果是随机数还是 hard-core bit)。对应的 Hard-Core Game 3 如下:

CA(f,f1)Gen(1κ)x{0,1}κ;yf(x)β{0,1}if β=1 then Thκ(x) else T1hκ(x)f,y,TA wins iff β=ββCompute β\color{darkblue}\begin{matrix}\mathcal{C} & & \mathcal{A} \\ (f,f^{-1}) \leftarrow\text{Gen}(1^\kappa) \\x\leftarrow \{0,1\}^\kappa;y\leftarrow f(x)\\\beta\leftarrow \{0,1\}\\\text{if }\beta=1 \text{ then } T\leftarrow h_\kappa(x) \text{ else } T\leftarrow 1-h_\kappa(x)& \stackrel{f,y,T}{\longrightarrow} & \\ \mathcal{A} \text{ wins iff }\beta'=\beta & \stackrel{\beta'}{\longleftarrow}& \text{Compute } \beta'\end{matrix}
💡
Theorem. Hard-Core Game 2 和 Hard-Core Game 3 等价。

【证明】

我们首先列出一些可能会用到的概率:

Pr[β=1,T=hκ(x)]=12,Pr[β=1,T=1hκ(x)]=0,Pr[β=0,T=hκ(x)]=Pr[β=0,T=1hκ(x)]=14,Pr[β=1]=Pr[β=0]=12,Pr[T=hκ(x)]=34,Pr[T=1hκ(x)]=14\text{Pr}[\beta=1,T=h_\kappa(x)] = \frac{1}{2},\text{Pr}[\beta=1,T=1-h_\kappa(x)] = 0, \\ \text{Pr}[\beta=0,T=h_\kappa(x)]=\text{Pr}[\beta=0,T=1-h_\kappa(x)]=\frac{1}{4},\\\text{Pr}[\beta=1] = \text{Pr}[\beta=0]=\frac{1}{2},\\\text{Pr}[T=h_\kappa(x)] = \frac{3}{4},\text{Pr}[T=1-h_\kappa(x)]=\frac{1}{4}

由于这两个 Game 中敌手看到的信息完全相同,我们分别计算两个 Game 中敌手的 advantage,然后进行比较。

  • 如果敌手的输入输出相同,可以考虑直接计算 advantage 进行比较,则不用设计规约。
AdvPKE,AHard-Core 2(κ)= Pr[β=1β=1]Pr[β=1β=0]= Pr[β=1β=1,T=hκ(x)]Pr[β=1,T=hκ(x)β=0]Pr[β=1,T=1hκ(x)β=0]= Pr[β=1β=1,T=hκ(x)]Pr[T=hκ(x)β=0]Pr[β=1β=0,T=hκ(x)]Pr[T=1hκ(x)β=0]Pr[β=1β=0,T=1hκ(x)]= Pr[β=1β=1,T=hκ(x)]12Pr[β=1β=0,T=hκ(x)]12Pr[β=1β=0,T=1hκ(x)]\small\begin{aligned}&\textbf{Adv}_{\text{PKE},\mathcal{A}}^{\text{Hard-Core 2}}(\kappa) \\=\ & \left|\text{Pr}[\beta'=1|\beta=1] - \text{Pr}[\beta'=1|\beta=0]\right| \\ =\ &|\text{Pr}[\beta'=1|\beta=1,T=h_\kappa(x)] - \text{Pr}[\beta'=1,T=h_\kappa(x)|\beta=0]\\& - \text{Pr}[\beta'=1,T=1-h_\kappa(x)|\beta=0]| \\ =\ &|\text{Pr}[\beta'=1|\beta=1,T=h_\kappa(x)] - \text{Pr}[T=h_\kappa(x)|\beta=0]\text{Pr}[\beta'=1|\beta=0,T=h_\kappa(x)] \\&- \text{Pr}[T=1-h_\kappa(x)|\beta=0]\text{Pr}[\beta'=1|\beta=0, T=1-h_\kappa(x)]|\\ =\ & |\text{Pr}[\beta'=1|\beta=1,T=h_\kappa(x)] - \frac{1}{2}\text{Pr}[\beta'=1|\beta=0,T=h_\kappa(x)] \\&- \frac{1}{2}\text{Pr}[\beta'=1|\beta=0, T=1-h_\kappa(x)]|\end{aligned}
AdvPKE,AHard-Core 3(κ)= Pr[β=1β=1]Pr[β=1β=0]= Pr[β=1β=1,T=hκ(x)]Pr[β=1β=0,T=1hκ(x)]= Pr[β=1T=hκ(x)]Pr[β=1T=1hκ(x)]\small\begin{aligned}&\textbf{Adv}_{\text{PKE},\mathcal{A}}^{\text{Hard-Core 3}}(\kappa)\\ =\ & \left|\text{Pr}[\beta'=1|\beta=1] - \text{Pr}[\beta'=1|\beta=0]\right| \\ =\ & \left|\text{Pr}[\beta'=1|\beta=1,T=h_\kappa(x)] - \text{Pr}[\beta'=1|\beta=0,T=1-h_\kappa(x)]\right|\\=\ &\left|\text{Pr}[\beta'=1|T=h_\kappa(x)] - \text{Pr}[\beta'=1|T=1-h_\kappa(x)]\right|\end{aligned}

从敌手的角度来看,无论是 Hard-Core Game 2 还是 Hard-Core Game 3,它只能关注到 f,y,Tf,y,T,然后根据 f,y,Tf,y,T 来计算 β\beta'。因此从敌手的角度来说,条件里的 β\beta 和它无关,即

Pr[β=1β,T=hκ(x)]=Pr[β=1T=hκ(x)]\text{Pr}[\beta'=1|\beta,T=h_\kappa(x)]=\text{Pr}[\beta'=1|T=h_\kappa(x)]
AdvPKE,AHard-Core 2(κ)=Pr[β=1T=hκ(x)]12Pr[β=1T=hκ(x)]12Pr[β=1β=0,T=1hκ(x)]=12Pr[β=1T=hκ(x)]12Pr[β=1T=1hκ(x)]\small\begin{aligned}\textbf{Adv}_{\text{PKE},\mathcal{A}}^{\text{Hard-Core 2}}(\kappa) &= |\text{Pr}[\beta'=1|T=h_\kappa(x)] - \frac{1}{2}\text{Pr}[\beta'=1|T=h_\kappa(x)] \\&\quad- \frac{1}{2}\text{Pr}[\beta'=1|\beta=0, T=1-h_\kappa(x)]| \\ &= \left|\frac{1}{2}\text{Pr}[\beta'=1|T=h_\kappa(x)] - \frac{1}{2}\text{Pr}[\beta'=1|T=1-h_\kappa(x)]\right|\end{aligned}

于是,我们得出

AdvPKE,AHard-Core 3(κ)=2AdvPKE,AHard-Core 2(κ)\textbf{Adv}_{\text{PKE},\mathcal{A}}^{\text{Hard-Core 3}}(\kappa) = 2\textbf{Adv}_{\text{PKE},\mathcal{A}}^{\text{Hard-Core 2}}(\kappa)

于是,其中任意一个是可忽略的情况下,另一个一定是可忽略的,于是两个 Game 等价。

💡
Theorem. Hard-Core Game 3 和 Hard Core Game 等价。

【证明】可以设计中间人互相规约,较为简单。一方面,直接把收到的 f,y,Tf,y,T 发送给有能力的敌手,得到 hκ(x)h_\kappa(x) 后与 TT 比较即可;另一方面,随机取 T{0,1}T\leftarrow \{0,1\} 后发给有能力的敌手,得到 β\beta 后,若 β=1\beta=1 则返回 hκ(x)=Th_\kappa(x)=T;否则 hκ(x)=1Th_\kappa(x)=1-T

因此,综上所述,三个 Hard-Core Game (Hard-Core 的定义)互相等价