CN116112181A - 一种通用非交互式零知识证明方法及系统 - Google Patents

一种通用非交互式零知识证明方法及系统 Download PDF

Info

Publication number
CN116112181A
CN116112181A CN202310085347.XA CN202310085347A CN116112181A CN 116112181 A CN116112181 A CN 116112181A CN 202310085347 A CN202310085347 A CN 202310085347A CN 116112181 A CN116112181 A CN 116112181A
Authority
CN
China
Prior art keywords
prover
verifier
random number
promise
circuit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310085347.XA
Other languages
English (en)
Inventor
柏伟浩
陈隆
张振峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Software of CAS
Original Assignee
Institute of Software of CAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Institute of Software of CAS filed Critical Institute of Software of CAS
Priority to CN202310085347.XA priority Critical patent/CN116112181A/zh
Publication of CN116112181A publication Critical patent/CN116112181A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3218Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
    • H04L9/3221Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs interactive zero-knowledge proofs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0852Quantum cryptography
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Electromagnetism (AREA)
  • Theoretical Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种通用非交互式零知识证明方法及系统。本方法为:证明者和验证者交互运行预计算阶段,产生证明阶段所需的材料;证明阶段,证明者首先根据证据w随机选取随机数rw计算证据w的承诺值Cw并将其发送给验证者,将证据w和陈述x作为电路C(x,w)的输入运行电路得到电路中计算每个乘法门的副本以及副本对应的承诺的随机数并将其发送给验证者;根据随机数rw计算打开值并将其发送给验证者;验证阶段:验证者首先将证据w的承诺值Cw和x作为电路C(x,w)的输入,运行电路得到电路中每个乘法门副本对应的承诺;然后根据证明者所发过来乘法门副本及其承诺的随机数验证乘法门执行的正确性。本发明可以抵抗量子计算机攻击且效率高。

Description

一种通用非交互式零知识证明方法及系统
技术领域
本发明属于密码技术领域,具体涉及一种基于多方安全计算和同态承诺的通用非交互式零知识证明方法及系统。
背景技术
多方安全计算:多个参与方在不泄露各自输入的情况下共同计算某个函数。
同态承诺:满足Com(a)+Com(b)=Com(a+b)的承诺方案。
非交互式零知识证明:证明者在不需要交互和不泄露证据的情况下证明某一命题的正确性。
零知识(ZK)证明及其非交互的变体是理论和实践中最基本和最通用的密码原语之一。零知识证明允许证明者在不透露任何其他信息的情况下说服验证者一个陈述的有效性,而非交互零知识(NIZK)证明系统要求在没有验证者参与的情况下生成证明。NIZK证明可以用任意的验证器进行验证,而不需要指定特殊的验证器。NIZK证明系统将是非常有用的,它可以对于任意的算术电路,甚至NP语言类进行证明。具体的,其应用场景包括用于构建IND-CCA安全公钥加密方案、签名方案、区块链等。
人们已经广泛研究了可以从因式分解和具有双线性映射的群等标准假设出发构建NIZK。最近一项研究也表明,用于对任意NP语言进行证明的NIZK也可以由基于格的假设构建。这种协议是特别可取的,因为基于格的假设被认为是困难的,即使是在量子计算机模型下的平均情况下的困难性。虽然这一方面的工作已经令人兴奋地实现了基于格假设的新的可行性,但我们对如何优化这种结构效率的理解仍处于初级阶段。
目前主要有两种可能的方法获得对通用算数电路的NIZKs。第一种方法主要是理论上的。在CRYPTO 2019中,Peikert和sheiehan展示了如何通过相关哈希族(CI-hash)将针对任意NP语言类的基于Σ协议范式的零知识证明系统转换为非交互式系统。构建通用非交互式零知识证明的另一种巧妙方法来自Ishai等人提出的安全多方计算(MPC),称为MPC-in-the-head范式。MPC协议允许多个参与方联合计算n方函数(输入的函数),同时保持输入的私密性和输出的正确性。
在CRYPTO 2019中,Peikert和sheiehan展示的利用相关哈希族(CI-hash)将针对任意NP语言类的基于Σ协议范式的零知识证明系统转换为非交互式系统。然而,正如他们文章所指出的,这样的变换需要并行重复运行Σ协议O(λ)次,这导致了证明尺寸的显著膨胀。此外,该方法中使用的∑协议是专门为特定的NP完全问题设计的。将一个特定的算术电路,例如用密文加密的消息,转换为这个特定的NP完全问题通常是不方便的。
构建通用非交互式零知识证明的一种巧妙方法来自Ishai等人提出的安全多方计算(MPC),称为MPC-in-the-head范式。目前现有的基于MPCitH范式构造零知识证明均是基于半诚实模型下安全的MPC协议。当从n方具有半诚实安全性的MPC构造NIZKs时,由于违反稳健性需要作弊的证明者产生至少一对不一致的副本,通过随机揭示两个参与人的副本来检测作弊行为的概率可能为1/n。为了使完整性误差的概率达到可忽略值,NIZKs证明器需要重复运行所需证明陈述对应的MPC协议O(λ)次,其中λ为安全参数。最近,一系列漂亮的工作显示出从各种应用中半诚实的安全MPC协议构建高效NIZKs的巨大潜力,但是仍然无法解决其重绕次数过多的问题。
因此,如何构造一个高效的、只需要运行所证明问题电路一次、可以抵抗量子计算机攻击、不依赖于任何的代数结构的基于多方安全计算的通用非交互式零知识证明系统仍然是一个开放问题。
发明内容
针对现有技术中存在的问题,本发明的目的在于提供一种基于多方安全计算和同态承诺的通用非交互式零知识证明方法及系统。本发明是一种高效的、只需要运行所证明问题对应的电路一次、可以抵抗量子计算机攻击、不依赖于任何的代数结构的通用非交互式零知识证明方法。
本发明基于多方安全计算和同态承诺的通用非交互式零知识证明方法,其步骤包括:
(1)提出了新的证明框架。算法框架主要分为:预计算阶段、证明阶段和验证阶段三个部分。对于任意的NP语言类其中为陈述为x、证据为w的公知的NP问题对应的描述。假设其对应的算术电路记为C(x,w)=1,乘法门个数为k。首先证明者和验证者交互地运行第一阶段:预计算阶段,产生第二阶段证明阶段所需的材料,即后续步骤(2)中所阐述的N个beaver三元组中剩余未打开的beaver三元组。第二阶段证明阶段由证明者运行,证明者根据证据w,随机选取随机数rw,调用同态承诺算法Com计算证据w的承诺值Cw=Com(w;rw)发送给验证者,其中Com算法输入证据w和随机数rw,计算结果为对证据w的承诺。然后,证明者根据证据w和陈述x以及预计算阶段产生的材料,运行电路C(w,x),得到算数电路C(x,w)中计算每个乘法门的副本以及副本对应的承诺的随机数并输出,该结果供验证者验证电路运行的正确性。最后,证明者根据对证据w承诺时的随机数rw,计算最终结果对应的承诺的打开值rresult,即rresult=C(rw)。最终,证明者输出证明,证明为证明者计算算数电路C(x,w)中的副本信息,其包含:电路乘法门的副本、副本承诺对应的随机数、rresult。将证明最终发送给验证者。第三阶段验证阶段由验证者运行。验证者根据证据w的同态承诺值Cw=Com(w;rw)和陈述x,运行电路C(Cw,x),得到相同的算数电路C关于输入为(Cw,x)的每一个乘法门副本对应的承诺,根据证明中包含的乘法门副本及其承诺的随机性验证乘法门执行的正确性,验证过程为众所周知的承诺打开算法。
进一步,验证者根据rresult对电路C(Cw,x)运行的结果进行承诺的打开,验证证明通过与否。其中,Com为满足加法同态的承诺算法,本发明Cw=Com(w;rw)表示使用随机数rw对w进行承诺,承诺打开为公布随机性rw,根据rw和Cw可以恢复出w验证承诺值的正确性。
进一步地,本发明不依赖于任何的代数结构,可以基于任意的群、环及其对应的代数假设构造。大量的关于同态承诺算法的相关研究表明,目前已有高效的满足加法同态的承诺算法。
(2)提出了新的零知识证明预计算阶段。由证明者和验证者共同运行预计算算法,在预计算阶段可以在不需要知道证明电路的情况下产生证明所需要的某些材料。具体的讲,预计算阶段证明者和验证者通过GenTriple协议产生一系列的beaver三元组,其中beaver为发明该三元组的作者名字。具体的讲,证明者随机选取N个beaver三元组(ai,bi,ci)i∈[N],其中满足ci=ai×bi,同时独立的随机选取三元组其中i为第i个随机的三元组用于对beaver三元组进行承诺。利用同态承诺算法Com将产生的N个beaver三元组分别计算其承诺值其中为使用随机数对ai进行承诺,为使用随机数对bi进行承诺,为使用随机数对ci进行承诺。证明者输出beaver三元组的承诺值,发送给验证者,验证者收到N个beaver三元组的承诺后,随机选择集合C={i1,i2,…,it},其中it∈{1,2,...,N},发送给证明者,其中i1,i2,…,it为从N个beaver三元组中随机抽取t个beaver三元组对应的承诺值的索引。证明者根据收到的挑战集合C,打开对应的承诺值,即证明者将承诺中使用的随机性发送给验证者。验证者验证:验证者根据收到的随机性和承诺恢复出承诺对应的beaver三元组(ai,bi,ci)i∈[C]。如果恢复出承诺对应的beaver三元组均满足ci=ai×bi,则验证通过。证明者利用剩余未打开的N\C个beaver triples进入第二步在线阶段的算法,在这里我们记为k=|N|-|C|,即k为未打开的beaver三元组的个数,用于第二阶段证明算法中。其中beaver三元组是一个三元组(a,b,c)满足c=a×b,同态承诺算法是指满足加法同态性的承诺算法,即Com(a,ra)+Com(b,rb)=Com(a+b,ra+rb)。
进一步地,在预计算阶段,本发明使用的GenTriple协议涵盖采用任何方法产生所需的beaver triples的协议。大量的关于同态承诺算法的相关研究表明,目前已有高效的GenTriple协议。本发明说明书只以”Cut-and-Choose”方法产生相应的beaver triples为例,介绍本发明的方法。
(3)提出了新的证据承诺方式。对于任意的NP语言类在证明阶段中:证明者手中拥有证据w、NP问题的陈述x、在预计算阶段(如(2)所示)产生的k个、未被打开的beaver三元组以及对应的承诺的随机性,验证者仅仅拥有NP问题的陈述x和预计算阶段产生的k个、未被打开的beaver三元组的承诺(如(2)所示)。证明算法中证明者随机选取随机数rw,利用同态承诺算法Com对证据w计算其承诺值Cw=Com(w;rw)并将承诺Cw发送给验证者,证明者将rw作为承诺的打开保存不发送。其中,Cw=Com(w;rw)是使用随机rw数对证据w进行承诺。同态承诺算法是指满足加法同态性的承诺算法,即Com(a,ra)+Com(b,rb)=Com(a+b,ra+rb)。
(4)提出了新的证明算法。证明者根据证据w以及对应的承诺的随机性rw,预计算阶段产生的、未被打开的k个beaver三元组(ai,bi,ci)i∈[k](如(2)所示)以及对应的承诺的随机性运行证明算法:
·证明者计算关于NP语言对应的算术电路C(x,w)=1:
1)加法门Add(e,f):对于代数电路中任意两个需要进行加法门操作的元素e,f∈Fq:证明者计算加法门为d=e+f,其中,Fq元素取自于{0,1,...,q-1}之间的集合;
2)乘法门Multi(gi,hi,ai,bi,ci):对于电路的第i个乘法门需要计算元素gi,hi对应的乘法结果。证明者利用预计算阶段(如(2)预计算阶段所示)产生的第i个beaver三元组(ai,bi,ci),计算:εi=gi-ai∈Fq,δi=hi-bi∈Fq,最终计算乘法结果:z=ciiaiibiiδi∈Fq。通过引入beaver三元组,可以将乘法门的非线性运算转换为线性运算,其中,εi,δi表示第i个乘法门的计算副本,ai和bi和ci为预计算阶段产生的第i个beaver三元组,gi,hi为第i个乘法门需要进行乘法的两个元素,表示Fq为元素取自于{0,1,...,q-1}之间的集合,i表示乘法门的索引。
·为了保证证明者不能够伪造证明,我们需要给出每个乘法门运行的正确性,即证明者是诚实运行算术电路C(x,w)=1。具体的讲,对于每一个乘法门,验证者根据证据的承诺Cw=Com(w,rw)和预计算阶段得到的beaver triples的承诺计算Com(gi)-Com(ai)=Com(εi)和Com(hi)-Com(bi)=Com(δi)。进一步,证明者需要给出εi和δi的承诺的打开值即证明者计算并加入证明Π中-起发送给验证者,其中,Fq为元素取自于{0,1,...,q-1}之间的集合。为对εi和δi承诺中使用的随机性,εi和δi为第i个乘法门的副本。为对gi和hi承诺中使用的随机性,gi和hi为第i个乘法门需要进行乘法运算的元素。为对ai和bi承诺中使用的随机性,ai和bi为预计算阶段产生的第i个beaver三元组。
·为了验证最终输出的正确性,证明者需要给出最终计算结果承诺的打开值,即证明者需要计算:其中,为第k个beaver三元组对应承诺的随机性,εk和δk为第k个乘法门的副本。终证明者输出证明:
·进一步,根据通用的Fiat-Shamir变换,我们可以将上述通用交互式零知识证明协议转换为非交互式零知识证明协议。
(5)提出了新的验证算法。验证者根据收到的证明Π和预计算得到的beavertriples的承诺和证据的承诺值Cw=Com(w,rw),运行验证算法:
·首先验证者验证乘法门运行的正确性:对于每一个乘法门,验证者根据验证: 其中,为使用随机数对gi进行的承诺,为使用随机数对hi进行的承诺,gi和hi为第i个乘法门需要进行乘法操作的元素;为使用随机数对ai进行的承诺,为使用随机数对bi进行的承诺,ai和bi为第i个乘法门需要进行乘法操作时使用的beaver三元组;为使用随机数对εi进行的承诺,为使用随机数对δi进行的承诺,εi和δi为第i个乘法门需要进行乘法操作时产生的副本;
·验证输出结果的正确性:对于最终输出的结果,验证者验证: 其中,为使用随机数对result进行的承诺,result为电路运行的结果,即为使用随机数对ck进行的承诺,为使用随机数对ak进行的承诺。为使用随机数对bk进行的承诺;ak、bk、ck为第k个乘法门所使用的的beaver三元组,εkδk为第k个乘法门产生的副本。
本发明的优点如下:
本发明的零知识证明系统是高效的,与类似的基于多方安全计算的非交互零知识证明相比,本发明只需要运行所证明问题电路一次,可以抵抗量子计算机攻击,同时本发明框架不依赖于任何的代数结构。
附图说明
图1为基于多方安全计算和同态承诺的非交互式零知识证明方法流程图。
具体实施方式
下面结合附图对本发明进行进一步详细描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
本发明不依赖于任意的代数结构,可以基于任意的群、环及其对应的代数假设构造,本发明以取自Fq上的元素为例,介绍本发明。大量的关于同态承诺算法的相关研究表明,目前已有高效的满足加法同态的承诺算法。本发明使用的GenTriple协议涵盖采用任何方法产生所需的beaver三元组的协议,其中beaver三元组为一个三元组(a,b,c)满足c=a×b。大量的关于多方安全计算技术的相关研究表明,目前已有高效的GenTriple协议。本发明说明书只以”Cut-and-Choose”方法产生相应的beaver triples为例,结合附图1介绍本发明的方法。
一、预处理算法
零知识证明的预处理算法由证明者P和验证者V两个参与方运行,最终证明者产生证明阶段乘法门所需要的beaver三元组,验证者产生对应的beaver三元组的承诺,具体的协议流程如下:
1.证明者本地产生的N个beaver三元组(ai,bi,ci)i∈[N],其中ai,bi,ci∈Fq且满足ci=ai×bi。随机选取随机数利用同态承诺算法Com分别计算beaver三元组的承诺值并发送给验证者,其中为同态承诺算法输入的随机性,beaver三元组是一个三元组(a,b,c)满足c=a×b,同态承诺算法是指满足加法同态性的承诺算法,即Com(a,ra)+Com(b,rb)=Com(a+b,ra+rb),Fq为元素取自于{0,1,...,q-1}之间的集合,为使用随机数对ai进行承诺。其中为使用随机数对bi进行承诺。其中为使用随机数对ci进行承诺。
2.验证者收到N个beaver triples的承诺值后,随机选择集合C={i1,i2,…,it},其中it∈{1,2,...,N},发送给证明者,其中i1,i2,…,it为从N个beaver三元组中随机抽取t个三元组的索引。
3.证明者根据收到的挑战集合C,打开对应的承诺值,即证明者将承诺中使用的随机性发送给验证者。验证者验证:验证者根据收到的随机性和承诺恢复出承诺值(ai,bi,ci)i∈[C]。如果打开的承诺值均满足ci=ai×bi,则验证通过。证明者利用剩余未打开的N\C个beaver triples进行在线阶段的证明,在这里我们记为k=|N|-|C|,即k为证明算法中使用的未打开的beaver三元组的个数。
二、证明算法
对于任意的NP语言类其对应的算术电路C(x,w)=1,乘法门个数为k,其中k为正整数。证明者手中拥有证据w和NP问题的陈述x和预计算产生的k个未被打开的beaver三元组以及对应的承诺的随机性(如上述预计算算法产生beaver三元组所示),验证者仅仅拥有NP问题的陈述x和预计算产生的k个未被打开的beaver三元组的承诺(如上述预计算算法产生beaver三元组所示)。
1.证明者随机选取rw∈Fq,利用同态承诺算法Com对证据w计算其承诺值Cw=Com(w,rw)∈Fq并发送给验证者,证明者将rw作为承诺的密钥保存。
2.证明者根据证据w以及对应的承诺的随机性rw,预计算得到的k个beavertriples(ai,bi,ci)i∈[k]以及对应的承诺的随机性运行证明算法:
·证明者计算关于NP语言对应的算术电路C(x,w)=1:算术电路可以分解为加法门操作和乘法门操作
1)加法门Add(e,f):对于代数电路中任意两个需要进行加法门操作的元素e,f∈Fq:证明者计算加法门为d=e+f,其中,Fq为元素取自于{0,1,...,q-1}之间的集合;
2)乘法门Multi(gi,hi,ai,bi,ci):对于电路的第i个乘法门需要计算元素gi,hi对应的乘法结果。证明者利用预计算阶段(如一预计算阶段所示)产生的第i个beaver三元组(ai,bi,ci),计算:εi=gi-ai∈Fq,δi=hi-bi∈Fq,最终计算乘法结果:z=ciiaiibiiδi∈Fq。通过引入beaver三元组,可以将乘法门的非线性运算转换为线性运算,其中,εi,δi表示第i个乘法门的计算副本,ai和bi和ci为预计算阶段产生的第i个beaver三元组,gi,hi为第i个乘法门需要进行乘法的两个元素,表示Fq为元素取自于{0,1,...,q-1}之间的集合,i表示乘法门的索引。
·为了保证证明者不能够伪造证明,我们需要给出每个乘法门运行的正确性,即证明者是诚实运行算术电路C(x,w)=1。具体的讲,对于每一个乘法门,验证者根据证据的承诺Cw=Com(w,rw)和预计算阶段得到的beaver triples的承诺计算Com(gi)-Com(ai)=Com(εi)和Com(hi)-Com(bi)=Com(δi)。进一步,证明者需要给出εi和δi的承诺的打开值即证明者计算并加入证明Π中,其中,Fq为元素取自于{0,1,...,q-1}之间的集合。为对εi和δi承诺中使用的随机性,εi和δi为第i个乘法门的副本。为对gi和hi承诺中使用的随机性,gi和hi为第i个乘法门需要进行乘法运算的元素。为对ai和bi承诺中使用的随机性,ai和bi为预计算阶段产生的第i个beaver三元组。
·为了验证最终输出的正确性,证明者需要给出最终计算结果承诺的打开值,即证明者需要计算:其中,最为第k个beaver三元组对应承诺的随机性,εk和δk为第k个乘法门的副本。
3.最终证明者输出证明:
三、验证算法
验证者根据收到的证明Π和预计算得到的beaver triples的承诺和证据的承诺值Cw=Com(w,rw),运行验证算法:·首先验证者验证乘法门运行的正确性:对于每一个乘法门,验证者根据Com(xi),Com(ai),Com(yi),Com(bi)和验证:Com(ai)和其中,为使用随机数对gi进行的承诺,为使用随机数对hi进行的承诺,gi和hi为第i个乘法门需要进行乘法操作的元素;为使用随机数对ai进行的承诺,为使用随机数对bi进行的承诺,ai和bi为第i个乘法门需要进行乘法操作时使用的beaver三元组;为使用随机数对εi进行的承诺,为使用随机数对δi进行的承诺,εi和δi为第i个乘法门需要进行乘法操作时产生的副本;
·验证输出结果的正确性:对于最终输出的结果,验证者验证: 其中,为使用随机数对result进行的承诺,result为电路运行的结果,即为使用随机数对ck进行的承诺,为使用随机数对ak进行的承诺。为使用随机数对bk进行的承诺;ak、bk、ck为第k个乘法门所使用的的beaver三元组,εkδk为第k个乘法门产生的副本。
本发明涵盖任何零知识证明协议框架的技术方案:证明者根据证据w随机选取随机数rw并调用同态承诺算法Com计算证据的承诺值Com(w,rw)发送给验证者。证明者根据证据w和陈述x和对证据w承诺的随机性rw,运行电路C(w,x)。验证者根据证据的同态承诺值Cw=Com(w,rw)和陈述x,运行电路C(Cw,x)。最终,证明者根据承诺的随机性rw计算电路C(Cw,x)最终结果对应的承诺的打开值rresult,作为输出的证明。其中,Com为满足加法同态的承诺算法。验证者根据rresult对电路C(Cw,x)运行的结果进行承诺的打开,验证证明通过与否。
本发明不依赖于任何的代数结构,可以基于任意的群、环及其对应的代数假设构造。本发明只以在Fq域中为例介绍本发明算法。
在预计算阶段,本发明使用的GenTriple协议涵盖采用任何方法产生所需的beaver triples的协议。大量的关于同态承诺算法的相关研究表明,目前已有高效的GenTriple协议。本发明说明书只以”Cut-and-Choose”方法产生相应的beaver triples为例,介绍本发明的方法。
本发明涵盖任何使用不同的同态承诺算法运行证明电路。
本发明涵盖任何使用不同的同态承诺算法运行验证电路。
尽管为说明目的公开了本发明的具体实施例,其目的在于帮助理解本发明的内容并据以实施,本领域的技术人员可以理解:在不脱离本发明及所附的权利要求的精神和范围内,各种替换、变化和修改都是可能的。因此,本发明不应局限于最佳实施例所公开的内容,本发明要求保护的范围以权利要求书界定的范围为准。

Claims (9)

1.一种通用非交互式零知识证明方法,其步骤包括:
1)对于任意的NP语言类
Figure FDA0004068734610000011
其对应的算术电路记为C(x,w)=1,乘法门个数为K;证明者和验证者交互运行预计算阶段,产生证明阶段所需的材料;
2)证明者运行证明阶段:证明者首先根据证据w随机选取随机数rw,调用同态承诺算法Com计算证据w的承诺值Cw=Com(w;rw)并将其发送给验证者;然后证明者将证据w和陈述x作为电路C(x,w)的输入记为电路C(w,x),运行电路C(w,x)得到电路中计算每个乘法门的副本以及副本对应的承诺的随机数并将其发送给验证者;然后证明者根据随机数rw计算打开值rresult=C(rw)并将其发送给验证者;
3)验证者运行验证阶段:验证者首先将证据w的承诺值Cw=Com(w;rw)和陈述x作为电路C(x,w)的输入记为电路C(Cw,x),运行电路C(Cw,x)得到电路中每个乘法门副本对应的承诺;然后根据证明者所发过来乘法门副本及其承诺的随机数验证乘法门执行的正确性。
2.根据权利要求1所述的方法,其特征在于,证明者和验证者交互地运行预计算阶段,产生证明阶段所需的材料的方法为:
11)证明者和验证者首先通过GenTriple协议产生一系列的beaver三元组;
12)证明者从所生成的beaver三元组中随机选取N个beaver三元组,(ai,bi,ci)为第i个beaver三元组,满足ci=ai×bi,同时为每一所选beaver三元组随机选取一用于计算其承诺的三元组;其中,i=1~N,
Figure FDA0004068734610000012
为用于计算(ai,bi,ci)的承诺值的三元组;
13)证明者利用同态承诺算法Com对所选N个beaver三元组分别计算其承诺值并发送给发送给验证者;其中,
Figure FDA0004068734610000013
为(ai,bi,ci)的承诺值,
Figure FDA0004068734610000014
为使用随机数
Figure FDA0004068734610000015
对ai进行承诺,
Figure FDA0004068734610000016
为使用随机数
Figure FDA0004068734610000017
对bi进行承诺,
Figure FDA0004068734610000018
为使用随机数
Figure FDA0004068734610000019
对ci进行承诺;
14)验证者从收到该N个beaver三元组的承诺值中随机t个承诺值,将该t个承诺值的索引集合C={i1,i2,…,it}发送给证明者,it为所选第t个beaver三元组承诺值的索引;
15)证明者根据收到的集合C,将对应承诺中使用的随机数发送给验证者;
16)验证者根据收到的随机数和承诺恢复出该t个承诺值对应的beaver三元组;如果打开的每一beaver三元组(a,b,c)满足c=a×b,则验证通过;
17)证明者利用该N个beaver三元组中剩余未打开的beaver三元组作为证明阶段的材料。
3.根据权利要求2所述的方法,其特征在于,该N个beaver三元组中剩余未打开的beaver三元组个数为k。
4.根据权利要求1或2或3所述的方法,其特征在于,步骤2)中,对于电路中的每一个乘法门,验证者根据证据的承诺Cw=Com(w,rw)和预计算阶段得到的beaver三元组(ak,bk,ck)的承诺计算Com(gk)-Com(ak)=Com(εk)和Com(hk)-Com(bk)=Com(δk);证明者计算εk和δk对应的承诺的打开值
Figure FDA0004068734610000021
并加入证明Π中;其中,εk和δk为第k个乘法门的副本,
Figure FDA0004068734610000022
Figure FDA0004068734610000023
为对gk和hk承诺中使用的随机数,gk和hk为第k个乘法门需要进行乘法运算的元素,
Figure FDA0004068734610000024
Figure FDA0004068734610000025
为对ak和bk承诺中使用的随机数。
5.根据权利要求4所述的方法,其特征在于,步骤2)中,证明者计算
Figure FDA0004068734610000026
Figure FDA0004068734610000027
其中,
Figure FDA00040687346100000236
为第k个beaver三元组对应承诺的随机数,εk和δk为第k个乘法门的副本;证明者将证明
Figure FDA0004068734610000028
发送给验证者。
6.根据权利要求5所述的方法,其特征在于,步骤3)中,验证者验证乘法门执行的正确性的方法为:31)对于每一个乘法门,验证者根据
Figure FDA0004068734610000029
Figure FDA00040687346100000210
验证
Figure FDA00040687346100000211
Figure FDA00040687346100000212
Figure FDA00040687346100000213
是否成立,如果成立则执行32);其中,
Figure FDA00040687346100000214
为使用随机数
Figure FDA00040687346100000215
对gk进行的承诺,
Figure FDA00040687346100000216
为使用随机数
Figure FDA00040687346100000217
对hk进行的承诺,gk和hk为第k个乘法门需要进行乘法操作的元素;
Figure FDA00040687346100000218
为使用随机数
Figure FDA00040687346100000219
对ak进行的承诺,
Figure FDA00040687346100000220
为使用随机数
Figure FDA00040687346100000221
对bk进行的承诺,
Figure FDA00040687346100000222
为使用随机数
Figure FDA00040687346100000223
对εk进行的承诺,
Figure FDA00040687346100000224
为使用随机数
Figure FDA00040687346100000225
对δk进行的承诺,εk和δk为第k个乘法门需要进行乘法操作时产生的副本;32)验证者验证
Figure FDA00040687346100000226
Figure FDA00040687346100000227
是否成立,如果成立则乘法门执行正确;其中,
Figure FDA00040687346100000228
为使用随机数
Figure FDA00040687346100000229
对result进行的承诺,result为电路运行的结果;
Figure FDA00040687346100000230
为使用随机数
Figure FDA00040687346100000231
对ck进行的承诺,
Figure FDA00040687346100000232
为使用随机数
Figure FDA00040687346100000233
对ak进行的承诺;
Figure FDA00040687346100000234
为使用随机数
Figure FDA00040687346100000235
对bk进行的承诺;εkδk为第k个乘法门产生的副本。
7.根据权利要求1或2或3所述的方法,其特征在于,算术电路C(x,w)=1中第k个乘法门的运算方法为:第k个乘法门需要计算元素为gk,hk对应的乘法结果,所用的beaver三元组为(ak,bk,ck),首先计算:εk=gk-akk=hk-bk,然后计算乘法结果z=ckkakkbkkδk
8.根据权利要求1所述的方法,其特征在于,步骤3)中,验证者根据rresult对电路C(Cw,x)运行的结果进行承诺的打开,验证证明通过与否。
9.一种通用非交互式零知识证明系统,其特征在于,包括证明者客户端和验证者客户端;
预计算阶段:证明者客户端和验证者客户端进行交互,产生证明阶段所需的材料;
证明阶段:证明者客户端首先根据证据w随机选取随机数rw,调用同态承诺算法Com计算证据w的承诺值Cw=Com(w;rw)并将其发送给验证者客户端;然后证明者客户端将证据w和陈述x作为电路C(x,w)的输入记为电路C(w,x),运行电路C(w,x)得到电路中计算每个乘法门的副本以及副本对应的承诺的随机数并将其发送给验证者客户端;然后证明者客户端根据随机数rw计算打开值rresult=C(rw)并将其发送给验证者客户端;
验证阶段:验证者客户端首先将证据w的承诺值Cw=Com(w;rw)和陈述x作为电路C(x,w)的输入记为电路C(Cw,x),运行电路C(Cw,x)得到电路中每个乘法门副本对应的承诺;然后根据证明者客户端所发过来乘法门副本及其承诺的随机数验证乘法门执行的正确性。
CN202310085347.XA 2023-01-17 2023-01-17 一种通用非交互式零知识证明方法及系统 Pending CN116112181A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310085347.XA CN116112181A (zh) 2023-01-17 2023-01-17 一种通用非交互式零知识证明方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310085347.XA CN116112181A (zh) 2023-01-17 2023-01-17 一种通用非交互式零知识证明方法及系统

Publications (1)

Publication Number Publication Date
CN116112181A true CN116112181A (zh) 2023-05-12

Family

ID=86261221

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310085347.XA Pending CN116112181A (zh) 2023-01-17 2023-01-17 一种通用非交互式零知识证明方法及系统

Country Status (1)

Country Link
CN (1) CN116112181A (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008022158A2 (en) * 2006-08-14 2008-02-21 The Regents Of The University Of California System for non-interactive zero-knowledge proofs
US20210027294A1 (en) * 2018-03-23 2021-01-28 nChain Holdings Limited Computer-implemented system and method for trustless zero-knowledge contingent payment
CN113875188A (zh) * 2019-05-24 2021-12-31 区块链控股有限公司 哈希函数攻击
CN113875185A (zh) * 2019-05-24 2021-12-31 区块链控股有限公司 知识证明

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008022158A2 (en) * 2006-08-14 2008-02-21 The Regents Of The University Of California System for non-interactive zero-knowledge proofs
US20210027294A1 (en) * 2018-03-23 2021-01-28 nChain Holdings Limited Computer-implemented system and method for trustless zero-knowledge contingent payment
CN113875188A (zh) * 2019-05-24 2021-12-31 区块链控股有限公司 哈希函数攻击
CN113875185A (zh) * 2019-05-24 2021-12-31 区块链控股有限公司 知识证明

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JENS GROTH: "New Techniques for Non-interactive Zero-Knowledge", UCLA DEPARTMENT OF COMPUTER SCIENCE, 7 March 2011 (2011-03-07) *
李威翰;张宗洋;周子博;邓燚: "简洁非交互零知识证明综述", 密码学报, 15 June 2022 (2022-06-15) *

Similar Documents

Publication Publication Date Title
Gao et al. An anti-quantum e-voting protocol in blockchain with audit function
Groth et al. Snarky signatures: Minimal signatures of knowledge from simulation-extractable SNARKs
Lipmaa On diophantine complexity and statistical zero-knowledge arguments
EP2547033B1 (en) Public-key encrypted bloom filters with applications to private set intersection
Li et al. A blockchain-based traceable self-tallying E-voting protocol in AI era
EP0803153A1 (en) Private signature and proof systems
US20050278536A1 (en) Fair blind signature process
CN106027262B (zh) 一种抵抗密钥恢复攻击的多变量签名方法
Nguyen-Van et al. Scalable distributed random number generation based on homomorphic encryption
CN103220146B (zh) 基于多变量公钥密码体制的零知识数字签名方法
CN111447065B (zh) 一种主动安全的sm2数字签名两方生成方法
Kohlweiss et al. Accountable metadata-hiding escrow: A group signature case study
Liu et al. Enabling blockchain-assisted certificateless public integrity checking for industrial cloud storage systems
CN113346992A (zh) 一种保护私钥的基于身份的多重代理签名方法及装置
CN111882744A (zh) 匿名投票公示方法及系统
CN111882743A (zh) 匿名投票统计方法及系统
Jivanyan et al. Hierarchical one-out-of-many proofs with applications to blockchain privacy and ring signatures
CN116112181A (zh) 一种通用非交互式零知识证明方法及系统
Fan et al. Fairness electronic payment protocol
Zhu et al. Multi-party stand-alone and setup-free verifiably committed signatures
Jiang et al. Fully distributed identity-based threshold signatures with identifiable aborts
CN113609462A (zh) 过期时间不可伪造的可撤销群签名方法
Benhamouda et al. Publicly verifiable anonymous tokens with private metadata bit
Shi et al. A scheme on converting quantum deniable authentication into universal quantum designated verifier signature
Naor Evaluation may be easier than generation

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination