问题:我们已经有了单比特 CPA 安全的 PKE,能否有多比特 CPA 安全的 PKE?
LorR-CPA 安全. 允许敌手进行多项式次 CPA,但 b 只生成 1 次,敌手需要猜 b。
LorR-CPA Game.
类似地,我们可以写出 LorR-CPA Game (Experiment),即 b 为提前给定参数的版本。那么,与 CPA Game 类似,我们可以将 LorR-CPA 安全的定义转化 advantage 形式。
我们想要说明另一方向,即事实上 LorR-CPA 安全性和 CPA 安全性完全等价。
多比特 PKE(无 CPA 安全版).
- (pk1,sk1)←Gen1(1κ): pk:=pk1;sk:=sk1. Return (pk,sk).
- Enc(pk,m1∣∣m2∣∣⋯∣∣ml): ci←Enc1(pk1,mi) for i∈[l]. Return (c1∣∣c2∣∣⋯∣∣cl).
- Dec(sk,c1∣∣c2∣∣⋯∣∣cl): mi′←Dec1(sk1,ci) for i∈[l]. Return (m1′∣∣m2′∣∣⋯∣∣ml′).
多比特 PKE(CPA 安全版,通过 TDP + hard-core bit 构造).
- KeyGen(1κ): (f,f−1)←Gen(1κ);r←{0,1}κ;pk=(f,hκ,r),sk=f−1. Return (pk,sk).
- Enc(pk,m1∣∣m2∣∣⋯∣∣ml): xi←{0,1}κ;ci←(ci1:=f(xi),ci2:=hGL(xi,r)⊕mi) for i∈[l]. Return (c1∣∣c2∣∣⋯∣∣cl).
- Dec(sk,c1∣∣c2∣∣⋯∣∣cl): mi′←hGL(f−1(ci1),r)⊕ci2 for i∈[l]. Return (m1′∣∣m2′∣∣⋯∣∣ml′).
💡
Theorem. 该版本多比特 PKE 也是 CPA 安全的。
【证明】通过 LorR-CPA 安全进行规约。1 比特 PKE 是 CPA 安全的,因此是 LorR-CPA 安全的。因此我们反证,假设有敌手 A 能打破多比特 PKE 的 CPA 安全性,其就能打破 1 比特 PKE 的 LorR-CPA 安全性。
C′(f,f−1)←Gen(1κ)r←{0,1}κb←{0,1}xi←{0,1}κc1(i):=f(xi)c2(i):=hGL(xi,r)⊕mb(i)c(i):=(c1(i),c2(i))⟶(f,r)⟵(m0(i),m1(i))⟶c(i)⟵b′A′/Cl queriesc←{c(i)}⟶(f,r)⟵(m0,m1)⟶c⟵b′Achoose m0,m1compute b′ 于是,
Pr[A′ wins]=Pr[b=b′]=Pr[A wins] 即该版本多比特 PKE 也是 CPA 安全的。
Efficient 多比特 PKE. 复用 yi=f(xi) 作为下一轮的 xi+1.
- KeyGen(1κ): (f,f−1)←Gen(1κ);r={0,1}κ;pk=(f,hκ,r),sk=f−1. Return (pk,sk).
- Enc(pk,m1∣∣m2∣∣⋯∣∣ml): x0←{0,1}κ;xi=f(xi−1);ci←hκ(xi,r)⊕mi for i=1,2,⋯,l. Return (xl,c1∣∣c2∣∣⋯∣∣cl).
- Dec(sk,c1∣∣c2∣∣⋯∣∣cl): xi−1←f−1(xi);mi′←hκ(xi−1,r)⊕ci for i=l,l−1,⋯,1. Return (m1′∣∣m2′∣∣⋯∣∣ml′).
Hard-Core 的等价定义 2. 挑战者抛硬币决定是发送 hard-core bit 给敌手还是发送随机数给敌手;敌手猜挑战者抛硬币的结果(收到的结果是随机数还是 hard-core bit)。对应的 Hard-Core Game 2 如下:
C(f,f−1)←Gen(1κ)x←{0,1}κ;y←f(x)β←{0,1}if β=1 then T←hκ(x) else T←{0,1}A wins iff β′=β⟶f,y,T⟵β′ACompute β′ Hard-Core 的等价定义 3. 挑战者抛硬币决定是发送 hard-core bit 给敌手还发送 1 - hard-core bit 给敌手;敌手猜挑战者抛硬币的结果(收到的结果是随机数还是 hard-core bit)。对应的 Hard-Core Game 3 如下:
C(f,f−1)←Gen(1κ)x←{0,1}κ;y←f(x)β←{0,1}if β=1 then T←hκ(x) else T←1−hκ(x)A wins iff β′=β⟶f,y,T⟵β′ACompute β′ 💡
Theorem. Hard-Core Game 2 和 Hard-Core Game 3 等价。
【证明】
我们首先列出一些可能会用到的概率:
Pr[β=1,T=hκ(x)]=21,Pr[β=1,T=1−hκ(x)]=0,Pr[β=0,T=hκ(x)]=Pr[β=0,T=1−hκ(x)]=41,Pr[β=1]=Pr[β=0]=21,Pr[T=hκ(x)]=43,Pr[T=1−hκ(x)]=41 由于这两个 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=1−hκ(x)∣β=0]∣∣Pr[β′=1∣β=1,T=hκ(x)]−Pr[T=hκ(x)∣β=0]Pr[β′=1∣β=0,T=hκ(x)]−Pr[T=1−hκ(x)∣β=0]Pr[β′=1∣β=0,T=1−hκ(x)]∣∣Pr[β′=1∣β=1,T=hκ(x)]−21Pr[β′=1∣β=0,T=hκ(x)]−21Pr[β′=1∣β=0,T=1−hκ(x)]∣ = = = AdvPKE,AHard-Core 3(κ)∣Pr[β′=1∣β=1]−Pr[β′=1∣β=0]∣∣Pr[β′=1∣β=1,T=hκ(x)]−Pr[β′=1∣β=0,T=1−hκ(x)]∣∣Pr[β′=1∣T=hκ(x)]−Pr[β′=1∣T=1−hκ(x)]∣ 从敌手的角度来看,无论是 Hard-Core Game 2 还是 Hard-Core Game 3,它只能关注到 f,y,T,然后根据 f,y,T 来计算 β′。因此从敌手的角度来说,条件里的 β 和它无关,即
Pr[β′=1∣β,T=hκ(x)]=Pr[β′=1∣T=hκ(x)] AdvPKE,AHard-Core 2(κ)=∣Pr[β′=1∣T=hκ(x)]−21Pr[β′=1∣T=hκ(x)]−21Pr[β′=1∣β=0,T=1−hκ(x)]∣=∣∣21Pr[β′=1∣T=hκ(x)]−21Pr[β′=1∣T=1−hκ(x)]∣∣ 于是,我们得出
AdvPKE,AHard-Core 3(κ)=2AdvPKE,AHard-Core 2(κ) 于是,其中任意一个是可忽略的情况下,另一个一定是可忽略的,于是两个 Game 等价。
💡
Theorem. Hard-Core Game 3 和 Hard Core Game 等价。
【证明】可以设计中间人互相规约,较为简单。一方面,直接把收到的 f,y,T 发送给有能力的敌手,得到 hκ(x) 后与 T 比较即可;另一方面,随机取 T←{0,1} 后发给有能力的敌手,得到 β 后,若 β=1 则返回 hκ(x)=T;否则 hκ(x)=1−T。
因此,综上所述,三个 Hard-Core Game (Hard-Core 的定义)互相等价。