非交互式零知识证明协议的构建与优化
在密码学领域,零知识证明是一项重要的技术,它允许一方(证明者)向另一方(验证者)证明某个陈述是真实的,而不泄露除该陈述真实性之外的任何额外信息。非交互式零知识证明则进一步简化了证明过程,无需证明者和验证者之间进行多次交互。本文将详细介绍几种非交互式零知识证明协议的构建方法、相关假设以及优化方案。
1. 构建A的过程
构建A的步骤如下:
1. 首先运行[BSMP]中关于“y是模n的非平方数”的证明模拟。在[BSMP]中已证明这部分满足我们对A的要求。
2. 按照上述模拟器算法构建共享随机字符串的最后部分,但在将未丢弃的数字构建为随机平方数后,随机决定是否将每个数字乘以y。这使得A现在只能以一种方式打开每个结果数字。不过,由于A知道C的一个满足赋值,它仍可按照证明者的算法完成证明。
若y是平方数,与模拟情况相比没有变化(所有未丢弃的数字仍是平方数);否则,我们得到的就是真实证明者的情况(未丢弃的数字隐藏独立的随机比特)。需要注意的是,无论证明者使用哪种满足赋值,验证者获得的视图都是不可区分的。
2. 协议对二进制门的处理
我们描述的协议能够处理任意二进制门。然而,从模E的数字到它们隐藏的比特的映射的同态性质来看,异或(XOR)和非(NOT)门的处理效率比一般二进制门高得多:
- 对于异或门,给定两个隐藏输入比特的数字,我们只需将这些数字模n相乘,即可得到一个隐藏输出比特的数字。
- 对于非门,给定一个隐藏输入比特的数字,我们将其乘以y。
3. 预处理下的完美和统计零知识论证
为构建NP完全问题的非交互式完美或统计零知识协议(包括有预处理和无预处理的情况),若要实现完美零知识,似乎需要将模型改为证明者是多项式有界的,而验证者可以是无界的,从而得到零知识论证。这是因为对于普通交互式证明,存在Fortnow的“不可能结果”,在无条件隐藏比特承诺存在的假设下,该结果也适用于非交互式证明。
3.1 离散对数方案(DLS)
一种无条件隐藏比特承诺的示例是[CDG]和[BKK]中提出的方案。证明者接收一个素数p、p - 1的因式分解、Zp 的一个生成元g以及一个随机元素a∈Zp 。证明者可以根据这些数据检查g是否确实生成Zp*。对比特b的承诺计算为abg^β,其中β在[0..p - 2]中均匀选择。除非证明者能够计算a以g为底的离散对数,否则他无法改变主意。另一方面,承诺的分布与它们隐藏的比特无关。我们将此方案称为离散对数方案(DLS)。假设证明者即使在给定p - 1的因子时也无法找到a的离散对数,这被称为认证离散对数假设(CDLA)。
3.2 无条件安全比特承诺假设(USBCA)
与其使用特定的承诺方案,自然的做法是基于存在无条件隐藏比特的比特承诺方案这一一般假设来推导结果。具体来说,我们考虑以下假设:
存在一个无限的有限集族{Ik},其中Ik中的元素是一个函数BC : {0, 1}×{0, 1}^k → {0, 1}^s(k),且s(k)与k是多项式相关的。需要满足以下条件:
- 给定k,可以在概率多项式时间内随机选择Ik的一个元素(实例)。
- 给定根据上述条件选择的BC∈Ik,没有概率多项式时间算法能够找到r, r’使得BC(1, r) = BC(0, r’)。
- 对于任何实例BC,当r均匀选择时,BC(1, r)的分布等于BC(0, r)的分布。
在上述第三个条件中,我们可以将两个分布相等的要求替换为它们在统计上不可区分的要求。
USBCA可以从许多不同的难解性假设中推导出来,例如离散对数的难解性、因式分解或图同构的难解性、完美零知识MA知识证明的存在性,或者某些形式的背包问题的难解性。
3.3 碰撞难解哈希函数假设
为了获得更高效的协议,我们还需要另一个假设,即存在碰撞难解(或无碰撞)的哈希函数族。这样的族具有以下性质:可以很容易地随机选择一个输出为k比特的成员函数h,但尽管输入比特长度大于k,却很难找到x ≠ y使得h(x) = h(y)。
Naor和Yung的结果表明,碰撞难解哈希函数存在的假设至少与USBCA一样强,即存在碰撞难解哈希函数族意味着USBCA成立。如果USBCA中的函数s(k)至多为k,那么逆命题也成立。例如,CDLA意味着存在碰撞难解哈希函数。不过,一般情况下逆命题是否成立仍是一个开放问题。
4. 具有预处理的协议
4.1 Shamir和Lapidot协议
构建NP完全问题的交互式论证的一种简单方法是使用Lapidot和Shamir的技术,该技术为哈密顿图问题(GH)提供了一个协议。该协议的预处理和证明阶段如下:
-
预处理阶段
:
1. 证明者P对k个t×t的关联矩阵Hi(i = 1…k)进行承诺,每个矩阵代表一个随机哈密顿循环。
2. 验证者V回复k个随机比特b1, …, bk。
-
证明阶段
:
1. 证明者P发送一个他想要证明是哈密顿图的k节点图G,并完全打开所有bi = 0的Hi,以便验证者V可以检查它们是否正确构造。
2. 对于bi = 1的i,证明者P展示Hi的行和列的一个排列,并将排列后矩阵中与G的关联矩阵中的0对应的所有条目打开为0。
然而,该协议的一个缺点是它仅适用于图G恰好有k个节点,如果证明者在预处理时不知道他稍后要证明的图,这将成为一个问题。一种简单的解决方案是让证明者提供j节点的Hi集合(j = 1..K),其中K是与安全参数k多项式相关的某个最大值。但即使图G最终比K小得多,证明者和验证者仍需交换与K值对应的比特数,因此这种解决方案并不理想。
4.2 基于哈希函数的改进协议
基于碰撞难解哈希函数存在的假设,我们提出一种不同的方法来使用[LS]的技术,实现更高效的预处理和证明阶段:
-
预处理阶段的通信复杂度
:与K和图G的大小无关。
-
证明阶段的通信复杂度
:为O(j²ks(k) + jk)比特,其中j是图G的大小,k是安全参数。特别是,它与K无关,并且如果图G有k个节点,我们得到的复杂度与基本的Lapidot/Shamir解决方案基本相同。
该协议的具体步骤如下:
-
预处理阶段
:
1. 验证者V根据USBCA选择一个变色龙比特承诺方案BC的实例,并使用基于单向函数的承诺在零知识的情况下向证明者P证明他知道该承诺方案的陷门信息(例如使用[BCC]中的通用协议)。同时,他随机选择一个碰撞难解哈希函数族的成员h并发送给证明者P。
2. 证明者P为j = 1…K随机选择H(j),然后计算Aj = h(BC(H(j), Rj), Zj),其中Rj和Zj是随机选择的。最后,他将Aj的哈希图像h(AK)||…||h(A1, Z)发送给验证者V,其中Z是随机选择的。
3. 验证者V返回一个由k个随机比特组成的字符串E。
-
证明者算法(证明阶段)
:
1. 给定一个j节点的哈密顿图G(1 ≤ j ≤ K),证明者发送A1, …, Aj, BC(H(j), Rj), Zj,以及h(BC(H(j + 1), Rj + 1)||…||BC(H(K), RK), Z)。
2. 证明者根据BC(H(j), Rj)和E生成图G是哈密顿图的证明。
-
验证者算法(证明阶段)
:
1. 给定一个j节点的哈密顿图G(1 ≤ j ≤ K)和从证明者收到的数据,验证者检查Aj = h(BC(H(j), Rj), Zj),并且h(Aj||Aj - 1||…||A1, h(AK||…||Aj + 1, Z))等于预处理阶段收到的哈希值。
2. 验证者使用BC(H(j), Rj)和E验证证明者的证明。
可以证明,在碰撞难解哈希函数族存在的假设下,上述协议构成了一个具有预处理的统计零知识非交互式论证,用于哈密顿图问题。如果在上述构造中使用DLS进行比特承诺,那么在CDLA下,得到的协议是一个具有预处理的完美零知识论证,用于哈密顿图问题。
下面是该协议的流程图:
graph TD;
A[预处理阶段开始] --> B[V选择BC实例和h并发送给P];
B --> C[P选择H(j)并计算Aj];
C --> D[P发送Aj的哈希图像给V];
D --> E[V返回字符串E];
E --> F[证明阶段开始];
F --> G[P发送相关数据给V];
G --> H[P生成证明];
H --> I[V验证证明];
I --> J[证明阶段结束];
5. 共享字符串模型中的完美零知识论证
自然的问题是,是否可以在共享字符串模型(即无预处理)中构造NP完全问题的完美或统计零知识非交互式论证。对于某些问题,答案是肯定的,例如[BSMP]中给出了二次非剩余问题的示例。但对于NP完全问题,目前还没有已知的此类协议。
我们给出一个用于可满足性问题(SAT)的协议,该协议是完美零知识的,但我们尚未能将其可靠性问题归结为一个普遍接受的难解性假设。具体步骤如下:
1. 已知存在一个概率多项式时间算法A,输入k时,它能选择一个随机的k比特素数p和Zp
的一个生成元g,且失败概率可忽略不计。
2. 给定随机字符串α和一个大小为k的可满足电路C,证明者进行以下操作:
- 使用α的前几位作为算法A的硬币翻转,运行算法A,得到输出p和g。
- 使用α中未使用的下几位,通过反复考虑α的k比特段,直到找到一个作为整数小于p的段,从而在Zp
中均匀选择一个常数u。
- 使用DLS对C进行k次加密,如[BCC]中所述。
- 将所有加密结果串联起来,通过一个单向函数f,使用输出的前k比特代替[BCC]中验证者的挑战。
- 将所有加密结果和答案包含在证明中。
该协议的模拟器可以像证明者一样生成p和g,但选择具有已知以g为底的离散对数的n,然后让共享随机字符串的相应部分由α确定,因此该协议是完美零知识的。
综上所述,我们展示了一个用于SAT的非交互式零知识证明,使一般NP陈述的非交互式证明更加直接和高效。基于碰撞难解哈希函数存在的假设,我们展示了一个具有预处理的非交互式统计零知识论证,用于哈密顿图问题,其中预处理阶段可以与后续要证明的定理大小无关。该协议仅基于CDLA即可工作,并且此时是完美零知识的。目前的一个开放问题是找到一个用于NP完全问题的完美或统计零知识非交互式论证。
非交互式零知识证明协议的构建与优化
6. 协议分析与总结
6.1 协议性能分析
我们对上述提到的几种协议的性能进行总结和对比,如下表所示:
| 协议名称 | 适用问题 | 零知识类型 | 是否需要预处理 | 通信复杂度 | 相关假设 |
| — | — | — | — | — | — |
| 构建A的协议 | 未明确特定问题 | 未提及 | 未提及 | 未提及 | [BSMP]相关假设 |
| 一般二进制门处理协议 | 任意二进制门问题 | 未提及 | 未提及 | 未提及 | 同态映射性质 |
| Shamir和Lapidot协议 | 哈密顿图问题(GH) | 未提及 | 是 | 预处理和证明阶段与图节点数相关 | USBCA |
| 基于哈希函数的改进协议 | 哈密顿图问题(GH) | 统计零知识(使用DLS时为完美零知识) | 是 | 预处理与图大小无关,证明阶段为O(j²ks(k) + jk)比特 | 碰撞难解哈希函数存在、USBCA、CDLA(使用DLS时) |
| SAT协议 | 可满足性问题(SAT) | 完美零知识 | 否 | 未提及 | 概率多项式时间算法A、单向函数f存在 |
从表中可以看出,不同协议在适用问题、零知识类型、是否需要预处理以及通信复杂度等方面存在差异。基于哈希函数的改进协议在处理哈密顿图问题时,在通信复杂度上有明显的优势,尤其是预处理阶段与图的大小无关,这一点在实际应用中非常重要。
6.2 零知识性质分析
零知识证明的核心在于证明者能够在不泄露额外信息的情况下使验证者相信陈述的真实性。在上述协议中,一些协议的零知识性质得到了明确的证明或说明:
- 构建A的协议中,无论证明者使用哪种满足赋值,验证者获得的视图都是不可区分的,体现了一定的零知识特性。
- 基于哈希函数的改进协议在碰撞难解哈希函数族存在的假设下,构成了统计零知识非交互式论证;当使用DLS进行比特承诺且在CDLA下,是完美零知识论证。
- SAT协议通过模拟器的操作,证明了其是完美零知识的。
这些协议的零知识性质保证了在证明过程中信息的安全性,使得验证者无法从证明中获取除陈述真实性之外的其他信息。
7. 技术细节深入探讨
7.1 碰撞难解哈希函数的构造
在基于哈希函数的改进协议中,碰撞难解哈希函数起到了关键作用。它的构造基于一个从m比特到k比特(m > k)的碰撞难解函数f。具体构造如下:
设t = m - k,为了对输入M进行哈希,将其分割成k比特的块M1, …, Mn,必要时对最后一个块填充0。然后定义:
h(M, Z) = f(Mn || f(Mn - 1 || f(… f(M2 || f(M1 || Z))…))
其中Z表示一个k比特的字符串,||表示连接。可以证明,如果f难以找到碰撞,那么很难找到M, M’, Z, Z’使得M ≠ M’且长度相等,同时h(M, Z) = h(M’, Z’)。
这种构造方式使得当证明者发送哈希值时,他就对原像进行了承诺,但在后续可以有选择地揭示部分原像。为了简化,我们假设t = k,不过很容易对构造进行修改以去除这个条件。
7.2 变色龙比特承诺方案
变色龙比特承诺方案是基于哈希函数的改进协议中的另一个重要技术。在该方案中,验证者可以选择一些陷门信息,这些信息允许改变承诺的内容。
首先,USBCA意味着单向函数存在,因为考虑将r, b映射到BC(r, b)的函数,它必须是难以求逆的,否则证明者可以利用求逆算法作弊。基于单向函数的存在,[FS]中提出的构造可以将任何比特承诺方案转换为变色龙比特承诺方案。
验证者在预处理阶段选择变色龙比特承诺方案的实例,并在零知识的情况下向证明者证明他知道陷门信息。这一过程确保了协议的安全性和灵活性。
8. 实际应用与展望
8.1 实际应用场景
非交互式零知识证明协议在许多领域都有潜在的应用价值:
-
区块链领域
:在区块链中,零知识证明可以用于实现隐私保护的交易和智能合约。例如,在加密货币交易中,证明者可以在不泄露交易金额和交易双方身份的情况下,证明交易的合法性。
-
云计算领域
:用户可以将数据加密存储在云端,并使用零知识证明向云服务提供商证明数据满足某些条件,而无需泄露数据的具体内容。
-
身份验证领域
:用户可以使用零知识证明向验证者证明自己的身份信息,而无需直接提供敏感的身份数据。
8.2 未来研究方向
虽然我们已经取得了一些进展,但仍有许多问题需要进一步研究:
-
找到通用的NP完全问题协议
:目前还没有已知的用于NP完全问题的完美或统计零知识非交互式论证协议。寻找这样的协议是一个重要的研究方向,它将极大地推动非交互式零知识证明的应用范围。
-
降低协议复杂度
:尽管一些协议在通信复杂度上已经有了一定的优化,但仍然有进一步降低复杂度的空间。特别是对于大规模问题,如何设计更高效的协议是一个挑战。
-
将可靠性问题归结为普遍接受的难解性假设
:如SAT协议,我们尚未能将其可靠性问题归结为一个普遍接受的难解性假设。解决这个问题将增强协议的可信度和实用性。
9. 总结
本文详细介绍了几种非交互式零知识证明协议的构建方法、相关假设以及优化方案。从构建A的过程到协议对二进制门的处理,再到预处理下的完美和统计零知识论证,我们逐步深入探讨了不同协议的特点和应用。
通过对Shamir和Lapidot协议的分析,我们发现了其存在的问题,并提出了基于哈希函数的改进协议,该协议在通信复杂度上有明显的优势。同时,我们还给出了一个用于SAT的协议,虽然其可靠性问题有待进一步解决,但它是完美零知识的。
在未来的研究中,我们期待能够找到通用的NP完全问题协议,降低协议复杂度,并将更多协议的可靠性问题归结为普遍接受的难解性假设,从而推动非交互式零知识证明技术在更多领域的应用。
下面是整个非交互式零知识证明协议流程的总结流程图:
graph LR;
A[选择协议类型] --> B{是否需要预处理};
B -- 是 --> C[进行预处理阶段];
B -- 否 --> D[直接进入证明阶段];
C --> E[证明者准备数据并发送];
D --> E;
E --> F[证明者生成证明];
F --> G[验证者验证证明];
G --> H{验证是否通过};
H -- 是 --> I[证明成功];
H -- 否 --> J[证明失败];
通过以上的分析和总结,我们对非交互式零知识证明协议有了更深入的理解,也为未来的研究和应用提供了方向。
4330

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



