文章目录
- 安全性定义
- 方案构造
- 基于 OWP 存在性
- 基于 DL 假设
- 基于 OWF 存在性
- 基于 DDH 假设
- 总结
安全性定义
承诺协议(Commitment Scheme)是一个两阶段的两方协议。一方是承诺者(Committer) C C C,另一方是接收者(Receiver) R R R,两者都是 PPT 能力的。形式化描述如下:
承诺协议的安全性分为两部分:绑定性(Binding)、隐藏性(Hiding)。Binding 是用于保护 R R R 的,使得恶意的 C C C 无法将已有的承诺值 Open 成不同的内容。Hiding 是用于保护 C C C 的,使得恶意的 R R R 无法从承诺值中获得有关于内容的信息。
如果考虑 unbounded 敌手,那么可以得到 Perfect、Statistical、Computational 三种安全强度。
- Perfect Binding 是说:每一个承诺值 c c c,都仅存在一个 ( m , d e c ) (m,dec) (m,dec) 与之对应,从而无界敌手也不能找出一对不同的消息。在 Statistical 版本中,存在多个消息与之对应的承诺值的占比(依赖于 R R R 的随机带)可忽略。
- Perfect Hiding 是说:任意的两个消息 m 0 ≠ m 1 m_0 \neq m_1 m0=m1,它们的承诺值 c c c 的分布(依赖于 C C C 的随机带)完全相同。在 Statistical 版本中,两者的统计距离可忽略。
Perfect / Statistical Binding 与 Perfect / Statistical Hiding 不可同时存在:
- 如果是 Statistical Binding 的,那么承诺值 c c c 几乎总是仅能对应两个消息 m 0 ≠ m 1 m_0 \neq m_1 m0=m1 的其中之一,无界敌手总可以穷举所有的随机带找出这个 m b m_b mb,从而打破 Hiding(不是 Statistical Hiding)
- 如果是 Statistical Hiding 的,那么承诺值 c c c 几乎总是可以对应两个消息 m 0 ≠ m 1 m_0 \neq m_1 m0=m1,无界敌手总可以穷举所有的随机带找出对应的 d e c 0 , d e c 1 dec_0,dec_1 dec0,dec1,从而打破 Binding(不是 Statistical Binding)
- Perfect 导致 Statistical,因此 Perfect 也无法共存
在 PZK IP 中,有 “实例依赖” 的承诺方案:对于 x ∈ L x \in L x∈L 可以达成 Perfect Hiding(从而是 Perfect ZK),对于 x ∉ L x \notin L x∈/L 可以达成 Perfect Binding(从而是 Proof System)。
方案构造
承诺方案的存在性,等价于 ZKP 的存在性。在标准假设下,承诺方案存在,于是 ZKP 也存在。下面给出若干种构造。
基于 OWP 存在性
假设 OWP f ′ ( x ) f'(x) f′(x) 存在,那么可以利用 Goldreich-Levin 定理,给出一个带有 hardcore h ( x , r ) = ⟨ x , r ⟩ h(x,r)=\langle x,r \rangle h(x,r)=⟨x,r⟩ 的新 OWP f ( x , r ) = ( f ′ ( x ) , r ) f(x,r)=(f'(x),r) f(x,r)=(f′(x),r)
基于 OWP 的比特承诺方案:
它是 Perfect-Binding and Computational-Hiding 的非交互承诺协议。因为 OWP 是置换,因此它完美绑定了随机数。其隐藏性来源于 OWP 的单向性。
基于 DL 假设
如果素数 p p p 满足 p − 1 = ∏ i q i p-1=\prod_iq_i p−1=∏iqi 可分解为若干小的素因子 q i q_i qi,那么基于 CRT 分解,可以快速穷举出每个子群 G q i ⊆ Z p ∗ G_{q_i} \subseteq \mathbb Z_p^* Gqi⊆Zp∗ 上的 DL 问题的解。从而在这种素数下, Z p ∗ \mathbb Z_p^* Zp∗ 上的 DL 问题不难。
如果素数 p = 2 q + 1 p=2q+1 p=2q+1,其中 q q q 是大素数,此时上述的攻击方法就必须爆破阶 q q q 的子群 G q ⊆ Z p ∗ G_{q} \subseteq \mathbb Z_p^* Gq⊆Zp∗ 上的 DL 问题。然而,根据 x x x 的奇偶性 ( g x ) ( p − 1 ) / 2 (g^x)^{(p-1)/2} (gx)(p−1)/2 分别等于 + 1 , − 1 +1,-1 +1,−1,由于 ( g x , g y , g x y ) (g^x,g^y,g^{xy}) (gx,gy,gxy) 指数的奇偶性有关系,因此可以快速与 ( g x , g y , g z ) (g^x,g^y,g^z) (gx,gy,gz) 做区分。从而在这种素数下, Z p ∗ \mathbb Z_p^* Zp∗ 上的 DDH 问题不难。
如果我们选取形如 p = 2 q + 1 p=2q+1 p=2q+1 的大素数,在循环群 Z p ∗ = < g > \mathbb Z_p^* = <g> Zp∗=<g> 中选择二次剩余群 Q R ( p ) = < g 2 > QR(p)=<g^2> QR(p)=<g2> 作为 DDH 问题的群,那么就使得所有群元素的指数都是偶数,从而避免上述的奇偶分析。假设这种群上的 DDH 问题是困难的,因为在 Cook 归约下 D D H ≤ c C D H ≤ c D L DDH \le_c CDH \le_c DL DDH≤cCDH≤cDL,因此在 Q R ( 2 q + 1 ) QR(2q+1) QR(2q+1) 上的 DL 问题也是困难的。
基于离散对数问题的 Pedersen 承诺方案(关于群元素的,而非单比特):
它是 Computational-Binding and Perfect-Hiding 的2-round承诺协议。假如 r r r 均匀采样那么 h r h^r hr 也是均匀的,因此是完美隐藏的。其绑定性来源于 h = g x h=g^x h=gx 的 DL 问题。
可以证明,对于 non-uniform 敌手 C ∗ C^* C∗,不存在非交互 Perfect-Hiding 的承诺协议可以达成 Binding 安全性。因为是 Perfect Hidng,因此承诺值 c c c 可以对应两个不同的消息 ( m 0 , r 0 ) , ( m 1 , r 1 ) (m_0,r_0),(m_1,r_1) (m0,r0),(m1,r1),因此可以把它作为 advice 写入到某个 non-uniform PPT 敌手 C ∗ C^* C∗(存在性),这就打破了 Computational Binding(因此必须引入 R R R 的随机性,这需要交互)
不过,确实存在基于 hash 的非交互 statistical-hiding and computational-binding 的承诺协议,可以抵御 uniform(能力弱)PPT 的敌手 C ∗ C^* C∗ [Halevi, Micali, 96]
基于 OWF 存在性
OWP 存在性的假设较强,实际上只要 OWF 存在就可以导致承诺协议存在。密码学课程都会讲授 Levin 的从带 hardcore OWP 构造 PRG 的方法,而 [Hill90] 证明了 OWF 就可以构造出 PRG(但是很复杂)。
基于 OWF 的 Naor 比特承诺方案:
它是 Statistical-Binding and Computational-Hiding 的2-round承诺协议。由于 G G G 将 n n n 比特的 r r r 拉长为 3 n 3n 3n 比特,因此 G ( r 0 ) ⊕ G ( r 1 ) G(r_0) \oplus G(r_1) G(r0)⊕G(r1) 仅仅有 2 2 n 2^{2n} 22n 种取值,但是 x ∈ { 0 , 1 } 3 n x \in \{0,1\}^{3n} x∈{0,1}3n 有 2 3 n 2^{3n} 23n 种取值,仅仅占比 n e g l ( n ) negl(n) negl(n) 的随机串可能被敌手利用,然而 x x x 是被诚实的 R R R 均匀掷出的。其隐藏性来源于 PRG 的伪随机性。
那么,是否可以基于 OWF 构造 Statistical-Hiding 的承诺方案呢?假如 hiding 仅仅来源于 one-way,那么无界敌手 C ∗ C^* C∗ 必然可以求逆,从而打破它。令人吃惊的是,[Haitner, Nguyen, et al. 09] 给出了一种构造。
基于 DDH 假设
基于 OWP 的 Perfect-Binding 比特承诺方案,当遇到了需要承诺多个比特的情况时,就必须独立执行多次。如果串行组合,根据 Sequential composition theorems 这依然是安全的,但是 round complexity 就会快速上升;如果并行组合,那么这就很复杂了(基于游戏的归约,loss factor 可能会是指数级;基于模拟的归约,rewind 次数可能会是指数级)。
基于 DDH 问题的 ElGamal 承诺协议(关于群元素的,而非单比特):
它是 Perfect-Binding and Computational-Hiding 的非交互承诺协议。因为 g r g^r gr 是置换,因此这是完美绑定的。可以将 DDH 问题归约到打破它的隐藏性:输入一个三元组 ( g x , g y , g z ) (g^x,g^y,g^z) (gx,gy,gz),将 h h h 替换为 g x g^x gx,将 g r g^r gr 替换为 g y g^y gy,因为它们都是均匀分布。接着将 g m b h r g^{m_b}h^r gmbhr 替换为 g m b g z g^{m_b}g^z gmbgz:假如 z z z 均匀,那么 g m 0 g z g^{m_0}g^z gm0gz 和 g m 1 g z g^{m_1}g^z gm1gz 同分布,无界敌手也不能给出有偏的输出分布;假如 z = x y z=xy z=xy,那么 g m b g z g^{m_b}g^z gmbgz 和 g m b h r g^{m_b}h^r gmbhr 同分布,于是针对 Hiding 的敌手 ( R ∗ , D ) (R^*,D) (R∗,D) 就转化为了针对 DDH 的敌手。
总结
下面的 Round Complexity 考虑的是 Committing 阶段的,而 Opening 阶段直接发送 C C C 所使用的随机带即可(必然是 1-round 的)。
- 如果 DL 假设成立,则存在 2-round 的 perfect-hiding 以及 computational-binding 的承诺协议(二次剩余群上的 Pedersen 承诺方案)
- 如果 OWF 存在,则存在 2-round 的 computational-hiding 以及 statistical-binding 的承诺协议(基于 PRG 的 Naor’s 比特承诺方案)
- 如果 OWP 存在,则存在 1-round 的 computational-hiding 以及 perfect-binding 的承诺协议(基于 hardcore 的比特承诺方案)
- 如果 DDH 假设成立,则存在 1-round 的 computational-hiding 以及 perfect-binding 的承诺协议(二次剩余群上的 ElGamal 承诺方案)
前三者可以被用于 Blum’s ZKP for HC 的构造,从而导出 ZKP 的存在性结论。