CN117616719A - 多片语法零知识联合证明方法、装置及系统 - Google Patents

多片语法零知识联合证明方法、装置及系统 Download PDF

Info

Publication number
CN117616719A
CN117616719A CN202280047768.7A CN202280047768A CN117616719A CN 117616719 A CN117616719 A CN 117616719A CN 202280047768 A CN202280047768 A CN 202280047768A CN 117616719 A CN117616719 A CN 117616719A
Authority
CN
China
Prior art keywords
circuit
garbled
boolean
garbled circuit
computing device
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
CN202280047768.7A
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN117616719A publication Critical patent/CN117616719A/zh
Pending legal-status Critical Current

Links

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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Devices For Executing Special Programs (AREA)
  • Storage Device Security (AREA)

Abstract

提供了一种用于实现零知识证明的方法、装置和系统。分区的混淆电路用于实现具有完整语法验证的联合零知识证明系统。多片语法用于处理涉及多个要证明和验证的语句的复杂语义。多个验证方可以协调参与执行验证。不同的验证方可以执行不同的验证部分。

Description

多片语法零知识联合证明方法、装置及系统
相关申请的交叉引用
本申请要求于2021年7月6日提交的名称为“多片语法零知识联合证明方法、装置和系统(Polylithic Syntax Zero Knowledge Joint Proof Method,Apparatus andSystem)”的第63/218,758号美国临时专利申请的优先权,其全部内容以引用的方式并入本文中。
技术领域
本发明大体上涉及安全信息交换和加密计算领域,尤其涉及计算机化通信系统中的零知识证明。
背景技术
零知识证明(zero-knowledge proof),也称为零知识协议,是指一方(证明方)可以向另一方(验证方)证明(或演示)语句为真而不透露任何超出语句本身有效性的信息所遵照的协议。例如,给定一个随机数的哈希值,证明方(prover)可以使用零知识证明让验证方(verifier)相信证明方确实拥有(或知道)这个数。具体地,在不透露这个数的情况下,证明方可以构建一个证明系统,所述系统在实现时令人信服地引导验证方得出结论:证明方拥有或知道这个数。在理想情况下,零知识证明能让验证方相信一个语句,但只透露该语句本身的有效性。
自Goldwasser、Micali和Rackoff推出零知识(zero-knowledge,ZK)证明以来,零知识证明已在用户或设备认证和签名方案、安全计算、以及区块链技术中新兴的屏蔽交易等多个领域得到应用。零知识证明在密码学和(例如,电子设备之间的)安全通信中有多种应用。
零知识技术的两个示例是zk-SNARK和zkBoo。这些技术可用于为现有的通信和计算网络基础设施带来各种新的功能。使用这些技术,并给定任何NP完全问题的交互式证明,设备就能为任意NP语句构建零知识证明或变量参数。NP语句是与NP完全问题相关的语句,证明方试图通过零知识证明方案证明NP语句为真(或假)。然而,现有的零知识技术仅限于单片状态。也就是说,主题NP语句一次只能包含一个变量参数。现有零知识技术的另一个限制是计算开销很大,有待改进。这是因为,例如,此类技术通常需要进行多次迭代(例如,多次迭代查找多项式方程的算术根),才能达到可接受的较小(例如,可忽略不计的)合理性误差。合理性误差是指以下特性:如果NP语句为假,证明方不能错误地让验证方相信NP语句为真,除非概率小到可以接受的程度。
因此,需要一种涉及零知识证明的安全信息交换的方法、装置和系统,以克服或减少现有技术中的一个或多个限制。
本背景信息旨在提供可能与本公开相关的信息。并不旨在承认也不应解释为前述任何信息构成与本公开相对的现有技术。
发明内容
本公开的实施例提供了一种零知识证明方法、装置和系统。具体地,实施例展示了多片语法能力和联合验证的属性。本公开的实施例可应用于安全信息交换、密码学、用户或设备认证、安全计算、区块链或其它计算或通信技术。
根据本公开的实施例,提供了一种用于执行零知识证明的方法。所述方法包括:由证明方对要证明的语句执行多片语法分解(polylithic syntax decomposition)。所述方法还包括:由所述证明方在多片语法分解后生成指示所述语句的混淆电路(garbledcircuit)。所述方法还包括:由所述证明方将所述混淆电路分为多个混淆电路部分,这些部分共同构成分区的混淆电路。所述方法还包括:由所述证明方通过共享仓库(sharedrepository)向多个验证方发送所述分区的混淆电路。所述方法还包括:由所述多个验证方联合计算所述混淆电路的摘要(digest),其中所述多个验证方中的每个验证方计算所述多个混淆电路部分中对应的一个混淆电路部分的输出。所述方法还包括:由属于所述多个验证方的聚合方(aggregator)计算共同应用于所述多个混淆电路部分的所有所述输出的统一布尔运算(unified Boolean operation)的值。所述方法还包括:由所述聚合方确定所述统一布尔运算的所述值是否等于预期值,并指示当且仅当所述统一布尔运算的所述值等于所述预期值时所述证明得到验证。
在一些实施例中,所述语句具有多个方面或变量,并且所述多片语法分解包括使用多个线路和多个门生成所述语句的布尔电路表示(Boolean circuit representation)。在这些实施例中,所述混淆电路是由布尔电路表示生成的。
在一些实施例中,所述方法还包括将所述语句转换为一个或多个正则表达式,并从所述正则表达式生成布尔电路表示。所述混淆电路直接或间接地从所述布尔电路表示中生成。在其它实施例中,所述方法还包括在所述布尔电路表示上实现卡诺图运算(KarnaughMap operation),以生成所述布尔电路表示的简化版本。在这些其它实施例中,所述混淆电路直接或间接地从所述布尔电路表示的简化版本生成。
在一些实施例中,使用非交互式不经意传输执行向多个验证方发送所述分区的混淆电路。
在一些实施例中,所述方法还包括执行多方不经意传输方案,以促进所述证明方和所述验证方之间的交互和/或所述验证方之间的交互。
根据本公开的实施例,提供了一种装置,该装置包括可操作地耦合到存储器的处理器,并且用于通过所述处理器执行存储在所述存储器中的程序指令,以执行如上所述的方法。
根据本公开的实施例,提供了一种包括多个计算设备的系统,所述计算设备协同用于执行如上所述的方法。
根据本公开的实施例,提供了一种计算机程序产品,所述计算机程序产品包括其上存储有指令的非瞬时性计算机可读介质,当所述指令由计算机处理器执行时,使所述计算机执行如上所述的方法。
根据本公开的实施例,提供了一种用于执行上述方法的装置。所述装置可以是具有可操作地耦合到存储器的处理器的计算设备,所述存储器存储由所述处理器执行的程序指令,以便执行根据所述方法的运算。所述装置可以是多个计算设备。
根据本公开的实施例,提供了一种用于执行上述方法的系统。所述系统可以包括多个计算设备,每个计算设备具有可操作地耦合到相应存储器的相应处理器。每个相应的存储器存储由所述相应的处理器执行的程序指令,以便根据所述方法执行运算。所述系统可以包括由证明方操作的计算设备和由一个或多个验证方中的每个相应验证方操作的其它计算设备。所述系统可以包括由协调方操作的中间计算设备,所述协调方不一定是证明方,或验证方之一。
根据实施例,所述系统包括证明方计算设备和多个验证方计算设备。所述证明方计算设备用于:对要证明的语句进行多片语法分解;在多片语法分解后生成指示所述语句的混淆电路;将所述混淆电路分为多个混淆电路部分,上述部分共同构成分区的混淆电路;以及通过共享仓库向所述多个验证方设备发送所述分区的混淆电路。所述多个验证方计算设备用于:联合计算所述混淆电路的摘要,其中,所述多个验证方设备中的每个验证方设备计算所述多个混淆电路部分中对应的一个混淆电路部分的输出。属于所述多个验证方设备的聚合方设备用于:计算共同应用于所述多个混淆电路部分的所有所述输出的统一布尔运算的值;以及确定所述统一布尔运算的所述值是否等于预期值,并指示当且仅当所述统一布尔运算的所述值等于所述预期值时所述证明得到验证。
根据实施例,提供了一种方法,包括由证明方(如计算设备)进行的多个操作。所述方法包括对要证明的语句执行多片语法分解。所述方法包括在多片语法分解后生成指示所述语句的混淆电路。所述方法包括将所述混淆电路分为多个混淆电路部分,上述部分共同构成分区的混淆电路。所述方法包括通过共享仓库向多个验证方发送所述分区的混淆电路。
根据实施例,提供了一种方法,包括由验证方(如计算设备)进行的多个操作。所述方法包括通过共享仓库从证明方接收分区的混淆电路。所述方法包括与一个或多个其它验证方合作,以联合计算所述混淆电路的摘要,其中,所述验证方和所述一个或多个其它验证方各自计算所述多个混淆电路部分中对应的一个混淆电路部分的相应输出。所述验证方或属于所述多个验证方的聚合方执行进一步的操作,例如作为方法的一部分。这些进一步的操作包括计算共同应用于所述多个混淆电路部分的所有所述输出的统一布尔运算的值;以及确定所述统一布尔运算的所述值是否等于预期值,并指示当且仅当所述统一布尔运算的所述值等于所述预期值时所述证明得到验证。
根据实施例,提供了一种计算设备,包括处理器、存储器和网络接口。所述计算设备用于对要证明的语句执行多片语法分解。所述计算设备用于在多片语法分解后生成指示所述语句的混淆电路。所述计算设备用于将所述混淆电路分为多个混淆电路部分,所述多个混淆电路部分共同构成分区的混淆电路。所述计算设备用于通过共享仓库向多个验证方设备发送所述分区的混淆电路。
根据实施例,提供了一种计算设备,包括处理器、存储器和网络接口。所述计算设备用于通过共享仓库从证明方设备接收分区的混淆电路。所述计算设备用于与一个或多个其它验证方设备合作,以联合计算所述混淆电路的摘要,其中,所述计算设备和所述一个或多个其它验证方设备各自计算所述多个混淆电路部分中对应的一个混淆电路部分的相应输出。所述计算设备或所述属于多个验证方设备的聚合方设备执行进一步的操作,包括计算共同应用于所述多个混淆电路部分的所有所述输出的统一布尔运算的值;以及确定所述统一布尔运算的所述值是否等于预期值,并指示当且仅当所述统一布尔运算的所述值等于所述预期值时所述证明得到验证。
附图说明
图1示出了根据本公开的实施例提供的装置或系统。
图2示出了根据本公开的实施例执行的运算。
图3示出了根据本公开的实施例的多片语法分解运算。
图4示出了根据本公开的实施例的混淆电路生成操作。
图5示出了根据本公开的实施例的混淆电路门分区的示例。
图6示出了根据本公开的实施例的离线、非交互式多方不经意传输(oblivioustransfer,OT)方案。
图7示出了根据本公开的另一个实施例执行的OT和OT聚合。
图8示出了根据本公开的实施例的密码函数之间的交互。
图9a至图9d示出了根据本公开的实施例执行的不同运算。
图10是根据本公开的不同实施例的计算设备的示意图,其中,所述计算设备可以执行本文显式或隐式描述的方法和特征的任何或所有操作。
应当注意,在整个附图中,相同的特征由相同的附图标记标识。
具体实施方式
根据本公开的实施例,提供了一种零知识证明方法、装置和系统。这种方法、装置和系统本质上可以视为是加密的。
本公开的实施例可通过完整的语法验证能力提供相当强大的隐私保证。因此,语句(例如,NP语句)中的多个变量(也称为方面)可以得到实质性的验证,且基本上不会透露变量的真值。这涉及实施例的多片特性。因此,这些实施例可以用于例如合同验证、审计等应用。例如,可以对合同中的多个项目或行动列表中的多个行动进行说明和验证。一些实施例可以在区块链中实现。例如,实施例可以作为提供零知识证明服务的插件模块部署在区块链系统内。在这些实施例中,多个验证方(例如,匿名验证方)可以联合提供零知识证明。
本公开的实施例涉及如何使用分区的混淆电路来实现联合零知识证明系统。与之前的一些系统相比,这些实施例的开销可能更少和/或可以进行完整的语法验证。基于分区的混淆电路的本公开的实施例可能具有通用性和一次性使用性,这意味着本公开的实施例可以应用于具有更全面的语句的任意电路,并且可以在所有参与方之间实现非交互性。非交互性可指参与方不直接通信(例如,通过握手协议),而是各方通过诸如公共信息仓库(例如计算机Web服务器)的媒介交换信息的情况。至少一个实施例可用于创建分区的混淆电路,以匹配具有多个变量的综合布尔逻辑表达式。术语“多片语法”用于指综合语句中基于上下文的多个变量。还公开了一种使用分区的混淆电路的联合零知识证明协议。对该协议的不同变体进行分析,并与最先进的协议进行比较。
本公开的实施例涉及联合计算混淆电路C的简洁摘要的一组验证方。一组验证方可以是一群通过互联网等网络进行通信的验证方。一组验证方可以是匿名的。混淆电路C由证明方准备。证明方还可以对混淆电路C进行分区。证明方还可以(例如,随机)将混淆电路调度到共享仓库。共享仓库支持公开访问。在一些实施例中,共享仓库可以作为区块链实现。在一些实施例中,共享仓库可以作为Web门户实现。本文所使用的随机性可以指伪随机性或真(在技术上可行的情况下)随机性。证明方(Alice)可以使用随机性加扰电路,并且混淆电路的随机调度可指将随机加扰电路发布到共享仓库。
证明方和验证方可以是通过通信网络通信耦合的不同计算设备,也可以与通过通信网络通信耦合的不同计算设备相关联。在这方面,证明方可以是证明方计算设备,或证明方联网计算设备,验证方可以是验证方计算设备,或验证方联网计算设备。计算设备可以包括一个或多个可操作地耦合到存储器的计算机处理器,存储器可以是例如磁存储器、电子存储器、或光存储器等。计算设备还可以包括用于通过通信网络发送、接收或同时发送和接收信息(例如,作为电信号、无线信号或光信号)的通信接口。存储器存储用于由处理器执行的程序指令,并且还可以存储与零知识证明操作相关联的信息。或者,与零知识证明操作相关联的程序指令和信息可以存储在计算设备的单独存储器中。
本公开的实施例可以提供一种公共验证系统,该系统可能比目前可用的那些系统更全面。鉴于这一领域的现有技术仅限于进行单片验证,验证系统可以验证比目前更复杂的语句。例如,在单片验证中,一次只能验证算术电路中的单个哈希值。此外,基于不经意传输(oblivious transfer,OT)和混淆电路方法,本公开的实施例可基本上实现基本完整的隐私保护计算(加密计算)。
因此,本公开的实施例可以根据混淆电路机制高效地生成多方零知识证明。各实施例还可以保持被认为是在线零知识证明系统的重要特征,例如基本上是非交互式且简洁的,并且发布到区块链以提供公开可检索的信息。例如,这可能特别适合提供在区块链技术中使用的屏蔽审计服务。
本领域技术人员将容易理解本文中使用的各种术语,例如零知识证明。例如,混淆电路指的是密码协议,是姚期智在《如何生成和交换秘密》一文中公布的(Yao,Andrew Chi-Chih,27th Annual Symposium on Foundations of Computer Science(SFCS1986),Foundations of Computer Science,1986.,27th Annual Symposium on.pp.162–167)。卡诺图是电路优化中实现的一种众所周知的方法。混淆电路和相关的“电路”是指逻辑数据结构,而不是物理电路。不经意传输是本领域已知的另一种密码协议。功能可以理解为计算机的功能方面。也就是说,功能对应于计算机设备的一个方面,例如,计算机设备用于通过计算机程序指令以规定的方式从给定的输入产生输出。
不难理解,混淆电路是一种用于“对计算进行加密”的工具,只透露计算的输出,但不透露任何关于输入或任何中间值的信息。“电路”是指对输入进行的逻辑运算的组合,并且语法用布尔电路表示,在电路中具有布尔门,诸如(与、或、非)门。逻辑电路的示例如下。经典的姚氏“混淆电路”包括混淆方、编码方和验证方。混淆方将(普通)电路C转换为混淆电路编码方将电路的(普通)输入x转换为混淆输入/>用于使电路混淆的秘密随机性用于将x编码为/>验证方对混淆电路/>和混淆输入/>进行运算,并计算电路输出C(x)。不需要知道x或/>内部的秘密随机性就能评估和确定C(x)。安全的主要意思是/>和/>一起泄漏的信息不会超出C(x)。具体地,在理想情况下,/>和/>不透露任何关于x的信息,但允许完成C(x)计算。这种方法通常称为“加密计算”。
图1示出了根据本公开的实施例提供的装置或系统100。装置或系统100可以使用一个联网计算设备或多个联网计算设备来实现。装置或系统100可以仅使用计算硬件或固件来实现,或使用计算硬件和使计算硬件以指定方式执行的软件的组合来实现。装置或系统100包括多个组件,这些组件称为模块。每个模块可以是单独的结构设备、功能设备,或既是结构设备又是功能设备。模块可以通过指定的通信协议相互通信。第一模块称为多片语法分解模块110。第二模块称为混淆电路生成模块120,该模块被实现用于构建分区的混淆电路。第三模块称为多方非交互式不经意传输模块130,该模块被实现用于执行基于非交互式OT的多方联合验证方案。还可以包括发布模块125,该发布模块125将信息发布到可公开访问的位置或介质,例如Web服务器或区块链。在一些实施例中,可以省略发布模块125。
根据图1,为了方便起见而称为“Alice”的证明方140通过调用第一模块110和第二模块120来引导装置或系统100。在此步骤中,第一模块和第二模块用于准备用于提供给多个验证方145的分区的混淆电路,为了方便起见,多个验证方145的示例称为“Bob”和“Charlie”。应当注意,证明方和验证方可以是计算设备或可以包括计算设备。生成的混淆电路(例如,由证明方140生成的混淆电路)使用第三模块130分发给验证方。分发涉及扩展的OT方案。分发可以涉及发布模块125发布到在线系统,例如,可以公开访问的区块链或Web门户。验证方145使用在线系统计算分别对应于分区的一个混淆电路的中间电路输出。然后,可以是另一个验证方(例如,称为“David”)的混淆电路OT聚合方150计算应用于第i个混淆电路的评估输出Yi(即中间电路输出)的统一布尔运算的值Y。统一布尔运算将最后一个电路(聚合电路)之前的所有电路输出Yi合并起来。混淆电路OT聚合方还确定Y是否等于代表Y期望值的y值。然后,混淆电路OT聚合方150(David)可以提供一个结果135,结果135指示证明方已被验证(Y=y)或证明方未被验证(其它结果)。
图1还示出了辅助输入102,辅助输入102可以由证明方140提供给第一模块110。辅助输入102可以包括提供信息冗余的输入,信息冗余可以用于帮助混淆电路的解码。
应当注意,(例如,如图1所示)本公开的实施例根据零知识证明的半诚实模型提供抑制虚假证明问题的保护机制,因为本领域技术人员很容易理解这个问题。例如,如果一方访问用于生成证明中某些参数的秘密随机性(例如,对应于伪随机数生成器种子和算法),他们能够创建被验证方解释为真实证明的虚假证明。本公开的实施例使用具有多方设置的分区的混淆电路来生成公共参数,这有抑制此类虚假证明的发生或可行性的效果。
本公开的实施例允许一群验证方在线匿名且联合地计算由证明方准备的混淆电路C的简洁摘要。简洁摘要包括短指示,例如,单位二进制输出(例如,“0”或“1”)。证明方还可以对混淆电路进行分区,并将分区的混淆电路随机调度到公开可访问的仓库,例如,区块链或Web门户。与只能进行单片验证的其它技术相比,这可以提供一个更全面的公共验证系统,以验证更复杂的语句。单片验证一次只能计算算术电路中的单个哈希值。各实施例还可以基于OT和混淆电路实现基本完整的隐私保护计算(加密计算)。
对于安全评估,实施例可以获得针对半诚实威胁模型的隐私保护。可以使用广义的Fiat-Shamir秘密共享方案(Fiat A.,Shamir A.(1987)How To Prove Yourself:Practical Solutions to Identification and Signature Problems.In:Odlyzko A.M.(eds)Advances in Cryptology—CRYPTO’86.CRYPTO 1986.Lecture Notes in ComputerScience,vol 263.Springer,Berlin,Heidelberg.https://doi.org/10.1007/3-540-47721-7_12)对这一点进行形式化,该秘密共享方案定义了一个t安全n方协议,并将l个秘密打包到单个多项式中。通过向证明方发送固定数量的字段元素,可以对所有输入进行联合计算。将l个秘密打包到单个多项式中之后,可以通过多个验证方减小本公开实施例的安全边界t,即从到t′=t-l+1。
在各种实施例中,OT用于促进防范潜在的半诚实(以及半不诚实)参与方。各种实施例可以通过以下两个改进中的一个或两个来提高计算效率。首先,采用卡诺图技术以用简化的表达式减少逻辑门数。其次,通过将验证过程与多方OT方案(例如紧密)集成,使用分区生成混淆电路。与其它方法相比,这可降低验证方一侧的计算成本。安全定义和效率要求可以表明用于计算简洁摘要的哈希算法是防冲突的。因此,哈希函数通常是加密钥的,并且可以用公共参考字符串加密钥。
图2示出了本公开的实施例,该实施例关于三个离线验证方通过构建分区的混淆电路来“盲”验证两个多片输入的示例。证明方Alice 140通过调用第一模块110和第二模块120来引导所述过程,以准备204供多个验证方使用的分区的混淆电路。证明方Alice 140通过在线系统(例如,区块链或可公开访问的Web门户)与验证方145使用扩展的(例如,1到2个)OT方案220,通过第三模块130向验证方145分发混淆电路。通过公共在线系统,验证方145Bob和Charlie计算224对应于每个分区的混淆电路Ci的中间电路输出Yi。Alice 140分别(通过OT方案220)从Bob和Charlie 145收集Y1和Y2。然后,Alice 140通过OT方案226向David150提供Y1和Y2。在随后的步骤中,混淆电路OT聚合方David 150计算228Y,并验证232是否Y=y。
电路C可以认为是一个混淆电路评估问题。在这个问题中,证明方Alice构建了一个电路C,电路C由有限域GF(2)上的布尔门运算组成,其中有限域GF(2)是两个元素的Galois场。通常,电路C可以通过输入向量X以m度分区。因此,电路C可以用向量C表示:(C1,C2,…)m。在本文中,括号后面的上标通常表示向量或相应电路的长度。评估目标是在输入X上评估C。在此问题的非交互式证明中,证明方发送输出向量Y:输入X上C的(Y1,Y2,…),并且验证方将确定是否Y=C(X)。
返回参考图1,多片语法分解模块110在功能上可以视为执行运算C←syngen(1λ)。模块110接收输入向量m:(m1,m2,…),并将输入向量映射到哈希向量X:(x1,x2,…)←hash(m)作为安全参数1λ的输入。模块110输出基于布尔门的表达式C。
混淆电路生成模块120在功能上可以视为执行运算(C1,C2,…)m←xgcGen(C)。模块120将基于布尔门的表达式C作为输入,并使用本机混淆电路生成器运算(native garbledcircuit generator operation),输出m个混淆电路(C1,C2,…)的枚举长度。
多方非交互式不经意传输模块130在功能上可以视为执行运算Y←OT-aggregator(Y1,Y2,…)m。模块130从分区的混淆电路(Y1,Y2,…)m-1的输出中获取输入,并生成聚合输出Y。即,模块130在分区的混淆电路的输出上进行运算。可以(例如,由模块130)执行验证运算,以验证Y是否等于扩展混淆电路运算的预期输出,表示为xgc。即:
本公开的实施例采用通用哈希运算,表示为xi←h(Si)。通用哈希运算以公共参考字符串(common reference string,crs)Si作为输入,并使用通用哈希函数h输出均匀分布的摘要。
本公开的实施例采用扩展的混淆电路运算gc,表示为gc=(Gb,En,De,Ev)。Gb是将f转换为三元组(Ci,ei,di)的随机化混淆运算,其中,Ci是第i个分区的混淆电路,ei是电路Ci的相应编码信息,di是相应的解码信息。En是通过Xi=En(ei,xi)将输入Xi映射到混淆输入中的编码运算。De是通过yi=De(di,Yi)将混淆输出Yi映射到纯文本输出中的解码运算。Ev是用输入Xi,Fi生成混淆输出Yi=Ev(Fi,Xi)的运算。
本公开的某些实施例可以展示正确性和隐私的安全属性。在一些实施例中,正确性可以正式描述如下。对于输入大小为的所有公共参考字符串,以及C中的所有混淆电路Ci
在一些实施例中,隐私可以正式描述为这样一种特性:对于发送方S和多个接收方Ri之间的任何非交互式多方不经意传输协议(S,Ri),接收方Ri不会了解关于映射到相应电路Ci的输入位的任何信息,除非概率可忽略不计,例如,阶上的概率,其中/>是参考字符串的输入大小。
多片语法分解模块
现在将描述多片语法分解模块110的某些细节。此模块可以将来自证明方的完整语义语句转换为具有布尔运算的多片语法逻辑表达式。模块110将完整语义语句简化为布尔运算。转换可以以适合于从输出中有效地构建基于布尔门的运算的方式将复杂的输入语句转换为输出。证明方140拥有要验证的复合语句,而不揭示复合语句的实际值。复合语句(例如,由多片语法分解模块110)转换为表示相应字符串集的一个或多个正则表达式。可以使用例如在www.snort.org上可用的诸如入侵检测系统的工具。已生成这些正则表达式的多片语法分解模块110用于实现正则表达式匹配运算。执行此运算以从输入字符串中检测(由正则表达式写入的)模式。
例如,复合语句可以是以下简单句:“【只有】按下“启动”按钮【并】踩下刹车踏板, 汽车才会启动。”正方形括号项【·】之间的句子的下划线部分表示在运算符向量O中待验证的变量Si,并且正方形括号项【·】表示这些变量Si之间的逻辑关系。与一次只能处理一个变量的单片本机零知识证明系统相比,本公开的实施例可以将正则表达式与模式匹配并构建相应的电路。复合语句可以转换为具有多个变量和多个布尔运算的布尔语法,并且复合语句或布尔语法可以视为布尔电路。然后,可以对布尔电路进行分区,以促进多方计算和随后的多方验证。
多片语法分解模块110还可以用于实现卡诺图运算,以降低逻辑表达式复杂性。因为本公开的实施例的效率通常取决于所生成和处理的主题电路的复杂性,所以多片语法分解模块110可以提高总体效率。在一些实施例中,输入向量S中的输入少于或等于六个。
图3使用伪代码示出了由多片语法分解模块110执行的一组运算。伪代码可以很容易地通过流程图等另一种手段可视化,并且可以很容易地由执行相应编码指令的计算机实现。根据图3,多片语法分解模块110接收复合字符串“string”作为输入,并提供(例如,布尔)电路C作为输出,其中该电路C是逻辑结构。例如,电路C可以包括变量和运算的指示,例如,应用于变量的逻辑或布尔运算。电路C可以由有限域上的布尔门运算组成。
图3中的运算在复合字符串的长度范围内执行,并且上述运算包括对复合字符串执行提取器运算以及对提取器运算的输出(使用通用哈希函数)执行哈希。定义了两个提取器运算:Extractorv()识别和/或匹配复合字符串中的变量,Extractoro()识别和/或匹配复合字符串中的运算符。这些提取器运算对应于一个广义提取函数,其中该函数可以将字符串中的复合表达式与密钥变量以及布尔运算符【与、或、异或等】中表示的逻辑关系匹配。
如果以这种方式处理复合字符串,函数Regexp()将应用于所示的提取器和哈希运算的输出。Regexp()是一个广义正则表达式函数,其中该函数用于匹配字符串中的正则表达式与某些模式,并将参数和模式转换为正则表达式。
正则表达式函数的输出作为广义转换函数CircuitGen()的输入提供。广义转换函数用于将输入正则表达式字符串转换为逻辑电路(例如,复合字符串的布尔电路表示)。
广义转换函数CircuitGen()的输出提供给卡诺图函数K-map()。卡诺图函数用于根据卡诺图原理(在可能的情况下)降低为卡诺图函数提供的逻辑电路中的逻辑门复杂性。卡诺图函数提供多片语法分解模块110的输出电路C。
混淆电路生成模块
给定电路C,该电路代表沿着逻辑门运算的深度的真值表列表,本公开的实施例实现具有非交互式承诺的混淆电路方案,例如,如(“The Curious Case of Non-InteractiveCommitments,”M.Mahmoody and R.Pass,September 10,2012,cs.cornell.edu.)中所述。这可以促进验证方实现所需的验证正确性和隐私属性。可以应用诸如(M.Bellare,V.T.Hoang,and P.Rogaway.Foundations of garbled circuits.In T.Yu,G.Danezis,andV.D.Gligor,editors,ACM CCS12,pages 784-796.ACM Press,Oct.2012)中所述的混淆方案。在一些实施例中,其中k表示安全参数,混淆方案的正确性特性定义为:
布尔电路可以视为有向无环图(directed acyclic graph,DAG),即没有环和边的图,每个环和边都从源节点指向目标节点,每个节点代表执行特定运算op(例如,与/异或)的计算单元。此外,所有门都固定为有两条输入线路,左线路和右线路,分别用l和r表示。当给定线路时,门的功能是返回位值0或1。电路的深度用d表示,宽度用n表示。虽然有很多方法来表示布尔电路,但一个表示是d-by-n矩阵M。在此表示中,电路的每一层i∈(1,…d)都有固定的宽度n,每个条目都是门。
实现混淆电路生成模块,以执行分区的混淆电路构建操作。分区的混淆电路可以基于先前生成的多片语法表达式创建,并且可以准备具有公共密码基元的混淆电路。具体地,实现了适合与使用多方OT验证协议交互的多个验证方一起使用的分区方案。因此,xGC(分区的混淆电路)可以适当地将混淆电路C分为多个独立的混淆电路,如向量C(C1,C2,…)所表示或记录的。这可以促进信息(例如,真值表或相应矩阵)安全分为多个表示。给定一个姚氏混淆电路C,该电路的输入【xi】矩阵和输出【oi】矩阵在真值表中,本公开的实施例安全地将所述表分为真值表矩阵T的多个表示。这可以使密码证明更适合多方验证。因此,代表复合语句的布尔电路可以分区,并且所生成的电路可以接受混淆运算,例如,以模糊输入的真值。
图4示出了根据本公开的实施例的混淆电路生成模块120的操作400。图5示出了图4的操作的一个方面。图6示出了图4的另一个操作的一个方面。
参考图4,操作400包括准备步骤410。根据准备410,多方姚氏混淆电路用排序的输入x1,x2,…,xn表示。排序的输入与相应的布尔门配对,一次两个。如果n是奇数,则将添加一个额外的(例如,随机、二进制)值,例如,该值如图所示由a0⊕a1给出,其中a0和a1是基础随机二进制值,将作为辅助输入被添加。在可信设置中,辅助在使用后可能需要作为“有毒废弃物”销毁。有毒废弃物可能包括有助于初始化的参数,并且上述参数在使用后被(例如,安全地)删除。根据以下方程,新电路C′定义为准备步骤410的输出:
根据第一混淆电路构建步骤420,对于每个输入对(xi,xj),其中xi表示来自证明方的输入,xj表示来自验证方的输入,并且对于电路的线路和内部线路w,分配一对密钥
根据第二混淆电路构建步骤430,对于电路的每个门,根据表T的真值表生成加密与输出线路相关联的相应密钥的四个密文。图5示出了线路分配和输出。
根据第三混淆电路构建步骤440,对于连接到电路的输出线路的每个门,根据与姚氏混淆电路方案中使用的相同真值表加密0或1。(对姚氏混淆电路进行加密可以是通过应用诸如高级加密标准(Advanced Encryption Standard,AES)算法的加密算法来混淆输出结果。)
根据第一混淆电路分区步骤450,基于真值表T,将电路矩阵M水平切片(分区)到倒数第二门(即,在最后一个聚合门(或电路)之前的第m-1个门(或电路))。为了保持输入/输出的完整性,执行对混淆电路的分区。在各种实施例中,分区可以以n比1的扇入扇出比实现。具体来说,此方案可能要求每个混淆逻辑门对最左边的输入门进行切片,并且在第一层输入之后,中间层和最后一层门聚合成一个混淆电路。
图5示出了门的分区示例。在第i个混淆电路处Ci(或第i个混淆电路)的混淆是对布尔门真值表进行混淆的手段。证明方选择与随机输入0或1相对应的Wi 0或Wi 1的输入。然后,证明方使用与线路输入相对应的每对输入(00、01、10、11)来加密输出并创建真理表。姚氏混淆电路的过程可以参考(Yao,Andrew Chi-Chih(1986).“How to generate andexchange secrets”,27th Annual Symposium on Foundations of Computer Science(SFCS1986),Foundations of Computer Science,1986,27th Annual Symposium onpp.162–167,doi:10.1109/SFCS.1986.25,ISBN 978-0-8186-0740-0.)。
根据图5,Wi 0表示带有0的第i个混淆电路的输入,Wi 1表示带有1的第i个混淆电路的输入,表示第i个混淆电路的输出真值表。示出了初始电路C510、分区电路520和验证540。
根据第二混淆电路分区步骤460,添加分区(切片)的混淆电路(C1,C2,…,Cm)。然后,对每个电路执行混淆电路协议的迭代。子步骤还可以作为分区步骤460的一部分以迭代的方式执行。Alice(证明方)为每个具有多个验证方的分区电路运行非交互式多方OT方案。此OT方案可以离线执行。可以执行OT方案以获得分区的混淆电路验证Yi=Ci(xi,xj),最后一个电路Cm除外。
对于最后一个电路Cm,可以采用多方非交互式不经意传输模块130。可以使用此模块以获得联合不经意传输(oblivious transfer,OT)验证,具体如下:
在一些实施例中,上述离线执行的非交互式多方OT传输方案可以参照图6描述如下。在第一步650中,Alice 605将函数表示为电路和混淆电路Ci。/>总共有2根对应(xi,xj)的输入线路。在下一步654中,Alice 605将为混淆电路Ci生成的所有密文发送到公有仓库610(例如,区块链中的DLT或可公开访问的Web门户)。在下一步658中,通过验证分配系统,验证方{Bob 615,Charlie 620,…}通过与Alice交换OT承诺消息OT中随机生成的数字/>承诺进行每个混淆电路验证。在下一步中,Alice为自己的输入线路/>发送相应的密钥。在下一步中,Alice 605和验证方{Bob 615,Charlie 620,…}参与不经意传输协议。随后,验证方{Bob 615,Charlie 620,…}学习每个分区门的密钥/>验证方单独开始使用先前获得的密钥评估电路。随后,验证方{Bob 615,Charlie 620,…}了解C(xi,xj)的输出。Alice 605还了解到,验证方已经用Y1,Y2,…的输出评估了结果。如果Yi≠yi,则Alice可以选择中止证明。否则,Alice可以继续调用多方非交互式不经意传输模块130进行OT聚合。
多方非交互不经意传输
在语法分解和混淆电路生成之后,OT聚合方OT协议就可以实现,例如,使用图1的用于OT聚合的多方非交互式不经意传输模块130来实现。本协议将所有分区的(先前执行的)混淆电路验证合并为整体验证结论,以便完成证明的验证。在各种实施例中,这涉及用异或(XOR)门构建的混淆电路Cm,以降低计算成本。电路Cm的表达式可表示为希望证明方(Alice)和聚合方(David)都同意计算的Y=y,其中y=f(x)。OT聚合促进了安全完整性。图7示出了根据本公开的实施例的OT聚合方OT协议的运算。不经意传输会在很大程度上保留当事方的匿名性。聚合方(David)可以视为验证方,该聚合方聚合其它验证方的验证,并提供指示证明是否已验证的通过/失败结果。
根据图7,在第一步中,使用混淆电路生成模块120,验证方使用公有仓库710发布计算结果Yi,其中供Alice 705和David 715从门户获取750。在下一步中,Alice创建754随机位例如,/> 在下一步中,Alice使用本文其它地方描述的混淆运算来混淆758电路。混淆运算输出/>这里,gc(·)表示姚氏混淆电路生成算法,并且/>输出包括混淆电路C′m、编码函数em和解码函数dm。在下一步中,Alice执行762确定性编码运算Enc(),其中该运算将em和/>转换为混淆输入
在下一步中,Alice 705将元组(C′m,dm,Ym)发送766到公有仓库710(例如,区块链中的DLT或Web门户)。David 715非交互式地从公有仓库710获得770信息。然后,David创建随机位在另一个操作中,David执行774确定性评估运算Ev(·),其中该运算输出在下一步中,David通过公有仓库710将输出Y发回778给Alice。在下一步中,Alice执行782确定性解码运算De(·)以计算输出y=De(dm,Y),其中dm表示解码密钥。同时,David还执行786确定性解码运算De(·)以计算输出y=De(dm,Y)。接下来,Alice和David都检查790是否/>其中f(·)在成为混淆电路函数C(·)之前是否为逻辑布尔函数。如果/>OT聚合方协议将接受验证结果。否则,验证结果不被接受,Alice可能会中止验证。
根据本公开的实施例,包括混淆电路的总体方法、装置和系统涉及多种函数,这些函数涉及对姚氏混淆电路算法的适配。图8示出了根据一个实施例的密码函数的交互。此实施例中的组件可以如下形式化。如图9a中的一系列运算所示,混淆运算gc(·)810是将函数f:{0,1}m←{0,1}n转换为元组(C,e,d)←gc(f)的随机运算。如图9b所示,编码运算Enc(·)820将公共参考字符串输入x∈{0,1}转换为混淆电路输入X=enc(x)。编码运算使用在上运算的函数H来生成输出X。如图9c所示,评估运算Eval(·)830表示给定混淆输出Y=C(X)的混淆输入x上的特定混淆函数C的评估函数。评估运算使用在输入C和X上运算的函数Decryption来生成输出Y。如图9d所示,解码函数de(·)840将混淆输出Y转换为最终输出y=de(Y),使该输出与原始(被混淆之前)的函数f(m)一致。解码函数对输入d和Y执行异或运算,以生成输出y。还示出了(例如,由如上所述的聚合方(David)执行的)确定性评估运算Ev(·)850。
根据各种实施例,OT方案可以基于Bellare-Micali方案(M.Bellare andS.Micali,Non-interactive oblivious transfer and applications,Proc.Advances inCryptology-Crypto’89,Springer-Verlag LNCS,435(1990),547–557.)的适配来执行。分区的混淆电路和OT聚合方可以基于不经意传输方案。
在一个实施例中更详细地进行了说明,设G是具有生成器g的素数阶p的组,设H是可以建模为随机预言的哈希函数设m0和m1是发送方的消息,设b∈{0,1}是接收方的输入。OT协议可以如下所示。首先,发送方S选择/>并将c发送给接收方R。接下来,接收方R选择一个随机密钥/>并计算两个公钥yb←gk和y1-b←c/gk,并发送y0,y1给发送方。
接下来,如果y0·y1≠c,则发送方S(例如,立即)中止。否则,S选择并计算密文/>和/>发送方将c0,c1发送给接收方R。接下来,接收方R解析密文cb=(v0,v1),然后使用k的知识解密:/>并输出mb
如上所述,本公开的各实施例提供了一种零知识证明方法、装置和系统,可以处理多于一个语句的复杂语义。这样的实施例可以应用于分布式计算环境中,例如区块链环境。本公开的实施例提供了一种基于区块链的隐私保护在线验证方法、装置和系统。在通信开销和计算开销方面,预计此类实施例的开销比一些现有的实施例更小,而且更易实现。
本公开的各实施例提供了基本完整的语法验证,因此能够实现多片验证。各实施例可以展示改进的混淆电路。各实施例可以在需要很少或不需要预可信设置的情况下实现。各实施例可以潜在地展示与输入大小O(n)呈线性关系的证明生成时间和大小。各实施例可以提供完整的语法验证以完成更全面的任务。各实施例可以提供可证明的安全健全性。各实施例在本质上可以是非交互式的。各实施例可以通过全同态加密(fullyhomeomorphic encryption,FHE)能力促进基本完整的隐私保护。
本公开的各实施例可以通过提供安全和可信的方式来在由不同实体控制的设备之间传输信息,潜在地改进联网计算环境的操作。此外,实施例的上述潜在特征也可以改进网络操作。此实施例促进了网络和通信完整性,从而改进了整体联网和计算操作。本公开的实施例涉及由联网计算环境中的各方执行的一组特定步骤,这些步骤实现了安全和可信的网络通信等的目标。几个不同的计算设备接收数据,处理数据,并提供数据作为(例如,到另一个计算设备的)输出,以促进实现此目标。
图10是根据本公开的不同实施例的计算设备1100的示意图,所述计算设备可以执行本文显式或隐式描述的方法和特征的任何或所有操作。例如,配备有网络功能的计算机可以配置为计算设备1100。多个此类计算设备可以互相联网,以提供如本文所述的系统,其中不同的计算设备可能由不同的各方操作。
如图所示,设备1100可以包括处理器1110,例如中央处理单元(CentralProcessing Unit,CPU)或专用处理器,例如图形处理单元(Graphics Processing Unit,GPU),或其它此类处理器单元、存储器1120、非瞬时性大容量存储器1130、输入输出接口1140、网络接口1150和收发器1160,所有这些都通过双向总线1170通信耦合。根据某些实施例,可以使用任何或所有所描述的元件,或者仅使用这些元件的子集。此外,设备1100可以包括一些元件的多个实例,例如,多个处理器、多个存储器或多个收发器。此外,硬件设备的元件可以直接耦合到其它元件,而不需要双向总线。除了处理器和存储器之外,可以使用集成电路等其它电子元件来执行所需的逻辑运算。
存储器1120可以包括任何类型的非瞬时性存储器,例如静态随机存取存储器(static random access memory,SRAM)、动态随机存取存储器(dynamic random accessmemory,DRAM)、同步DRAM(synchronous DRAM,SDRAM)、只读存储器(read-only memory,ROM),或它们的任意组合等。大容量存储器1130可以包括任意类型的非瞬时性存储设备,例如,固态驱动器、硬盘驱动器、磁盘驱动器、光盘驱动器、USB盘、或用于存储数据和机器可执行程序代码的任何计算机程序产品。根据某些实施例,存储器1120或大容量存储器1130可以在其上记录处理器1110可执行的用于执行上述任何方法操作的语句和指令。
本公开的实施例可以使用电子硬件、软件或其组合来实现。在一些实施例中,本公开由一个或多个计算机处理器执行存储在存储器中的程序指令来实现。在一些实施例中,本公开部分或全部在硬件中实现,例如,使用一个或多个现场可编程门阵列(fieldprogrammable gate array,FPGA)或专用集成电路(application specific integratedcircuit,ASIC)来快速执行处理操作。
应当理解,尽管为了说明的目的,本文已经描述了所述技术的具体实施例,但在不脱离所述技术的范围的情况下,可以进行各种修改。因此,说明书和附图仅被视为所附权利要求书限定的对本公开的说明,并且预期覆盖落入本公开的范围内的任何和所有修改、变化、组合或等同物。具体地,在本公开的范围内,提供计算机程序产品或程序元件,或用于存储机器可读取的信号的诸如磁线、磁带、磁盘或光线、光带或光盘等的程序存储器或存储器设备,以根据本公开的方法控制计算机的操作和/或根据本公开的系统构造其部分或全部组件。
与本文描述的方法关联的动作可以在计算机程序产品中实现为编码指令。换句话说,计算机程序产品是一种计算机可读介质,当计算机程序产品被加载到存储器中并在无线通信设备的微处理器上执行时,软件代码被记录在所述介质上以执行方法。
此外,所述方法的每个操作可以在任何计算设备(例如,个人计算机、服务器、PDA等)上执行,并且根据从任何编程语言(例如,C++、Java等)生成的一个或多个程序元件、模块或对象或者一个或多个程序元件、模块或对象的一部分来执行。另外,每个操作或实现每个所述操作的文件或对象等可以由专用硬件或为此目的设计的电路模块执行。
通过上述实施例的描述,本公开可以仅通过使用硬件实现,也可以通过使用软件和必要的通用硬件平台实现。基于这种理解,本公开的技术方案可以通过软件产品的形式体现。软件产品可以存储在非易失性或非瞬时性存储介质中,非易失性或非瞬时性存储介质可以是光盘只读存储器(compact disk read-only memory,CD-ROM)、USB闪存盘、或可移动硬盘。软件产品包括许多指令,这些指令使得计算机设备(个人计算机、服务器、或网络设备)能够执行本公开的实施例中提供的方法。例如,此类执行可以对应于本文中描述的逻辑运算的模拟。根据本公开的实施例,软件产品可以附加地或替代地包括多个指令,这些指令使得计算机设备能够执行配置或编程数字逻辑装置的操作。
虽然已经参考特定特征和实施例描述了本公开和与其相关的发明,但很明显,在不脱离本发明的情况下,可以对其进行各种修改和组合。因此,说明书和附图仅被视为所附权利要求书限定的对本公开的实施例说明,并且预期覆盖落入本公开和与其相关的发明的范围内的任何和所有修改、变化、组合或等同物。

Claims (30)

1.一种用于执行零知识证明的方法,其特征在于,所述方法包括:
由证明方:
对要证明的语句执行多片语法分解;
在多片语法分解后生成指示所述语句的混淆电路;
将所述混淆电路分为多个混淆电路部分,所述多个混淆电路部分共同构成分区的混淆电路;
通过共享仓库向多个验证方发送所述分区的混淆电路;
由所述多个验证方:
联合计算所述混淆电路的摘要,其中,所述多个验证方中的每个验证方计算所述多个混淆电路部分中对应的一个混淆电路部分的输出;
由属于所述多个验证方的聚合方:计算共同应用于所述多个混淆电路部分的所有所述输出的统一布尔运算的值;以及
由所述聚合方:确定所述统一布尔运算的所述值是否等于预期值,并指示当且仅当所述统一布尔运算的所述值等于所述预期值时所述证明得到验证。
2.根据权利要求1所述的方法,其特征在于,所述语句具有多个方面或变量,并且其中,所述多片语法分解包括使用多个线路和多个门生成所述语句的布尔电路表示,所述混淆电路从所述布尔电路表示生成。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括将所述语句转换为一个或多个正则表达式,并从所述正则表达式生成布尔电路表示,所述混淆电路直接或间接从所述布尔电路表示生成。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括在所述布尔电路表示上实现卡诺图运算,以产生所述布尔电路表示的简化版本,所述混淆电路直接或间接从所述布尔电路表示的所述简化版本生成。
5.根据权利要求1至4中任一项所述的方法,其特征在于,使用非交互式不经意传输执行向多个验证方发送所述分区的混淆电路。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述方法还包括执行多方不经意传输方案,以促进所述证明方和所述验证方之间的交互和/或所述验证方之间的交互。
7.一种计算机程序产品,其特征在于,所述计算机程序产品包括其上存储有指令的非瞬时性计算机可读介质,当所述指令由计算机处理器执行时,使计算机执行根据权利要求1至6中任一项所述的方法。
8.一种系统,其特征在于,所述系统包括:
证明方计算设备,用于:
对要证明的语句执行多片语法分解;
在多片语法分解后生成指示所述语句的混淆电路;
将所述混淆电路分为多个混淆电路部分,所述多个混淆电路部分共同构成分区的混淆电路;
通过共享仓库向多个验证方设备发送所述分区的混淆电路;
所述多个验证方计算设备,用于:
联合计算所述混淆电路的摘要,其中,所述多个验证方设备中的每个验证方设备计算所述多个混淆电路部分中对应的一个混淆电路部分的输出;
由属于所述多个验证方设备的聚合方设备:计算共同应用于所述多个混淆电路部分的所有所述输出的统一布尔运算的值;以及
由所述聚合方设备:确定所述统一布尔运算的所述值是否等于预期值,并指示当且仅当所述统一布尔运算的所述值等于所述预期值时所述证明得到验证。
9.根据权利要求8所述的系统,其特征在于,所述语句具有多个方面或变量,并且其中,所述多片语法分解包括使用多个线路和多个门生成所述语句的布尔电路表示,所述混淆电路从所述布尔电路表示生成。
10.根据权利要求8或9所述的系统,其特征在于,所述证明方设备还用于:将所述语句转换为一个或多个正则表达式,并从所述正则表达式生成布尔电路表示,所述混淆电路直接或间接从所述布尔电路表示生成。
11.根据权利要求10所述的系统,其特征在于,所述证明方设备还用于在所述布尔电路表示上实现卡诺图运算,以产生所述布尔电路表示的简化版本,所述混淆电路直接或间接从所述布尔电路表示的所述简化版本生成。
12.根据权利要求8至11中任一项所述的系统,其特征在于,所述证明方设备用于使用非交互式不经意传输向所述多个验证方设备发送所述分区的混淆电路。
13.根据权利要求8至12中任一项所述的系统,其特征在于,所述证明方设备和所述验证方设备和/或多个验证方设备用于执行多方不经意传输方案,以促进所述证明方设备和所述验证方设备和/或多个验证方设备之间的交互。
14.一种用于执行零知识证明的方法,其特征在于,所述方法包括:
由证明方:
对要证明的语句执行多片语法分解;
在多片语法分解后生成指示所述语句的混淆电路;
将所述混淆电路分为多个混淆电路部分,所述多个混淆电路部分共同构成分区的混淆电路;
通过共享仓库向多个验证方发送所述分区的混淆电路。
15.根据权利要求14所述的方法,其特征在于,所述语句具有多个方面或变量,并且其中,所述多片语法分解包括使用多个线路和多个门生成所述语句的布尔电路表示,所述混淆电路从所述布尔电路表示生成。
16.据权利要求14或15所述的方法,其特征在于,所述方法还包括将所述语句转换为一个或多个正则表达式,并从所述正则表达式生成布尔电路表示,所述混淆电路直接或间接从所述布尔电路表示生成。
17.根据权利要求16所述的方法,其特征在于,所述方法还包括在所述布尔电路表示上实现卡诺图运算,以产生所述布尔电路表示的简化版本,所述混淆电路直接或间接从所述布尔电路表示的所述简化版本生成。
18.根据权利要求14至17中任一项所述的方法,其特征在于,使用非交互式不经意传输执行向所述多个验证方发送所述分区的混淆电路。
19.根据权利要求14至18中任一项所述的方法,其特征在于,所述方法还包括执行多方不经意传输方案,以促进所述证明方和所述验证方之间的交互。
20.一种用于执行零知识证明的方法,其特征在于,所述方法包括:
由验证方:
通过共享仓库从证明方接收分区的混淆电路;
与一个或多个其它验证方合作,以联合计算所述混淆电路的摘要,其中,所述验证方和所述一个或多个其它验证方各自计算所述多个混淆电路部分中对应的一个混淆电路部分的相应输出;
其中,所述验证方或属于所述多个验证方的聚合方:
计算共同应用于所述多个混淆电路部分的所有所述输出的统一布尔运算的值;以及
确定所述统一布尔运算的所述值是否等于预期值,并指示当且仅当所述统一布尔运算的所述值等于所述预期值时所述证明得到验证。
21.根据权利要求20所述的方法,其特征在于,所述方法还包括执行多方不经意传输方案,以促进所述证明方设备和所述验证方之间的交互和/或所述多个验证方之间的交互。
22.一种计算机程序产品,所述计算机程序产品包括其上存储有指令的非瞬时性计算机可读介质,当所述指令由计算机处理器执行时,使所述计算机执行根据权利要求14至21中任一项所述的方法。
23.一种计算设备,其特征在于,包括处理器、存储器和网络接口,并且所述计算设备用于:
对要证明的语句执行多片语法分解;
在多片语法分解后生成指示所述语句的混淆电路;
将所述混淆电路分为多个混淆电路部分,所述多个混淆电路部分共同构成分区的混淆电路;以及
通过共享仓库向多个验证方设备发送所述分区的混淆电路。
24.根据权利要求23所述的计算设备,其特征在于,所述语句具有多个方面或变量,并且其中,所述多片语法分解包括使用多个线路和多个门生成所述语句的布尔电路表示,所述混淆电路从所述布尔电路表示生成。
25.根据权利要求23或24所述的计算设备,其特征在于,所述计算设备还用于将所述语句转换为一个或多个正则表达式,并从所述正则表达式生成布尔电路表示,所述混淆电路直接或间接从所述布尔电路表示生成。
26.根据权利要求25所述的计算设备,其特征在于,所述计算设备还用于在所述布尔电路表示上实现卡诺图运算,以产生所述布尔电路表示的简化版本,所述混淆电路直接或间接从所述布尔电路表示的所述简化版本生成。
27.根据权利要求23至26中任一项所述的计算设备,其特征在于,所述计算设备使用非交互式不经意传输执行向所述多个验证方设备发送所述分区的混淆电路。
28.根据权利要求23至27中任一项所述的计算设备,其特征在于,所述计算设备还用于执行多方不经意传输方案,以促进所述计算设备和所述验证方设备之间的交互。
29.一种计算设备,其特征在于,包括处理器、存储器和网络接口,并且所述计算设备用于:
通过共享仓库从证明方设备接收分区的混淆电路;
与一个或多个其它验证方设备合作,以联合计算所述混淆电路的摘要,其中,所述计算设备和所述一个或多个其它验证方设备各自计算所述多个混淆电路部分中对应的一个混淆电路部分的相应输出;
其中,所述计算设备或属于所述多个验证方设备的聚合方设备:
计算共同应用于所述多个混淆电路部分的所有所述输出的统一布尔运算的值;以及
确定所述统一布尔运算的所述值是否等于预期值,并指示当且仅当所述统一布尔运算的所述值等于所述预期值时所述证明得到验证。
30.根据权利要求29所述的计算设备,其特征在于,所述计算设备还用于执行多方不经意传输方案,以促进所述证明方设备和所述计算设备之间的交互和/或所述计算设备和所述多个验证方设备中的一个或多个之间的交互。
CN202280047768.7A 2021-07-06 2022-07-06 多片语法零知识联合证明方法、装置及系统 Pending CN117616719A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202163218758P 2021-07-06 2021-07-06
US63/218,758 2021-07-06
PCT/CN2022/104212 WO2023280234A1 (en) 2021-07-06 2022-07-06 Polylithic syntax zero knowledge joint proof method, apparatus and system

Publications (1)

Publication Number Publication Date
CN117616719A true CN117616719A (zh) 2024-02-27

Family

ID=84801316

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280047768.7A Pending CN117616719A (zh) 2021-07-06 2022-07-06 多片语法零知识联合证明方法、装置及系统

Country Status (4)

Country Link
US (1) US20240154812A1 (zh)
EP (1) EP4360252A1 (zh)
CN (1) CN117616719A (zh)
WO (1) WO2023280234A1 (zh)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11240025B2 (en) * 2018-11-09 2022-02-01 Ares Technologies, Inc. Systems and methods for distributed key storage
EP3754898B1 (en) * 2019-06-19 2023-07-26 Sedicii Innovations Ltd. Improvements in multi-party computations
US10924460B2 (en) * 2019-12-13 2021-02-16 TripleBlind, Inc. Systems and methods for dividing filters in neural networks for private data computations
CN111863165B (zh) * 2020-06-28 2023-07-14 石家庄铁道大学 基于区块链的医疗信息共享认证方法

Also Published As

Publication number Publication date
US20240154812A1 (en) 2024-05-09
EP4360252A1 (en) 2024-05-01
WO2023280234A1 (en) 2023-01-12

Similar Documents

Publication Publication Date Title
Boyle et al. Group-based secure computation: optimizing rounds, communication, and computation
Damgård et al. The tinytable protocol for 2-party secure computation, or: Gate-scrambling revisited
Wu et al. Privately evaluating decision trees and random forests
CN110637441B (zh) 应用于数据重复数据删除的加密密钥生成
Ezerman et al. A provably secure group signature scheme from code-based assumptions
Kolesnikov et al. A systematic approach to practically efficient general two-party secure function evaluation protocols and their modular design
Aguilar-Melchor et al. The return of the SDitH
US10785036B2 (en) Method for generating an electronic signature of a document associated with a condensate
Jain et al. Non-interactive zero knowledge from sub-exponential DDH
Viand et al. Verifiable fully homomorphic encryption
Ananth et al. Succinct garbling schemes from functional encryption through a local simulation paradigm
Miles et al. Shielding circuits with groups
Garg et al. New techniques for efficient trapdoor functions and applications
Papakonstantinou et al. How powerful are the DDH hard groups?
Barta et al. On succinct arguments and witness encryption from groups
Kuang et al. A new post-quantum multivariate polynomial public key encapsulation algorithm
Nitulescu Lattice-based zero-knowledge SNARGs for arithmetic circuits
Lyu et al. Tightly SIM-SO-CCA secure public key encryption from standard assumptions
Zhang et al. Protecting data privacy in publicly verifiable delegation of matrix and polynomial functions
Baum et al. Sok: vector OLE-based zero-knowledge protocols
Cousins et al. SIPHER: Scalable implementation of primitives for homomorphic encryption–FPGA implementation using Simulink
Wang Reducing garbled circuit size while preserving circuit gate privacy
Egashira et al. Fine-grained cryptography revisited
Feng et al. Efficient and verifiable outsourcing scheme of sequence comparisons
Cong et al. Gladius: LWR based efficient hybrid public key encryption with distributed decryption

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