CN114528331A - 基于区块链的数据查询方法及装置、介质、设备 - Google Patents
基于区块链的数据查询方法及装置、介质、设备 Download PDFInfo
- Publication number
- CN114528331A CN114528331A CN202210032603.4A CN202210032603A CN114528331A CN 114528331 A CN114528331 A CN 114528331A CN 202210032603 A CN202210032603 A CN 202210032603A CN 114528331 A CN114528331 A CN 114528331A
- Authority
- CN
- China
- Prior art keywords
- data
- block chain
- party
- target data
- encrypted file
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- 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/2282—Tablespace storage structures; Management thereof
-
- 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
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2107—File encryption
Abstract
本申请公开了一种基于区块链的数据查询方法及装置、介质、设备,涉及区块链技术领域,主要目的在于改善现有数据查询方仅凭数据标识即可直接获取数据存储方全部数据,从而导致数据存储方的数据极易泄露的技术问题。包括:基于区块链计算层接收目标数据的查询指令,所述查询指令中携带所述目标数据的数据类别;根据所述数据类别在区块链存储层获取与所述数据类别相匹配的目标数据,所述目标数据存储于区块链下数据库,所述数据类别存储于区块链上索引表,所述目标数据与对应的数据类别之间存在索引关系;将所述目标数据进行加密处理生成加密文件,并发送至数据查询方,所述加密处理为基于区块链计算层进行的。
Description
技术领域
本申请涉及区块链技术领域,特别是涉及一种基于区块链的数据查询方法及装置、介质、设备。
背景技术
随着互联网的普及,越来越多的用户信息被存储于网络。目前,大多数用户信息的存储方式是以平台为中心的服务模式,具体是用户经客户端上传信息,由平台进行收集、整合、存储;当查询方查询用户信息时,再由平台基于查询方提供的用户信息标识将匹配的数据发送到查询方。然而,在这一过程中,由于查询方仅凭用户信息标识即可直接获取用户信息,从而导致用户信息极易泄露,因此,亟需一种数据的查询方法,以保证用户信息的安全。
发明内容
有鉴于此,本申请提供一种基于区块链的数据查询方法及装置,主要目的在于改善现有数据查询方仅凭数据标识即可直接获取数据存储方全部数据,从而导致数据存储方的数据极易泄露的技术问题。
依据本申请一个方面,提供了一种基于区块链的数据查询方法,包括:
基于区块链计算层接收目标数据的查询指令,所述查询指令中携带所述目标数据的数据类别;
根据所述数据类别在区块链存储层获取与所述数据类别相匹配的目标数据,所述目标数据存储于区块链下数据库,所述数据类别存储于区块链上索引表,所述目标数据与对应的数据类别之间存在索引关系;
将所述目标数据进行加密处理生成加密文件,并发送至数据查询方,所述加密处理为基于区块链计算层进行的。
优选的,所述将所述目标数据进行加密处理生成加密文件,具体包括:
基于第一公、私钥对以及第二公、私钥对对所述目标数据进行多次加密操作,生成加密文件,所述第一公、私钥对用于表征数据存储方的公、私钥对,所述第二公、私钥对用于表征数据查询方的公、私钥对,所述数据查询方为单一数据查询方;或
将多组所述目标数据进行合并处理,基于第三公钥分别对合并后的数据进行加密处理,生成加密文件,所述第三公钥用于表征与所述目标数据对应的数据查询方的公钥,所述数据查询方为多方数据查询方。
优选的,所述将多组所述目标数据进行合并处理,基于第三公钥分别对合并后的数据进行加密处理,生成加密文件之前,所述方法还包括:
生成与各个数据查询方对应的多组第三公、私钥对;
将所述数据类别进行隐匿消息承诺操作,生成多个隐匿消息承诺,所述隐匿消息承诺配置有对应的数据查询方的签名;
将所述隐匿消息承诺以及对应的第三公钥进行合并操作,生成多个消息及公钥的合并组合;
将各个数据查询方对应的所述消息及公钥的合并组合进行合并操作,生成组合消息承诺;
基于各个第三私钥分别对所述组合消息承诺进行配置签名操作;
聚合各个配置签名后的组合消息承诺,并存储于区块链的智能合约中。
优选的,所述基于第一公、私钥对以及第二公、私钥对对所述目标数据进行多次加密操作,生成加密文件,具体包括:
生成第一公、私钥对以及第二公、私钥对;
基于第一公钥对所述目标数据进行加密操作,生成第一加密文件;
根据第一私钥与第二公钥生成重加密密钥;
基于所述重加密密钥对所述第一加密文件进行加密处理,生成第二加密文件。
优选的,所述基于第一公钥对所述目标数据进行加密操作,生成第一加密文件之前,所述方法还包括:
接收所述数据存储方的全量数据,进行分类处理,得到多个数据类别的数据集;
所述基于第一公钥对所述目标数据进行加密操作,生成第一加密文件,具体包括:
基于第一公钥对多个所述数据集进行加密操作,生成多个第一加密文件;
将所述多个第一加密文件存储于所述区块链下数据库,并将对应的所述区块链下数据库的地址存储于所述区块链上索引表,生成索引关系。
优选的,所述根据所述数据类别在区块链存储层获取与所述数据类别相匹配的目标数据,具体包括:
根据所述数据类别查询所述区块链上索引表,获取与所述数据类别匹配的所述区块链下数据库的地址;
基于所述区块链下数据库的地址,获取与所述数据类别匹配的第一加密文件。
优选的,所述方法还包括:
将所述加密文件发送至所述数据查询方,以使得所述数据查询方基于数据查询方的私钥解密所述加密文件,得到所述目标数据。
依据本申请另一个方面,提供了一种基于区块链的数据查询装置,包括:
接收模块,用于基于区块链计算层接收目标数据的查询指令,所述查询指令中携带所述目标数据的数据类别;
获取模块,用于根据所述数据类别在区块链存储层获取与所述数据类别相匹配的目标数据,所述目标数据存储于区块链下数据库,所述数据类别存储于区块链上索引表,所述目标数据与对应的数据类别之间存在索引关系;
加密模块,用于将所述目标数据进行加密处理生成加密文件,并发送至数据查询方,所述加密处理为基于区块链计算层进行的。
优选的,所述加密模块,具体用于:
基于第一公、私钥对以及第二公、私钥对对所述目标数据进行多次加密操作,生成加密文件,所述第一公、私钥对用于表征数据存储方的公、私钥对,所述第二公、私钥对用于表征数据查询方的公、私钥对,所述数据查询方为单一数据查询方;或
将多组所述目标数据进行合并处理,基于第三公钥分别对合并后的数据进行加密处理,生成加密文件,所述第三公钥用于表征与所述目标数据对应的数据查询方的公钥,所述数据查询方为多方数据查询方。
优选的,所述加密模块之前,所述装置还包括:
生成模块,用于生成与各个数据查询方对应的多组第三公、私钥对;
隐匿模块,用于将所述数据类别进行隐匿消息承诺操作,生成多个隐匿消息承诺,所述隐匿消息承诺配置有对应的数据查询方的签名;
合并模块,用于将所述隐匿消息承诺以及对应的第三公钥进行合并操作,生成多个消息及公钥的合并组合;
所述合并模块,还用于将各个数据查询方对应的所述消息及公钥的合并组合进行合并操作,生成组合消息承诺;
签名模块,用于基于各个第三私钥分别对所述组合消息承诺进行配置签名操作;
聚合模块,用于聚合各个配置签名后的组合消息承诺,并存储于区块链的智能合约中。
优选的,所述加密模块,具体包括:
第一生成单元,用于生成第一公、私钥对以及第二公、私钥对;
第一加密单元,用于基于第一公钥对所述目标数据进行加密操作,生成第一加密文件;
第二生成单元,用于根据第一私钥与第二公钥生成重加密密钥;
第二加密单元,用于基于所述重加密密钥对所述第一加密文件进行加密处理,生成第二加密文件。
优选的,所述第一加密单元之前,所述模块还包括:
分类单元,用于接收所述数据存储方的全量数据,进行分类处理,得到多个数据类别的数据集;
所述第一加密单元,具体包括:
加密子单元,用于基于第一公钥对多个所述数据集进行加密操作,生成多个第一加密文件;
存储子单元,用于将所述多个第一加密文件存储于所述区块链下数据库,并将对应的所述区块链下数据库的地址存储于所述区块链上索引表,生成索引关系。
优选的,所述获取模块,具体包括:
查询单元,用于根据所述数据类别查询所述区块链上索引表,获取与所述数据类别匹配的所述区块链下数据库的地址;
获取单元,用于基于所述区块链下数据库的地址,获取与所述数据类别匹配的第一加密文件。
优选的,所述加密模块还用于:
将所述加密文件发送至所述数据查询方,以使得所述数据查询方基于数据查询方的私钥解密所述加密文件,得到所述目标数据。
根据本申请的又一方面,提供了一种存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如上述基于区块链的数据查询方法对应的操作。
根据本申请的再一方面,提供了一种终端,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行上述基于区块链的数据查询方法对应的操作。
借由上述技术方案,本申请实施例提供的技术方案至少具有下列优点:
本申请提供了一种基于区块链的数据查询方法及装置,首先基于区块链计算层接收目标数据的查询指令,所述查询指令中携带所述目标数据的数据类别;其次根据所述数据类别在区块链存储层获取与所述数据类别相匹配的目标数据,所述目标数据存储于区块链下数据库,所述数据类别存储于区块链上索引表,所述目标数据与对应的数据类别之间存在索引关系;最后将所述目标数据进行加密处理生成加密文件,并发送至数据查询方,所述加密处理为基于区块链计算层进行的。与现有技术相比,本申请实施例通过区块链进行数据的存储以及查询,以使得数据查询方只能获得需要查询的目标数据,而查询不到其他数据,从而保证了数据存储方数据的安全;同时在将数据查询方查询的目标数据发送到数据查询方之前对目标数据进行加密处理,以使得数据查询方必须经过解密才可获得查询的目标数据,进一步的保证了数据存储方数据的安全。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本申请实施例提供的一种基于区块链的数据查询方法流程图;
图2示出了本申请实施例提供的总体框架图;
图3示出了本申请实施例提供的一种基于区块链的数据查询装置组成框图;
图4示出了本申请实施例提供的一种终端的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本申请及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
本申请实施例可以应用于计算机系统/服务器,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与计算机系统/服务器一起使用的众所周知的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统﹑大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。
计算机系统/服务器可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
本申请实施例提供了一种基于区块链的数据查询方法,如图1所示,该方法包括:
101、基于区块链计算层接收目标数据的查询指令。
本申请实施例中,查询指令中携带目标数据的数据类别。目标数据为数据存储方预先存储到指定位置的数据。数据类别包括但不限于医疗信息、个人账号信息、金融信息等。区块链计算层中可以包含用于区块链共识操作的共识节点,链上索引表的存储节点,以及代理重加密节点,其中,共识节点可以用于当数据查询方为多方时,在查询数据之前,对多方数据查询方进行共识操作,以实现各个数据查询方之间的信任,从而在返回查询数据时将多方数据进行合并加密操作,以使得各个数据查询方基于各自的私钥获得目标数据,而无从知晓其他数据查询方查询的数据,进而保证用户数据的安全。链上索引表可以用于存储数据类别以及对应的数据存储地址。可以理解的是,将数据分类并按数据类别存储于指定位置,再将数据类别以及指定位置的地址信息存储于链上索引表,在查询数据时仅可以查询到数据类别对应的数据,以保证用户数据的安全;同时,基于这样的存储方式,还实现了节省区块链存储空间的目的。代理重加密节点可以用于当数据查询方为单一数据查询方时,将数据存储方用自己公钥加密的密文转换为可以用数据查询方的私钥可以解密的密文,且不泄露数据存储方的私钥和明文信息。通常情况下,数据存储方用自己的公钥加密得到的密文,只可以用自己的私钥进行解密,以得到明文信息,本申请实施例中,通过代理重加密节点可以实现数据之间的共享,同时保证数据不被泄露。
102、根据数据类别在区块链存储层获取与数据类别相匹配的目标数据。
本申请实施例中,目标数据存储于区块链下数据库,数据类别存储于区块链上索引表,目标数据与对应的数据类别之间存在索引关系。
需要说明的是,数据存储方可以将存储于个人本地节点(即区块链数据层)的数据上传至区块链存储层,并对数据具有绝对控制权,即数据查询方需要进行解密方可获得查询的数据。另外,为了节省区块链的存储空间,优选的,可以将数据存储方上传的数据经过分类处理分别存储于区块链下数据库,同时将数据类别以及对应的区块链下数据库的地址存储于区块链上索引表,并形成索引关系。这样,在查询数据时,在区块链上索引表中搜索与查询数据的数据类别相同的数据类别,并根据地址信息到对应的区块链下数据库获取相应的数据即可,保护了数据安全的同时又节省了区块链的存储空间。
103、将目标数据进行加密处理生成加密文件,并发送至数据查询方。
本申请实施例中,加密处理为基于区块链计算层进行的。其中,区块链计算层可以用于对步骤102获得的目标数据进行加密处理后,再发送到数据查询方,以使得数据查询方基于自己的私钥经过解密获得查询的目标数据,从而保证了数据存储方的数据安全。
需要说明的是,区块链计算层对目标数据进行加密时,可以根据不同的数据查询方进行不同的加密过程。例如,当数据查询方为单一数据查询方时,可以基于区块链计算层中的重加密节点,对数据进行加密后再发送;当数据查询方为多方数据查询方时,可以基于区块链计算层中的共识节点进行共识操作后,将多方数据合并加密后再发送,本申请实施例中不做具体限定。
与现有技术相比,本申请实施例通过区块链进行数据的存储以及查询,以使得数据查询方只能获得需要查询的目标数据,而查询不到其他数据,从而保证了数据存储方数据的安全;同时在将数据查询方查询的目标数据发送到数据查询方之前对目标数据进行加密处理,以使得数据查询方必须经过解密才可获得查询的目标数据,进一步的保证了数据存储方数据的安全。
本申请实施例中,为了进一步说明以及限定,将目标数据进行加密处理生成加密文件,具体包括:基于第一公、私钥对以及第二公、私钥对对目标数据进行多次加密操作,生成加密文件;或将多组目标数据进行合并处理,基于第三公钥分别对合并后的数据进行加密处理,生成加密文件。
其中,当数据查询方为单一数据查询方时,第一公、私钥对用于表征数据存储方的公、私钥对,第二公、私钥对用于表征数据查询方的公、私钥对;当数据查询方为多方数据查询方时,第三公钥用于表征与目标数据对应的数据查询方的公钥。具体的,当数据查询方为单一数据查询方时,由于仅针对一方进行数据的提供,可以通过区块链计算层的重加密节点将数据经过多次加密,转换为数据查询方利用自己私钥即可解密的密文,以保证数据的安全;当数据查询方为多方数据查询方时,为了提高查询效率,可以通过区块链计算层的共识节点预先对多方数据查询方进行共识操作,获得数据查询方之间的相互信任,再将所有数据查询方查询的数据经过合并加密操作,以使得各个数据查询方可以基于各自的私钥进行解密获得目标数据,而无从知晓其他数据查询方查询的数据,同样保证了数据的安全。
本申请实施例中,为了在数据查询方为多方数据查询方时,获得多方数据查询方之间的相互信任,将多组目标数据进行合并处理,基于第三公钥分别对合并后的数据进行加密处理,生成加密文件之前,实施例方法还包括:生成与各个数据查询方对应的多组第三公、私钥对;将数据类别进行隐匿消息承诺操作,生成多个隐匿消息承诺;将隐匿消息承诺以及对应的第三公钥进行合并操作,生成多个消息及公钥的合并组合;将各个数据查询方对应的消息及公钥的合并组合进行合并操作,生成组合消息承诺;基于各个第三私钥分别对组合消息承诺进行配置签名操作;聚合各个配置签名后的组合消息承诺,并存储于区块链的智能合约中。
其中,隐匿消息承诺配置有对应的数据查询方的签名。隐匿消息承诺,又称为Pedersen承诺,是一种隐私保护方案中使用的较为广泛的密码学承诺,该承诺具备同态特性,可直接对密文消息进行操作,也就是说,对消息进行加密。示例性的,m为消息,Commitment就是对消息加密后的密文,也就是敏感消息m的承诺。
示例性的,三方数据查询方为例,首先,各个数据查询方利用如下公式进行隐匿消息承诺,
Commitmenti=mi×G+seedi×H
其中,Commitmenti为敏感消息的承诺,其中,G和H为有限域椭圆曲线上2个位置不同的基点;mi为各方签署的消息;seedi为随机数种子,i∈{1,2,3}。生成隐匿消息承诺Commitment1,Commitment2,Commitment3。三方数据查询方各自生成对应的盲因子r1,r2,r3,并互相公开r1×H,r2×H,r3×H,以及基于盲因子的公钥Ri,i∈{1,2,3}。三方数据查询方分别将各自的公钥与隐匿消息承诺合并,再将三方合并生成组合消息承诺如下,
三方数据查询方分别用自己的私钥对组合消息承诺进行Schnorr签名,
SigMi=ri+SUMCommitment×prkeyi
其中,prkeyi为数据查询方私钥。三方数据查询方之间共享各自的签名,并由最后一方将三方签名聚合,SigM=SigM1+SigM2+SigM3,并将(R,SigM,Commitment)提交到区块链的智能合约中,其中,R=R1+R2+R3。
本申请实施例中,为了进一步对单一数据查询方的查询过程进行说明以及限定,基于第一公、私钥对以及第二公、私钥对对目标数据进行多次加密操作,生成加密文件,具体包括:生成第一公、私钥对以及第二公、私钥对;基于第一公钥对目标数据进行加密操作,生成第一加密文件;根据第一私钥与第二公钥生成重加密密钥;基于重加密密钥对第一加密文件进行加密处理,生成第二加密文件。
其中,第一公、私钥对用于表征数据存储方的公、私钥对,第二公、私钥对用于表征数据查询方的公、私钥对。具体的,首先生成数据查询方和储存方各自的公、私钥对,利用数据存储方的公钥对存储的数据进行加密操作,生成第一加密文件。需要说明的是,第一加密文件是存储于区块链下数据库的。优选的,此加密过程可以采用非对称加密规则,即需要生成一对公、私钥对,用公钥对数据进行加密,只有对应的私钥才可以解密出数据,例如,基于安全散列算法SHA-256生成32字节(256位)的随机字符串作为唯一的私钥,再经过椭圆曲线乘法运算可到对应的公钥,可以理解的是,由于数学原理,由私钥推算公钥是可行的,公钥逆推私钥是不可能的,从而保证了数据的安全。由于此时的第一加密文件仅可以由数据存储方的私钥进行解密,为了实现数据的授权共享,本申请实施例中,根据数据存储方私钥以及数据查询方公钥生成重加密密钥,即转换密钥,区块链重加密节点基于重加密密钥对第一加密文件进行重加密操作,即可将仅可以由数据存储方私钥进行解密的第一加密文件转换为利用数据查询方私钥也可以解密的第二加密文件,从而实现了数据的授权共享。
本申请实施例中,为了节省区块链从的存储空间,基于第一公钥对目标数据进行加密操作,生成第一加密文件之前,实施例方法还包括:接收数据存储方的全量数据,进行分类处理,得到多个数据类别的数据集;基于第一公钥对所述目标数据进行加密操作,生成第一加密文件,具体包括:基于第一公钥对多个数据集进行加密操作,生成多个第一加密文件;将多个第一加密文件存储于区块链下数据库,并将对应的区块链下数据库的地址存储于区块链上索引表,生成索引关系。
具体的,当前执行主体首先接收数据存储方上传的全量数据,并将其进行分类处理,得到多个与数据类别相对应的数据集,利用数据存储方公钥将数据集加密生成第一加密文件,并存储于区块链下数据库,同时将区块链下数据库的地址与对应的数据类别存储于区块链上索引表,以实现节省区块链存储空间的目的。
需要说明的是,区块链下数据库的地址相当于数据的唯一标识,例如,利用数据存储方公钥进行推导得出对应的区块链下数据库的地址。另外,区块链中索引区块的数据结构由区块头和区块体组成,其中,区块头中存储区块的头信息(即上一个区块的哈希值、本区块的哈希值、时间戳、随机数等信息),区块体中存储着数据查询者需要查询的索引信息。
本申请实施例中,为了进一步说明以及限定,根据数据类别在区块链存储层获取与数据类别相匹配的目标数据,具体包括:根据数据类别查询区块链上索引表,获取与数据类别匹配的区块链下数据库的地址;基于区块链下数据库的地址,获取与数据类别匹配的第一加密文件。
需要说明的是,根据索引关系可以获取到目标数据的区块链下数据库的地址,由于区块链下数据库的地址相当于数据的唯一标识,基于地址即可获取对应的第一加密文件。
本申请实施例中,进一步的,实施方法还包括:将加密文件发送至数据查询方,以使得数据查询方基于数据查询方的私钥解密加密文件,得到目标数据。
需要说明的是,将加密文件只可以基于数据查询方私钥进行解密,以获得明文信息,从而保证了数据的安全。
在具体的应用场景中,区块链的总体框架如图2所示,数据层位于用户(即数据存储方)个人本地节点,用于存放用户的隐私数据,并对其拥有绝对控制权。用户可以将数据上传值存储层,经过分类,将分类得到的数据集经过用户公钥加密存储于区块链下数据库,同时将数据类别以及信息地址存储于区块链上索引表,并形成索引关系。当查询方为单一查询方时,根据查询的数据类别找到区块链下数据库中的加密文件,在区块链计算层的重加密节点中对加密文件进行重加密操作,发送到查询方,以使得查询方基于自己的私钥解密获得数据;当查询方为区块链机构层中的各个机构时(即多方查询方),预先在区块链计算层中的共识节点进行共识操作,以获得各个机构之间的信任,再将所有机构查询的数据进行合并加密操作发送到对应的机构,以使得机构利用自己的私钥进行解密获得数据,而无从知晓其他机构查询的数据。
本申请提供了一种基于区块链的数据查询方法,首先基于区块链计算层接收目标数据的查询指令,所述查询指令中携带所述目标数据的数据类别;其次根据所述数据类别在区块链存储层获取与所述数据类别相匹配的目标数据,所述目标数据存储于区块链下数据库,所述数据类别存储于区块链上索引表,所述目标数据与对应的数据类别之间存在索引关系;最后将所述目标数据进行加密处理生成加密文件,并发送至数据查询方,所述加密处理为基于区块链计算层进行的。与现有技术相比,本申请实施例通过区块链进行数据的存储以及查询,以使得数据查询方只能获得需要查询的目标数据,而查询不到其他数据,从而保证了数据存储方数据的安全;同时在将数据查询方查询的目标数据发送到数据查询方之前对目标数据进行加密处理,以使得数据查询方必须经过解密才可获得查询的目标数据,进一步的保证了数据存储方数据的安全。
进一步的,作为对上述图1所示方法的实现,本申请实施例提供了一种基于区块链的数据查询装置,如图3所示,该装置包括:
接收模块21,获取模块22,加密模块23。
接收模块21,用于基于区块链计算层接收目标数据的查询指令,所述查询指令中携带所述目标数据的数据类别;
获取模块22,用于根据所述数据类别在区块链存储层获取与所述数据类别相匹配的目标数据,所述目标数据存储于区块链下数据库,所述数据类别存储于区块链上索引表,所述目标数据与对应的数据类别之间存在索引关系;
加密模块23,用于将所述目标数据进行加密处理生成加密文件,并发送至数据查询方,所述加密处理为基于区块链计算层进行的。
在具体的应用场景中,所述加密模块,具体用于:
基于第一公、私钥对以及第二公、私钥对对所述目标数据进行多次加密操作,生成加密文件,所述第一公、私钥对用于表征数据存储方的公、私钥对,所述第二公、私钥对用于表征数据查询方的公、私钥对,所述数据查询方为单一数据查询方;或
将多组所述目标数据进行合并处理,基于第三公钥分别对合并后的数据进行加密处理,生成加密文件,所述第三公钥用于表征与所述目标数据对应的数据查询方的公钥,所述数据查询方为多方数据查询方。
在具体的应用场景中,所述加密模块之前,所述装置还包括:
生成模块,用于生成与各个数据查询方对应的多组第三公、私钥对;
隐匿模块,用于将所述数据类别进行隐匿消息承诺操作,生成多个隐匿消息承诺,所述隐匿消息承诺配置有对应的数据查询方的签名;
合并模块,用于将所述隐匿消息承诺以及对应的第三公钥进行合并操作,生成多个消息及公钥的合并组合;
所述合并模块,还用于将各个数据查询方对应的所述消息及公钥的合并组合进行合并操作,生成组合消息承诺;
签名模块,用于基于各个第三私钥分别对所述组合消息承诺进行配置签名操作;
聚合模块,用于聚合各个配置签名后的组合消息承诺,并存储于区块链的智能合约中。
在具体的应用场景中,所述加密模块,具体包括:
第一生成单元,用于生成第一公、私钥对以及第二公、私钥对;
第一加密单元,用于基于第一公钥对所述目标数据进行加密操作,生成第一加密文件;
第二生成单元,用于根据第一私钥与第二公钥生成重加密密钥;
第二加密单元,用于基于所述重加密密钥对所述第一加密文件进行加密处理,生成第二加密文件。
在具体的应用场景中,所述第一加密单元之前,所述模块还包括:
分类单元,用于接收所述数据存储方的全量数据,进行分类处理,得到多个数据类别的数据集;
所述第一加密单元,具体包括:
加密子单元,用于基于第一公钥对多个所述数据集进行加密操作,生成多个第一加密文件;
存储子单元,用于将所述多个第一加密文件存储于所述区块链下数据库,并将对应的所述区块链下数据库的地址存储于所述区块链上索引表,生成索引关系。
在具体的应用场景中,所述获取模块,具体包括:
查询单元,用于根据所述数据类别查询所述区块链上索引表,获取与所述数据类别匹配的所述区块链下数据库的地址;
获取单元,用于基于所述区块链下数据库的地址,获取与所述数据类别匹配的第一加密文件。
在具体的应用场景中,所述加密模块还用于:
将所述加密文件发送至所述数据查询方,以使得所述数据查询方基于数据查询方的私钥解密所述加密文件,得到所述目标数据。
本申请提供了一种基于区块链的数据查询装置,首先基于区块链计算层接收目标数据的查询指令,所述查询指令中携带所述目标数据的数据类别;其次根据所述数据类别在区块链存储层获取与所述数据类别相匹配的目标数据,所述目标数据存储于区块链下数据库,所述数据类别存储于区块链上索引表,所述目标数据与对应的数据类别之间存在索引关系;最后将所述目标数据进行加密处理生成加密文件,并发送至数据查询方,所述加密处理为基于区块链计算层进行的。与现有技术相比,本申请实施例通过区块链进行数据的存储以及查询,以使得数据查询方只能获得需要查询的目标数据,而查询不到其他数据,从而保证了数据存储方数据的安全;同时在将数据查询方查询的目标数据发送到数据查询方之前对目标数据进行加密处理,以使得数据查询方必须经过解密才可获得查询的目标数据,进一步的保证了数据存储方数据的安全。
根据本申请一个实施例提供了一种存储介质,所述存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的基于区块链的数据查询方法。
基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景所述的方法。
图4示出了根据本申请一个实施例提供的一种终端的结构示意图,本申请具体实施例并不对终端的具体实现做限定。
如图4所示,该终端可以包括:处理器(processor)302、通信接口(CommunicationsInterface)304、存储器(memory)306、以及通信总线308。
其中:处理器302、通信接口304、以及存储器306通过通信总线308完成相互间的通信。
通信接口304,用于与其它设备比如客户端或其它服务器等的网元通信。
处理器302,用于执行程序310,具体可以执行上述接口的基于区块链的数据查询方法实施例中的相关步骤。
具体地,程序310可以包括程序代码,该程序代码包括计算机操作指令。
处理器302可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本申请实施例的一个或多个集成电路。终端包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器306,用于存放程序310。存储器306可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序310具体可以用于使得处理器302执行以下操作:
基于区块链计算层接收目标数据的查询指令,所述查询指令中携带所述目标数据的数据类别;
根据所述数据类别在区块链存储层获取与所述数据类别相匹配的目标数据,所述目标数据存储于区块链下数据库,所述数据类别存储于区块链上索引表,所述目标数据与对应的数据类别之间存在索引关系;
将所述目标数据进行加密处理生成加密文件,并发送至数据查询方,所述加密处理为基于区块链计算层进行的。
存储介质中还可以包括操作系统、网络通信模块。操作系统是管理上述基于区块链的数据查询的实体设备硬件和软件资源的程序,支持信息处理程序以及其它软件和/或程序的运行。网络通信模块用于实现存储介质内部各组件之间的通信,以及与信息处理实体设备中其它硬件和软件之间通信。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
可能以许多方式来实现本申请的方法和系统。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本申请的方法和系统。用于所述方法的步骤的上述顺序仅是为了进行说明,本申请的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本申请实施为记录在记录介质中的程序,这些程序包括用于实现根据本申请的方法的机器可读指令。因而,本申请还覆盖存储用于执行根据本申请的方法的程序的记录介质。
显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包括在本申请的保护范围之内。
Claims (10)
1.一种基于区块链的数据查询方法,其特征在于,包括:
基于区块链计算层接收目标数据的查询指令,所述查询指令中携带所述目标数据的数据类别;
根据所述数据类别在区块链存储层获取与所述数据类别相匹配的目标数据,所述目标数据存储于区块链下数据库,所述数据类别存储于区块链上索引表,所述目标数据与对应的数据类别之间存在索引关系;
将所述目标数据进行加密处理生成加密文件,并发送至数据查询方,所述加密处理为基于区块链计算层进行的。
2.根据权利要求1所述的方法,其特征在于,所述将所述目标数据进行加密处理生成加密文件,具体包括:
基于第一公、私钥对以及第二公、私钥对对所述目标数据进行多次加密操作,生成加密文件,所述第一公、私钥对用于表征数据存储方的公、私钥对,所述第二公、私钥对用于表征数据查询方的公、私钥对,所述数据查询方为单一数据查询方;或
将多组所述目标数据进行合并处理,基于第三公钥分别对合并后的数据进行加密处理,生成加密文件,所述第三公钥用于表征与所述目标数据对应的数据查询方的公钥,所述数据查询方为多方数据查询方。
3.根据权利要求2所述的方法,其特征在于,所述将多组所述目标数据进行合并处理,基于第三公钥分别对合并后的数据进行加密处理,生成加密文件之前,所述方法还包括:
生成与各个数据查询方对应的多组第三公、私钥对;
将所述数据类别进行隐匿消息承诺操作,生成多个隐匿消息承诺,所述隐匿消息承诺配置有对应的数据查询方的签名;
将所述隐匿消息承诺以及对应的第三公钥进行合并操作,生成多个消息及公钥的合并组合;
将各个数据查询方对应的所述消息及公钥的合并组合进行合并操作,生成组合消息承诺;
基于各个第三私钥分别对所述组合消息承诺进行配置签名操作;
聚合各个配置签名后的组合消息承诺,并存储于区块链的智能合约中。
4.根据权利要求2所述的方法,其特征在于,所述基于第一公、私钥对以及第二公、私钥对对所述目标数据进行多次加密操作,生成加密文件,具体包括:
生成第一公、私钥对以及第二公、私钥对;
基于第一公钥对所述目标数据进行加密操作,生成第一加密文件;
根据第一私钥与第二公钥生成重加密密钥;
基于所述重加密密钥对所述第一加密文件进行加密处理,生成第二加密文件。
5.根据权利要求4所述的方法,其特征在于,所述基于第一公钥对所述目标数据进行加密操作,生成第一加密文件之前,所述方法还包括:
接收所述数据存储方的全量数据,进行分类处理,得到多个数据类别的数据集;
所述基于第一公钥对所述目标数据进行加密操作,生成第一加密文件,具体包括:
基于第一公钥对多个所述数据集进行加密操作,生成多个第一加密文件;
将所述多个第一加密文件存储于所述区块链下数据库,并将对应的所述区块链下数据库的地址存储于所述区块链上索引表,生成索引关系。
6.根据权利要求5所述的方法,其特征在于,所述根据所述数据类别在区块链存储层获取与所述数据类别相匹配的目标数据,具体包括:
根据所述数据类别查询所述区块链上索引表,获取与所述数据类别匹配的所述区块链下数据库的地址;
基于所述区块链下数据库的地址,获取与所述数据类别匹配的第一加密文件。
7.根据权利要求1-6任一所述的方法,其特征在于,所述方法还包括:
将所述加密文件发送至所述数据查询方,以使得所述数据查询方基于数据查询方的私钥解密所述加密文件,得到所述目标数据。
8.一种基于区块链的数据查询装置,其特征在于,包括:
接收模块,用于基于区块链计算层接收目标数据的查询指令,所述查询指令中携带所述目标数据的数据类别;
获取模块,用于根据所述数据类别在区块链存储层获取与所述数据类别相匹配的目标数据,所述目标数据存储于区块链下数据库,所述数据类别存储于区块链上索引表,所述目标数据与对应的数据类别之间存在索引关系;
加密模块,用于将所述目标数据进行加密处理生成加密文件,并发送至数据查询方,所述加密处理为基于区块链计算层进行的。
9.一种存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如权利要求1-7中任一项所述的基于区块链的数据查询方法对应的操作。
10.一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-7中任一项所述的基于区块链的数据查询方法对应的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210032603.4A CN114528331A (zh) | 2022-01-12 | 2022-01-12 | 基于区块链的数据查询方法及装置、介质、设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210032603.4A CN114528331A (zh) | 2022-01-12 | 2022-01-12 | 基于区块链的数据查询方法及装置、介质、设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114528331A true CN114528331A (zh) | 2022-05-24 |
Family
ID=81621598
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210032603.4A Pending CN114528331A (zh) | 2022-01-12 | 2022-01-12 | 基于区块链的数据查询方法及装置、介质、设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114528331A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115544171A (zh) * | 2022-11-24 | 2022-12-30 | 中国电子信息产业集团有限公司第六研究所 | 异构物理资源数据处理方法、装置、电子设备及存储介质 |
CN115828310A (zh) * | 2023-02-14 | 2023-03-21 | 蓝象智联(杭州)科技有限公司 | 一种基于隐私计算的数据查询方法、装置及存储介质 |
CN115865533A (zh) * | 2023-02-27 | 2023-03-28 | 蓝象智联(杭州)科技有限公司 | 高并发场景下代理重加密管理方法、装置及存储介质 |
-
2022
- 2022-01-12 CN CN202210032603.4A patent/CN114528331A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115544171A (zh) * | 2022-11-24 | 2022-12-30 | 中国电子信息产业集团有限公司第六研究所 | 异构物理资源数据处理方法、装置、电子设备及存储介质 |
CN115828310A (zh) * | 2023-02-14 | 2023-03-21 | 蓝象智联(杭州)科技有限公司 | 一种基于隐私计算的数据查询方法、装置及存储介质 |
CN115865533A (zh) * | 2023-02-27 | 2023-03-28 | 蓝象智联(杭州)科技有限公司 | 高并发场景下代理重加密管理方法、装置及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Chinnasamy et al. | Efficient data security using hybrid cryptography on cloud computing | |
WO2021208690A1 (zh) | 数据加解密方法、装置、设备及存储介质 | |
JP6180177B2 (ja) | プライバシーを保護することができる暗号化データの問い合わせ方法及びシステム | |
US9430655B1 (en) | Split tokenization | |
Yang et al. | Achieving efficient and privacy-preserving cross-domain big data deduplication in cloud | |
Liu et al. | An efficient privacy-preserving outsourced computation over public data | |
CN114528331A (zh) | 基于区块链的数据查询方法及装置、介质、设备 | |
CN109361644B (zh) | 一种支持快速搜索和解密的模糊属性基加密方法 | |
CN104967693A (zh) | 面向云存储的基于全同态密码技术的文档相似度计算方法 | |
Sun et al. | Research on logistics information blockchain data query algorithm based on searchable encryption | |
EP4020265A1 (en) | Method and device for storing encrypted data | |
Yadav | Significance of elliptic curve cryptography in blockchain IoT with comparative analysis of RSA algorithm | |
Varri et al. | CP-ABSEL: Ciphertext-policy attribute-based searchable encryption from lattice in cloud storage | |
CN114443718A (zh) | 一种数据查询方法及系统 | |
Yagoub et al. | An adaptive and efficient fully homomorphic encryption technique | |
Kirubakaran et al. | Towards Developing Privacy-Preserved Data Security Approach (PP-DSA) in Cloud Computing Environment. | |
JP2002026892A (ja) | 鍵共有方法,秘密鍵生成方法,共通鍵生成方法,暗号通信方法,秘密鍵生成器,共通鍵生成器,暗号通信システム及び記録媒体 | |
Bao et al. | A group signature scheme with selective linkability and traceability for blockchain-based data sharing systems in E-health services | |
Hussien et al. | Public auditing for secure data storage in cloud through a third party auditor using modern ciphertext | |
US8325913B2 (en) | System and method of authentication | |
Gohel et al. | A new data integrity checking protocol with public verifiability in cloud storage | |
Cui et al. | Towards Multi-User, Secure, and Verifiable $ k $ NN Query in Cloud Database | |
Kamboj et al. | DEDUP: Deduplication system for encrypted data in cloud | |
Mohanraj et al. | Hybrid encryption algorithm for big data security in the Hadoop distributed file system | |
Altarawneh | A strong combination of cryptographic techniques to secure cloud-hosted data |
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 |