CN111885056A - 基于区块链的零知识证明方法、装置及电子设备 - Google Patents

基于区块链的零知识证明方法、装置及电子设备 Download PDF

Info

Publication number
CN111885056A
CN111885056A CN202010712581.7A CN202010712581A CN111885056A CN 111885056 A CN111885056 A CN 111885056A CN 202010712581 A CN202010712581 A CN 202010712581A CN 111885056 A CN111885056 A CN 111885056A
Authority
CN
China
Prior art keywords
encrypted data
data
numerical value
client
array
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
CN202010712581.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.)
Beijing Kingsoft Cloud Network Technology Co Ltd
Original Assignee
Beijing Kingsoft Cloud Network Technology 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 Beijing Kingsoft Cloud Network Technology Co Ltd filed Critical Beijing Kingsoft Cloud Network Technology Co Ltd
Priority to CN202010712581.7A priority Critical patent/CN111885056A/zh
Publication of CN111885056A publication Critical patent/CN111885056A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • 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/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • 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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供了一种基于区块链的零知识证明方法、装置及电子设备,涉及区块链技术领域,该方法通过确定第一加密数据以及第二加密数据,第一加密数据为对第一数值通过同态加密后的数据,第二加密数据为对第二数值通过同态加密后的数据;向验证者客户端发送待验证数据,待验证数据包括第一加密数据以及第二加密数据,待验证数据指示第一数值和第二数值存在的第一关系,以使得验证者客户端基于第一加密数据和第二加密数据存在的第二关系,验证第一关系。本申请通过利用零知识证明实现了链上可用不可见的数据隐私保护,能够有效缓解现有技术中的隐私数据泄露的问题。

Description

基于区块链的零知识证明方法、装置及电子设备
技术领域
本申请涉及通信技术领域,尤其是涉及一种基于区块链的零知识证明方法、装置及电子设备。
背景技术
随着区块链技术不断发展和广泛应用,面临的隐私泄漏问题越来越突出。相对于传统的中心化架构,区块链机制不依赖特定中心节点处理和存储数据,因此能够避免集中式服务器单点崩溃和数据泄漏的风险。但是为了在分散的区块链节点中达成共识,区块链中所有的交易记录必须公开给所有节点,这将显著增加隐私泄漏的风险。
发明内容
有鉴于此,本申请的目的在于提供基于区块链的零知识证明方法、装置及电子设备,以缓解现有技术中存在的隐私泄露的问题,能够有效降低隐私数据泄露的风险。
第一方面,本申请实施例提供了一种基于区块链的零知识证明方法,该方法包括:
确定第一加密数据以及第二加密数据,所述第一加密数据为对第一数值通过同态加密后的数据,所述第二加密数据为对第二数值通过同态加密后的数据;
向验证者客户端发送待验证数据,所述待验证数据包括所述第一加密数据以及所述第二加密数据,所述待验证数据指示所述第一数值和所述第二数值存在的第一关系,以使得所述验证者客户端基于所述第一加密数据和所述第二加密数据存在的第二关系,验证所述第一关系。
结合第一方面,本申请实施例提供了第一方面的第一种可能的实施方式,其中,确定第一加密数据以及第二加密数据的步骤,包括:
接收来自验证者客户端的第一加密数据,所述第一加密数据由所述验证者客户端对所述第一数值通过同态加密得到;
确定第二数值,并基于所述同态加密对所述第二数值进行加密,得到第二加密数据。
结合第一方面的第一种可能的实施方式,本申请实施例提供了第一方面的第二种可能的实施方式,其中,所述第一加密数据是由验证者客户端应用加密数组构造算法基于第一数值转换成的二进制数生成的,所述第一加密数据为二维数组;
向所述验证者客户端发送待验证数据的步骤,包括:
将第二数值转换成二进制数;
应用二进制数组编码算法对第二数值转换成的二进制数进行编码处理,生成第二加密数据;所述第二加密数据为包括多个二进制数的数组;
应用置换算法将所述第二加密数据的多个二进制数映射到所述二维数组中,生成置换数组;
应用混淆算法对置换数组进行混淆处理,生成待验证数据;所述待验证数据为混淆数组。
结合第一方面的第二种可能的实施方式,本申请实施例提供了第一方面的第三种可能的实施方式,其中,应用二进制数组编码算法对第二数值转换成的二进制数进行编码处理,生成第二加密数据的步骤,包括;
应用0-编码算法对第二数值的二进制数进行计算,生成第二加密数据;所述第二加密数据为包括多个二进制数的0-编码列表。
第二方面,本申请实施例还提供了一种基于区块链的零知识证明方法,该方法包括:
接收证明者客户端发送的待验证数据,所述待验证数据包括第一加密数据以及第二加密数据,所述待验证数据指示所述第一数值和所述第二数值存在的第一关系;所述第一加密数据为对第一数值通过同态加密后的数据,所述第二加密数据为对第二数值通过同态加密后的数据;
基于所述第一加密数据和所述第二加密数据存在的第二关系,验证所述第一关系。
结合第二方面,本申请实施例提供了第二方面的第一种可能的实施方式,其中,所述方法还包括:
确定第一数值,并基于所述同态加密对所述第一数值进行加密,得到第一加密数据;
向证明者客户端发送第一加密数据,以使得证明者客户端确定所述第一加密数据以及第二加密数据;所述第二加密数据由所述证明者客户端对所述第二数值通过同态加密得到。
结合第二方面的第一种可能的实施方式,本申请实施例提供了第二方面的第二种可能的实施方式,其中,基于所述同态加密对所述第一数值进行加密,得到第一加密数据的步骤,包括:
生成密钥对,所述密钥对包括验证者公钥和验证者私钥;
将第一数值转换成二进制数;
应用加密数组构造算法基于第一数值转换成的二进制数以及验证者公钥,生成第一加密数据;所述第一加密数据为二维数组。
结合第二方面的第二种可能的实施方式,本申请实施例提供了第二方面的第三种可能的实施方式,其中,所述待验证数据为由证明者客户端应用混淆算法基于验证者公钥以及置换数组生成的混淆数组;所述置换数组是由证明者客户端基于第一加密数据和第二加密数据生成的;
基于所述第一加密数据和所述第二加密数据存在的第二关系,验证所述第一关系的步骤,包括:
应用数据解密算法基于验证者私钥对所述混淆数组进行解密;
若解密后的混淆数组中存在等于1的数据项,则确定所述第一关系为真,验证通过。
第三方面,本申请实施例还提供一种基于区块链的零知识证明装置,包括:
确定模块,用于确定第一加密数据以及第二加密数据,所述第一加密数据为对第一数值通过同态加密后的数据,所述第二加密数据为对第二数值通过同态加密后的数据;
发送模块,用于向验证者客户端发送待验证数据,所述待验证数据包括所述第一加密数据以及所述第二加密数据,所述待验证数据指示所述第一数值和所述第二数值存在的第一关系,以使得所述验证者客户端基于所述第一加密数据和所述第二加密数据存在的第二关系,验证所述第一关系。
第四方面,本申请实施例还提供一种基于区块链的零知识证明装置,包括:
接收模块,用于接收证明者客户端发送的待验证数据,所述待验证数据包括第一加密数据以及第二加密数据,所述待验证数据指示所述第一数值和所述第二数值存在的第一关系;所述第一加密数据为对第一数值通过同态加密后的数据,所述第二加密数据为对第二数值通过同态加密后的数据;
验证模块,用于基于所述第一加密数据和所述第二加密数据存在的第二关系,验证所述第一关系。
第五方面,本申请实施例还提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面任一项所述的基于区块链的零知识证明方法的步骤。
第六方面,本申请实施例还提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第二方面任一项所述的基于区块链的零知识证明方法的步骤。
第七方面,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述的基于区块链的零知识证明方法的步骤。
本申请实施例带来了以下有益效果:本申请实施例提供的基于区块链的零知识证明方法、装置、电子设备以及计算机可读存储介质,通过首先确定第一加密数据以及第二加密数据,第一加密数据为对第一数值通过同态加密后的数据,第二加密数据为对第二数值通过同态加密后的数据;;然后向验证者客户端发送待验证数据,待验证数据包括第一加密数据以及第二加密数据,待验证数据指示第一数值和第二数值存在的第一关系,以使得验证者客户端基于第一加密数据和第二加密数据存在的第二关系,验证第一关系。因此,本申请实施例提供的技术方案,通过利用零知识证明实现了链上可用不可见的交易数据隐私保护,能够有效缓解现有技术中的隐私数据泄露的问题。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种基于区块链的零知识证明方法的流程示意图;
图2为本申请实施例提供的另一种基于区块链的零知识证明方法的流程示意图;
图3为本申请实施例提供的第一加密数据的生成流程图;
图4为本申请实施例提供的一种基于区块链的零知识证明装置的示意图;
图5为本申请实施例提供的另一种基于区块链的零知识证明装置的示意图;
图6为本申请实施例提供的基于区块链的零知识证明系统的发起验证阶段流程图;
图7为本申请实施例提供的基于区块链的零知识证明系统的结果验证阶段流程图;
图8为本申请实施例提供的基于区块链的零知识证明系统的应用场景图;
图9为应用0-编码算法得到第二加密数据的具体流程图;
图10为本申请实施例提供的一种ZKP服务的实现算法示意图;
图11为本申请实施例提供的一种电子设备的示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,随着区块链技术不断发展和广泛应用,面临的隐私泄漏问题越来越突出。相对于传统的中心化架构,区块链机制不依赖特定中心节点处理和存储数据,因此能够避免集中式服务器单点崩溃和数据泄漏的风险。然而,为了在分散的区块链节点中达成共识,区块链中所有的交易记录必须公开给所有节点,这将显著增加隐私泄漏的风险。基于此,本申请实施例提供的一种基于区块链的零知识证明方法、装置及电子设备,可以缓解现有技术中存在的隐私泄露的技术问题,能够有效降低隐私数据泄露的风险。
下面首先对本申请涉及的技术术语进行简要说明:
零知识证明(Zero-Knowledge Proof,简称ZKP)或零知识协议是一种基于概率的验证方法,包括两部分:宣称某一命题为真的证明者(prover)和确认该命题确实为真的验证者(verifier)。
顾名思义,零知识证明就是既能充分证明自己是某种权益的合法拥有者,又不把有关的信息泄漏出去,即给外界的“知识”为“零”。
零知识证明实质上是一种涉及两方或更多方的协议,即两方或更多方完成一项任务所需采取的一系列步骤。证明者向验证者证明并使其相信自己知道或拥有某一消息,但证明过程不能向验证者泄漏任何关于被证明消息的信息。
网络:本申请中所涉及的网络包括验证者网络和证明者网络两种,该两种网络均为联盟链网络,即Hyperldeger Fabric网络。
交易:本申请中特指Hyperledger Fabric交易。
为便于对本实施例进行理解,首先对本申请实施例所公开的一种基于区块链的零知识证明方法进行详细介绍。
实施例一:
如图1所示,本申请实施例提供了一种基于区块链的零知识证明方法,应用于证明者客户端,该方法包括:
步骤S102,确定第一加密数据以及第二加密数据,第一加密数据为对第一数值通过同态加密后的数据,第二加密数据为对第二数值通过同态加密后的数据;
上述的同态加密可以采用乘法同态算法,也可以采用全同态加密算法。
在可选的实施方式中,上述步骤S102可以通过以下步骤实现:
1、接收来自验证者客户端的第一加密数据,第一加密数据由验证者客户端对第一数值通过同态加密得到;
上述的第一数值是指验证者客户端需要比较的数据,例如验证者客户端的隐私阈值(诸如银行能提供的贷款额度)。
2、确定第二数值,并基于同态加密对第二数值进行加密,得到第二加密数据。
这里的第二数值是指证明者客户端需要验证的数据,例如证明者客户端用户的隐私数据(诸如向银行贷款的贷款金额)。
其中,上述第一加密数据是由验证者客户端应用加密数组构造算法基于第一数值转换成的二进制数生成的,第一加密数据为二维数组。
这里的加密数组构造算法用于将证明者客户端需要验证的数据加密成二维数组(又称为加密数组)。
步骤S104,向验证者客户端发送待验证数据,待验证数据包括第一加密数据以及第二加密数据,待验证数据指示第一数值和第二数值存在的第一关系,以使得验证者客户端基于第一加密数据和第二加密数据存在的第二关系,验证第一关系。
当第二关系与第一关系相一致,则验证通过。否则,验证不通过。
通过利用第一加密数据和第二加密数据(即第一数值和第二数值同态加密后的数据)的第二关系来验证第一数值和第二数值的第一关系,避免第一数值和第二数值的泄露。
在可选的实施方式中,步骤S104中,向验证者客户端发送待验证数据的步骤可以通过以下方式实现:A将第二数值转换成二进制数;
B应用二进制数组编码算法对第二数值转换成的二进制数进行编码处理,生成第二加密数据;第二加密数据为包括多个二进制数的数组;
C应用置换算法将第二加密数据的多个二进制数映射到二维数组中,生成置换数组;
D应用混淆算法对置换数组进行混淆处理,生成待验证数据;待验证数据为混淆数组。
上述的二进制数组编码算法用于对第二数值进行加密,得到二进制数的数组,二进制数组编码算法例如可以是0-编码算法。
因此,在可选的实施方式中,上述步骤B可以通过以下子步骤执行:
B1应用0-编码算法对第二数值的二进制数进行计算,生成第二加密数据;第二加密数据为包括多个二进制数的0-编码列表。
上述的置换算法是用于对第二加密数据和第一加密数据进行置换处理,生成置换数组。
上述的混淆算法用于证明者客户端产生随机密文数组对置换数组进行混淆处理,生成混淆数组。
该基于区块链的零知识证明通过首先确定第一加密数据以及第二加密数据,第一加密数据为对第一数值通过同态加密后的数据,第二加密数据为对第二数值通过同态加密后的数据;;然后向验证者客户端发送待验证数据,待验证数据包括第一加密数据以及第二加密数据,待验证数据指示第一数值和第二数值存在的第一关系,以使得验证者客户端基于第一加密数据和第二加密数据存在的第二关系,验证第一关系。因此,本申请实施例提供的技术方案,通过利用零知识证明实现了链上可用不可见的数据隐私保护,能够有效缓解现有技术中的数据泄露的问题。
实施例二:
如图2所示,本申请实施例提供了另一种基于区块链的零知识证明方法,应用于验证者客户端,该方法包括:
步骤S202,接收证明者客户端发送的待验证数据,待验证数据包括第一加密数据以及第二加密数据,待验证数据指示第一数值和第二数值存在的第一关系;第一加密数据为对第一数值通过同态加密后的数据,第二加密数据为对第二数值通过同态加密后的数据;
其中,待验证数据为由证明者客户端应用混淆算法基于验证者公钥以及置换数组生成的混淆数组;置换数组是由证明者客户端基于第一加密数据和第二加密数据生成的。
步骤S204,基于第一加密数据和第二加密数据存在的第二关系,验证第一关系。
需要说明的是,在步骤S202执行之前,该方法还包括:
(1)确定第一数值,并基于同态加密对第一数值进行加密,得到第一加密数据;
(2)向证明者客户端发送第一加密数据,以使得证明者客户端确定第一加密数据以及第二加密数据;第二加密数据由证明者客户端对第二数值通过同态加密得到。
在可选的实施方式中,参照图3,上述基于同态加密对第一数值进行加密,得到第一加密数据的步骤,包括:
步骤S302,生成密钥对,密钥对包括验证者公钥和验证者私钥;
步骤S304,将第一数值转换成二进制数;
步骤S306,应用加密数组构造算法基于第一数值转换成的二进制数以及验证者公钥,生成第一加密数据;第一加密数据为二维数组。
在可选的实施方式中,上述步骤S204可以通过以下步骤实现:
1)应用数据解密算法基于验证者私钥对混淆数组进行解密;
2)若解密后的混淆数组中存在等于1的数据项,则确定第一关系为真,验证通过。
本申请实施例提供的基于零知识证明的区块链数据处理方法,应用于证明者客户端,包括接收证明者客户端发送的待验证数据,上述待验证数据包括第一加密数据以及第二加密数据,待验证数据指示第一数值和第二数值存在的第一关系;第一加密数据为对第一数值通过同态加密后的数据,第二加密数据为对第二数值通过同态加密后的数据。基于第一加密数据和第二加密数据存在的第二关系,验证第一关系。以此实现数据隐私保护,能够有效缓解现有技术中的数据泄露的问题。
实施例三:
如图4所示,本申请实施例还提供一种基于区块链的零知识证明装置,该装置包括:确定模块10以及发送模块20。
确定模块10用于确定第一加密数据以及第二加密数据,第一加密数据为对第一数值通过同态加密后的数据,第二加密数据为对第二数值通过同态加密后的数据;
发送模块20用于向验证者客户端发送待验证数据,待验证数据包括第一加密数据以及第二加密数据,待验证数据指示第一数值和第二数值存在的第一关系,以使得验证者客户端基于第一加密数据和第二加密数据存在的第二关系,验证第一关系。
在可选的实施方式中,确定模块10在确定第一加密数据以及第二加密数据时,用于接收来自验证者客户端的第一加密数据,第一加密数据由验证者客户端对第一数值通过同态加密得到;确定第二数值,并基于同态加密对第二数值进行加密,得到第二加密数据。
在可选的实施方式中,第一加密数据是由验证者客户端应用加密数组构造算法基于第一数值转换成的二进制数生成的,第一加密数据为二维数组;
发送模块20在向验证者客户端发送待验证数据时,用于将第二数值转换成二进制数;
应用二进制数组编码算法对第二数值转换成的二进制数进行编码处理,生成第二加密数据;第二加密数据为包括多个二进制数的数组;
应用置换算法将第二加密数据的多个二进制数映射到二维数组中,生成置换数组;
应用混淆算法对置换数组进行混淆处理,生成待验证数据;待验证数据为混淆数组。
在可选的实施方式中,发送模块20在应用二进制数组编码算法对第二数值转换成的二进制数进行编码处理,生成第二加密数据时,用于应用0-编码算法对第二数值的二进制数进行计算,生成第二加密数据;第二加密数据为包括多个二进制数的0-编码列表。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法实施例一中的对应过程,在此不再赘述。
本申请实施例提供的基于区块链的零知识证明装置,与上述实施例一提供的基于区块链的零知识证明方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
实施例四:
如图5所示,本申请实施例还提供另一种基于区块链的零知识证明装置,该装置包括:接收模块50以及验证模块60。
接收模块50用于获取接收证明者客户端发送的待验证数据,待验证数据包括第一加密数据以及第二加密数据,待验证数据指示第一数值和第二数值存在的第一关系;第一加密数据为对第一数值通过同态加密后的数据,第二加密数据为对第二数值通过同态加密后的数据;
验证模块60用于基于第一加密数据和第二加密数据存在的第二关系,验证第一关系。
在可选的实施方式中,该装置还包括加密模块,用于确定第一数值,并基于同态加密对第一数值进行加密,得到第一加密数据;
传输模块,用于向证明者客户端发送第一加密数据,以使得证明者客户端确定第一加密数据以及第二加密数据;第二加密数据由证明者客户端对第二数值通过同态加密得到。
在可选的实施方式中,加密模块在基于同态加密对第一数值进行加密,得到第一加密数据时,用于生成密钥对,密钥对包括验证者公钥和验证者私钥;将第一数值转换成二进制数;应用加密数组构造算法基于第一数值转换成的二进制数以及验证者公钥,生成第一加密数据;第一加密数据为二维数组。
在可选的实施方式中,待验证数据为由证明者客户端应用混淆算法基于验证者公钥以及置换数组生成的混淆数组;置换数组是由证明者客户端基于第一加密数据和第二加密数据生成的;
验证模块60在基于第一加密数据和第二加密数据存在的第二关系,验证第一关系时,用于应用数据解密算法基于验证者私钥对混淆数组进行解密;
若解密后的混淆数组中存在等于1的数据项,则确定第一关系为真,验证通过。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法实施例二中的对应过程,在此不再赘述。
实施例五
本申请实施例还提供了一种基于区块链的零知识证明系统,该系统是一个支持零知识证明机制的区块链系统,满足账户隐私数据可用不可见的隐私保护需求。
参照图6和图7,该系统包括上述的验证者客户端(成员A)和上述的证明者客户端(成员B);
基于零知识证明的流程特性,该系统在运行时主要分为两个阶段:
阶段一:发起验证,本阶段主要由成员A生成需要比较的第一隐私数据data1,经过乘法同态加密算法(这里包括RSA非对称密码算法)加密后,形成第一加密数据Enc(data1),调用智能合约,将第一加密数据Enc(data1)存储到成员A所在组织的区块链节点上,形成区块Block1;区块Block1同步到成员B所在组织的区块链节点上;
阶段二:结果验证,本阶段主要由成员B(证明者)将需要验证的第二隐私数据data2,经过乘法同态加密算法加密后,形成第二加密数据Enc(data2),将第一加密数据Enc(data1)与第二加密数据Enc(data2)进行一系列算法转换得到Func(Enc(data1))与Func(Enc(data2)),调用智能合约,将转换后数据进行上链存储,存储到成员B所在组织的区块链节点上,形成区块Block2;区块Block2同步到成员A所在组织的区块链节点上;成员A获取Func(Enc(data1))与Func(Enc(data2)),比较这两个数据,得到验证结果。
为了便于理解,下面参照图8对本申请实施例提供的基于区块链的零知识证明系统的应用场景进行描述:
零知识证明系统运行过程中,主要分为发起验证阶段和结果验证阶段两个阶段,描述如下:
发起验证阶段:
1.验证者客户端A通过ZKP服务将加密过的第一隐私数据作为交易1发布至网络,同时通过存储服务对交易1备案;
2.证明者客户端B监听网络上新发布的交易1,获得加密过的特定阈值;
具体的,验证者客户端A通过ZKP服务对第一隐私数据进行加密生成第一加密数据,并将第一加密数据作为交易1通过调用智能合约上链存储并发布至验证者网络;验证者网络通过网络传输服务器将数据同步至证明者网络;其中,验证者客户端A为验证者网络的节点,证明者客户端B为证明者网络的节点;证明者客户端B通过监听证明者网络获取交易1中的第一加密数据。
结果验证阶段:
3.证明者客户端B通过ZKP服务的一系列算法(包括0-编码算法、置换算法和混合算法)对隐私数据进行保密处理,并作为交易2发布至网络,同时通过存储服务对交易2备案;
4.验证者客户端A通过监听网络上发布的交易2,获得节点B的加密隐私数据;
5.验证者客户端A通过ZKP服务对加密隐私数据解密,既不泄露隐私数据本身又能获得可用的验证结果;
6.验证者客户端A将验证结果发布至网络并在存储服务中备案,以便将来查询结果。
具体的,证明者客户端B通过ZKP服务对第二隐私数据进行加密生成第二交易数据;证明者客户端B通过ZKP对获取的第一加密数据和生成的第二加密数据进行保密处理,得到包括处理后的第一加密数据以及第二加密数据的零知识数据,并将零知识数据通过调用智能合约上链发布至证明者网络;证明者网络通过网络传输服务器将数据同步至验证者网络;验证者客户端A通过监听验证者网络获取零知识数据;验证者客户端A将零知识数据进行验证,生成验证结果;验证者客户端A将验证结果发布至验证者网络。
在整个阶段,证明者客户端的执行步骤包括:
a1,获取验证者客户端发布的验证交易;其中,验证交易包括第一加密数据,第一加密数据是由验证者客户端将第一隐私数据(即第一数值)输入至零知识证明的加密函数生成的;第一隐私数据是验证者客户端需要对外界不可见的数据,第一隐私数据为十进制数;
第一加密数据为加密数组,加密数组是应用加密数组构造算法基于第一隐私数据转换成的二进制数以及验证者公钥生成的;验证者公钥是由验证者客户端生成的;
a2,将第二隐私数据(即第二数值)输入至零知识证明的编码函数,生成第二加密数据;第二隐私数据是证明者客户端需要对外界不可见的数据,第二隐私数据为十进制数;
a3,将第一加密数据以及第二加密数据输入至零知识证明的证明函数,生成零知识数据;
a4,基于零知识数据生成证明交易,并将证明交易发布至证明者网络,证明者网络将证明交易同步至验证者网络,以使验证者客户端通过监听验证者网络获取证明交易,并应用零知识证明的验证函数对零知识数据进行验证生成验证结果;当验证函数的输出结果指示第一隐私数据大于第二隐私数据,则验证结果为证明交易通过。
在可选的实施方式中,上述步骤a1可以通过以下步骤执行:
1、通过监听与验证者客户端所在的验证者网络交易同步的证明者网络获取验证者客户端发布的验证交易。
具体的,验证者客户端将验证者客户端的第一隐私数据输入至零知识证明的加密函数生成第一加密数据,基于第一加密数据生成验证交易,通过调用智能合约将验证交易发布到验证者客户端所在的验证者网络,同时通过存储服务对验证交易备案;
验证者网络通过网络传输服务将验证交易同步到证明者客户端所在的证明者网络,证明者客户端通过监听证明者网络获取验证交易。
在可选的实施方式中,上述的加密函数是基于乘法同态加密算法生成的。
在可选的实施方式中,上述的加密函数选用表1的用于将第一隐私数据构造为加密数组的加密数组构造算法。
本实施例中,第一加密数据为应用加密数组构造算法基于第一隐私数据转换的二进制数所生成的加密数组。
表1加密数组构造算法
功能 用于将验证者隐私数据构造为加密数组
Input 验证者隐私数据的二进制数x<sub>n</sub>x<sub>n-1</sub>...x<sub>1</sub>、验证者公钥PK
Output 加密数组T
具体的,应用加密数组构造算法得到第一加密数据的流程如下:
Step1:第一隐私数据(又称为验证者隐私数据)为X,X的二进制数为xnxn-1...x1;生成密钥对PK、SK。
Step2:验证者客户端构造一个2*n的数组T[i],[j],i表示数组行序号,i∈{0,1},j表示数组列序号,1≤j≤n,i、j均取整数,xk对应上述X的二进制数xnxn-1...x1中每一位的原值,
Figure BDA0002597045320000181
对应上述X的二进制数xnxn-1...x1中每一位的取反值,如下:
Figure BDA0002597045320000182
验证者客户端(验证节点)将生成的加密数组T通过调用智能合约发布到验证者网络。
在可选的实施方式中,步骤a2可以通过以下步骤执行:
1将第二隐私数据转换成二进制数;
2应用表2的0-编码算法对第二隐私数据的二进制数进行计算生成第二加密数据;第二加密数据为包括多个二进制数的0-编码列表。
表2 0-编码算法
Figure BDA0002597045320000183
具体的,参照表2,应用0-编码算法得到第二加密数据的流程如下:
Step3:第二隐私数据(又称为证明者隐私数据)为Y,Y的二进制数为ynyn-1...y1
对第二隐私数据的二进制数按照图9的步骤执行,得到0-编码列表
Figure BDA0002597045320000184
在可选的实施方式中,证明函数包括表3的置换算法和表4的混淆算法,步骤a3可以通过以下步骤执行:
a31应用置换算法将0-编码列表中的多个二进制数映射到加密数组中,生成置换数组;
表3置换算法:
Figure BDA0002597045320000191
具体的,应用置换算法生成置换数组的过程如下:
step4:证明者客户端将
Figure BDA0002597045320000192
中每一个二进制数t()的每一位表示t()nt()n-1...t()1,其中n为每个t()的二进制位长度,再对
Figure BDA0002597045320000193
中每个t()计算Ct()=T[t()n][n]⊙T[t()n-1][n-1]⊙...⊙T[t()1][1],其中T之间的运算为同或运算(相同取1,不同取0),以此类推对每个t(1),t(2),...,t(m)计算C得到置换数组C1、C2、...、Cm
例如:将t(1)表示为t(1)=t(1)nt(1)n-1...t(1)1,对t(1)计算Ct(1)=T[t(1)n][n]⊙T[t(1)n-1][n-1]⊙...⊙T[t(1)1][1],Ct(1)中n为t(1)的二进制长度。
a32应用混淆算法基于验证者公钥以及置换数组生成零知识数据,零知识数据为混淆数组。
表4混淆算法
功能 用于证明者产生随机密文数组来混淆数组C
Input 验证者公钥PK、置换数组C<sub>1</sub>、C<sub>2</sub>、...、C<sub>m</sub>
Output 混淆数组C<sub>n</sub>={C<sub>1</sub>、C<sub>2</sub>、...、C<sub>m</sub>、Z<sub>m+1</sub>、Z<sub>m+2</sub>、...、Z<sub>n</sub>},C<sub>n</sub>内元素顺序随机
具体的,应用混淆算法得到零知识证据的过程如下:
Step5:证明者客户端生成l个随机数,并用公钥PK进行RSA非对称加密算法进行加密得到l个密文Zm+1、Zm+2、...、Zn,l=n-m,n为上述step2所得的T数组列数也为验证者隐私数据X的二进制位数,m为上述step4所得数组C的项数也为证明者隐私数据Y的二进制数的0-编码的项数。
Step6:证明者客户端将C1、C2、...、Cm和Zm+1、Zm+2、...、Zn随机顺序组合构成混淆数组Cn,证明者客户端(证明节点)再通过调用智能合约将混淆数组Cn发布到证明者网络。
在可选的实施方式中,该方法还包括:对证明交易进行备案。
例如,通过存储服务对证明交易进行备案,方便后期重新进行证明和验证。
证明者客户端的执行步骤包括:
b1,获取证明者客户端发布的证明交易;其中,证明交易包括由证明者客户端将证明者客户端的第二加密数据以及验证者客户端的第一加密数据输入至零知识证明的证明函数生成的零知识数据;
上述的第二加密数据是证明者客户端将证明者客户端的第二隐私数据输入至零知识证明的编码函数生成的;上述的第一加密数据是验证者客户端将验证者客户端的第一隐私数据输入至零知识证明的加密函数生成的;第一加密数据是证明者客户端从验证者客户端所在的验证者网络发布的验证交易获取的;
b2,应用零知识证明的验证函数对零知识数据进行验证生成验证结果;
在可选的实施方式中,零知识数据为由证明者客户端应用混淆算法基于验证者公钥以及置换数组生成的混淆数组,置换数组是由证明者客户端基于第一加密数据和第二加密数据计算生成的,具体计算过程可以参照实施例一的相关内容,这里不作过多赘述。
在可选的实施方式中,上述的验证函数选用表5的用于对零知识证据解密得到验证结果的数组解密算法,步骤b2可以通过以下步骤执行:应用零知识证明的数据解密算法基于验证者私钥对混淆数组进行解密;验证者私钥是由验证者客户端生成的,验证者公钥和验证者私钥组成密钥对;若解密后的混淆数组中存在等于1的数据项,则指示第一隐私数据大于第二隐私数据,验证结果为证明交易通过。
表5数组解密算法:
功能 将混淆数组解密实现在明文不可见情况下得到验证结果
Input 混淆数组C<sub>n</sub>
Output 验证结果(通过/不通过)
具体的,应用数据解密算法得到验证结果的过为:
Step7:验证者用私钥SK解密混淆数组Cn,若解密结果中有一项D(Ci)为1(1≤i≤n),则说明第一隐私数据X>第二隐私数据Y,验证通过。
验证者客户端通过应用零知识证明对加密的隐私数据(混淆数组)解密,既不泄露隐私数据本身又能获得可用的验证结果。
在可选的实施方式中,该方法还包括:
b3,将验证结果发布至验证者网络,并对验证结果进行备案。
具体的,最后验证者客户端(即验证节点)通过调用智能合约将验证结果发布到验证者网络,并在存储服务中进行备案,以便将来查询结果。
需要说明的是,该方法还可以包括:基于第一加密数据生成验证交易,并将验证交易发布至验证者网络;对验证交易进行备案。
具体的,验证者客户端将验证者客户端的第一隐私数据输入至零知识证明的加密函数生成第一加密数据;基于第一加密数据生成验证交易,例如将加密过的第一隐私数据(即第一数值)作为验证交易,通过调用智能合约将验证交易发布至验证者网络,同时通过存储服务对验证交易进行备案,方便后期重新进行证明和验证。
在可选的实施方式中,该系统提供查询服务:根据存储服务中数据库保存的交易记录结构,查询交易结果,方便后期重新进行证明和验证。
需要指出的是,在使用该系统之前需要进行初始化配置用以生成相关基础信息,例如服务初始化中包括初始化ZKP服务,并生成用于加密的密钥对;
该系统在对区块链配置时,将验证者和证明者分属到不同的组织。且验证者和证明者在使用服务之前,需要联盟管理员创建channel、部署chaincode,通过BaaS功能及权限配置控制可进行区块链配置的节点范围;其中,chaincode的instantiate采用“OR”策略;鉴于证明性,Channel仅需要数据链。该系统中验证者和证明者对消息的加密处理结果保存在数据链。
在可选的实施方式中,ZKP服务包括以下算法:在发起验证阶段的用于将第一隐私数据构造为加密数组T的加密数组构造算法、在证明结果阶段的用于将第二隐私数据转化为0-编码列表的0-编码算法、用于将0-编码列表中的多个二进制数映射到加密数组T中生成置换数组的置换算法、用于第二客户端生成混淆数组的混淆算法以及用于将混淆数组解密实现在明文不可见情况下得到验证结果的数组解密算法。
在可选的实施方式中,参照图10,ZKP服务还可以使用具有全同态性的密码算法实现。这里的全同态性的密码算法实现全同态加密,全同态加密指存在算法E,既满足加法同态性,即E(x+y)=E(x)⊕E(y),也满足乘法同态性,即E(x*y)=E(x)E(y),同时不泄露x和y。
在可选的实施方式中,该系统可以使用Java语言开发,基于fabric的区块链网络环境,进行零知识证明的区块链数据存储,实现数据可用不可见。
该系统通过提供ZKP服务,在服务中支持完成零知识证明的算法组合,保障用户隐私数据可用不可见。相比现有技术,本申请提供的系统在半诚实环境中是安全有效的,且在实际中节省了计算时间和通信带宽。理论上,验证者计算复杂度为3nlog p,证明者计算复杂度为2nlog p+4n–6,通信复杂度为6nlog p。
本申请实施例还提供了一种电子设备,包括存储器、处理器及存储在上述存储器上并可在上述处理器上运行的计算机程序,上述处理器执行上述计算机程序时实现上述的基于区块链的零知识证明方法的步骤。
参见图11所示的电子设备100的结构示意图,该电子设备包括:处理器80,存储器81,总线82和通信接口83,上述处理器80、通信接口83和存储器81通过总线82连接;处理器80用于执行存储器81中存储的可执行模块,例如计算机程序。
其中,存储器81可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口83(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接。
总线82可以是ISA总线、PCI总线或EISA总线等。图10中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器81用于存储程序,上述处理器80在接收到执行指令后,执行上述程序,前述本申请实施例任一实施例揭示的过程定义的装置所执行的方法可以应用于处理器80中,或者由处理器80实现。
处理器80可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器80中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器80可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。该存储介质位于存储器81,处理器80读取存储器81中的信息,结合其硬件完成上述方法的步骤。
本申请实施例还提供了一种计算机可读存储介质,上述计算机可读存储介质上存储有计算机程序,上述计算机程序被处理器运行时执行上述基于区块链的零知识证明方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可运行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地运行,它们有时也可以按相反的顺序运行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用运行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。

Claims (13)

1.一种基于区块链的零知识证明方法,其特征在于,所述方法包括:
确定第一加密数据以及第二加密数据,所述第一加密数据为对第一数值通过同态加密后的数据,所述第二加密数据为对第二数值通过同态加密后的数据;
向验证者客户端发送待验证数据,所述待验证数据包括所述第一加密数据以及所述第二加密数据,所述待验证数据指示所述第一数值和所述第二数值存在的第一关系,以使得所述验证者客户端基于所述第一加密数据和所述第二加密数据存在的第二关系,验证所述第一关系。
2.根据权利要求1所述的方法,其特征在于,确定第一加密数据以及第二加密数据的步骤,包括:
接收来自验证者客户端的第一加密数据,所述第一加密数据由所述验证者客户端对所述第一数值通过同态加密得到;
确定第二数值,并基于所述同态加密对所述第二数值进行加密,得到第二加密数据。
3.根据权利要求2所述的方法,其特征在于,所述第一加密数据是由验证者客户端应用加密数组构造算法基于第一数值转换成的二进制数生成的,所述第一加密数据为二维数组;
向所述验证者客户端发送待验证数据的步骤,包括:
将第二数值转换成二进制数;
应用二进制数组编码算法对第二数值转换成的二进制数进行编码处理,生成第二加密数据;所述第二加密数据为包括多个二进制数的数组;
应用置换算法将所述第二加密数据的多个二进制数映射到所述二维数组中,生成置换数组;
应用混淆算法对置换数组进行混淆处理,生成待验证数据;所述待验证数据为混淆数组。
4.根据权利要求3所述的方法,其特征在于,应用二进制数组编码算法对第二数值转换成的二进制数进行编码处理,生成第二加密数据的步骤,包括:
应用0-编码算法对第二数值的二进制数进行计算,生成第二加密数据;所述第二加密数据为包括多个二进制数的0-编码列表。
5.一种基于区块链的零知识证明方法,其特征在于,所述方法包括:
接收证明者客户端发送的待验证数据,所述待验证数据包括第一加密数据以及第二加密数据,所述待验证数据指示所述第一数值和所述第二数值存在的第一关系;所述第一加密数据为对第一数值通过同态加密后的数据,所述第二加密数据为对第二数值通过同态加密后的数据;
基于所述第一加密数据和所述第二加密数据存在的第二关系,验证所述第一关系。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
确定第一数值,并基于所述同态加密对所述第一数值进行加密,得到第一加密数据;
向证明者客户端发送第一加密数据,以使得证明者客户端确定所述第一加密数据以及第二加密数据;所述第二加密数据由所述证明者客户端对所述第二数值通过同态加密得到。
7.根据权利要求6所述的方法,其特征在于,基于所述同态加密对所述第一数值进行加密,得到第一加密数据的步骤,包括:
生成密钥对,所述密钥对包括验证者公钥和验证者私钥;
将第一数值转换成二进制数;
应用加密数组构造算法基于第一数值转换成的二进制数以及验证者公钥,生成第一加密数据;所述第一加密数据为二维数组。
8.根据权利要求7所述的方法,其特征在于,所述待验证数据为由证明者客户端应用混淆算法基于验证者公钥以及置换数组生成的混淆数组;所述置换数组是由证明者客户端基于第一加密数据和第二加密数据生成的;
基于所述第一加密数据和所述第二加密数据存在的第二关系,验证所述第一关系的步骤,包括:
应用数据解密算法基于验证者私钥对所述混淆数组进行解密;
若解密后的混淆数组中存在等于1的数据项,则确定所述第一关系为真,验证通过。
9.一种基于区块链的零知识证明装置,其特征在于,包括:
确定模块,用于确定第一加密数据以及第二加密数据,所述第一加密数据为对第一数值通过同态加密后的数据,所述第二加密数据为对第二数值通过同态加密后的数据;
发送模块,用于向验证者客户端发送待验证数据,所述待验证数据包括所述第一加密数据以及所述第二加密数据,所述待验证数据指示所述第一数值和所述第二数值存在的第一关系,以使得所述验证者客户端基于所述第一加密数据和所述第二加密数据存在的第二关系,验证所述第一关系。
10.一种基于区块链的零知识证明装置,其特征在于,包括:
接收模块,用于接收证明者客户端发送的待验证数据,所述待验证数据包括第一加密数据以及第二加密数据,所述待验证数据指示所述第一数值和所述第二数值存在的第一关系;所述第一加密数据为对第一数值通过同态加密后的数据,所述第二加密数据为对第二数值通过同态加密后的数据;
验证模块,用于基于所述第一加密数据和所述第二加密数据存在的第二关系,验证所述第一关系。
11.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求1至4任一项所述的方法的步骤。
12.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求5至8任一项所述的方法的步骤。
13.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器运行时执行上述权利要求1至8任一项所述的方法的步骤。
CN202010712581.7A 2020-07-22 2020-07-22 基于区块链的零知识证明方法、装置及电子设备 Pending CN111885056A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010712581.7A CN111885056A (zh) 2020-07-22 2020-07-22 基于区块链的零知识证明方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010712581.7A CN111885056A (zh) 2020-07-22 2020-07-22 基于区块链的零知识证明方法、装置及电子设备

Publications (1)

Publication Number Publication Date
CN111885056A true CN111885056A (zh) 2020-11-03

Family

ID=73155315

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010712581.7A Pending CN111885056A (zh) 2020-07-22 2020-07-22 基于区块链的零知识证明方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN111885056A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113328863A (zh) * 2021-08-03 2021-08-31 北京电信易通信息技术股份有限公司 一种基于零知识证明的移动设备数据采集方法及系统

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103095453A (zh) * 2011-07-08 2013-05-08 Sap股份公司 应用私有集合交集的公钥加密的布隆过滤器
WO2015107201A1 (en) * 2014-01-17 2015-07-23 Christian Franck Method and device for anonymous communication
CN108021821A (zh) * 2017-11-28 2018-05-11 北京航空航天大学 多中心区块链交易隐私保护系统及方法
CN108711105A (zh) * 2018-05-16 2018-10-26 四川吉鼎科技有限公司 一种基于区块链的安全交易验证方法及系统
CN109410056A (zh) * 2018-10-10 2019-03-01 南京邮电大学 一种电动汽车充电系统实现去中心化安全交易的方法
CN109687965A (zh) * 2019-02-18 2019-04-26 哈尔滨工业大学(深圳) 一种保护网络中用户身份信息的实名认证方法
CN110299987A (zh) * 2019-06-24 2019-10-01 暨南大学 一种基于同态加密的百万富翁问题解决方法
CN110505046A (zh) * 2019-07-29 2019-11-26 深圳壹账通智能科技有限公司 多数据提供方加密数据跨平台零知识校验方法、装置及介质
US20200028693A1 (en) * 2018-07-17 2020-01-23 Huawei Technologies Co., Ltd. Verifiable Encryption Based on Trusted Execution Environment

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103095453A (zh) * 2011-07-08 2013-05-08 Sap股份公司 应用私有集合交集的公钥加密的布隆过滤器
WO2015107201A1 (en) * 2014-01-17 2015-07-23 Christian Franck Method and device for anonymous communication
CN108021821A (zh) * 2017-11-28 2018-05-11 北京航空航天大学 多中心区块链交易隐私保护系统及方法
CN108711105A (zh) * 2018-05-16 2018-10-26 四川吉鼎科技有限公司 一种基于区块链的安全交易验证方法及系统
US20200028693A1 (en) * 2018-07-17 2020-01-23 Huawei Technologies Co., Ltd. Verifiable Encryption Based on Trusted Execution Environment
CN109410056A (zh) * 2018-10-10 2019-03-01 南京邮电大学 一种电动汽车充电系统实现去中心化安全交易的方法
CN109687965A (zh) * 2019-02-18 2019-04-26 哈尔滨工业大学(深圳) 一种保护网络中用户身份信息的实名认证方法
CN110299987A (zh) * 2019-06-24 2019-10-01 暨南大学 一种基于同态加密的百万富翁问题解决方法
CN110505046A (zh) * 2019-07-29 2019-11-26 深圳壹账通智能科技有限公司 多数据提供方加密数据跨平台零知识校验方法、装置及介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
韩静: "乘法同态加密的百万富翁协议的改进", 《黄山学院学报》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113328863A (zh) * 2021-08-03 2021-08-31 北京电信易通信息技术股份有限公司 一种基于零知识证明的移动设备数据采集方法及系统
CN113328863B (zh) * 2021-08-03 2021-11-02 北京电信易通信息技术股份有限公司 一种基于零知识证明的移动设备数据采集方法及系统

Similar Documents

Publication Publication Date Title
CN108292402B (zh) 用于信息的安全交换的公共秘密的确定和层级确定性密钥
JP5925969B2 (ja) 2パーティ秘匿関数計算向けの入力整合性検証
US10880100B2 (en) Apparatus and method for certificate enrollment
CN108418686A (zh) 一种多分布式的sm9解密方法与介质及密钥生成方法
CN113162752B (zh) 基于混合同态加密的数据处理方法和装置
CN111989891A (zh) 数据处理方法、相关装置及区块链系统
US11979492B2 (en) Computer-implemented system and method for distributing shares of digitally signed data
TW201320701A (zh) 資訊處理裝置、資訊處理方法及程式
JP2020532177A (ja) データの高度なセキュリティ、高速暗号化および、伝送のためのコンピュータ実装システムおよび方法
WO2023184858A1 (zh) 一种时间戳生成方法、装置、电子设备及存储介质
Jayaraman et al. Decentralized certificate authorities
WO2021098152A1 (zh) 基于区块链的数据处理方法、装置及计算机设备
JP7318490B2 (ja) 暗号処理システム及び暗号処理方法
CN118160275A (zh) 阈值签名方案
CN112100144A (zh) 区块链文件共享方法、装置、存储介质及电子设备
CN114268447B (zh) 一种文件传输方法、装置、电子设备和计算机可读介质
CN110266478B (zh) 一种信息处理方法、电子设备
CN111885056A (zh) 基于区块链的零知识证明方法、装置及电子设备
JP2024534237A (ja) 共有暗号キーを生成すること
Liu et al. Proofs of encrypted data retrievability with probabilistic and homomorphic message authenticators
CN117795901A (zh) 生成数字签名份额
CN111737748B (zh) 一种应用于区块链的数据解密方法、装置及存储介质
CN114697001A (zh) 一种基于区块链的信息加密传输方法、设备及介质
Kumari et al. Lightweight encryption with data and device integrity using NLFSR and PUF for the Internet of Medical Things
Kumar et al. Secured data storage and auditing of data integrity over dynamic data in cloud

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20201103

RJ01 Rejection of invention patent application after publication