CN112131227A - 一种基于联盟链的数据查询方法及装置 - Google Patents
一种基于联盟链的数据查询方法及装置 Download PDFInfo
- Publication number
- CN112131227A CN112131227A CN202011049423.4A CN202011049423A CN112131227A CN 112131227 A CN112131227 A CN 112131227A CN 202011049423 A CN202011049423 A CN 202011049423A CN 112131227 A CN112131227 A CN 112131227A
- Authority
- CN
- China
- Prior art keywords
- data
- target
- request
- response message
- node
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2272—Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Data Mining & Analysis (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种基于联盟链的数据查询方法及装置,其中方法为:数据查询方生成第一请求,并根据目标加密数据在目标数据库的目标索引值、所述第一请求,基于预设运算,生成第二请求;所述数据查询方将所述第一请求和所述第二请求通过目标中间节点发送至对应的记账节点;所述目标中间节点和所述记账节点为联盟链中的节点;所述数据查询方通过所述目标中间节点获取来自对应的记账节点的第一响应消息和第二响应消息;所述数据查询方根据所述第一响应消息和所述第二响应消息,得到所述目标加密数据;所述数据查询方对所述目标加密数据解密,得到所述目标加密数据的解密数据。
Description
技术领域
本发明涉及金融科技(Fintech)领域中的区块链(blockchain)领域,尤其涉及一种基于联盟链的数据查询方法及装置。
背景技术
随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技(Fintech)转变,但由于金融行业的安全性、实时性要求,也对技术提出的更高的要求。区块链(blockchain)由于不易篡改等优点在金融行业中广泛运用。当用户有区块链上数据的查询需求时,一般是将用户的片段信息向查询***直接提交(如某人的***账户),查询***利用智能合约调用查询函数的方式进而返回数据。
然而,用户的片段信息提交到查询***后,很容易分析出来用户的情况,如某人的***账户,提交后便暴露出了用户的开卡信息。而且,查询***还知悉了具体查询到的数据。因此,如何实现数据在区块链上也能被有效查询且不向查询***透露个人隐私,是目前亟待解决的问题。
发明内容
本发明提供一种基于联盟链的数据查询方法及装置,解决了现有技术中不能实现数据在区块链上也能被有效查询且不向查询***透露个人隐私的问题。
第一方面,本发明提供一种基于联盟链的数据查询方法,包括:数据查询方生成第一请求,并根据目标加密数据在目标数据库的目标索引值、所述第一请求,基于预设运算,生成第二请求;所述数据查询方将所述第一请求和所述第二请求通过目标中间节点发送至对应的记账节点;所述目标中间节点和所述记账节点为联盟链中的节点;所述数据查询方通过所述目标中间节点获取来自对应的记账节点的第一响应消息和第二响应消息;所述数据查询方根据所述第一响应消息和所述第二响应消息,得到所述目标加密数据;所述数据查询方对所述目标加密数据解密,得到所述目标加密数据的解密数据。
上述方法中,所述数据查询方通过生成第一请求和第二请求,将所述目标索引值隐含在其中,并不会直接传输具体数据内容中的信息,而是发送第一请求和第二请求至目标中间节点,并选取专用于访问所述目标数据库的记账节点,减少其它节点直接对所述目标数据库中加密数据的接触,而且记账节点仅知道第一请求和第二请求是来自目标中间节点的,并不知道是数据查询方发出的,可以通过约定的所述预设运算根据所述第一响应消息和所述第二响应消息,将所述目标加密数据还原出来,得到所述目标加密数据的解密数据,因此,上述方式不会向记账节点披露数据查询方,目标中间节点也并不知道请求和响应消息之间约定的转换方式,只起到一个转发作用,从而保护了数据查询方的隐私。
可选的,所述数据查询方生成第一请求之前,还包括:所述数据查询方根据所述目标加密数据的隐私关键字,按照预设单向映射关系,确定中间索引节点地址;所述中间索引节点地址指向所述目标中间节点;所述目标中间节点存放所述目标索引值;所述数据查询方获取来自所述目标中间节点的所述目标索引值。
上述方法中,所述目标中间节点存放所述目标索引值,可以按照预设单向映射关系,确定中间索引节点地址,再获取来自所述目标中间节点的所述目标索引值,从而记账节点并不知悉是数据查询方需要查询,保障了隐私性。
可选的,所述数据查询方根据所述目标加密数据的隐私关键字,按照预设单向映射关系,确定中间索引节点地址,包括:所述数据查询方基于第一布隆过滤器,通过对所述隐私关键字的至少一轮哈希函数的映射,从而对所述第一布隆过滤器进行至少一轮更新,得到第二布隆过滤器;所述数据查询方根据所述第二布隆过滤器,得到所述中间索引节点地址。
上述方法中,布隆过滤器是高效的单向映射关系,无从分析得到所述第二布隆过滤器中间的每一轮更新过程,从而可以通过高效又保密的方式,得到所述中间索引节点地址。
可选的,所述预设运算为异或逻辑运算;所述数据查询方生成第一请求,包括:所述数据查询方根据加密数据的索引的数量N,随机生成具有N位数据的第一请求;其中,N位数据中的每位代表对应的索引,每位的数值不同代表该位是否为数据查询方需获取的目标索引值。
上述方式下,所述数据查询方根据加密数据的索引的数量N,随机生成具有N位数据的第一请求,从而通过基于异或运算得到可用指示数据查询方需获取的目标索引值,将目标加密数据的目标索引值隐藏在其中。
可选的,所述第一响应消息是记账节点基于所述预设运算,对第一加密数据进行处理得到的;所述第二响应消息是记账节点基于所述预设运算,对第二加密数据进行处理得到的;所述第一加密数据是从所述目标数据库中获取的与所述第一请求对应的加密数据;所述第二加密数据是从所述目标数据库中获取的与所述第二请求对应的加密数据;所述数据查询方根据所述第一响应消息和所述第二响应消息,得到所述目标加密数据,包括:所述数据查询方根据所述第一响应消息和所述第二响应消息,基于所述预设运算,得到所述目标加密数据。
上述方式下,所述第一响应消息、所述第二响应消息,都是基于所述预设运算得到的,从而所述数据查询方可以根据所述第一响应消息和所述第二响应消息,基于所述预设运算,得到所述目标加密数据,即通过约定预设运算,将所述目标加密数据最终还原出来。
可选的,所述数据查询方生成第一请求之前,还包括:所述数据查询方生成数据访问请求,并通过所述联盟链发送至数据拥有方;所述数据访问请求用于所述数据拥有方将自身拥有的数据通过所述数据查询方的公钥加密后存储至所述目标数据库。
上述的方式下,所述数据查询方生成数据访问请求,并通过所述联盟链发送至数据拥有方,从而增加了保密性。
第二方面,本发明提供一种基于联盟链的数据查询方法,包括:目标中间节点获取来自数据查询方的第一请求和第二请求;所述第二请求是根据目标加密数据在目标数据库的目标索引值、所述第一请求,基于预设运算生成的;所述目标中间节点将所述第一请求和所述第二请求发送至记账节点;所述目标中间节点和所述记账节点为联盟链中的节点;所述目标中间节点获取来自所述记账节点的第一响应消息和第二响应消息;所述目标中间节点发送所述第一响应消息和所述第二响应消息至所述记账节点。
可选的,所述记账节点包括第一记账节点和第二记账节点;所述目标中间节点将所述第一请求和所述第二请求发送至记账节点,包括:所述目标中间节点将所述第一请求发送至所述第一记账节点;所述目标中间节点将所述第二请求发送至所述第二记账节点;所述目标中间节点获取来自所述记账节点的第一响应消息和第二响应消息,包括:所述目标中间节点获取来自所述第一记账节点的所述第一响应消息;所述目标中间节点获取来自所述第二记账节点的所述第二响应消息。
第三方面,本发明提供一种基于联盟链的数据查询方法,包括:记账节点通过目标中间节点获取来自数据查询方的第一请求和\或第二请求;所述第二请求是根据目标加密数据在目标数据库的目标索引值、所述第一请求,基于预设运算生成的;所述目标中间节点和所述记账节点为联盟链中的节点;所述记账节点根据所述第一请求从所述目标数据库中获取第一加密数据,并基于所述第一加密数据得到第一响应消息;和\或所述记账节点根据所述第二请求从所述目标数据库中获取第二加密数据,并基于所述第二加密数据得到第二响应消息;所述第二加密数据包括所述目标加密数据;所述记账节点将所述第一响应消息和\或所述第二响应消息发送至所述目标中间节点。
可选的,所述预设运算为异或逻辑运算;所述第一请求和所述第二请求均包含N位数据;其中,N位数据中的每位代表对应的索引,每位的数值不同代表该位是否为数据查询方需获取的目标索引值;所述记账节点根据所述第一请求从所述目标数据库中获取第一加密数据,并基于所述第一加密数据得到第一响应消息,包括:所述记账节点将所述第一请求划分为多个第一索引值;所述记账节点根据所述第一请求中的N位数据,获取所述多个第一索引值在所述第一加密数据中各自对应的多个第一子加密数据;所述记账节点根据所述多个第一子加密数据,基于所述预设运算,得到所述第一响应消息;所述记账节点根据所述第二请求从所述目标数据库中获取第二加密数据,并基于所述第二加密数据得到第二响应消息,包括:所述记账节点将所述第二请求划分为多个第二索引值;所述记账节点根据所述第二请求中的N位数据,获取所述多个第二索引值在所述第二加密数据中各自对应的多个第二子加密数据;所述多个第二子加密数据包括所述目标加密数据;所述记账节点根据所述多个第二子加密数据,基于所述预设运算,得到所述第二响应消息。
第四方面,本发明提供一种基于联盟链的数据查询装置,包括:生成模块,用于生成第一请求,并根据目标加密数据在目标数据库的目标索引值、所述第一请求,基于预设运算,生成第二请求;处理模块,用于将所述第一请求和所述第二请求通过目标中间节点发送至对应的记账节点;所述目标中间节点和所述记账节点为联盟链中的节点;通过所述目标中间节点获取来自对应的记账节点的第一响应消息和第二响应消息;根据所述第一响应消息和所述第二响应消息,得到所述目标加密数据;对所述目标加密数据解密,得到所述目标加密数据的解密数据。
可选的,所述处理模块还用于:根据所述目标加密数据的隐私关键字,按照预设单向映射关系,确定中间索引节点地址;所述中间索引节点地址指向所述目标中间节点;所述目标中间节点存放所述目标索引值;获取来自所述目标中间节点的所述目标索引值。
可选的,所述处理模块具体用于:基于第一布隆过滤器,通过对所述隐私关键字的至少一轮哈希函数的映射,从而对所述第一布隆过滤器进行至少一轮更新,得到第二布隆过滤器;根据所述第二布隆过滤器,得到所述中间索引节点地址。
可选的,所述预设运算为异或逻辑运算;所述生成模块具体用于:根据加密数据的索引的数量N,随机生成具有N位数据的第一请求;其中,N位数据中的每位代表对应的索引,每位的数值不同代表该位是否为数据查询方需获取的目标索引值。
可选的,所述第一响应消息是记账节点基于所述预设运算,对第一加密数据进行处理得到的;所述第二响应消息是记账节点基于所述预设运算,对第二加密数据进行处理得到的;所述第一加密数据是从所述目标数据库中获取的与所述第一请求对应的加密数据;所述第二加密数据是从所述目标数据库中获取的与所述第二请求对应的加密数据;所述处理模块具体用于:根据所述第一响应消息和所述第二响应消息,基于所述预设运算,得到所述目标加密数据。
可选的,所述生成模块还用于:生成数据访问请求,并通过所述联盟链发送至数据拥有方;所述数据访问请求用于所述数据拥有方将自身拥有的数据通过所述数据查询方的公钥加密后存储至所述目标数据库。
上述第四方面及第四方面各个可选装置的有益效果,可以参考上述第一方面及第一方面各个可选方法的有益效果,这里不再赘述。
第五方面,本发明提供一种计算机设备,包括程序或指令,当所述程序或指令被执行时,用以执行上述第一方面或第二方面或第三方面及各个可选的方法。
第六方面,本发明提供一种存储介质,包括程序或指令,当所述程序或指令被执行时,用以执行上述第一方面或第二方面或第三方面及各个可选的方法。
本发明的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种基于联盟链的数据查询方法的流程示意图;
图2为本发明实施例提供的一种基于联盟链的数据查询方法可应用的架构示意图;
图3为本发明实施例提供的一种基于联盟链的数据查询方法中布隆过滤器的示意图;
图4为本发明实施例提供的一种基于联盟链的数据查询方法的具体流程示意图;
图5为本发明实施例提供的一种基于联盟链的数据查询装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本申请中的缩略语如下:
区块链(Blockchain):是一种按时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。
布隆过滤器(Bloom Filter)是一个二进制向量和一系列随机映射函数,用于检索一个元素是否在一个集合中。
PIR协议(Private information retrieval)私有信息检索是指用户向数据库提交查询时,如何在用户的私有信息不被泄露的情况下完成查询。
在金融机构(银行机构、保险机构或证券机构)在进行业务(如银行的贷款业务、存款业务等)运转过程中,当用户有区块链上数据的查询需求时,一般是将用户的片段信息向查询***直接提交(如某人的***账户),查询***利用智能合约调用查询函数的方式进而返回数据。然而,用户的片段信息提交到查询***后,很容易分析出来用户的情况,如某人的***账户,提交后便暴露出了用户的开卡信息。而且,查询***还知悉了具体查询到的数据。因此,如何实现数据在区块链上也能被有效查询且不向查询***透露个人隐私,是目前亟待解决的问题。这种情况不符合银行等金融机构的需求,无法保证金融机构各项业务的高效运转。为此,如图1所示,本申请提供一种基于联盟链的数据查询方法。
步骤101:数据查询方生成第一请求,并根据目标加密数据在目标数据库的目标索引值、所述第一请求,基于预设运算,生成第二请求。
步骤102:所述数据查询方将所述第一请求和所述第二请求通过目标中间节点发送至对应的记账节点。
所述目标中间节点和所述记账节点为联盟链中的节点;
步骤103:所述数据查询方通过所述目标中间节点获取来自对应的记账节点的第一响应消息和第二响应消息。
步骤104:所述数据查询方根据所述第一响应消息和所述第二响应消息,得到所述目标加密数据。
步骤105:所述数据查询方对所述目标加密数据解密,得到所述目标加密数据的解密数据。
步骤101~步骤105中,所述第一请求可以为随机字符串;所述预设运算可以为满足某些特性的运算,举例来说,所述预设运算满***换律、结合律及自反性。
需要说明的是,步骤101~步骤105中的方法可以应用于图2示出的架构。步骤101~步骤105中的方法应用于图2示出的架构时,是以联盟链为底层链式结构,同时链上可以存储数据文件的摘要,真实数据文件存于链下的目标数据库(如分布式数据库)中。联盟链的区块基本结构包括:区块头和区块体;区块头包括:本区块标识、父区块标识、时间戳、默克尔根;区块体包含了经过验证的、在块创建过程中所发生的交易的所有记录以及存储数据的摘要值以及原始数据文件的真实地址。
步骤101~步骤105中的方法应用于图2示出的架构时,涉及两类角色,分别是数据拥有方和数据查询方。在协议初始阶段,用户拥有非对称密钥对(PK,SK),PK为公钥,SK为私钥,这是在用户加入联盟链时会派生出的密钥对。其中联盟链存储用户公钥PK,本文所提方法中涉及的两类角色,即数据拥有方和数据查询方均为联盟链体系的用户。
图2示出的架构中,基于联盟链的PIR协议中,存在三类节点:记账节点、共识节点以及中间节点。记账节点作用为存储联盟链中的账本消息,每个记账节点都作为一个服务器存在。在联盟链的通用型架构中,通常节点存放数据的摘要或索引信息,在链下的分布式数据库中存放数据的完整信息,在本申请中,每个记账节点上存储数据拥有方共享到联盟链平台上数据的索引值,索引值映射存放在分布式数据库中的实际数据文件的位置,在分布式数据库中存放基于数据查询方公钥加密的数据文件。
共识节点功能和传统联盟链平台中排序服务节点的能力一致,提供保证节点一致性的能力,执行共识协议,在保证容错性的情况下采用预设共识算法,如PBFT共识算法。
中间节点的本质在加入联盟链时仍然是记账节点,但在成为中间节点后便不提供记账的能力。中间节点的能力提供请求中转的功能,中间节点存放该数据文件的索引值,即数据拥有方想要访问数据流程,需要通过数据的关键字找到中间节点地址,再从中间节点拿到存放数据索引值,继而将请求继续传送到记账节点,通过索引值到分布式数据库中访问到加密的数据文件。
需要说明的是,中间节点在进行消息转发时会随机选取记账节点,因为记账节点中的信息都是同步一致的,所以不影响选取的具体记账节点。记账节点收到发送的请求后会依据请求的参数计算得出索引值,查找在分布式数据库中相应的加密数据文件,找到后将加密文件返回给数据查询方用户。因为用户发送的访问请求不止一条,请求用户在拿到响应消息后通过重构算法计算得到所需要的加密文件,之后利用自身的私钥进行解密,从而获得数据文件。在本方案中数据拥有方和数据查询方无法产生直接交互,两类用户都直接与联盟链平台进行交互。
图2示出的架构中,采用公私钥加密机制保证了存储目标数据库的存储服务器端即使拿到响应消息也无法得知真实的数据文件,保证数据拥有方和数据查询方用户的隐私安全。
图2示出的架构中,步骤101~步骤105的方法可以由三部分组成:(Q,A,C),其中:Q是用户查询生成算法,A是服务器查询响应算法,C是用户结果重构算法。本方案中为平衡***开销,保障信息论的私有信息检索,可以采用双服务器副本,即数据查询方的查询请求为两条,最终依据两条返回的响应结果计算得出目标数据。
其中用户查询生成算法Q包括生成由0和1组成的n位随机序列{0,1}n,n取决于***初始时的参数,随机序列用以计算数据索引值,该随机序列为请求q1;用户查询生成算法Q生成的请求q2包括q1的随机序列以及目标数据的索引i进行异或而成,即q2=q1异或i,用户生成好请求后将请求发送到中间节点,中间节点收到消息后依次将两条不同的请求消息发送到不同的记账节点。
其中A为服务器查询响应算法,记账节点收到请求q1后,基于索引值的区间大小对随机序列进行分组,将n位随机序列分为m组,每n/m位序列计算一次索引值,对应各索引值到分布式数据库服务器中获取索引数据,之后将各索引数据进行异或得到a1,即a1=E(data1)⊕E(data2)⊕……⊕E(data(n/m));记账节点收到请求q2后,与q1的处理流程类似,但因本请求中包含目标数据的索引值,所以返回a2=E(data1)⊕E(data2)⊕……⊕E(data(n/m))⊕E(datai),a1,a2响应消息均返回到中间节点。
其中C为用户结果重构算法,数据查询方收到响应消息后进行重构,c=a1异或a2,得到利用查询方公钥加密的目标数据E(datai),利用自身的私钥对数据进行解密,即得到目标数据。
一种可选实施方式中,步骤101之前,可以执行如下步骤:
所述数据查询方生成数据访问请求,并通过所述联盟链发送至数据拥有方;所述数据访问请求用于所述数据拥有方将自身拥有的数据通过所述数据查询方的公钥加密后存储至所述目标数据库。
需要说明的是,具体来说,上述实施方式过程可以为:
在数据查询方向联盟链发送申请访问数据的请求后,该请求参数包括<数据关键字W,数据拥有方名称name>;联盟链会发送消息给数据拥有方并将数据查询方的公钥PK传递给数据拥有方,数据拥有方利用查询方所给的公钥PK加密消息数据后重新返还给联盟链平台进行分布式存储。
因此,数据拥有方的流程可以如下:
1.数据拥有方在进行数据存储上链时,需要公开所存数据的隐私关键字W,隐私关键字W可以通过字符串或字符形式显示,利用布隆过滤器的k个哈希函数对关键字进行计算时可将隐私关键字W转化为ASCLL码值进行计算。
2.数据拥有方根据隐私关键字经布隆过滤器生成包含k个输出的二进制字符串H(W),通过将二进制字符串进行单向散列化映射为中间索引地址。该中间索引地址为联盟链中随机一个中间节点的地址值,拥有方将数据的实际存储地址的目标索引值存放于该中间节点处。
需要说明的是,该中间节点无法通过自身地址逆向解析出布隆过滤器生成的二进制字符串。由布隆过滤器的特性得知一旦关键字W不是目标关键字则无法解析出正确的中间节点地址。所述中间节点能够保护数据访问方与记账节点之间的链接关系,记账节点只能获取到请求消息是从中间节点发出的。
3.在数据查询方递交了访问请求到联盟链平台后,联盟链平台会将访问请求消息传递给数据拥有方,这时数据拥有方申请获取数据查询方的公钥PK,数据拥有方获取公钥PK后加密共享到联盟链上的数据E(data)。同时在分布式服务器上存储加密数据后返回数据的实际存储地址对应的目标索引值,存放于步骤2所示的中间节点中。
因此,一种可选实施方式中,步骤101之前,可以执行如下步骤:
所述数据查询方根据所述目标加密数据的隐私关键字,按照预设单向映射关系,确定中间索引节点地址;所述数据查询方获取来自所述目标中间节点的所述目标索引值。
其中,所述中间索引节点地址指向所述目标中间节点;所述目标中间节点存放所述目标索引值。
如图3所示,上述可选实施方式可以通过布隆过滤器来实现,具体可以如下:
所述数据查询方基于第一布隆过滤器,通过对所述隐私关键字的至少一轮哈希函数的映射,从而对所述第一布隆过滤器进行至少一轮更新,得到第二布隆过滤器;所述数据查询方根据所述第二布隆过滤器,得到所述中间索引节点地址。
具体来说,上述实施方式过程中,通过布隆过滤器的使用,使用概率加密的方法,利用少量的存储空间构造关键词与文档的索引,可以迅速判断出一个元素是否属于某个集合,具有很高的空间和时间效率。由于布隆过滤器存在一定的正向误检率,因此若判断某元素不属于该集合,则该元素一定不属于该集合,但是如果判断某元素属于该集合,则该元素有可能不属于该集合。
布隆过滤器用来做中间节点的地址映射,在数据拥有方公布了共享数据的关键字W后,通过布隆过滤器上的k次哈希函数计算得到k次输出,填充过滤器表,得到一串特定位数的二进制序列H(W),将该序列作为中间节点的地址。关键字W可以为一串字符串或单个字符,通过转换成ASCLL码进行哈希计算。
数据拥有方在共享数据到联盟链平台时首先会公布该数据的关键字W,联盟链平台提供统一的布隆过滤器,即通过k个哈希函数,输出长度为特定比特的二进制值,该值为以符号H(W)标识,H(W)即为中间节点的地址值。
需要说明的是,在中间索引节点地址的生成方案中,也可以不选择利用布隆过滤器进行生成,而是直接随机***内的节点进行指定,担任目标中间节点,但需要每次公开中间索引节点地址,有可能造成对该节点的集中算力攻击,而方案中利用布隆过滤器生成中间索引地址具备随机性的同时也保证了一定的加密安全,增加了对中间索引地址解析的复杂度,在本方案中地址解析的复杂度为O(N),而替代方案中地址解析复杂度为O(1)。
一种可选实施方式中,所述预设运算为异或逻辑运算;步骤101具体可以为:
所述数据查询方根据加密数据的索引的数量N,随机生成具有N位数据的第一请求;其中,N位数据中的每位代表对应的索引,每位的数值不同代表该位是否为数据查询方需获取的目标索引值。
基于所述预设运算为异或逻辑运算的可选实施方式,一种实现方式如下:
所述第一响应消息是记账节点基于所述预设运算,对第一加密数据进行处理得到的;所述第二响应消息是记账节点基于所述预设运算,对第二加密数据进行处理得到的;所述第一加密数据是从所述目标数据库中获取的与所述第一请求对应的加密数据;所述第二加密数据是从所述目标数据库中获取的与所述第二请求对应的加密数据。
具体来说,上述方式可以如下:
其中用户查询生成算法Q包括生成由0和1组成的n位随机序列{0,1}n,n为服务器上存储文件总的索引数(即在服务器中取数据时,索引范围为1至n,第i位上的数值为1则索引为i的数据文件就会被取用,如010111,则索引为2,4,5,6的数据会被取),该随机序列为请求q1;用户查询生成算法Q生成的请求q2包括q1的随机序列以及目标数据的索引i进行异或而成,即在第i位进行异或q2=q1⊕i,(例如q1为010111,目标索引i为5,则在第i位上异或1,例如在q1的序列下0101‘1’1,第五位异或1后取得序列010101,该序列设为q2),用户生成好请求后将请求发送到中间节点,中间节点收到消息后依次将两条不同的请求消息发送到不同的记账节点。
其中A为服务器查询响应算法,记账节点收到请求q1后,依据q1的序列去寻找位数置1所在的索引数据,例如q1为010111,则返回数据为a1=E(data2)异或E(data4)异或E(data5)异或E(data6)(a1字串的表示形式以相互之间拼接的方式,但之间的运算还是以异或符号连接);记账节点收到请求q2后,与q1的处理流程类似,q2为010101,则返回数据a2=E(data2)异或E(data4)异或E(data6);a1,a2响应消息均返回到中间节点。
其中C为用户结果重构算法,数据查询方收到响应消息后进行重构,c=a1异或a2,得到利用查询方公钥加密的目标加密数据E(datai),在本例中得到E(data5)利用自身的私钥对数据进行解密,即得到目标加密数据的解密数据。
步骤104具体可以为:
所述数据查询方根据所述第一响应消息和所述第二响应消息,基于所述预设运算,得到所述目标加密数据。
因此,基于上述描述,数据查询方流程可以如下:
1.数据查询方根据“关键字W”通过布隆过滤器解析出中间索引地址,访问相应地址的节点。
2.数据查询方访问中间节点获取数据真实存储地址的索引值i。
3.在拿到数据实际存储地址的索引值后,首先检查当前区块高度是否发生了变更,若未改变,查询方再通过PIR协议向存储服务器发送访问请求,并在全网共识广播访问请求,在服务器返回的数据中通过智能合约编写的重构算法获得自身所请求的数据。若在拿到数据存储地址后区块高度发生了变更,则证明***数据库内的数据有修改或有增删的情况,这时则判断为发生了冲突,需重新进行数据请求。
数据查询方基于用户查询生成算法Q生成由0和1组成的n位随机序列{0,1}n,n取决于***初始时的参数,随机序列用以计算数据索引值,该随机序列为请求q1;数据查询方将请求q1封装为一个交易记为TX1。数据查询方生成的请求q2包括q1的随机序列以及目标数据的索引i进行异或而成,即q2=q1⊕i,随后将q2封装为交易TX2。用户生成好请求后将请求再次发送到之前由布隆过滤器计算得出的中间节点地址,中间节点收到交易TX1,TX2后依次将两条不同的交易发送到不同的记账节点。
4.记账节点1收到交易TX1后,基于索引值的区间大小对随机序列进行分组,区间定义为一个区间内的二进制位映射为一个区间值。将n位随机序列分为t组,每n/t位序列计算一次索引值,对应各索引值到分布式数据库服务器中获取索引数据,之后将各索引数据进行异或得到a1,即a1=E(data1)⊕E(data2)⊕……⊕E(data(t));记账节点2收到交易TX2后,与收到交易TX1的处理流程类似,但因本请求中包含目标数据的索引值,所以返回a2=E(data1))E(data2)⊕……⊕E(data(t))⊕E(datai),a1,a2响应消息均返回到中间节点。
5.中间节点收到响应消息a1,a2后传回数据查询方,数据查询方收到响应消息后进行重构,c=a1⊕a2,得到利用查询方公钥加密的目标数据E(datai),利用自身的私钥对数据进行解密,即得到目标数据。
需要说明的是,图1示出的流程对于目标中间节点和记账节点也有类似的过程。目标中间节点的流程如下:
目标中间节点获取来自数据查询方的第一请求和第二请求;所述目标中间节点将所述第一请求和所述第二请求发送至记账节点;所述目标中间节点和所述记账节点为联盟链中的节点;所述目标中间节点获取来自所述记账节点的第一响应消息和第二响应消息;所述目标中间节点发送所述第一响应消息和所述第二响应消息至所述记账节点。
所述第二请求是根据目标加密数据在目标数据库的目标索引值、所述第一请求,基于预设运算生成的。
一种可选实施方式中,所述记账节点包括第一记账节点和第二记账节点;所述目标中间节点将所述第一请求和所述第二请求发送至记账节点,步骤可以如下:
所述目标中间节点将所述第一请求发送至所述第一记账节点;所述目标中间节点将所述第二请求发送至所述第二记账节点。
所述目标中间节点获取来自所述记账节点的第一响应消息和第二响应消息,步骤可以如下:
所述目标中间节点获取来自所述第一记账节点的所述第一响应消息;所述目标中间节点获取来自所述第二记账节点的所述第二响应消息。
记账节点的流程如下:
记账节点通过目标中间节点获取来自数据查询方的第一请求和\或第二请求;所述记账节点根据所述第一请求从所述目标数据库中获取第一加密数据,并基于所述第一加密数据得到第一响应消息;和\或所述记账节点根据所述第二请求从所述目标数据库中获取第二加密数据,并基于所述第二加密数据得到第二响应消息;所述第二加密数据包括所述目标加密数据;所述记账节点将所述第一响应消息和\或所述第二响应消息发送至所述目标中间节点。
所述第二请求是根据目标加密数据在目标数据库的目标索引值、所述第一请求,基于预设运算生成的;所述目标中间节点和所述记账节点为联盟链中的节点。
一种可选实施方式中,所述预设运算为异或逻辑运算;所述第一请求和所述第二请求均包含N位数据;其中,N位数据中的每位代表对应的索引,每位的数值不同代表该位是否为数据查询方需获取的目标索引值。
所述记账节点根据所述第一请求从所述目标数据库中获取第一加密数据,并基于所述第一加密数据得到第一响应消息,步骤可以如下:
所述记账节点将所述第一请求划分为多个第一索引值;所述记账节点根据所述第一请求中的N位数据,获取所述多个第一索引值在所述第一加密数据中各自对应的多个第一子加密数据;所述记账节点根据所述多个第一子加密数据,基于所述预设运算,得到所述第一响应消息。
所述记账节点根据所述第二请求从所述目标数据库中获取第二加密数据,并基于所述第二加密数据得到第二响应消息,步骤可以如下:
所述记账节点将所述第二请求划分为多个第二索引值;所述记账节点根据所述第二请求中的N位数据,获取所述多个第二索引值在所述第二加密数据中各自对应的多个第二子加密数据;所述多个第二子加密数据包括所述目标加密数据;所述记账节点根据所述多个第二子加密数据,基于所述预设运算,得到所述第二响应消息。
基于上述描述,结合图4,详细说明本申请提供的基于联盟链的数据查询方法。
1.当联盟链建立后,通过在数据拥有方和数据查询方加入联盟链时会由联盟链平台依据用户ID的字符串,基于密钥派生函数派生出非对称密钥对(PK,SK),其中PK为公钥,SK为私钥,联盟链存储用户公钥PK。
2.在发布共享数据文件到联盟链平台之前,数据拥有方首先会公布该数据的隐私关键字W,关键字W为数据拥有方依据数据文件所定义的描述字符串。联盟链平台提供统一的布隆过滤器组件,数据拥有方选取布隆过滤器中的k个不同的符合均匀随机分布的字符串哈希函数,输出长度为m比特的二进制值,m为通过布隆过滤器映射出的位数组大小,该值为以符号H(W)标识,将H(W)作为中间节点的地址值。
3.数据拥有方根据输出的二进制字符串H(W),通过将二进制字符串进行单向散列化映射为中间索引地址。该中间索引地址为联盟链中随机一个中间节点的地址值,数据拥有方将数据的实际存储地址的索引值存放于该中间节点处。
4.在存放完毕后,便可以从该中间节点出取目标索引值。在数据查询方向联盟链发送申请访问数据的请求后,该请求参数包括<数据关键字W,数据拥有方名称name>关键字W为数据拥有方依据数据文件所定义的描述字符串,数据拥有方名称name为数据拥有方在***内的ID;联盟链会发送消息给数据拥有方并将数据查询方的公钥PK传递给数据拥有方,数据拥有方获取公钥PK后加密共享到联盟链上的数据E(data),其中原始数据为data,加密后的数据为E(data)。同时在分布式服务器上存储加密数据后返回数据的实际存储地址对应的索引值,存放于步骤3所示的节点地址中。
5.数据查询方根据隐私关键字W通过布隆过滤器解析出中间节点地址,访问相应地址的节点,数据查询方访问中间节点获取数据真实存储地址的索引值i。
6.数据查询方在获取了数据实际存储地址的目标索引值后,首先检查当前区块高度是否发生了变更,若在获取了数据存储地址后区块高度发生了变更,则证明目标数据库内的数据有修改或有增删的情况,这时则判断为发生了冲突,需重新进行数据请求。若没改变,则继续进行数据请求。数据查询方基于用户查询生成算法Q生成由0和1组成的n位随机序列{0,1}n,n取决于***初始时的加密复杂度参数,可取128、192、256等,位数越多,加密效果越好,随机序列用以计算数据索引值,该随机序列为请求q1;数据查询方将请求q1封装为一个交易记为TX1。数据查询方生成的请求q2包括q1的随机序列以及目标数据的索引i进行异或而成,即q2=q1异或i,随后将q2封装为交易TX2。用户生成好请求后将请求再次发送到之前由布隆过滤器计算得出的中间节点地址,中间节点收到交易TX1,TX2后依次将两条不同的交易发送到不同的记账节点1和2。
7.记账节点1收到交易TX1后,基于索引值的区间大小对随机序列进行分组,区间大小定义为一个区间内的二进制数可对应映射为一个索引值,将n位随机序列分为t组,n/t对应一个区间,每n/t位序列计算一次索引值,对应各索引值到分布式数据库服务器中获取索引数据,之后将各索引数据进行异或得到a1,即a1=E(data1)⊕E(data2)⊕……⊕E(data(t)),其中E(data1)、E(data2)等加密数据为存储与分布式数据库中的其他加密数据,因为这里的索引值是基于随机序列计算的,所以拿到的其他数据都是随机获取,基于计算出的索引值获取而得。
记账节点2收到交易TX2后,与收到交易TX1的处理流程类似,但因本请求中包含目标数据的索引值,所以返回a2=E(data1)⊕E(data2)⊕……⊕E(data(t))⊕E(datai),a1,a2响应消息均返回到中间节点。
8.中间节点收到响应消息a1,a2后传回数据查询方,数据查询方收到响应消息后进行重构,c=a1异或a2,得到利用查询方公钥加密的目标数据E(datai),利用自身的私钥SK对数据进行解密,即得到目标数据,完成基于联盟链的关键字私有信息检索协议流程。
如图5所示,本发明提供一种基于联盟链的数据查询装置,包括:生成模块501,用于生成第一请求,并根据目标加密数据在目标数据库的目标索引值、所述第一请求,基于预设运算,生成第二请求;处理模块502,用于将所述第一请求和所述第二请求通过目标中间节点发送至对应的记账节点;所述目标中间节点和所述记账节点为联盟链中的节点;通过所述目标中间节点获取来自对应的记账节点的第一响应消息和第二响应消息;根据所述第一响应消息和所述第二响应消息,得到所述目标加密数据;对所述目标加密数据解密,得到所述目标加密数据的解密数据。
可选的,所述处理模块502还用于:根据所述目标加密数据的隐私关键字,按照预设单向映射关系,确定中间索引节点地址;所述中间索引节点地址指向所述目标中间节点;所述目标中间节点存放所述目标索引值;获取来自所述目标中间节点的所述目标索引值。
可选的,所述处理模块502具体用于:基于第一布隆过滤器,通过对所述隐私关键字的至少一轮哈希函数的映射,从而对所述第一布隆过滤器进行至少一轮更新,得到第二布隆过滤器;根据所述第二布隆过滤器,得到所述中间索引节点地址。
可选的,所述预设运算为异或逻辑运算;所述生成模块501具体用于:根据加密数据的索引的数量N,随机生成具有N位数据的第一请求;其中,N位数据中的每位代表对应的索引,每位的数值不同代表该位是否为数据查询方需获取的目标索引值。
可选的,所述第一响应消息是记账节点基于所述预设运算,对第一加密数据进行处理得到的;所述第二响应消息是记账节点基于所述预设运算,对第二加密数据进行处理得到的;所述第一加密数据是从所述目标数据库中获取的与所述第一请求对应的加密数据;所述第二加密数据是从所述目标数据库中获取的与所述第二请求对应的加密数据;所述处理模块502具体用于:根据所述第一响应消息和所述第二响应消息,基于所述预设运算,得到所述目标加密数据。
可选的,所述生成模块501还用于:生成数据访问请求,并通过所述联盟链发送至数据拥有方;所述数据访问请求用于所述数据拥有方将自身拥有的数据通过所述数据查询方的公钥加密后存储至所述目标数据库。
基于同一发明构思,本发明实施例还提供了一种计算机设备,包括程序或指令,当所述程序或指令被执行时,如本发明实施例提供的基于联盟链的数据查询方法及任一可选方法被执行。
基于同一发明构思,本发明实施例还提供了一种计算机可读存储介质,包括程序或指令,当所述程序或指令被执行时,如本发明实施例提供的基于联盟链的数据查询方法及任一可选方法被执行。
本领域内的技术人员应明白,本发明的实施例可提供为方法、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (12)
1.一种基于联盟链的数据查询方法,其特征在于,包括:
数据查询方生成第一请求,并根据目标加密数据在目标数据库的目标索引值、所述第一请求,基于预设运算,生成第二请求;
所述数据查询方将所述第一请求和所述第二请求通过目标中间节点发送至对应的记账节点;所述目标中间节点和所述记账节点为联盟链中的节点;
所述数据查询方通过所述目标中间节点获取来自对应的记账节点的第一响应消息和第二响应消息;
所述数据查询方根据所述第一响应消息和所述第二响应消息,得到所述目标加密数据;
所述数据查询方对所述目标加密数据解密,得到所述目标加密数据的解密数据。
2.如权利要求1所述的方法,其特征在于,所述数据查询方生成第一请求之前,还包括:
所述数据查询方根据所述目标加密数据的隐私关键字,按照预设单向映射关系,确定中间索引节点地址;所述中间索引节点地址指向所述目标中间节点;所述目标中间节点存放所述目标索引值;
所述数据查询方获取来自所述目标中间节点的所述目标索引值。
3.如权利要求2所述的方法,其特征在于,所述数据查询方根据所述目标加密数据的隐私关键字,按照预设单向映射关系,确定中间索引节点地址,包括:
所述数据查询方基于第一布隆过滤器,通过对所述隐私关键字的至少一轮哈希函数的映射,从而对所述第一布隆过滤器进行至少一轮更新,得到第二布隆过滤器;
所述数据查询方根据所述第二布隆过滤器,得到所述中间索引节点地址。
4.如权利要求1至3任一项所述的方法,其特征在于,所述预设运算为异或逻辑运算;
所述数据查询方生成第一请求,包括:
所述数据查询方根据加密数据的索引的数量N,随机生成具有N位数据的第一请求;其中,N位数据中的每位代表对应的索引,每位的数值不同代表该位是否为数据查询方需获取的目标索引值。
5.如权利要求4所述的方法,其特征在于,所述第一响应消息是记账节点基于所述预设运算,对第一加密数据进行处理得到的;所述第二响应消息是记账节点基于所述预设运算,对第二加密数据进行处理得到的;所述第一加密数据是从所述目标数据库中获取的与所述第一请求对应的加密数据;所述第二加密数据是从所述目标数据库中获取的与所述第二请求对应的加密数据;
所述数据查询方根据所述第一响应消息和所述第二响应消息,得到所述目标加密数据,包括:
所述数据查询方根据所述第一响应消息和所述第二响应消息,基于所述预设运算,得到所述目标加密数据。
6.如权利要求1至3任一项所述的方法,其特征在于,所述数据查询方生成第一请求之前,还包括:
所述数据查询方生成数据访问请求,并通过所述联盟链发送至数据拥有方;所述数据访问请求用于所述数据拥有方将自身拥有的数据通过所述数据查询方的公钥加密后存储至所述目标数据库。
7.一种基于联盟链的数据查询方法,其特征在于,包括:
目标中间节点获取来自数据查询方的第一请求和第二请求;所述第二请求是根据目标加密数据在目标数据库的目标索引值、所述第一请求,基于预设运算生成的;
所述目标中间节点将所述第一请求和所述第二请求发送至记账节点;所述目标中间节点和所述记账节点为联盟链中的节点;
所述目标中间节点获取来自所述记账节点的第一响应消息和第二响应消息;
所述目标中间节点发送所述第一响应消息和所述第二响应消息至所述记账节点。
8.如权利要求7所述的方法,其特征在于,所述记账节点包括第一记账节点和第二记账节点;所述目标中间节点将所述第一请求和所述第二请求发送至记账节点,包括:
所述目标中间节点将所述第一请求发送至所述第一记账节点;所述目标中间节点将所述第二请求发送至所述第二记账节点;
所述目标中间节点获取来自所述记账节点的第一响应消息和第二响应消息,包括:
所述目标中间节点获取来自所述第一记账节点的所述第一响应消息;所述目标中间节点获取来自所述第二记账节点的所述第二响应消息。
9.一种基于联盟链的数据查询方法,其特征在于,包括:
记账节点通过目标中间节点获取来自数据查询方的第一请求和\或第二请求;所述第二请求是根据目标加密数据在目标数据库的目标索引值、所述第一请求,基于预设运算生成的;所述目标中间节点和所述记账节点为联盟链中的节点;
所述记账节点根据所述第一请求从所述目标数据库中获取第一加密数据,并基于所述第一加密数据得到第一响应消息;和\或所述记账节点根据所述第二请求从所述目标数据库中获取第二加密数据,并基于所述第二加密数据得到第二响应消息;所述第二加密数据包括所述目标加密数据;
所述记账节点将所述第一响应消息和\或所述第二响应消息发送至所述目标中间节点。
10.如权利要求9所述的方法,其特征在于,所述预设运算为异或逻辑运算;所述第一请求和所述第二请求均包含N位数据;其中,N位数据中的每位代表对应的索引,每位的数值不同代表该位是否为数据查询方需获取的目标索引值;所述记账节点根据所述第一请求从所述目标数据库中获取第一加密数据,并基于所述第一加密数据得到第一响应消息,包括:
所述记账节点将所述第一请求划分为多个第一索引值;所述记账节点根据所述第一请求中的N位数据,获取所述多个第一索引值在所述第一加密数据中各自对应的多个第一子加密数据;所述记账节点根据所述多个第一子加密数据,基于所述预设运算,得到所述第一响应消息;
所述记账节点根据所述第二请求从所述目标数据库中获取第二加密数据,并基于所述第二加密数据得到第二响应消息,包括:
所述记账节点将所述第二请求划分为多个第二索引值;所述记账节点根据所述第二请求中的N位数据,获取所述多个第二索引值在所述第二加密数据中各自对应的多个第二子加密数据;所述多个第二子加密数据包括所述目标加密数据;
所述记账节点根据所述多个第二子加密数据,基于所述预设运算,得到所述第二响应消息。
11.一种基于联盟链的数据查询装置,其特征在于,包括:
生成模块,用于生成第一请求,并根据目标加密数据在目标数据库的目标索引值、所述第一请求,基于预设运算,生成第二请求;
处理模块,用于将所述第一请求和所述第二请求通过目标中间节点发送至对应的记账节点;所述目标中间节点和所述记账节点为联盟链中的节点;通过所述目标中间节点获取来自对应的记账节点的第一响应消息和第二响应消息;根据所述第一响应消息和所述第二响应消息,得到所述目标加密数据;对所述目标加密数据解密,得到所述目标加密数据的解密数据。
12.一种计算机设备,其特征在于,包括程序或指令,当所述程序或指令被执行时,如权利要求1至6或7至8或9至10中任意一项所述的方法被执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011049423.4A CN112131227A (zh) | 2020-09-29 | 2020-09-29 | 一种基于联盟链的数据查询方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011049423.4A CN112131227A (zh) | 2020-09-29 | 2020-09-29 | 一种基于联盟链的数据查询方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112131227A true CN112131227A (zh) | 2020-12-25 |
Family
ID=73844683
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011049423.4A Pending CN112131227A (zh) | 2020-09-29 | 2020-09-29 | 一种基于联盟链的数据查询方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112131227A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113177048A (zh) * | 2021-04-28 | 2021-07-27 | 中国工商银行股份有限公司 | 数据处理方法、终端、节点、***、电子设备和存储介质 |
CN113204770A (zh) * | 2021-04-16 | 2021-08-03 | 宁波图灵奇点智能科技有限公司 | 一种数据保护***以及方法、计算机设备和存储介质 |
CN113239078A (zh) * | 2021-05-17 | 2021-08-10 | 国网河南省电力公司信息通信公司 | 一种基于联盟链的数据快速查询方法 |
CN113553615A (zh) * | 2021-07-07 | 2021-10-26 | 深圳前海新心数字科技有限公司 | 一种隐私数据共享***的匹配查询方法 |
CN113343286B (zh) * | 2021-08-05 | 2021-11-23 | 江西农业大学 | 一种数据加解密方法、数据上传端、数据接收端及*** |
CN115118712A (zh) * | 2022-06-06 | 2022-09-27 | 蚂蚁区块链科技(上海)有限公司 | 一种文件传输的方法及装置 |
CN115118711A (zh) * | 2022-06-06 | 2022-09-27 | 蚂蚁区块链科技(上海)有限公司 | 一种文件传输的方法及装置 |
CN115174553A (zh) * | 2022-06-06 | 2022-10-11 | 蚂蚁区块链科技(上海)有限公司 | 一种文件传输的方法及装置 |
CN115952175A (zh) * | 2023-03-14 | 2023-04-11 | 乐山师范学院 | 一种数据库索引构建方法、装置、计算机设备及存储介质 |
CN115118712B (zh) * | 2022-06-06 | 2024-07-26 | 蚂蚁区块链科技(上海)有限公司 | 一种文件传输的方法及装置 |
-
2020
- 2020-09-29 CN CN202011049423.4A patent/CN112131227A/zh active Pending
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113204770A (zh) * | 2021-04-16 | 2021-08-03 | 宁波图灵奇点智能科技有限公司 | 一种数据保护***以及方法、计算机设备和存储介质 |
CN113177048A (zh) * | 2021-04-28 | 2021-07-27 | 中国工商银行股份有限公司 | 数据处理方法、终端、节点、***、电子设备和存储介质 |
CN113239078A (zh) * | 2021-05-17 | 2021-08-10 | 国网河南省电力公司信息通信公司 | 一种基于联盟链的数据快速查询方法 |
CN113553615A (zh) * | 2021-07-07 | 2021-10-26 | 深圳前海新心数字科技有限公司 | 一种隐私数据共享***的匹配查询方法 |
CN113343286B (zh) * | 2021-08-05 | 2021-11-23 | 江西农业大学 | 一种数据加解密方法、数据上传端、数据接收端及*** |
CN115118712A (zh) * | 2022-06-06 | 2022-09-27 | 蚂蚁区块链科技(上海)有限公司 | 一种文件传输的方法及装置 |
CN115118711A (zh) * | 2022-06-06 | 2022-09-27 | 蚂蚁区块链科技(上海)有限公司 | 一种文件传输的方法及装置 |
CN115174553A (zh) * | 2022-06-06 | 2022-10-11 | 蚂蚁区块链科技(上海)有限公司 | 一种文件传输的方法及装置 |
CN115118712B (zh) * | 2022-06-06 | 2024-07-26 | 蚂蚁区块链科技(上海)有限公司 | 一种文件传输的方法及装置 |
CN115952175A (zh) * | 2023-03-14 | 2023-04-11 | 乐山师范学院 | 一种数据库索引构建方法、装置、计算机设备及存储介质 |
CN115952175B (zh) * | 2023-03-14 | 2023-05-30 | 乐山师范学院 | 一种数据库索引构建方法、装置、计算机设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112131227A (zh) | 一种基于联盟链的数据查询方法及装置 | |
US11425108B2 (en) | Blockchain-based service data encryption methods and apparatuses | |
EP3669280B1 (en) | Shared blockchain data storage | |
CN109493020B (zh) | 基于区块链的安全交易方法和装置 | |
US10699006B1 (en) | Processing and storing blockchain data under a trusted execution environment | |
US9977918B2 (en) | Method and system for verifiable searchable symmetric encryption | |
Yuan et al. | Secure cloud data deduplication with efficient re-encryption | |
CN110689349B (zh) | 一种区块链中的交易哈希值存储和搜索方法及装置 | |
CN114826703B (zh) | 基于区块链的数据搜索细粒度访问控制方法及*** | |
EP3652885A1 (en) | Secure token passing via blockchains | |
CN112202554B (zh) | 基于信息的属性生成密钥的信息处理方法、装置及设备 | |
CN111095210A (zh) | 基于纠错编码存储共享的区块链数据 | |
CN115269938B (zh) | 基于同态加密的关键词匿踪查询方法、***及相关装置 | |
CN109639436A (zh) | 基于盐值的数据持有性验证方法及终端设备 | |
Guo et al. | Dynamic proof of data possession and replication with tree sharing and batch verification in the cloud | |
Xu et al. | DNA similarity search with access control over encrypted cloud data | |
CN109783456B (zh) | 去重结构搭建方法、去重方法、文件取回方法、去重*** | |
Yoosuf | Lightweight fog‐centric auditing scheme to verify integrity of IoT healthcare data in the cloud environment | |
US20240097879A1 (en) | Blockchain-based data management of distributed binary objects | |
CN112202555B (zh) | 基于信息的属性生成随机数的信息处理方法、装置及设备 | |
CN116010401A (zh) | 基于区块链与不经意传输扩展的信息匿踪查询方法及*** | |
Yang et al. | A Flexible and Verifiable Keyword PIR Scheme for Cloud-Edge-Terminal Collaboration in AIoT | |
CN114357522A (zh) | 一种隐私计算分组查询方法及*** | |
Yuan et al. | Blockchain‐Based Self‐Auditing Scheme with Batch Verification for Decentralized Storage | |
Mao et al. | Co‐Check: Collaborative Outsourced Data Auditing in Multicloud Environment |
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 |