Theorem.
使用 Dolev-Dwork-Naor 构造的 PKE’ 具有 CCA2 安全。
【证明】
Game 0. 即 ExpPKE′,ACCA2-0(κ).
Game 1. 修改 Game 0,先生成签名密钥 vk∗;同时,若解密时出现了 vk=vk∗,则不给解密(返回 ⊥)。
- 对于挑战者来说 SigGen 只运行一次,在开头运行还是在加密时运行是一样的,在证明过程中我们想让他在开头就确定下来,这样允许我们在后续的证明中直接使用 vk∗。
接下来,我们定义 Forgei 表示在 Game i 中敌手 A 询问密文 (vk,c,π,σ),使得 vk=vk∗ 但是 Vrfy(vk,(c,π),σ)=1∧V(r,c,π)=1(验证的两关都通过了),即该事件发生等价于 vk=vk∗∧Vrfy(vk,(c,π),σ)=1∧V(r,c,π)=1。
- 如果 Forge 事件发生:
- Game 0 和 Game 1 就不一样了,因为 Game 1 的时候如果 vk=vk∗ 就直接拒绝了;而 Game 0 会继续走流程。
- 对于 Game 0 和 Game 1 来说,反正 vk∗ 只生成一次,在哪生成都是一样的,从敌手的层面完全看不出来区别,所以 Forge0 和 Forge1 发生的概率是一样的,即 Pr[Forge0]=Pr[Forge1]
- 如果 Forge 事件不发生:
- 要么 vk=vk∗,要么验证的两关有没通过的。
- Game 0 和 Game 1 完全相同,即 Game 0∣¬Forge0=Game 1∣¬Forge1,从而 Game 0=1∣¬Forge0=Game 1=1∣¬Forge1。
于是,根据 Lecture 4 中 lemma 的推论,有
如果敌手能够在 Game 0 中以不可忽略的概率产生 vk=vk∗∧Vrfy(vk,(c,π),σ)=1 的密文,我们就可以利用其能力打破数字签名的 SOT-UF-CMA 安全(这相当于,我们已经伪造了一个签名)。因此规约如下,
于是,
Game 2. 如果 vk=vk∗,那么我们选择其中不同的那一比特(假设第 j 比特),使用那一比特代表的钥匙 skj,vkj 进行解密。于是修改 Game 1 如下:
下面我们定义 Fakei 事件:在 Game i 中敌手 A 询问的密文 (vk,c,π,σ) 通过了检测(即Vrfy(vk,(c,π),σ)=1∧V(r,c,π)=1),但是 ∃i,j∈[k],Dec(ski,vki,ci)=Dec(skj,vkj,cj)。
- 如果 Fake 事件发生,
- 有两个比特 i,j 解密出来的明文不一样。于是,这个 c 就一定不在 aNIZK 语言 L 中,但是其能通过 V(r,c,π) 验证,这就违背了 aNIZK 的 adaptive soundness。
- 对于 Game 1 和 Game 2 来说,从敌手的层面完全看不出来 Fake 事件在 Game 1 中发生和在 Game 2 中发生的区别,因此 Pr[Fake1]=Pr[Fake2]。
- 如果 Fake 事件不发生,
- 对于任意合法的密文 c∈L,每个比特解密出来的都是相同的明文。
- 如果 Fake 事件不发生,即对于所有通过检测的密文,都能保证 ∀i,j∈[k],Dec(ski,vki,ci)=Dec(skj,vkj,cj),令 i=1,即 Dec(sk1,vk1,c1)=Dec(skj,vkj,cj),于是 Game 1 和 Game 2 完全一样。故 Game 1∣¬Fake1=Game 2∣¬Fake2,即 Game 1=1∣¬Fake1=Game 2=1∣¬Fake2。
于是,根据 Lecture 4 中 lemma 的推论,有
Game 3. 将 Game 2 中的 aNIZK 换成仿真器 Sim。
用 Lecture 4 中 NY-PKE 的 CCA1 安全性证明的 Game 0 到 Game 1 一步完全相同的方法,我们可以得到:
Game 4. 将 m0 替换成 m1。
下面我们证明,如果有敌手 A 在 Game 3 和 Game 4 输出 1 的概率不可忽略的不同,那么我们可以利用其攻破 PKE 的 CPA 安全性(可以类比 LorR-CPA 安全性,即确定一个 b,用 k 个不同的密钥对 mb 进行加密,这个安全性的 bound 应该是 kAdvPKECPA(κ))。
当 b=0 时,相当于模拟 Game 3;当 b=1 时,相当于模拟 Game 4。于是,
Game 5. 类似 Game 3 的逆操作,将仿真器变回原始情况。
类似从 Game 2 到 Game 3 的推导,有
Game 6. 类似 Game 2 的逆操作。
类似从 Game 1 到 Game 2 的推导,有
Game 7. 类似 Game 1 的逆操作,即为 ExpPKE′,ACCA2-1(κ)。
类似从 Game 0 到 Game 1 的推导,有
综上,由于 k 是常数,
于是,使用 Dolev-Dwork-Naor 构造的 PKE’ 具有 CCA2 安全。