1. 引言

Stephanie Bayer 2013年博士论文 《Practical Zero-Knowledge Protocols Based on the Discrete Logarithm Assumption》。


要点:
1)Lagrange polynomials 具有如下关键特性:
li(X)={1modX−wi0modl(X)X−wifor i=1,⋯,ml_i(X)= \left\{\begin{matrix} 1 & \mod X-w_i\\ 0& \mod \frac{l(X)}{X-w_i} \end{matrix}\right.\ \text{for}\ i=1,\cdots,mli​(X)={10​modX−wi​modX−wi​l(X)​​ for i=1,⋯,m
因此Hadamard product argument可转为证明:【相比于multi Hadamard product argument,在保持communication complexity不变的情况下,round complexity由 7 降为了 3 。】
(∑i=1mli(X)a⃗i)∘(∑j=1mlj(X)b⃗j)−∑i=1mli(X)c⃗i=Δ⃗(X)l(X)(\sum_{i=1}^{m}l_i(X)\vec{a}_i)\circ (\sum_{j=1}^{m}l_j(X)\vec{b}_j)-\sum_{i=1}^{m}l_i(X)\vec{c}_i=\vec{\Delta}(X)l(X)(i=1∑m​li​(X)ai​)∘(j=1∑m​lj​(X)bj​)−i=1∑m​li​(X)ci​=Δ(X)l(X) (5.2)

for some Δ⃗(X)∈(Zq[X])n\vec{\Delta}(X)\in(\mathbb{Z}_q[X])^nΔ(X)∈(Zq​[X])n。
其中l(X)=∏j=1m(X−wj)l(X)=\prod_{j=1}^{m}(X-w_j)l(X)=∏j=1m​(X−wj​),li(X)=∏j≠i(X−wj)∏j≠i(wi−wj)for i=1,⋯,ml_i(X)=\frac{\prod_{j\neq i}(X-w_j)}{\prod_{j\neq i}(w_i-w_j)}\ \text{for}\ i=1,\cdots,mli​(X)=∏j​=i​(wi​−wj​)∏j​=i​(X−wj​)​ for i=1,⋯,m。还有:

  • li(X)≡1modX−wil_i(X)\equiv 1\mod X-w_ili​(X)≡1modX−wi​
  • li(X)≡0modX−wkfor i≠kl_i(X)\equiv 0\mod X-w_k\ \text{for}\ i\neq kli​(X)≡0modX−wk​ for i​=k
  • l(X)≡0modX−wkfor ∀kl(X)\equiv 0\mod X-w_k \ \text{for}\ \forall kl(X)≡0modX−wk​ for ∀k
  • li(X)(X−wi)≡0modl(X)for ∀il_i(X)(X-w_i)\equiv 0 \mod l(X)\ \text{for}\ \forall ili​(X)(X−wi​)≡0modl(X) for ∀i

zero-knowledge proof允许prover来demonstrate knowledge of some information,如:

  • know an element is a member of a list or is not a member of a list, without disclosing any further information about that element。【其实即为membership proof和non-membership proof。】

由于communication complexity和computational complexity 的原因,目前暂无适于所有NP languages 的实用的zero-knowledge proof 构建,但是存在针对特定问题的实用zero-knowledge protocol实现。(如1988年的Guillou and Quisquater’s identification protocol 以及 1991年的Schnorr’s identification protocol。)

本文重点关注的是基于discrete logarithm assumption的相关实现。

本文实现了:

  • 单变量polynomial的polynomial evaluation argument;
  • 多变量polynomial的polynomial evaluation argument;
  • a batch of 单变量polynomial的 batch polynomial evaluation argument;
  • 基于polynomial evaluation argument构建了实用的membership argument和non-membership argument。
  • 基于polynomial evaluation argument实现了shuffle证明。

以上实现从run-time 和 communication cost两个维度评估了其实用性。经过论证,对于中等量级的参数,本文的实现具有足够的实用性。

  • non-membership proof可用于blcaklist 黑名单证明;(如Tor 黑名单访问控制,避免粗暴的IP封锁影响其它无辜的users。)
  • membership proof 可用于whitlist access 白名单访问控制或 group signature schemes,也可用于电子拍卖 where users want to prove that their bids belong to a set of approved values,也可用于e-voting(选民需证明其their vote belongs to a certain set and therefore their vote is valid and be counted correctly。同时还需保证无法通过电子选票关联到相应的投票人,及保证选票的匿名性,通常的e-voting protocol都是基于mix-nets的。所谓的mix-net为a multi-party protocol,允许a group of senders to input a number of encrypted messages to the mix-net, which then outputs them in random order。)

通常构建mix-nets可通过shuffles来实现,let mix-servers take turns in shuffling the ciphertexts,即 a shuffle of ciphertexts C1,⋯,CnC_1,\cdots,C_nC1​,⋯,Cn​ is a list of ciphertexts C1′,⋯,Cn′C_1',\cdots,C_n'C1′​,⋯,Cn′​ which contain the same plaintexts in permuted order。只要the shuffle为 permutation hiding的,则没有人可link input and output of a shuffle operation,从而可保证mix-net中的匿名性。
permutation hiding可通过re-encrypting the permuted ciphertexts来实现,但是这些ciphertexts存在无法探知是否被替换的问题。因此,需要保证the ouput ciphertexts包含了the same plaintexts as the input ciphertexts,目前实现方式主要有2大类:

  • 基于permutation matrices [FS01, Fur05, GL07, Wik09];
  • 基于the invariance of polynomials under permutation of roots [Nef01, GI08, Gro10]。

评估zero-knowledge proof system的维度有:

  • round complexity [FS89, BCY91];
  • computational complexity [Sch91];
  • communication complexity。

同时具有efficient communication complexity 和 efficient computational complexity 对于构建zero-knowledge proof systems是有挑战性的。

1.1 本文主要贡献

本文的主要贡献有:

  • 1)基于 Groth 2009年论文《Linear algebra with sub-linear zero-knowledge arguments》中的zero-knowledge argument for linear algebra relation构建了a product arggument to show ∏i=1Nai=b\prod_{i=1}^{N}a_i=b∏i=1N​ai​=b for secret aia_iai​ and public known bbb。这部分研究成果发表在Eurocrypt 2012年论文《Efficient zero-knowledge argument for correctness of a shuffle》。
  • 2)基于 Groth 2009年论文《Linear algebra with sub-linear zero-knowledge arguments》中的zero-knowledge argument for linear algebra relation构建了a product arggument to show ∏i=1Nai=b\prod_{i=1}^{N}a_i=b∏i=1N​ai​=b for secret aia_iai​ and secret bbb。
  • 3)实现了multi Hadamard product argument to show for secret vectors a⃗i,b⃗\vec{a}_i,\vec{b}ai​,b that a⃗1∘⋯∘a⃗n=b⃗\vec{a}_1\circ \cdots \circ \vec{a}_n=\vec{b}a1​∘⋯∘an​=b with sublinear complexity。这部分研究成果发表在Eurocrypt 2012年论文《Efficient zero-knowledge argument for correctness of a shuffle》。
  • 4)实现了an argument to show that for secret vectors a⃗i,b⃗i\vec{a}_i,\vec{b}_iai​,bi​ that ∑i=1ma⃗i∗b⃗i=0\sum_{i=1}^{m}\vec{a}_i*\vec{b}_i=0∑i=1m​ai​∗bi​=0, for a bilinear map ∗:ZqZq→Zq*: \mathbb{Z}_q\mathbb{Z}_q\rightarrow \mathbb{Z}_q∗:Zq​Zq​→Zq​,with sublinear complexity。这部分研究成果发表在Eurocrypt 2012年论文《Efficient zero-knowledge argument for correctness of a shuffle》。
  • 5)实现了a zero-knowledge argument for committed vectors a⃗i,b⃗i,c⃗i∈Zqn\vec{a}_i,\vec{b}_i,\vec{c}_i\in\mathbb{Z}_q^nai​,bi​,ci​∈Zqn​ 满足a⃗i∘b⃗i=c⃗i\vec{a}_i\circ \vec{b}_i=\vec{c}_iai​∘bi​=ci​,其中∘\circ∘ 表示the entry-wise product。该Hadamard product argument是与Jens Groth一起完成的。
  • 6)实现的zero-knowledge polynomial evaluation argument 具有 logarithmic communication and computational complexity。这部分研究成果发表在Eurocrypt 2013年论文《Zero-knowledge argument for polynomial evaluation with application to blacklists》。
  • 7)指出了如何将单变量polynomial evaluation argument调整为适于多变量polynomial。相应的多变量polynomial evaluation argument具有polylogarithmic communication and computational complexity。
  • 8)实现了prove evaluation of LLL polynomials efficiently at the same time。即batch polynomial evaluation argument。与Jens Groth一起完成的。
  • 9)使用polynomial evaluation argument,实现了zero-knowledge non-membership argument to show that a secret value uuu is not contained in a list LLL。这部分研究成果发表在Eurocrypt 2013年论文《Zero-knowledge argument for polynomial evaluation with application to blacklists》。
  • 10)实现了zero-knowledge membership argument to show that a secret value uuu is contained in a list LLL。这部分研究成果发表在Eurocrypt 2013年论文《Zero-knowledge argument for polynomial evaluation with application to blacklists》。
  • 11)实现了batch prove non-membership or membership of multiple lists。
  • 12)实现了zero-knowledge argument for shuffle。这部分研究成果发表在Eurocrypt 2012年论文《Efficient zero-knowledge argument for correctness of a shuffle》。

1.2 安全假设

1)discrete logarithm assumption:
discrete logarithm assumption在现代密码学和密码学工具中有重要作用,如可用于EIGamal encryption、Pedersen commitment等。
discrete logarithm assumption 定义为:
group G\mathbb{G}G的order为nnn,即存在a generator G∈GG\in\mathbb{G}G∈G使得G={G,G2,⋯,Gn−1,Gn=1}\mathbb{G}=\{G,G^2,\cdots,G^{n-1},G^n=1\}G={G,G2,⋯,Gn−1,Gn=1} 且 Gx≠1G^x\neq 1Gx​=1 for x<nx<nx<n。The discrete logarithm of HHH is an element x∈Znx\in\mathbb{Z}_nx∈Zn​ for which H=GxH=G^xH=Gx holds。

discrete logarithm assumption成立的group类型有:

  • certain prime order groups,如an order qqq subgroup of Zp∗\mathbb{Z}_p^*Zp∗​ where ppp and qqq are large primes。
  • a group of points on an elliptic curve or on a hyper-elliptic curve。

破解discrete logarithm assumption的算法主要有三类:

  • 第一类为generic alogrithms,即不区分具体待破解对象;【即暴力破解法,当group order nnn很大时,很难破解。Baby Step-Giant Step [Sha71] 改进了破解run time为O(n)O(\sqrt{n})O(n​),且需要O(n)O(\sqrt{n})O(n​) space;Pollard’s ρ\rhoρ method [Pol78] 则对space无要求,Pollard’s ρ\rhoρ can be set up with constant size space;Shoup [Sho97] 中指出the lower bound of group operations to perform 不少于Ω(p)\Omega(\sqrt{p})Ω(p​),其中ppp is prime and divides the group order nnn and for all primes qqq, q∣nq|nq∣n and it holds q≤pq\leq pq≤p,即意味着for groups with prime order ppp it is not possible to improve on the runtime of Ω(p)\Omega(\sqrt{p})Ω(p​) using genric algorithms。】
  • 第二类为适于具有smooth group order的group (即a group order is smooth if it is the product of small primes);【Pohlig-Hellman [PH78]的算法效率最该,需执行O(∑i=1kci(log⁡n+pi))O(\sum_{i=1}^{k}c_i(\log n+p_i))O(∑i=1k​ci​(logn+pi​)) 次group operations for n=∏i=1kpicin=\prod_{i=1}^{k}p_i^{c_i}n=∏i=1k​pici​​。因此实际因避免使用order具有small prime factors 的group。】
  • 第三类为适于存在smooth group elements,即其可表示为products of primes smaller than a certain boundary α\alphaα。【具有subexponential run-time。】

2)Schwartz-Zippel Lemma:

1.3 一些约定

  • 本文的encryption scheme和commitment scheme可使用不同的underlying groups,但是要求这两个group具有相同的primer order qqq。
    在本文,以G\mathbb{G}G表示commitment scheme中的group,以H\mathbb{H}H表示ciphertext space。

  • X⃗∘Y⃗=(X1Y1,⋯,XnYn)\vec{X}\circ\vec{Y}=(X_1Y_1,\cdots,X_nY_n)X∘Y=(X1​Y1​,⋯,Xn​Yn​) 表示the entry-wise product。
    X⃗z=(X1z,⋯,Xnz)\vec{X}^z=(X_1^z,\cdots,X_n^z)Xz=(X1z​,⋯,Xnz​)
    x⃗π\vec{x}_{\pi}xπ​ 表示the entries of vector x⃗\vec{x}x are permuted by the permutation π\piπ,即x⃗π=(xπ(1),⋯,xπ(n))\vec{x}_{\pi}=(x_{\pi(1)},\cdots,x_{\pi(n)})xπ​=(xπ(1)​,⋯,xπ(n)​)
    x⃗⋅y⃗=∑i=1nxiyi\vec{x}\cdot \vec{y}=\sum_{i=1}^{n}x_iy_ix⋅y​=∑i=1n​xi​yi​为标准的inner product。

2. Commitment scheme

commitment scheme通常由3个算法组成:

  • probabilistic key generation algorithm G\mathcal{G}G:输入为security parameter 1λ1^{\lambda}1λ,输出为:
    – public commitment key ckckck
    – message space Mck\mathcal{M}_{ck}Mck​
    – randomizer space Rck\mathcal{R}_{ck}Rck​
    – commitment space Cck\mathcal{C}_{ck}Cck​
    – opener space Ock\mathcal{O}_{ck}Ock​

  • commitment alogrithm comckcom_{ck}comck​:输入为m∈Mckm\in\mathcal{M}_{ck}m∈Mck​和r∈Rckr\in\mathcal{R}_{ck}r∈Rck​,输出为cm=comck(m;r)c_m=com_{ck}(m;r)cm​=comck​(m;r),即为the commitment of mmm。

  • opening algorithm opckop_{ck}opck​:输入为d∈Ockd\in\mathcal{O}_{ck}d∈Ock​和commitment cmc_mcm​,输出为the original message m=opck(cm,d)m=op_{ck}(c_m,d)m=opck​(cm​,d)。在很多commitment schemes中,the opening ddd通常包含了the message mmm和the randomness rrr。

要求commitment scheme 具有hiding和binding属性。
此外,commitment scheme也可具有trapdoor属性(如chameleon commitment),此时,probabilistic key generation algorithm G\mathcal{G}G 额外再输出 trapdoor ttt信息,从而允许open a commitment cm=comck(m;r)c_m=com_{ck}(m;r)cm​=comck​(m;r) to any message m′m'm′。换句话说,就是 without knowledge of the trapdoor ttt the commitment scheme is binding, but given the trapdoor it is possible to cheat arbitrarily。

Pedersen commitment具有加法同态属性:


3. encryption scheme

public key encryption scheme 通常由3个算法组成:

  • key generation algorithm G\mathcal{G}G:输入为security parameter 1λ1^{\lambda}1λ,输出为:
    – public key pkpkpk
    – secret key sksksk
    – message space Mpk\mathcal{M}_{pk}Mpk​
    – randomizer space Rpk\mathcal{R}_{pk}Rpk​
    – cipher space Cpk\mathcal{C}_{pk}Cpk​

  • encryption algorithm ε\varepsilonε:输入为M∈Mpk,r∈RpkM\in\mathcal{M}_{pk},r\in\mathcal{R}_{pk}M∈Mpk​,r∈Rpk​ 和 public key pkpkpk,输出为C=ε(M,r,pk)∈CpkC=\varepsilon(M,r,pk)\in\mathcal{C}_{pk}C=ε(M,r,pk)∈Cpk​。以下表示为ε(M,r,pk)=εpk(M,r)\varepsilon(M,r,pk)=\varepsilon_{pk}(M,r)ε(M,r,pk)=εpk​(M,r)。

  • decryption algorithm D\mathcal{D}D:输入为C∈CpkC\in\mathcal{C}_{pk}C∈Cpk​ 和 secret key sksksk,输出为M=D(C,sk)∈MpkM=\mathcal{D}(C,sk)\in\mathcal{M}_{pk}M=D(C,sk)∈Mpk​ or ⊥\perp⊥ for failure。以下表示为D(C,sk)=Dsk(C)\mathcal{D}(C,sk)=\mathcal{D}_{sk}(C)D(C,sk)=Dsk​(C)。

encryption scheme应具有IND-CPA属性,即 indistinguishable under chosen plaintext attack (IND-CPA)。

EIGamal encryption具有乘法同态属性:

与SHVZK (special honest verifier zero-knowledge) 对应的是 malicious verifier,malicious verifier提供的是non-random challenges。

4. 相应实现

采用C++,基于NTL libaray provided by Shoup [Sho09] 和 GMP [GMP11] 做了相应的代码实现。

  • modular group 选型:
    – 不同primes ppp with different bit-sizes对用的安全等级:

    – group generation:
  • 乘法优化:
    在polynomial evaluation argument和blacklist argument中,需要multiply many big polynomials,可通过Fast Fourier Transform (FFT) [CT65] 实现性能优化。the multiplication of two degree DDD polynomials costs Ω(Dlog⁡D)\Omega(D\log D)Ω(DlogD) multiplications。
    而对于如下计算可通过binary tree来实现性能优化:
  • multi-exponentiation 优化:
    对于comck(a1,⋯,an;r)=Hr∏i=1nGiaicom_{ck}(a_1,\cdots,a_n;r)=H^r\prod_{i=1}^{n}G_i^{a_i}comck​(a1​,⋯,an​;r)=Hr∏i=1n​Giai​​,若直接计算需要n+1n+1n+1个single exponentiations。当nnn很大时,计算量很大,可借助Lim [Lim00]中提到的Brickell’s precomputation alogrithm [BGMW98] 来进行优化,当n≤1000n\leq 1000n≤1000时,可使用Lim-Lee’s algorithm [Lim00],当n=2n=2n=2时,可选择the sliding window algorithm [Lim00]。
    – Sliding Window Alogirhtm:
    当nnn值很小时(2~4),sliding window algorithm可提供最优的性能。

    – Lim-Lee’s Pre-computation技术:
    当nnn为中等规模大时,可使用Lim-Lee‘s pre-computation技术,其性能要优于 the sliding window technique和Brickell’s technique。

    – Brickell’s pre-computation algorithm:
    当nnn很大时,适于用Brickell’s pre-computation algorithm来实现multi-exponentiation。

5. 基础协议

5.1 simple product argument

详细的证明思路与博客 基于Sigma protocol实现的零知识证明protocol集锦
中第 “2.9 knowledge of commitment opening product relation or multiplication relation”一样。


整个proof size为 3 group elements和 5 field elements。

  • Prover:需6次exponentiations in G\mathbb{G}G和6次multiplications。
  • Verifier:需9次exponentiations in G\mathbb{G}G和4次multiplications。

5.2 Invertible argument

详细的证明思路与博客 基于Sigma protocol实现的零知识证明protocol集锦
中第 “2.14 commitment to 非0”一样。

即commitment的值vvv为非0值,存在倒数v−1v^{-1}v−1。

5.3 product argument

在 Groth 2009年论文《Linear algebra with sub-linear zero-knowledge arguments》的基础上进行了改进,详细参见Eurocrypt 2012年论文《Efficient zero-knowledge argument for correctness of a shuffle》,针对的场景为:

  • public info:commitments c⃗A\vec{c}_AcA​ 和 value bbb;
  • witness:A={ai,j}i,j=1n,m=(a⃗1,a⃗2,⋯,a⃗m)A=\{a_{i,j}\}_{i,j=1}^{n,m}=(\vec{a}_1,\vec{a}_2,\cdots,\vec{a}_m)A={ai,j​}i,j=1n,m​=(a1​,a2​,⋯,am​) 和 r⃗=(r1,r2,⋯,rm)\vec{r}=(r_1,r_2,\cdots,r_m)r=(r1​,r2​,⋯,rm​)
  • relation:b=∏i=1n∏j=1maij=∏i=1n(∏j=1maij)b=\prod_{i=1}^{n}\prod_{j=1}^{m}a_{ij}=\prod_{i=1}^{n}(\prod_{j=1}^{m}a_{ij})b=∏i=1n​∏j=1m​aij​=∏i=1n​(∏j=1m​aij​) 且 c⃗A=comck(A;r⃗)=(comck(a⃗1;r1),⋯,comck(a⃗m;rm))\vec{c}_A=com_{ck}(A;\vec{r})=(com_{ck}(\vec{a}_1;r_1),\cdots,com_{ck}(\vec{a}_m;r_m))cA​=comck​(A;r)=(comck​(a1​;r1​),⋯,comck​(am​;rm​))

详细的证明思路可参见博客 Efficient Zero-Knowledge Argument for Correctness of a Shuffle学习笔记(2)

其证明过程由以下三组argument组成:

  • Multi Hadamard product argument
  • zero argument
  • single value product argument

5.3.1 Multi Hadamard product argument

Multi Hadamard product argument针对的场景为:

Multi Hadamard product argument为:

5.3.2 zero argument

zero argument为:


可使用FFT对Prover的计算压力进行优化:

5.3.3 single value product argument for public bbb

single value product argument for public bbb 为:

5.3.4 single value product argument for secret bbb

相比于single value product argument for public bbb,不再限制δn=0\delta_n=0δn​=0,需单独对δn\delta_nδn​进行commit,并在验证环节中由验证b~=xb\tilde{b}=xbb~=xb改为验证cbxcδn=comck(bˉn;sˉ)c_b^xc_{\delta_n}=com_{ck}(\bar{b}_n;\bar{s})cbx​cδn​​=comck​(bˉn​;sˉ)。

5.4 Hadamard Product Argument

针对的场景为:
knowledge for committed vectors
a⃗1,b⃗1,c⃗1,⋯,a⃗m,b⃗m,c⃗m∈Zqn\vec{a}_1,\vec{b}_1,\vec{c}_1,\cdots,\vec{a}_m,\vec{b}_m,\vec{c}_m\in\mathbb{Z}_q^na1​,b1​,c1​,⋯,am​,bm​,cm​∈Zqn​
satisfying
a⃗i∘b⃗i=c⃗i\vec{a}_i\circ \vec{b}_i=\vec{c}_iai​∘bi​=ci​

若采用5.3.1节中的multi Hadamard product argument来证明的花,则需要7 rounds of interaction,详细见[Gro09] 博客 Linear Algebra with Sub-linear Zero-Knowledge Arguments学习笔记

本文改进为仅需要 3 round 且 communication complexity与Groth’s Hadamard product相同。

核心思想为:
借鉴 [GGPR13] Gennaro等人2013年论文《 Quadratic span programs and succinct nizks without pcps》第4章中 quadratic arithmetic programs 的构建,本文使用了Lagrange interpolation polynomials。
针对a set of values Ω={w1,⋯,wm}⊂Zq\Omega=\{w_1,\cdots,w_m\}\subset\mathbb{Z}_qΩ={w1​,⋯,wm​}⊂Zq​,相应的Langrange interpolation polynomials为:
li(X)=∏j≠i(X−wj)∏j≠i(wi−wj)for i=1,⋯,ml_i(X)=\frac{\prod_{j\neq i}(X-w_j)}{\prod_{j\neq i}(w_i-w_j)}\ \text{for}\ i=1,\cdots,mli​(X)=∏j​=i​(wi​−wj​)∏j​=i​(X−wj​)​ for i=1,⋯,m

可定义l(X)=∏j=1m(X−wj)l(X)=\prod_{j=1}^{m}(X-w_j)l(X)=∏j=1m​(X−wj​)。本文只要求w1,⋯,wmw_1,\cdots,w_mw1​,⋯,wm​为不同的,不过为了效率,通常选择为nnn-th root of unity值。当为nnn-th root of unity时,可借助FFT来加速相关计算。

Lagrange polynomials具有如下关键特性:
li(X)={1modX−wi0modl(X)X−wifor i=1,⋯,ml_i(X)= \left\{\begin{matrix} 1 & \mod X-w_i\\ 0& \mod \frac{l(X)}{X-w_i} \end{matrix}\right.\ \text{for}\ i=1,\cdots,mli​(X)={10​modX−wi​modX−wi​l(X)​​ for i=1,⋯,m

则Prover需要证明的内容变为了:
(∑i=1mli(X)a⃗i)∘(∑j=1mlj(X)b⃗j)−∑i=1mli(X)c⃗i=Δ⃗(X)l(X)(\sum_{i=1}^{m}l_i(X)\vec{a}_i)\circ (\sum_{j=1}^{m}l_j(X)\vec{b}_j)-\sum_{i=1}^{m}l_i(X)\vec{c}_i=\vec{\Delta}(X)l(X)(i=1∑m​li​(X)ai​)∘(j=1∑m​lj​(X)bj​)−i=1∑m​li​(X)ci​=Δ(X)l(X) (5.2)

for some Δ⃗(X)∈(Zq[X])n\vec{\Delta}(X)\in(\mathbb{Z}_q[X])^nΔ(X)∈(Zq​[X])n。

以上证明内容具有knowledge soundness和completeness,因为:
for all k=1,⋯,mk=1,\cdots,mk=1,⋯,m,由于li(X)≡1modX−wil_i(X)\equiv 1\mod X-w_ili​(X)≡1modX−wi​ 且 li(X)≡0modX−wkfor i≠kl_i(X)\equiv 0\mod X-w_k\ \text{for}\ i\neq kli​(X)≡0modX−wk​ for i​=k,因此有:
(∑i=1mli(X)a⃗i)∘(∑j=1mlj(X)b⃗j)−∑i=1mli(X)c⃗i≡a⃗k∘b⃗k−c⃗kmodX−wk(\sum_{i=1}^{m}l_i(X)\vec{a}_i)\circ (\sum_{j=1}^{m}l_j(X)\vec{b}_j)-\sum_{i=1}^{m}l_i(X)\vec{c}_i\equiv \vec{a}_k\circ \vec{b}_k-\vec{c}_k \mod X-w_k(i=1∑m​li​(X)ai​)∘(j=1∑m​lj​(X)bj​)−i=1∑m​li​(X)ci​≡ak​∘bk​−ck​modX−wk​

由于l(X)≡0modX−wkl(X)\equiv 0\mod X-w_kl(X)≡0modX−wk​,因此对于公式(5.2)成立的条件为确实 a⃗k∘b⃗k−c⃗k=0⃗\vec{a}_k\circ \vec{b}_k-\vec{c}_k=\vec{0}ak​∘bk​−ck​=0 for all k=1,⋯,mk=1,\cdots,mk=1,⋯,m 。

completeness的考量如下,若a⃗k∘b⃗k−c⃗k=0⃗\vec{a}_k\circ\vec{b}_k-\vec{c}_k=\vec{0}ak​∘bk​−ck​=0成立,则有:
(∑i=1mli(X)a⃗i)∘(∑j=1mlj(X)b⃗j)−∑i=1mli(X)c⃗i≡a⃗k∘b⃗k−c⃗kmodX−w1(\sum_{i=1}^{m}l_i(X)\vec{a}_i)\circ (\sum_{j=1}^{m}l_j(X)\vec{b}_j)-\sum_{i=1}^{m}l_i(X)\vec{c}_i\equiv \vec{a}_k\circ \vec{b}_k-\vec{c}_k \mod X-w_1(i=1∑m​li​(X)ai​)∘(j=1∑m​lj​(X)bj​)−i=1∑m​li​(X)ci​≡ak​∘bk​−ck​modX−w1​
⋮\vdots⋮
(∑i=1mli(X)a⃗i)∘(∑j=1mlj(X)b⃗j)−∑i=1mli(X)c⃗i≡a⃗k∘b⃗k−c⃗kmodX−wm(\sum_{i=1}^{m}l_i(X)\vec{a}_i)\circ (\sum_{j=1}^{m}l_j(X)\vec{b}_j)-\sum_{i=1}^{m}l_i(X)\vec{c}_i\equiv \vec{a}_k\circ \vec{b}_k-\vec{c}_k \mod X-w_m(i=1∑m​li​(X)ai​)∘(j=1∑m​lj​(X)bj​)−i=1∑m​li​(X)ci​≡ak​∘bk​−ck​modX−wm​

由于wi≠wjw_i\neq w_jwi​​=wj​ for i≠ji\neq ji​=j,因此所有的X−wiX-w_iX−wi​为coprime的,根据Chinese Remainder Theorem有:
(∑i=1mli(X)a⃗i)∘(∑j=1mlj(X)b⃗j)−∑i=1mli(X)c⃗i≡0⃗modl(X)(\sum_{i=1}^{m}l_i(X)\vec{a}_i)\circ (\sum_{j=1}^{m}l_j(X)\vec{b}_j)-\sum_{i=1}^{m}l_i(X)\vec{c}_i\equiv \vec{0} \mod l(X)(i=1∑m​li​(X)ai​)∘(j=1∑m​lj​(X)bj​)−i=1∑m​li​(X)ci​≡0modl(X)

这就意味着存在Δ⃗(X)\vec{\Delta}(X)Δ(X),Prover可计算出来,从而证明了completeness。

为了证明公式公式(5.2)成立,Prover需发送commitments cΔ0,⋯,cΔmc_{\Delta_0},\cdots,c_{\Delta_m}cΔ0​​,⋯,cΔm​​ to Δ⃗i∈Zqn\vec{\Delta}_i\in\mathbb{Z}_q^nΔi​∈Zqn​ such that Δ⃗(X)=∑i=0mΔ⃗iXi\vec{\Delta}(X)=\sum_{i=0}^{m}\vec{\Delta}_iX^iΔ(X)=∑i=0m​Δi​Xi。
On random challenge x←Zq∗∖Ωx\leftarrow \mathbb{Z}_q^*\setminus \Omegax←Zq∗​∖Ω the prover opens
∏i=1mcaili(x)∏i=1mcbili(x)∏i=1mccili(x)∏i=1mcΔixi\prod_{i=1}^{m}c_{a_i}^{l_i(x)}\ \prod_{i=1}^{m}c_{b_i}^{l_i(x)}\ \prod_{i=1}^{m}c_{c_i}^{l_i(x)}\ \prod_{i=1}^{m}c_{\Delta_i}^{x^i}i=1∏m​cai​li​(x)​ i=1∏m​cbi​li​(x)​ i=1∏m​cci​li​(x)​ i=1∏m​cΔi​xi​

to

a⃗ˉ=∑i=1ma⃗ili(x)b⃗ˉ=∑i=1mb⃗ili(x)c⃗ˉ=∑i=1mc⃗ili(x)Δ⃗ˉ=∑i=1mΔ⃗ixi\bar{\vec{a}}=\sum_{i=1}^{m}\vec{a}_il_i(x)\ \bar{\vec{b}}=\sum_{i=1}^{m}\vec{b}_il_i(x)\ \bar{\vec{c}}=\sum_{i=1}^{m}\vec{c}_il_i(x)\ \bar{\vec{\Delta}}=\sum_{i=1}^{m}\vec{\Delta}_ix^iaˉ=i=1∑m​ai​li​(x) bˉ=i=1∑m​bi​li​(x) cˉ=i=1∑m​ci​li​(x) Δˉ=i=1∑m​Δi​xi

Verifier 仅需验证a⃗ˉ∘b⃗ˉ−c⃗ˉ=Δ⃗ˉ⋅l(x)\bar{\vec{a}}\circ\bar{\vec{b}}-\bar{\vec{c}}=\bar{\vec{\Delta}}\cdot l(x)aˉ∘bˉ−cˉ=Δˉ⋅l(x) 是否成立即可。

以上证明过程不具有zero-knowledge属性,为了防止a⃗ˉ,b⃗ˉ,c⃗ˉ\bar{\vec{a}},\bar{\vec{b}},\bar{\vec{c}}aˉ,bˉ,cˉ 泄露信息,Prover会选择随机向量a⃗0,b⃗0,c⃗0←Zqn\vec{a}_0,\vec{b}_0,\vec{c}_0\leftarrow \mathbb{Z}_q^na0​,b0​,c0​←Zqn​,然后定义:
a⃗ˉ=a⃗0l(x)+∑i=1ma⃗ili(x)b⃗ˉ=b⃗0l(x)+∑i=1mb⃗ili(x)c⃗ˉ=c⃗0l(x)+∑i=1mc⃗ili(x)\bar{\vec{a}}=\vec{a}_0l(x)+\sum_{i=1}^{m}\vec{a}_il_i(x)\ \bar{\vec{b}}=\vec{b}_0l(x)+\sum_{i=1}^{m}\vec{b}_il_i(x)\ \bar{\vec{c}}=\vec{c}_0l(x)+\sum_{i=1}^{m}\vec{c}_il_i(x)aˉ=a0​l(x)+i=1∑m​ai​li​(x) bˉ=b0​l(x)+i=1∑m​bi​li​(x) cˉ=c0​l(x)+i=1∑m​ci​li​(x)

由于a⃗0,b⃗0,c⃗0\vec{a}_0,\vec{b}_0,\vec{c}_0a0​,b0​,c0​为随机选择的,以此以上求和操作不会泄露任何关于a⃗i,b⃗i,c⃗i\vec{a}_i,\vec{b}_i,\vec{c}_iai​,bi​,ci​的信息,除非l(x)=0l(x)=0l(x)=0。而当challenges不在Ω\OmegaΩ内时,l(x)l(x)l(x)不可能为0。同时有l(X)≡0modX−wil(X)\equiv 0\mod X-w_il(X)≡0modX−wi​ for all i=1,⋯,mi=1,\cdots,mi=1,⋯,m 使得存在Δ⃗(X)∈(Zq[X])n\vec{\Delta}(X)\in(\mathbb{Z}_q[X])^nΔ(X)∈(Zq​[X])n 使 a⃗ˉ∘b⃗ˉ−c⃗ˉ=Δ⃗ˉ(X)l(X)\bar{\vec{a}}\circ\bar{\vec{b}}-\bar{\vec{c}}=\bar{\vec{\Delta}}(X)l(X)aˉ∘bˉ−cˉ=Δˉ(X)l(X) 成立。

详细的证明过程为:


相应的communication complexity和computation complexity为:

Practical Zero-Knowledge Protocols Based on the Discrete Logarithm Assumption 学习笔记 1相关推荐

  1. qesa Efficient zero-knowledge arguments in the discrete log setting 学习笔记

    1. 引言 Hoffmann等人 2019年论文 <Efficient zero-knowledge arguments in the discrete log setting >. 相应 ...

  2. Compressed sigma-Protocol Theory and Practical Application to Plug Play Secure Algorithmics学习笔记

    1. 引言 Thomas Attema等人2020年论文<Compressed sigma-Protocol Theory and Practical Application to Plug & ...

  3. PLONK: permutations over lagrange-bases for oecumenical noninteractive arguments of knowledge 学习笔记

    1. 引言 Gabizon等人2019年论文<PLONK: permutations over lagrange-bases for oecumenical noninteractive arg ...

  4. Proof Systems for General Statements about Discrete Logarithms 学习笔记

    Jan Camenisch和Markus Stadler 1997年论文<Proof Systems for General Statements about Discrete Logarith ...

  5. 《Real-Time Rendering》第四版学习笔记——Chapter 9 Physically Based Shading(一)

    一.光的物理特性 光与物体的交互形成了基于物理着色的基础. 在物理层面上,光的模型为电磁横波.每个波都有一个单一的波长λ\lambdaλ.具有单一波长的光叫单色光(monochromatic ligh ...

  6. 《Real-Time Rendering》第四版学习笔记——Chapter 9 Physically Based Shading(二)

    上接文章:<Real-Time Rendering>第四版学习笔记--Chapter 9 Physically Based Shading(一) 六.微观几何 每个可见的表面点都包含了很多 ...

  7. cs224w(图机器学习)2021冬季课程学习笔记12 Knowledge Graph Embeddings

    诸神缄默不语-个人CSDN博文目录 cs224w(图机器学习)2021冬季课程学习笔记集合 文章目录 1. Heterogeneous Graphs and Relational GCN (RGCN) ...

  8. 《Improved Crowd Counting Method Based onScale-Adaptive Convolutional Neural Network》论文笔记

    <Improved Crowd Counting Method Based onScale-Adaptive Convolutional Neural Network>论文笔记 论文地址 ...

  9. 证明与计算(2): 离散对数问题(Discrete logarithm Problem, DLP)

    本文链接,随时更新请不要转载以免过期:证明与计算(2): 离散对数问题(Discrete logarithm Problem, DLP) - ffl - 博客园 离散对数问题,英文是Discrete ...

最新文章

  1. 英国再推人工智能报告: 四方面发力打造AI强国
  2. java微信公众号开发token验证失败的问题及解决办法
  3. 定制浏览器地址栏前的小图标
  4. 真实而震撼:同班同学20年后,身价15亿与月薪5000元的区别
  5. Redis 单例、主从模式、sentinel 以及集群的配置方式及优缺点对比(转)
  6. 手势相关-解决手势冲突
  7. HDU 2154:跳舞毯
  8. 201521123026《Java程序设计》第2周学习总结
  9. js基础练习:实现资料查找
  10. mysql 忘记密码解决方法(有用)
  11. java连接数据库(sqlserver和mysql)
  12. 现代通信原理思维导图--第三章 随机过程
  13. 关于ATM机的JAVA实验报告书,Java实习报告(ATM自动柜员机)
  14. 2019/12/9 K60单片机学习
  15. 登录到接受邮件服务器,使用outlook2016配置imap 登陆到接收服务器(imap) 失败
  16. BZOJ4556:[Tjoi2016Heoi2016]字符串 (后缀自动机+树上倍增+二分答案+线段树合并)
  17. Spring中常用注解及其作用(二)
  18. 计算机中ppt,计算机中的数.ppt
  19. 如果说这个世界不是真实存在的,只是一段代码,迄今为止你发现了哪些bug?
  20. 微信小程序map地图

热门文章

  1. CAD图纸反复修改?试试CAD替换工具!
  2. matlab星三角变压器,星三角降压启动的主回路图解
  3. 无纺布袋厂的工作原理与运行维护
  4. 风险分析评估方法介绍
  5. “旧爱”难断,雀巢能否借区块链一斩红尘?
  6. 5GC学习笔记之NF功能简介
  7. 常用计算机工具软件论文,计算机常用工具软件课程设计论文.docx
  8. 通过修改 DOM 的文本内容,动态改变网页的内容。
  9. 安科瑞ASJ60-LD16A剩余电流监测仪 照明灯配电箱漏电流保护装置
  10. 2007年日语一级听力原文