低次多项式的高效批量零知识证明
1. 引言
零知识证明在计算上是可靠的,即当$u \notin L$时欺骗验证者接受的情况可以归结为打破某种计算难解假设。本文主要聚焦于离散对数假设。基于离散对数假设的零知识证明有很多例子,涵盖一般的NP完全语言(如算术电路可满足性)以及更简单的语言(如范围证明、成员证明、洗牌证明和离散对数关系)。
2. 主要贡献
为了缩小一般语言和简单语言之间的差距,本文从三个方面进行了研究:
-
低次关系框架
:提供了一个框架来描述常见的语言类型。像[28]中的1 - out - of - N成员证明协议和[2]中的多项式求值证明协议,它们所证明的语言成员关系中,见证者是低次多项式关系的零点。我们给出了一个通用关系,通过具体的多项式关系实例化可以恢复特定的协议。通过分离执行零知识证明的更高效方法的开发任务和设计更好的关系来描述给定语言的任务,我们可以解释[6,28]中成员证明过去优化的逻辑,并为成员证明和多项式求值证明产生新的优化。
-
通用构造技术
:统一了[2,6,28]中用于构造成员证明和多项式求值的零知识证明的方法,这些方法都可以看作是采用了相同的构造方式。在这些工作中,低次多项式关系的零知识证明构造是通过使用随机挑战$x$和随机盲化因子$u_b$将输入变量$u$掩码为$f_u = ux + u_b$。在证明过程中,用$f_u$代替$u$来计算陈述中的多项式或电路,使得原始关系出现在$x$的最高次系数中。所得证明的通信和计算复杂度由多项式关系的次数和输入数量决定。相比之下,一般算术电路协议的复杂度由门的数量决定。例如,[7]的作者将一个$N$次多项式的求值证明嵌入到一个具有$\log N$个输入和$\log N$次的低次多项式中,使用3轮通信获得了一个$O(\log N)$通信复杂度的协议,并且在适当选择的密码学群中需要$O(\log N)$次指数运算。而一般情况下,一个$N$次多项式的求值需要$N$个乘法门,所以最好的算术电路协议[7]只能在$O(\log N)$轮中实现$O(\log N)$的通信复杂度,并且使用$O(N)$次群指数运算。由于在离散对数环境中,计算群指数运算的成本远高于计算有限域乘法的成本,因此在受限设备上实现时,计算$O(\log N)$次群指数运算而不是$O(N)$次会带来显著的性能优势。
Bayer [1]给出了两个用于乘法和多项式求值的高效批量证明,在批量证明的数量上实现了平方根通信开销。[1]中实现平方根开销的关键是使用拉格朗日插值将同一关系的多个实例嵌入到单个域元素中。这种技术可以更广泛地应用于为上述低次关系生成高效的批量证明。此外,通过将其与第3节中的多项式承诺子协议相结合,我们将批量证明的通信成本从$\sqrt{tc}$改进为$\sqrt{tc}$,其中$c$是原始非批量证明的通信成本,$t$是要批量证明的数量。
-
应用的高效协议
:展示了一个通用协议,并给出了一个用于同时证明和验证$t$个相同关系实例的高效批量协议。然后展示了如何通过一些优化恢复以前工作中的协议。具体来说,给出了新的1 - out - of - N成员证明和多项式求值证明。新的实例化在保持原始协议的概念清晰性和简单3轮结构的同时,降低了通信成本并减少了证明者和验证者的计算量。例如,在离散对数环境中,我们获得了用于证明承诺值在公共列表中的成员或非成员关系的最具通信效率的$\Sigma$协议。还包括一个范围证明,它捕获了执行范围证明的民间方法,并展示了我们通用关系的表达能力。我们的证明都具有以下理想特性:
- 完美完备性和完美特殊诚实验证者零知识。
- 基于离散对数假设的计算可靠性。
- 简单的3轮公共硬币结构。
- 公共参考字符串由随机群元素组成,不需要特殊结构。
- 证明者和验证者都具有高效的计算能力。
离散对数假设在密码学中是众所周知、经过充分研究且广泛使用的。我们的协议依赖于素数阶$p$的群中的离散对数假设。该假设被认为在椭圆曲线群的合适子群中成立。在这样的椭圆曲线群中寻找离散对数的最佳算法仍然是复杂度为$\Omega(\sqrt{p})$的通用算法。因此,与基于RSA群的协议相比,这些群的参数大小更低,因为RSA群容易受到亚指数攻击。
离散对数假设也被认为在有限域的精心选择的乘法子群中成立。为了实现$\lambda$位的安全性以抵御已知的最佳攻击,素数阶有限域的模数应该有$\lambda^3$ polylog$\lambda$位。这使得在这种情况下,通信大量群元素的协议非常不实用。作为对以前工作的改进,当$t = 1$且只有一个关系时,我们的协议可以进行调整,使其只需要恒定数量的群元素,从而在素数阶有限域中实例化时效率更高,因为$\lambda^3$ polylog$\lambda$的通信成本可以作为一个恒定的加法因子而不是乘法因子出现。
作为我们证明的一个构建块,还提出了对[7]中出现的多项式承诺子协议的改进,它允许证明者对多项式进行承诺,以便验证者可以安全地了解多项式的求值。
3. 效率比较
| 协议 | 参考 | 通信(G) | 通信($Z_p$) | 证明者计算(G, exp) | 证明者计算($Z_p$, ×) | 验证者计算(G, exp) | 验证者计算($Z_p$, ×) |
|---|---|---|---|---|---|---|---|
| 成员证明 | [7] | $4 \log N + 8$ | $2 \log N + 7$ | $12N$ | $O(N)$ | $4N$ | $O(N)$ |
| 成员证明a | [28] | $4 \log N$ | $3 \log N + 1$ | $O(\log N)$ | $O(N \log N)$ | $O(\log N)$ | $O(N)$ |
| 成员证明b | [6] | $\log N + 12$ | $\frac{3}{2} \log N + 6$ | $O(\log N)$ | $O(N \log N)$ | $O(\log N)$ | $O(N)$ |
| 成员证明 | 本文,第5.1节 | 7 | $4 \log N + 4$ | $O(\frac{\log N}{\log \log N})$ | $O(N \log N)$ | $O(\frac{\log N}{\log \log N})$ | $O(N)$ |
| 成员证明 | 本文,第5.1节 | $2.7\sqrt{\log N} + 5$ | $1.9 \log N + 2.7\sqrt{\log N} + 4$ | $O(\frac{\log N}{\log \log N})$ | $O(N \log N)$ | $O(\frac{\log N}{\log \log N})$ | $O(N)$ |
| 批量成员证明 | 本文,第5.1节 | $4.1\sqrt{t \log N}$ | $4.1\sqrt{t \log N}$ | $O(t \log tN)$ | $O(tN \log tN)$ | $O(\sqrt{t \log tN})$ | $O(tN)$ |
| 多项式求值 | [7] | $4 \log N + 8$ | $2 \log N + 7$ | $12N$ | $O(N)$ | $4N$ | $O(N)$ |
| 多项式求值 | [2] | $4 \log N + 2$ | $3 \log N + 3$ | $O(\log N)$ | $O(N \log N)$ | $O(\log N)$ | $O(N)$ |
| 多项式求值 | 本文,第5.2节 | 7 | $3 \log N + 4$ | $O(\frac{\log N}{\log \log N})$ | $O(N \log N)$ | $O(\frac{\log N}{\log \log N})$ | $O(N)$ |
| 多项式求值 | 本文,第5.2节 | $O(\frac{\log N}{\log \log N})$ | $O(\frac{\log N}{\log \log N})$ | $O(\frac{\log N}{\log \log N})$ | $O(N \log N)$ | $O(\frac{\log N}{\log \log N})$ | $O(N)$ |
| 批量多项式求值 | [1] | $O(\sqrt{t \log N})$ | $O(\sqrt{t \log N})$ | $O(t \log N)$ | $O(tN \log N)$ | $O(\sqrt{t \log N})$ | $O(tN)$ |
| 批量多项式求值 | 本文,第5.2节 | $2.8\sqrt{t \log N}$ | $2.8\sqrt{t \log N}$ | $O(t \log tN)$ | $O(tN \log tN)$ | $O(\sqrt{t \log tN})$ | $O(tN)$ |
| 范围证明 | 本文,第5.3节 | 7 | $3 \log N + 4$ | $O(\log N)$ | $O(\log N)$ | $O(\log N)$ | $O(\log N)$ |
| 范围证明 | 本文,第5.3节 | $O(\frac{\log N}{\log \log N})$ | $O(\frac{\log N}{\log \log N})$ | $O(\log N)$ | $O(\log N)$ | $O(\log N)$ | $O(\log N)$ |
| 批量范围证明 | 本文,第5.3节 | $2.8\sqrt{t \log N}$ | $2.8\sqrt{t \log N}$ | $O(t \log N)$ | $O(t \log N)$ | $O(t \log N)$ | $O(t \log N)$ |
从表中可以看出,我们的协议在成员证明和多项式求值证明中,使用恒定数量的群元素,并且无论在椭圆曲线群还是有限域的乘法子群中实例化,都具有更好的通信效率。此外,多项式求值证明的通信成本为$O(\frac{\log N}{\log \log N})$,相比之前的$O(\log N)$有了渐近改进。批量多项式求值证明也通过将$\log N$成本放入平方根中改进了[1]的结果。
4. 相关工作
-
零知识和批量证明
:在构造高效零知识证明方面已经有很多工作。对于一般陈述,Kilian [34]给出了第一个具有多对数通信复杂度的电路可满足性零知识证明,但计算复杂度较高。Bootle等人[7]基于离散对数假设构造了具有对数通信复杂度和线性计算成本的证明。最近的进展[8]产生了对证明者具有恒定开销和平方根通信成本的零知识证明,但构造中涉及的大常数使其不实用。对于更专门的语言,如范围证明、成员证明和多项式求值证明,有许多构造[2,28],包括一些非常简单的$\Sigma$协议。
Camenisch和Stadler [15]提供了一种著名的符号表示法,用于描述零知识知识证明的陈述,并从简单的构建块更容易地构造协议。相比之下,我们的通用关系旨在描述由低次多项式定义的语言并为这种情况生成协议。
使用挑战$x$中的拉格朗日插值多项式将多个陈述嵌入到单个多项式的想法起源于Gennaro等人[26]的二次算术程序。Bayer [1]在交互式零知识证明的上下文中使用了该技术。该技术最初用于构造Hadamard积证明和批量多项式求值证明。我们在这里表明,相同的技术可以应用于我们的通用关系。Gennaro等人[25]早期的工作使用$x$的简单幂来批量处理Schnorr证明。
文献中的其他批量证明使用[3]中的方法,在将不同实例的证明压缩在一起之前,将它们乘以小指数。这种方法可以用来在可靠性和效率之间进行权衡。我们的批量处理过程同时证明和验证多个陈述的逻辑与。还有用于或陈述的批量证明[44]和$k$ - out - of - N批量证明[29]。最后,Henry和Goldberg [29]定义了简洁性的概念来描述批量证明。 - 多项式承诺 :我们的多项式承诺协议是零知识证明的关键部分,它基于[7]中提出的多项式承诺协议。多项式承诺最初由Kate等人[33]引入,他们使用双线性映射给出了一种构造。原始构造也已扩展到多变量情况[41,46]。Libert等人[37]也给出了一种依赖于更简单的基于配对假设的构造。我们的多项式承诺协议基于离散对数假设实现了平方根通信复杂度。
-
应用
:
- 成员证明 :证明者证明一个秘密承诺值$\lambda$是列表$L = {\lambda_0, \ldots, \lambda_{N - 1}}$中的一个元素,而不透露关于$\lambda$的任何其他信息。
- 多项式求值证明 :证明者证明一个秘密承诺值$v$是公共多项式$h(U)$在另一个秘密承诺值$u$处的求值。
- 范围证明 :证明者证明一个秘密承诺值$a$是区间$[A; B]$中的一个元素。
构造这些应用协议的一种方法是设计一个算术电路来捕获见证者的所需条件,然后应用现有的零知识协议来证明一般电路的可满足性。在离散对数环境中,目前有几种高效的证明。Cramer等人[18]的方法导致通信复杂度与电路大小成线性关系的证明。基于离散对数假设的最佳交互式零知识算术电路协议[7]产生对数通信复杂度,但需要非恒定数量的轮数。
在离散对数环境中,对于这三种应用都有不依赖于一般电路可满足性协议的现有协议。Cramer等人[19]给出了组合$\sigma$协议的技术,使用单个陈述的$\sigma$协议为与组合、或组合和1 - out - of - many陈述生成证明。这些技术可以直接应用于为上述应用生成具有线性通信复杂度的$\sigma$协议。
成员证明的目标与零知识集[39]的目标相关。成员证明允许证明者对一个秘密值进行承诺并表明它在一个公共集合中,而不泄露该值的信息。另一方面,零知识集允许证明者对一个秘密集合进行承诺,并以可验证的方式处理成员和非成员查询,而不泄露集合的信息。
Herranz使用本质上是多值集合成员证明的方法构造了基于属性的签名[30]。与本文类似,该证明仅依赖于离散对数假设,但通信复杂度要高得多,与集合大小成线性关系。Camenisch和Chaabouni [12]也提供了具有对数通信复杂度的集合成员证明,Fauzi等人[22]为承诺集合之间更复杂的关系构造了恒定大小的证明。后两项工作都依赖于基于配对的假设。
范围证明可以看作是成员证明的一个特殊情况,其中$L$只是一个连续整数的列表。许多范围证明基于强RSA假设,并使用拉格朗日四平方定理。Couteau等人表明,这个假设可以被一个更接近标准RSA假设的RSA变体所取代[17]。例如[27,38]。文献[16]给出了一个在列表大小上具有亚对数通信复杂度的证明,与我们实现的效率相当,并且也依赖于离散对数问题的难解性,但使用配对进行验证。
成员证明还推广了承诺值位于线性子空间的证明,如[31,32,35],这些都使用了配对。Peng [43]实现了平方根复杂度。一些现有协议[2,28]甚至实现了对数通信复杂度。我们的单值成员证明是对后者工作的扩展,将承诺数量从对数减少到恒定。
密码学累加器[4,13,14,40]也可以用于给出成员证明。集合的成员被吸收到一个恒定大小的累加值中。然后可以使用累加值生成和验证集合成员的见证。存在高效的累加器实例,并且通常依赖于强RSA假设或基于配对的假设。为了使用通用数域筛法提供抗因式分解的安全性,RSA模数必须有$\lambda^3$ polylog$\lambda$位。由于攻击目标群中离散对数问题的亚指数算法,具有恒定嵌入度的基于配对的方案的安全性也有类似的规模。此外,此类方案需要可信设置。相比之下,我们只需要大小为$O(\lambda)$位的随机群元素来抵御椭圆曲线群中的离散对数攻击。
一些方案可以适应于在各种设置中给出非成员的零知识证明。例如,[2,43]也在离散对数设置中给出了非成员证明。基于配对假设([21])和强RSA假设([36])都构造了支持非成员证明的累加器。
5. 预备知识
-
符号定义
:
- 当算法$A$在输入$x$和随机性$r$下输出$y$时,记为$y = A(x; r)$。
- 记$y \leftarrow A(x)$表示随机选择$r$并设置$y = A(x; r)$。
- 记$y \leftarrow S$表示从集合$S$中均匀随机采样$y$。
- 定义$[n]$为整数集合${1, \ldots, n}$。
-
假设
:本文的结果依赖于离散对数假设。设$G$是一个概率多项式时间算法,它接受输入$1^{\lambda}$并输出$gk = (G, p, g)$。这里,$G$是一个阶为$p$的循环群,具有用于判断成员资格、计算群运算和逆的高效多项式时间算法。素数$p$有$\lambda$位。群由元素$g$生成。
离散对数假设 :如果对于所有概率多项式时间算法$A$,有$\Pr[gk = (G, p, g) \leftarrow G(1^{\lambda}); x \leftarrow Z_p : x \leftarrow A(gk, g^x)] \approx 0$,则相对于$G$离散对数假设成立。 -
同态承诺方案
:承诺方案允许发送者对一个秘密值进行承诺。之后,发送者可以打开承诺并向另一方揭示该值,另一方可以检查该值是否与承诺的值匹配。承诺方案应该具有隐藏性,即秘密值的信息不会过早泄露,并且具有绑定性,即发送者不能揭示与承诺不同的值。
一个非交互式承诺方案由两个概率多项式时间算法$(Gen, Com)$组成。第一个算法创建一个承诺密钥$ck \leftarrow Gen(1^{\lambda})$。该密钥指定了一个消息空间$M_{ck}$、一个承诺空间$C_{ck}$和一个随机数空间$R_{ck}$。发送者通过选择$r \leftarrow R_{ck}$并计算承诺$c = Com_{ck}(m; r) \in C_{ck}$来对$m \in M_{ck}$进行承诺。
下面是一个简单的流程图,展示了非交互式承诺方案的过程:
graph TD;
A[输入: 安全参数1^λ] --> B[Gen算法生成承诺密钥ck];
B --> C[指定消息空间Mck、承诺空间Cck和随机数空间Rck];
D[发送者选择消息m∈Mck] --> E[选择随机数r∈Rck];
E --> F[计算承诺c = Comck(m; r)∈Cck];
综上所述,本文通过提出低次关系框架、通用构造技术和应用的高效协议,在低次多项式的零知识证明方面取得了显著的进展,特别是在通信效率和计算复杂度上有了明显的改进。同时,对相关工作的梳理也展示了该领域的研究现状和本文的创新点。
6. 多项式承诺方案
多项式承诺协议是零知识证明的重要组成部分,它基于已有方案进行了改进。以下是对其详细介绍:
-
基本原理
:多项式承诺最初由Kate等人引入,使用双线性映射给出构造,后扩展到多变量情况。Libert等人也给出了依赖更简单配对假设的构造。而我们的多项式承诺协议基于离散对数假设实现了平方根通信复杂度。
-
操作步骤
:
1. 证明者对多项式进行承诺。
2. 验证者可以安全地了解多项式的求值。
以下是多项式承诺方案的流程图:
graph TD;
A[证明者拥有多项式] --> B[对多项式进行承诺];
B --> C[验证者请求求值信息];
C --> D[证明者提供求值信息];
D --> E[验证者安全验证求值];
7. 具体应用及协议优势
-
成员证明
- 原理 :证明者需证明一个秘密承诺值$\lambda$是列表$L = {\lambda_0, \ldots, \lambda_{N - 1}}$中的元素,且不泄露$\lambda$的其他信息。
-
操作步骤
:
- 证明者准备相关证明材料。
- 按照通用协议进行证明。
- 验证者根据协议进行验证。
- 优势 :新的成员证明实例化同时降低了通信成本,减少了证明者和验证者的计算量,保持了概念清晰性和简单3 - 轮结构。例如,在离散对数环境中,获得了最具通信效率的$\Sigma$协议。
-
多项式求值证明
- 原理 :证明者证明一个秘密承诺值$v$是公共多项式$h(U)$在另一个秘密承诺值$u$处的求值。
-
操作步骤
:
- 证明者计算相关值。
- 依据协议生成证明。
- 验证者进行验证。
- 优势 :通信成本为$O(\frac{\log N}{\log \log N})$,相比之前的$O(\log N)$有渐近改进,批量多项式求值证明也有进一步优化。
-
范围证明
- 原理 :证明者证明一个秘密承诺值$a$是区间$[A; B]$中的元素。
-
操作步骤
:
- 证明者确定相关参数。
- 执行证明过程。
- 验证者验证。
- 优势 :捕获了执行范围证明的民间方法,展示了通用关系的表达能力,且具有完美完备性、完美特殊诚实验证者零知识等理想特性。
8. 批量证明的优化
- 优化方法 :通过使用拉格朗日插值将同一关系的多个实例嵌入到单个域元素中,实现批量证明的平方根通信开销。结合多项式承诺子协议,进一步改进了批量证明的通信成本。
- 优势对比 :与其他批量证明方法相比,我们的批量处理过程同时证明和验证多个陈述的逻辑与,在通信效率和计算复杂度上有明显优势。例如,批量成员证明和批量多项式求值证明在通信和计算上都有优化。
9. 总结与展望
本文在低次多项式的零知识证明领域取得了重要成果。通过提出低次关系框架、通用构造技术和应用的高效协议,在通信效率和计算复杂度上实现了显著改进。具体体现在以下几个方面:
-
效率提升
:在成员证明、多项式求值证明和范围证明等应用中,降低了通信成本,减少了证明者和验证者的计算量。
-
协议特性
:证明具有完美完备性、完美特殊诚实验证者零知识、计算可靠性等理想特性,且结构简单,易于实现。
-
创新技术
:引入了拉格朗日插值和多项式承诺子协议等技术,优化了批量证明的性能。
未来,可以进一步探索以下方向:
-
扩展应用场景
:将这些协议应用到更多的实际场景中,如区块链、隐私计算等。
-
安全性增强
:在现有离散对数假设基础上,研究如何进一步增强协议的安全性。
-
性能优化
:继续优化通信和计算复杂度,以适应更多受限环境。
总之,本文的研究为低次多项式的零知识证明提供了新的思路和方法,有望推动该领域的进一步发展。
超级会员免费看

108

被折叠的 条评论
为什么被折叠?



