CN116881932A - 链上链下数据安全存储和查询方法及装置 - Google Patents
链上链下数据安全存储和查询方法及装置 Download PDFInfo
- Publication number
- CN116881932A CN116881932A CN202310553291.6A CN202310553291A CN116881932A CN 116881932 A CN116881932 A CN 116881932A CN 202310553291 A CN202310553291 A CN 202310553291A CN 116881932 A CN116881932 A CN 116881932A
- Authority
- CN
- China
- Prior art keywords
- data
- ciphertext
- target
- unique identification
- index table
- 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
- 238000000034 method Methods 0.000 title claims abstract description 86
- 238000012545 processing Methods 0.000 claims abstract description 16
- 230000006870 function Effects 0.000 claims description 46
- 238000004590 computer program Methods 0.000 claims description 7
- 238000013500 data storage Methods 0.000 abstract description 7
- 230000008569 process Effects 0.000 description 13
- 238000004364 calculation method Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000011161 development Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 238000007792 addition Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000006378 damage Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000036541 health Effects 0.000 description 2
- 238000010438 heat treatment Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 229940060587 alpha e Drugs 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- 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
- 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/2453—Query optimisation
-
- 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/2455—Query execution
-
- 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 Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种链上链下数据安全存储和查询方法及装置,方法包括:接收区块链网络中的服务节点根据目标关键字密文在密文索引表或热数据索引表中查询到的目标密文数据的唯一标识密文,并解密得到对应的唯一标识;若唯一标识密文是在热数据索引表中查询到的,则根据唯一标识自数据库服务器中调取目标密文数据;目标密文数据进行解密处理以得到目标明文数据,并将目标明文数据发送至对应的用户节点。本申请能够以链上链下协同的方式有效降低区块链的存储空间需求量,并有效提高数据安全处理的安全性与可靠性;并通过将链上的索引表和链下保存的海量数据进行热冷区分,能够可有效减少数据查询及调取所需的时间,进而能够数据存储、查询及调取的效率。
Description
技术领域
本申请涉及区块链技术领域,尤其涉及链上链下数据安全存储和查询方法及装置。
背景技术
随着时代的发展,各行各业的信息化程度都在不断地提高,随之而来的是产生了海量的数据信息,如何对数据既进行安全的存储,又能使多用户便利的检索与查询,一直是一个重要的研究方向,于是公钥可搜索加密技术应运而生。现有的可搜索加密方案,多为用户使用自己的私钥和需要搜索的关键字去可信授权机构生成陷门,再将陷门传送至云服务器,由云服务器在密文上完成检索,并返回数据,而该方案则是用户将陷门上传至区块链,区块链智能合约利用陷门在密文上进行检索,再将检索结果返回代理服务器。而区块链具有抗毁、防篡改、可追溯、去中心化等特点,既可利于数据在多用户之间分享,又保证数据的安全性。将可搜索加密技术与区块链相结合,可在多用户上传数据和检索数据的场景下,让装备研制的管理部门、使用方、科研院和生产厂家多方在安全的状态下,参与装备研制技术状态的更新与维护环节中,实现监管效能最大化,为尽职免责失职追责提供可靠依据。
然而,现有的基于区块链的数据安全处理方式,由于需要在调用数据前对存储在区块链中的数据进行全量搜索,因此会导致存储空间需求变大且会影响数据查询和调用的效率。
发明内容
鉴于此,本申请实施例提供了链上链下数据安全存储和查询方法及装置,以消除或改善现有技术中存在的一个或更多个缺陷。
本申请的一个方面提供了一种链上链下数据安全存储和查询方法,包括:
接收区块链网络中的服务节点在该区块链网络中根据目标关键字密文在预设的密文索引表或热数据索引表中查询到的目标密文数据的唯一标识密文,并基于预设的AES密钥对所述目标密文数据的唯一标识密文进行解密处理以得到该目标密文数据的唯一标识;其中,所述密文索引表用于存储各个冷数据分别对应的关键字密文和唯一标识密文之间的一一对应关系,所述热数据索引表用于存储各个热数据分别对应的关键字密文和唯一标识密文之间的一一对应关系;
若所述目标密文数据的唯一标识密文是在所述热数据索引表中查询到的,则根据所述目标密文数据的唯一标识自数据库服务器中调取所述目标密文数据,其中,所述数据库服务器用于存储各个所述热数据分别对应的唯一标识和密文数据之间的一一对应关系;
基于所述AES密钥对该目标密文数据进行解密处理以得到目标明文数据,并将所述目标明文数据发送至对应的用户节点。
在本申请的一些实施例中,在所述基于所述AES密钥对该目标密文数据进行解密处理以得到目标明文数据之前,还包括:
若所述目标密文数据的唯一标识密文是在所述密文索引表中查询到的,则根据所述目标密文数据的唯一标识自IPFS分布式存储系统中调取所述目标密文数据,其中,所述IPFS分布式存储系统用于存储各个所述冷数据分别对应的唯一标识和密文数据之间的一一对应关系。
在本申请的一些实施例中,在所述接收区块链网络中的服务节点在该区块链网络中根据目标关键字密文在预设的密文索引表或热数据索引表中查询到的目标密文数据的唯一标识密文之前,还包括:
接收并存储可信授权机构发送的公钥、AES密钥和加密哈希函数,其中,所述可信授权机构预先生成所述AES密钥、加密哈希函数、对应的私钥和所述公钥,并将其中的私钥发送至所述区块链网络中的用户节点;
接收区块链网络中的数据拥有者节点发送的明文数据和对应的关键字;
基于所述AES密钥对所述明文数据进行加密处理以得到对应的密文数据,并基于所述公钥对所述关键字进行加密处理以得到对应的关键字密文;
基于所述加密哈希函数获取所述密文数据对应的密文数据哈希值。
在本申请的一些实施例中,还包括:
将所述密文数据发送至IPFS分布式存储系统以使该IPFS分布式存储系统将所述密文数据标记为冷数据并生成对应的唯一标识,并将所述密文数据对应的密文数据哈希值发送至所述区块链网络进行存储;
接收所述IPFS分布式存储系统发送的所述密文数据对应的唯一标识,并基于所述AES密钥对所述密文数据对应的唯一标识进行加密处理以得到对应的唯一标识密文;
将所述密文数据的关键字密文和所述唯一标识密文发送至所述区块链网络中进行存储,以使所述区块链网络中的智能合约对应更新密文索引表。
在本申请的一些实施例中,在所述根据所述目标密文数据的唯一标识自IPFS分布式存储系统中调取所述目标密文数据之后,还包括:
将所述目标密文数据和对应的唯一标识发送至数据库服务器中进行存储,其中,若所述目标密文数据的唯一标识密文是在所述密文索引表中查询到的,则所述区块链网络的智能合约预先将该目标密文数据对应的目标关键字密文和唯一标识密文更新至热数据索引表,以使所述目标密文数据由冷数据标记为热数据。
在本申请的一些实施例中,在所述将所述目标明文数据发送至对应的用户节点之后,还包括:
接收所述用户节点发送的针对所述目标明文数据的仲裁请求;
将所述目标明文数据对应的目标密文数据的唯一标识密文、目标密文数据和加密哈希函数发送至所述区块链网络中的仲裁节点群中的各个仲裁节点,以使各个所述仲裁节点分别根据所述目标关键字密文在预设的密文索引表或热数据索引表中重新查询到的目标密文数据的唯一标识密文以作为当前的重检唯一标识密文,并分别根据所述加密哈希函数获取所述目标密文数据的密文数据哈希值并作为当前的重检密文数据哈希值,再分别判断所述重检唯一标识密文与所述目标密文数据的唯一标识密文是否相同,以及,所述重检密文数据哈希值和所述目标密文数据的密文数据哈希值是否相同,并分别基于对应的判定结果生成对应的独立仲裁结果;
接收各个所述仲裁节点分别发送的独立仲裁结果;
基于预设的判定规则汇总各个所述独立仲裁结果,以得到用于表示所述目标明文数据是否有误的目标仲裁结果;
将所述目标明文数据对应的目标仲裁结果发送至针对该目标明文数据提出仲裁请求的所述用户节点。
本申请的另一个方面提供了一种链上链下数据安全存储和查询装置,包括:
冷热区分查询模块,用于接收区块链网络中的服务节点在该区块链网络中根据目标关键字密文在预设的密文索引表或热数据索引表中查询到的目标密文数据的唯一标识密文,并基于预设的AES密钥对所述目标密文数据的唯一标识密文进行解密处理以得到该目标密文数据的唯一标识;其中,所述密文索引表用于存储各个冷数据分别对应的关键字密文和唯一标识密文之间的一一对应关系,所述热数据索引表用于存储各个热数据分别对应的关键字密文和唯一标识密文之间的一一对应关系;
热数据调取模块,用于若所述目标密文数据的唯一标识密文是在所述热数据索引表中查询到的,则根据所述目标密文数据的唯一标识自数据库服务器中调取所述目标密文数据,其中,所述数据库服务器用于存储各个所述热数据分别对应的唯一标识和密文数据之间的一一对应关系;
明文数据发送模块,用于基于所述AES密钥对该目标密文数据进行解密处理以得到目标明文数据,并将所述目标明文数据发送至对应的用户节点。
在本申请的一些实施例中,还包括:
冷数据调取模块,用于若所述目标密文数据的唯一标识密文是在所述密文索引表中查询到的,则根据所述目标密文数据的唯一标识自IPFS分布式存储系统中调取所述目标密文数据,其中,所述IPFS分布式存储系统用于存储各个所述冷数据分别对应的唯一标识和密文数据之间的一一对应关系。
本申请的第三个方面提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述的链上链下数据安全存储和查询方法。
本申请的第四个方面提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述的链上链下数据安全存储和查询方法。
本申请提供的链上链下数据安全存储和查询方法,通过接收区块链网络中的服务节点在该区块链网络中根据目标关键字密文在预设的密文索引表或热数据索引表中查询到的目标密文数据的唯一标识密文,并基于预设的AES密钥对所述目标密文数据的唯一标识密文进行解密处理以得到该目标密文数据的唯一标识;其中,所述密文索引表用于存储各个冷数据分别对应的关键字密文和唯一标识密文之间的一一对应关系,所述热数据索引表用于存储各个热数据分别对应的关键字密文和唯一标识密文之间的一一对应关系;若所述目标密文数据的唯一标识密文是在所述热数据索引表中查询到的,则根据所述目标密文数据的唯一标识自数据库服务器中调取所述目标密文数据,其中,所述数据库服务器用于存储各个所述热数据分别对应的唯一标识和密文数据之间的一一对应关系;基于所述AES密钥对该目标密文数据进行解密处理以得到目标明文数据,并将所述目标明文数据发送至对应的用户节点;通过仅将关键字密文进行上链保存,并利用在区块链上智能合约完成密文搜索过程,而密文数据主体使用AES加密后存入链下,且通过与链下数据存储方仅进行密文数据交换,能够通过链上链下协同的方式,有效降低区块链的存储空间需求量,并有效提高数据安全处理的安全性与可靠性;同时,通过将链上的索引表也进行热冷区分,并对链下保存的海量数据进行冷热区分,能够可有效减少数据查询及调取所需的时间,进而能够数据存储、查询及调取的效率。
本申请的附加优点、目的,以及特征将在下面的描述中将部分地加以阐述,且将对于本领域普通技术人员在研究下文后部分地变得明显,或者可以根据本申请的实践而获知。本申请的目的和其它优点可以通过在说明书以及附图中具体指出的结构实现到并获得。
本领域技术人员将会理解的是,能够用本申请实现的目的和优点不限于以上具体所述,并且根据以下详细说明将更清楚地理解本申请能够实现的上述和其他目的。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,并不构成对本申请的限定。附图中的部件不是成比例绘制的,而只是为了示出本申请的原理。为了便于示出和描述本申请的一些部分,附图中对应部分可能被放大,即,相对于依据本申请实际制造的示例性装置中的其它部件可能变得更大。在附图中:
图1为本申请一实施例中的链上链下数据安全存储和查询方法的第一种流程示意图。
图2为本申请一实施例中的链上链下数据安全存储和查询方法的第二种流程示意图。
图3为本申请一实施例中的链上链下数据安全存储和查询装置的第一种结构示意图。
图4为本申请一实施例中的链上链下数据安全存储和查询装置的第二种结构示意图。
图5为本申请另一实施例提供的链上链下数据安全存储和查询系统中各实体之间的交互示意图。
图6为本申请应用实例提供的链上链下安全存储和查询方法的流程示意图。
图7是本申请应用实例提供的链上链下安全存储和查询方法中的数据存储过程示意图;
图8是本申请应用实例提供的链上链下安全存储和查询方法中的数据查询与仲裁过程示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,下面结合实施方式和附图,对本申请做进一步详细说明。在此,本申请的示意性实施方式及其说明用于解释本申请,但并不作为对本申请的限定。
在此,还需要说明的是,为了避免因不必要的细节而模糊了本申请,在附图中仅仅示出了与根据本申请的方案密切相关的结构和/或处理步骤,而省略了与本申请关系不大的其他细节。
应该强调,术语“包括/包含”在本文使用时指特征、要素、步骤或组件的存在,但并不排除一个或更多个其它特征、要素、步骤或组件的存在或附加。
在此,还需要说明的是,如果没有特殊说明,术语“连接”在本文不仅可以指直接连接,也可以表示存在中间物的间接连接。
在下文中,将参考附图描述本申请的实施例。在附图中,相同的附图标记代表相同或类似的部件,或者相同或类似的步骤。
在本申请的一个或多个实施例中,公钥可搜索加密方案在2004年被首次提出,主要是为了解决不可信赖服务器的邮件路由问题,随后公钥可搜索加密技术蓬勃发展,取得很多研究成果。
在本申请的一个或多个实施例中,目标关键字密文是指用户节点当前指定的待查询关键字密文,也可以称为查询陷门,可写为TW;查询令牌可写为token;关键字密文可写为WC;关键字和目标关键字均可写为W;一标识密文可写为Ic;唯一标识可写为I;目标密文数据是指待查询的密文数据,目标密文数据和密文数据均可写为C;目标明文数据是指待查询的明文数据,目标明文数据和明文数据均可写为P;加密哈希函数可写为H;密文数据哈希值可写为hC。
具体通过下述实施例进行详细说明。
本申请实施例提供一种可由链上链下数据安全存储和查询装置实现的链上链下数据安全存储和查询方法,该链上链下数据安全存储和查询装置的硬件实现具体可以采用一种代理服务器,参见图1,所述链上链下数据安全存储和查询方法具体包含有如下内容:
步骤100:接收区块链网络中的服务节点在该区块链网络中根据目标关键字密文在预设的密文索引表或热数据索引表中查询到的目标密文数据的唯一标识密文,并基于预设的AES密钥对所述目标密文数据的唯一标识密文进行解密处理以得到该目标密文数据的唯一标识;其中,所述密文索引表用于存储各个冷数据分别对应的关键字密文和唯一标识密文之间的一一对应关系,所述热数据索引表用于存储各个热数据分别对应的关键字密文和唯一标识密文之间的一一对应关系。
在本申请的一个或多个实施例中,由于不同数据的使用程度也不同,即被查询或更新的频率都是不同的,因此本申请将经常使用(例如被查询和调用过)的数据归为热数据,使其能够被更加快速的检索和使用,在包含海量数据的系统中区分冷、热数据,可以有效节省存储空间和提高存储效率。
在本申请的一个或多个实施例中,链上链下数据安全存储和查询方法中涉及的主要实体有:数据拥有者(即:数据拥有者节点)、用户(即:用户节点)、服务方(即:服务节点)、由多个仲裁节点组成的仲裁节点群、代理服务器、区块链(或称为区块链网络)、可信授权机构、IPFS分布式存储系统和数据库服务器等。
其中,区块链网络中数据拥有者、服务方、用户和仲裁节点四种身份可视情况相互转化,互相提供服务。
具体来说,数据拥有者将需要安全保存的明文数据与其相应的关键字上传至代理服务器。
用户即数据的使用者和检索者,用户使用私钥和关键字在可信授权机构的帮助下生成查询陷门,并发布查询令牌,上传至区块链。
服务方为区块链网路中有空闲计算资源的主机,服务方接收用户发出的检索令牌,执行智能合约进行检索操作,并返回检索结果给代理服务器。
仲裁节点群为区块链网络中有空闲计算资源的主机,他们志愿提供仲裁服务,维护区块链网络生态健康。
在步骤100中,服务节点根据检索令牌token获得查询陷门TW,智能合约依据陷门在其维护的密文索引表和热数据索引表中均进行检索。检索过程调用函数Test(Apub,S,Tw),逐项计算S=[A,B],if(H2(e(TW,A))=B)。若if(H2(e(TW,A))=B)为真,则服务节点将该项索引所对应的唯一标识密文Ic,发送给代理服务器。若整个密文索引表检索完毕,if(H2(e(TW,A))=B)均为假,则查询失败,智能合约将查询失败信息返回代理服务器。
步骤200:若所述目标密文数据的唯一标识密文是在所述热数据索引表中查询到的,则根据所述目标密文数据的唯一标识自数据库服务器中调取所述目标密文数据,其中,所述数据库服务器用于存储各个所述热数据分别对应的唯一标识和密文数据之间的一一对应关系。
在步骤200中,代理服务器将唯一标识密文Ic进行解密为唯一标识I,若该唯一标识自热数据索引表查询得到,则依据唯一标识I直接从数据库服务器中取得密文数据C,解密后将明文传送给用户节点。
在本申请的一个或多个实施例中,数据库服务器中保存热数据,数据库可采用MySQL等关系型数据库,将IPFS唯一标识作为主键,代理服务器可直接使用解密后的IPFS唯一标识从数据库服务器中取得密文数据。
步骤300:基于所述AES密钥对该目标密文数据进行解密处理以得到目标明文数据,并将所述目标明文数据发送至对应的用户节点。
在本申请的一个或多个实施例中,区块链网络是由众多节点组成的去中心化网络。本申请着重介绍区块链的记账作用和智能合约。区块链保存成对的关键字密文和唯一标识以及密文数据的哈希值,代理服务器每上传一项索引与哈希值,相当于一笔交易,区块链生成一个新的区块,完成记账,密文索引项既用来提高检索效率,也与哈希值一起作为将来仲裁计算的依据,保证了数据的不可篡改和可追溯;智能合约维护一张密文索引表,包含所有的上传至区块链的密文索引项,且每生成一个新的区块,智能合约将其中的信息更新入密文索引表。热数据索引表保存最近一段时间内使用过的数据的索引项,服务方在接收到用户上传的检索令牌后,执行智能合约,同时检索密文索引表和热数据索引表,在其中一个表中检索成功即结束检索,将检索结果返回给代理服务器。
从上述描述可知,本申请实施例提供的链上链下数据安全存储和查询方法,通过仅将关键字密文进行上链保存,并利用在区块链上智能合约完成密文搜索过程,而密文数据主体使用AES加密后存入链下,且通过与链下数据存储方仅进行密文数据交换,能够通过链上链下协同的方式,有效降低区块链的存储空间需求量,并有效提高数据安全处理的安全性与可靠性;同时,通过将链上的索引表也进行热冷区分,并对链下保存的海量数据进行冷热区分,能够可有效减少数据查询及调取所需的时间,进而能够数据存储、查询及调取的效率。
为了进一步提高链上链下数据调取的有效性及可靠性,在本申请实施例提供的一种链上链下数据安全存储和查询方法中,参见图2,所述链上链下数据安全存储和查询方法的步骤100和步骤300之间还具体包含有如下内容:
步骤210:若所述目标密文数据的唯一标识密文是在所述密文索引表中查询到的,则根据所述目标密文数据的唯一标识自IPFS分布式存储系统中调取所述目标密文数据,其中,所述IPFS分布式存储系统用于存储各个所述冷数据分别对应的唯一标识和密文数据之间的一一对应关系。
在步骤210中,若唯一标识自密文索引表查询得到,则代理服务器从IPFS中取得密文数据C,解密后将明文传送给用户。
在本申请的一个或多个实施例中,IPFS即星际文件系统,是一个内容寻址的分布式文件系统,它根据所保存文件的哈希值生成一个唯一标识,IPFS中的文件根据这个唯一标识进行索引,并提前检验该哈希值是否已被存储过,如已被存储过则不再重复存储,节约了存储空间。它成功地将系统分布式哈希表、版本控制系统Git、自认证文件系统等技术结合在一起,可以长时间、去中心化地保存共享文件。使用IPFS可有效增强数据的可靠性、异地容灾性。IPFS通过文件内容生成独立哈希值来标识文件,而非通过文件位置标识文件,相同内容的文件在系统中至保存一份,可以有效节省存储空间,提高存储效率。IPFS作为分布式存储系统具有比集中式数据库系统更好的抗毁能力,该系统使用IPFS保存密文数据,更加安全与可靠,并节省存储空间。
为了进一步提高链上链下数据安全存储和查询的安全性及可靠性,在本申请实施例提供的一种链上链下数据安全存储和查询方法中,参见图2,所述链上链下数据安全存储和查询方法中的步骤100之前具体包含有如下内容:
步骤010:接收并存储可信授权机构发送的公钥、AES密钥和加密哈希函数,其中,所述可信授权机构预先生成所述AES密钥、加密哈希函数、对应的私钥和所述公钥,并将其中的私钥发送至所述区块链网络中的用户节点。
在本申请的一个或多个实施例中,加密哈希函数是一种用于密码学的哈希函数,对加密哈希函数输入资料,会得到固定长度的输出结果。加密哈希函数可输入任何字符串,且计算效率高,抗冲突,难以使用哈希值反推原始数据。本申请中使用密文数据作为加密哈希函数的输入,将输出的哈希值保存在区块链区块中,作为仲裁计算的依据之一。
在本申请的一个或多个实施例中,可信授权机构负责生成公私密钥与加密哈希函数,将公钥分发给代理服务器,用来对数据加密;将私钥分发给用户,用来和关键字生成查询陷门与检索令牌;加密哈希函数分发给代理服务器和仲裁节点群,用来进行检索结果仲裁。在本申请中,可信授权机构被要求是完全可信的,且它与用户之间信道也被要求是安全的。
步骤020:接收区块链网络中的数据拥有者节点发送的明文数据和对应的关键字。
步骤030:基于所述AES密钥对所述明文数据进行加密处理以得到对应的密文数据,并基于所述公钥对所述关键字进行加密处理以得到对应的关键字密文。
步骤040:基于所述加密哈希函数获取所述密文数据对应的密文数据哈希值。
为了进一步提高链上链下数据安全存储和查询过程中冷热数据区分使用的有效性和可靠性,在本申请实施例提供的一种链上链下数据安全存储和查询方法中,参见图2,所述链上链下数据安全存储和查询方法中的步骤040之后和步骤100之前还具体包含有如下内容:
步骤050:将所述密文数据发送至IPFS分布式存储系统以使该IPFS分布式存储系统将所述密文数据标记为冷数据并生成对应的唯一标识,并将所述密文数据对应的密文数据哈希值发送至所述区块链网络进行存储。
步骤060:接收所述IPFS分布式存储系统发送的所述密文数据对应的唯一标识,并基于所述AES密钥对所述密文数据对应的唯一标识进行加密处理以得到对应的唯一标识密文。
步骤070:将所述密文数据的关键字密文和所述唯一标识密文发送至所述区块链网络中进行存储,以使所述区块链网络中的智能合约对应更新密文索引表。
为了进一步提高链上链下数据安全存储和查询过程中冷热数据区分使用的有效性和可靠性,在本申请实施例提供的一种链上链下数据安全存储和查询方法中,参见图2,所述链上链下数据安全存储和查询方法中的步骤210之后还具体包含有如下内容:
步骤220:将所述目标密文数据和对应的唯一标识发送至数据库服务器中进行存储,其中,若所述目标密文数据的唯一标识密文是在所述密文索引表中查询到的,则所述区块链网络的智能合约预先将该目标密文数据对应的目标关键字密文和唯一标识密文更新至热数据索引表,以使所述目标密文数据由冷数据标记为热数据。
为了进一步提高链上链下数据安全存储和查询过程中的安全性及有效性,并维护整个区块链网络生态的作用,有效发现区块链网络中可能存在问题的节点,在本申请实施例提供的一种链上链下数据安全存储和查询方法中,参见图2,所述链上链下数据安全存储和查询方法中的步骤300之后还具体包含有如下内容:
步骤400:接收所述用户节点发送的针对所述目标明文数据的仲裁请求。
步骤500:将所述目标明文数据对应的目标密文数据的唯一标识密文、目标密文数据和加密哈希函数发送至所述区块链网络中的仲裁节点群中的各个仲裁节点,以使各个所述仲裁节点分别根据所述目标关键字密文在预设的密文索引表或热数据索引表中重新查询到的目标密文数据的唯一标识密文以作为当前的重检唯一标识密文,并分别根据所述加密哈希函数获取所述目标密文数据的密文数据哈希值并作为当前的重检密文数据哈希值,再分别判断所述重检唯一标识密文与所述目标密文数据的唯一标识密文是否相同,以及,所述重检密文数据哈希值和所述目标密文数据的密文数据哈希值是否相同,并分别基于对应的判定结果生成对应的独立仲裁结果。
步骤600:接收各个所述仲裁节点分别发送的独立仲裁结果。
步骤700:基于预设的判定规则汇总各个所述独立仲裁结果,以得到用于表示所述目标明文数据是否有误的目标仲裁结果。
步骤800:将所述目标明文数据对应的目标仲裁结果发送至针对该目标明文数据提出仲裁请求的所述用户节点。
从软件层面来说,本申请还提供一种用于执行所述链上链下数据安全存储和查询方法中全部或部分内的链上链下数据安全存储和查询装置,参见图3,所述链上链下数据安全存储和查询装置具体包含有如下内容:
冷热区分查询模块1,用于接收区块链网络中的服务节点在该区块链网络中根据目标关键字密文在预设的密文索引表或热数据索引表中查询到的目标密文数据的唯一标识密文,并基于预设的AES密钥对所述目标密文数据的唯一标识密文进行解密处理以得到该目标密文数据的唯一标识;其中,所述密文索引表用于存储各个冷数据分别对应的关键字密文和唯一标识密文之间的一一对应关系,所述热数据索引表用于存储各个热数据分别对应的关键字密文和唯一标识密文之间的一一对应关系;
热数据调取模块2,用于若所述目标密文数据的唯一标识密文是在所述热数据索引表中查询到的,则根据所述目标密文数据的唯一标识自数据库服务器中调取所述目标密文数据,其中,所述数据库服务器用于存储各个所述热数据分别对应的唯一标识和密文数据之间的一一对应关系;
明文数据发送模块3,用于基于所述AES密钥对该目标密文数据进行解密处理以得到目标明文数据,并将所述目标明文数据发送至对应的用户节点。
为了进一步提高链上链下数据调取的有效性及可靠性,在本申请实施例提供的一种链上链下数据安全存储和查询装置中,参见图4,所述链上链下数据安全存储和查询装置中还具体包含有如下内容:
冷数据调取模块4,用于若所述目标密文数据的唯一标识密文是在所述密文索引表中查询到的,则根据所述目标密文数据的唯一标识自IPFS分布式存储系统中调取所述目标密文数据,其中,所述IPFS分布式存储系统用于存储各个所述冷数据分别对应的唯一标识和密文数据之间的一一对应关系。
本申请提供的链上链下数据安全存储和查询装置的实施例具体可以用于执行上述实施例中的链上链下数据安全存储和查询方法的实施例的处理流程,其功能在此不再赘述,可以参照上述链上链下数据安全存储和查询方法实施例的详细描述。
所述链上链下数据安全存储和查询装置进行链上链下数据安全存储和查询的部分可以服务器中执行,如代理服务器等,也可以在客户端设备中完成。具体可以根据所述客户端设备的处理能力,以及用户使用场景的限制等进行选择。本申请对此不作限定。若所有的操作都在所述客户端设备中完成,所述客户端设备还可以包括处理器,用于链上链下数据安全存储和查询的具体处理。
在存储阶段,代理服务器接收从数据拥有者上传来的数据和关键字,并利用公钥进行加密,将加密后的数据主体存入IPFS分布式存储系统,并将获得的唯一标识加密后,同时利用加密哈希函数计算密文数据的哈希值,将哈希值、唯一标识密文与关键字密文一起上传至区块链;在查询阶段,代理服务器将区块链返回的唯一标识密文进行解密,再根据唯一标识去IPFS分布式存储系统取得密文数据主体,解密后,将明文返回给用户。如果受到用户的质询请求,则将密文数据传送给仲裁节点群,并接收来自各仲裁节点的仲裁结果,将汇总后的结果返回给用户。
上述的客户端设备可以具有通信模块(即通信单元),可以与远程的服务器进行通信连接,实现与所述服务器的数据传输。所述服务器可以包括任务调度中心一侧的服务器,其他的实施场景中也可以包括中间平台的服务器,例如与任务调度中心服务器有通信链接的第三方服务器平台的服务器。所述的服务器可以包括单台计算机设备,也可以包括多个服务器组成的服务器集群,或者分布式装置的服务器结构。
上述服务器与所述客户端设备端之间可以使用任何合适的网络协议进行通信,包括在本申请提交日尚未开发出的网络协议。所述网络协议例如可以包括TCP/IP协议、UDP/IP协议、HTTP协议、HTTPS协议等。当然,所述网络协议例如还可以包括在上述协议之上使用的RPC协议(Remote Procedure Call Protocol,远程过程调用协议)、REST协议(Representational State Transfer,表述性状态转移协议)等。
从上述描述可知,本申请实施例提供的链上链下数据安全存储和查询装置,能够通过链上链下协同的方式,有效降低区块链的存储空间需求量,并有效提高数据安全处理的安全性与可靠性;并通过将链上的索引表和链下保存的海量数据进行热冷区分,能够可有效减少数据查询及调取所需的时间,进而能够数据存储、查询及调取的效率。
基于上述的链上链下数据安全存储和查询装置和/或链上链下数据安全存储和查询方法,参见图5,本申请还提供一种链上链下数据安全存储和查询系统,本申请提供的链上链下数据安全存储和查询系统的实施例具体可以用于执行上述实施例中的链上链下数据安全存储和查询方法和/或装置的实施例的处理流程,其功能在此不再赘述,可以参照上述链上链下数据安全存储和查询方法和/或装置实施例的详细描述。
为了进一步说明本方案,本申请还提供一种链上链下数据安全存储和查询方法的具体应用实例,具体涉及一种链上链下数据安全存储和查询方法,涉及区块链、可搜索加密、分布式存储、冷热数据区分和加密哈希函数等技术领域,运用可搜索加密技术、区块链、冷热数据技术与IPFS分布式存储系统,构建了加密搜索、防篡改、可追溯、抗毁、高存储效率的数据安全存储和查询方案,为装备研制管理中的监管、安全、效率、追责等问题提供有效解决方案。
本申请应用实例涉及链上链下安全存储和查询技术,数据拥有者上传数据并被加密,用户检索和使用数据,参见图6,本申请应用实例包括以下步骤:
S10、系统初始化阶段:区块链初始化,代理服务器与可信授权机构初始化,区块链中各节点初始化,设定安全参数,生成公私密钥和AES密钥,生成加密哈希函数H,并进行密钥分发和加密哈希函数分发;
S20、明文数据上传阶段:数据拥有者上传数据主体与其关键字至代理服务器,代理服务器将数据主体与关键字进行加密,并对密文数据主体计算哈希值;
S30、数据安全存储阶段:参见图7,代理服务器将加密后的数据C存入IPFS,并取得其唯一标识I,代理服务器将IPFS标识进行对称加密为Ic后,与关键字密文WC成对上传至区块链,同时使用密文C调用加密哈希函数H计算出密文哈希值hC,并将hC上传至区块链,区块链形成新的区块。
S40、用户检索数据阶段:参见图7,用户与可信授权机构交互,生成查询陷门TW,并将陷门生成查询令牌token上传至区块链,某一服务方接收令牌并执行智能合约进行检索,并将检索结果返回;
S50、用户取得明文数据阶段:参见图8,代理服务器将唯一标识密文I进行解密为
c I,若该唯一标识自热数据索引表查询得到,则依据唯一标识I直接从数据库服务器中取得密文数据C,解密后将明文传送给用户;若唯一标识自密文索引表查询得到,则代理服务器从IPFS中取得密文数据C,解密后将明文传送给用户。
S60、查询结果验证与仲裁阶段:参见图8,对于查询获得明文P,若用户没有任何异议,则整个检索流程结束;若用户有异议,则用户向代理服务器提出质询请求,代理服务器将查询获得的密文发送给多个仲裁节点,由他们进行计算检索结果是否正确,并将结果返回代理服务器,代理服务器再将结果返回用户,若检索确实结果错误,则用户重新发出检索令牌检索数据。
针对上述步骤S10至S60分别详细说明如下:
(1)S10具体包括以下步骤:
S101、区块链初始化:区块链中各节点初始化,部署智能合约,自动建立密文索引表与热数据索引表,并为关键字密文检索创建相应的函数,无需人工干预。
S102、各服务器初始化:代理服务器初始化,数据库服务器初始化,可信授权机构初始化。
S103、安全参数初始化,并生成公私密钥,生成加密哈希函数H,并分发:调用公钥可搜索加密方案中的函数KeyGen(s),设定安全参数s,决定群G1和G2的大小p。选择一个随机数α∈Zp *,使用G1的生成元g,公钥Apub=[g,h=gα],产生私钥Apriv=α。将公钥Apub分发至代理服务器,将私钥Apriv分发给用户。生成AES密钥,分发给代理服务器。授权机构生成加密哈希函数,并分发给代理服务器。
(2)S20具体包括以下步骤:
S201、数据上传:用户将数据主体P与其所对应的关键字W上传至代理服务器。
S202、数据加密:代理服务器将明文数据主体P使用AES密钥加密为密文数据C,将其对应关键字W调用函数PEKS(Apub,W)加密,得到关键字密文WC。首先计算t=e(H1(P),hr)∈G2,其中r为随机数,且r∈ZP *,继续可计算得关键字密文WC=[gr,H2(t)]。
S203、计算哈希值:将密文数据C调用加密哈希函数H计算得hC。
(3)S30具体包括以下步骤:
S301、存储数据:代理服务器将加密后的密文数据C存储至IPFS分布式存储系统,并获得其唯一标识I。
S302、数据上传区块链:代理服务器将唯一标识使用AES密钥加密为Ic后,与关键字密文WC成对上传至区块链,同时将密文数据的哈希值hC上传至区块链。
S303、区块链更新:区块链产生新区块,完成记账,每个区块链区块中包含三个数据项:关键字密文WC、唯一标识密文Ic、密文数据哈希值hC,其中关键字密文WC和唯一标识密文Ic将形成智能合约中的密文索引项,密文数据哈希值hC将作为以后仲裁节点进行判断的依据。关键字密文WC与唯一标识密文Ic成对形成新的一项索引,智能合约将最新区块中的索引项更新至密文索引表中。数据拥有者每次有数据存入系统,就产生一个新的区块,并更新密文索引表。
(4)S40具体包括以下步骤:
S401、陷门与令牌生成:用户在可信授权机构的协助下,使用私钥Apriv和所要查询的关键字W产生查询陷门TW。计算过程为:调用函数Trapdoor(Apriv,W),输出TW=H1(W)α∈G1,然后将陷门生成检索令牌token,上传至区块链网络。
S402、服务方接收令牌:区块链网络中的某一有计算资源空闲的主机即服务方(及服务节点),接收检索令牌token,并向区块链网络广播该检索任务已被接受。整个区块链网络中,用户方与服务方可相互转换。
S403、服务方执行智能合约检索:服务方根据检索令牌token获得查询陷门TW,智能合约依据陷门在其维护的密文索引表和热数据索引表中进行检索。检索过程调用函数Test(Apub,S,Tw),逐项计算S=[A,B],if(H2(e(TW,A))=B)。
S404、检索成功:若if(H2(e(TW,A))=B)为真,则将该项索引所对应的唯一标识密文Ic,发送给代理服务器。若在热数据表中检索成功,则完成检索,将结果返回代理服务器;若在密文索引表中检索成功,则将该表项更新至热数据索引表再将结果返回代理服务器。
S405、检索失败:若整个密文索引表检索完毕,if(H2(e(TW,A))=B)均为假,则查询失败,智能合约将查询失败信息返回代理服务器。
(5)S50具体包括以下步骤:
S501、解密密文标识:代理服务器将收到的唯一标识密文Ic进行AES解密,得到明文IPFS唯一标识I。
S502、从数据库服务器取得密文数据:若唯一标识密文Ic自热数据索引表中查询得到,则说明所请求数据为热数据,代理服务器直接从数据库服务器中取得密文数据C。
S503、从IPFS取得密文数据并保存热数据:若唯一标识密文Ic自密文索引表查询得到,则说明所请求数据为冷数据,代理服务器从IPFS中取得密文数据C,同时将该部分密文数据C及所对应标识I传送至数据库服务器,在数据库服务器中以唯一标识I为主键构建数据项,区块链智能合约已将该密文数据所对应的关键字密文与唯一标识密文更新至热数据索引表,这部分密文数据就由冷数据标记为了热数据。
S504、查询失败:智能合约未能检索到相应关键字,代理服务器将查询失败的结果返回用户。
(6)S60具体包括以下步骤:
S601、用户对检索结果无异议:用户对检索结果满意,则这个检索流程结束。
S602、用户对检索结果有异议:用户认为检索结果错误,则向代理服务器提出质询,要求进行结果仲裁。
S603、各仲裁节点进行判断:代理服务器向在线仲裁节点发送检索结果的唯一标识密文Ic、密文数据C和加密哈希函数H。每个仲裁节点重新执行在密文索引表和热数据表上的检索操作,所得结果为Ic',将所得结果Ic'与代理服务器传送来的唯一标识密文Ic对比,若Ic=Ic',则说明服务方检索结果无误;每个仲裁节点分别使用加密哈希函数H计算密文数据的哈希值hC',同时检索区块链区块中的数据,匹配区块链区块中保存的数据哈希值hC,检查是否存在hC=hC'。若同时有Ic=Ic'和hC=hC',且Ic'和hC'处于同一区块链区块内即唯一标识与哈希值相匹配,则说明服务方检索结果无误,否则说明服务方检索结果不正确。区块链网络中所有参与仲裁的节点将计算结果发往代理服务器。
S604、代理服务器汇总仲裁结果:代理服务器收集所有仲裁结果,当正确的投票结果占总仲裁节点数目的比例大于某个预设值(例如三分之二)时,就认为服务方的检索结果正确,将仲裁结果返回用户;否则,认为服务方的检索结果确实存在问题,将仲裁结果返回用户,用户可发出新的检索令牌执行检索任务。该仲裁结果也可由整个区块链网络的管理者了解,进而考虑提供错误检索结果的服务方是否已被攻击,从而维护整个区块链网络的生态健康。
综上所述,本申请应用实例提供的链上链下数据安全存储和查询方法具有以下优点:
1、本申请应用实例设计了一种链上链下数据安全存储和查询方案,将传统的利用云服务存储和检索数据的可搜索加密方案与区块链和IPFS分布式存储系统进行结合,实现数据在加密状态下的检索,以及存储记录的抗毁、可追溯、不可篡改,并提高了数据的存储效率,节省存储空间,做到了链上与链下相结合的数据安全存储和查询。
2、本申请应用实例可搜索加密方案中的算法基于文献1[Dan Boneh,Giovanni DiCrescenzo,Rafail Ostrovsky,Giuseppe Persiano,Public Key Encryption withKeyword Search,In:International Conference on the Theory and Applications ofCryptographic Techniques,Advances in Cryptology-EUROCRYPT 2004]。在此基础上,将关键字密文进行上链保存,并利用在区块链上智能合约完成密文搜索过程,而密文数据主体使用AES加密后存入分布式存储系统,且代理服务器与IPFS分布式存储系统只进行密文数据交换,进一步提高数据的安全性与可靠性。
3、本申请应用实例对系统中可能保存的海量数据进行区分,区分为热数据和冷数据,其中热数据是近一段时间内使用的数据,其索引保存在智能合约热数据索引表中,并将数据从IPFS中提取出来保存在数据库服务器中。区块链在执行加密搜索时同时检索保存全部索引的密文索引表和保存热数据索引的热数据索引表,有一个命中则结束检索。利用用户使用数据的局部性和热数据索引表可有效减少数据检索时间。同时,热数据保存在数据库服务器中,代理服务器可直接从其中取得密文数据,减少密文数据的提取时间,从而提高整个系统存储和查询效率。
4、本申请应用实例中用户需要执行检索操作时,用户向区块链网络中发出检索令牌,区块链网络中有空闲计算资源的主机接受令牌,并在网络中广播该检索任务已被接受,其他空闲主机不再接受该检索任务。该种机制不需要区块链网络中所有空闲主机执行检索操作,有效节省了网络中的计算资源。
5、本申请应用实例在区块链网络中引入仲裁节点群,仲裁节点是区块链网络中有空闲计算资源的主机,整个区块链网络中用户、服务方和仲裁节点是可以根据情况进行相互转化的。当用户认为检索结果有误时,便可提出质询,要求仲裁节点群进行仲裁,当仲裁节点群的投票结果比例大于某个数时,则认为服务方的检索结果没有错误,在这种方式下,即便区块链网络中有少数恶意节点也不会影响仲裁结果。另一方面,如果仲裁结果认为服务方的检索结果确实有误,则用户重新发出检索令牌去执行检索任务,同时仲裁结果可被整个系统的管理员了解到,进而判断上个服务方是否已被攻击变成了恶意节点;而且本申请应用实例中仲裁节点要执行的仲裁计算过程分为三个部分,它不仅可以判断服务方的检索结果是否正确,同时也可判断提出检索请求的用户是否恶意损坏服务方的名誉,也就是说用户的确收到了正确的检索结果,却声称检索结果错误,这种行为也会在仲裁节点的计算过程中被发现,进而被整个系统的管理员了解。所以仲裁节点群还可以起到维护整个区块链网络生态的作用,可有效发现区块链网络中可能存在问题的节点,无论它是用户节点还是服务方节点。
本申请实施例还提供了一种电子设备,该电子设备可以包括处理器、存储器、接收器及发送器,处理器用于执行上述实施例提及的链上链下数据安全存储和查询方法,其中处理器和存储器可以通过总线或者其他方式连接,以通过总线连接为例。该接收器可通过有线或无线方式与处理器、存储器连接。
处理器可以为中央处理器(Central Processing Unit,CPU)。处理器还可以为其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本申请实施例中的链上链下数据安全存储和查询方法对应的程序指令/模块。处理器通过运行存储在存储器中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法实施例中的链上链下数据安全存储和查询方法。
存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述一个或者多个模块存储在所述存储器中,当被所述处理器执行时,执行实施例中的链上链下数据安全存储和查询方法。
在本申请的一些实施例中,用户设备可以包括处理器、存储器和收发单元,该收发单元可包括接收器和发送器,处理器、存储器、接收器和发送器可通过总线系统连接,存储器用于存储计算机指令,处理器用于执行存储器中存储的计算机指令,以控制收发单元收发信号。
作为一种实现方式,本申请中接收器和发送器的功能可以考虑通过收发电路或者收发的专用芯片来实现,处理器可以考虑通过专用处理芯片、处理电路或通用芯片实现。
作为另一种实现方式,可以考虑使用通用计算机的方式来实现本申请实施例提供的服务器。即将实现处理器,接收器和发送器功能的程序代码存储在存储器中,通用处理器通过执行存储器中的代码来实现处理器,接收器和发送器的功能。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时以实现前述链上链下数据安全存储和查询方法的步骤。该计算机可读存储介质可以是有形存储介质,诸如随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、软盘、硬盘、可移动存储盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质。
本领域普通技术人员应该可以明白,结合本文中所公开的实施方式描述的各示例性的组成部分、系统和方法,能够以硬件、软件或者二者的结合来实现。具体究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本申请的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。
需要明确的是,本申请并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本申请的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本申请的精神后,做出各种改变、修改和添加,或者改变步骤之间的顺序。
本申请中,针对一个实施方式描述和/或例示的特征,可以在一个或更多个其它实施方式中以相同方式或以类似方式使用,和/或与其他实施方式的特征相结合或代替其他实施方式的特征
以上所述仅为本申请的优选实施例,并不用于限制本申请,对于本领域的技术人员来说,本申请实施例可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种链上链下数据安全存储和查询方法,其特征在于,包括:
接收区块链网络中的服务节点在该区块链网络中根据目标关键字密文在预设的密文索引表或热数据索引表中查询到的目标密文数据的唯一标识密文,并基于预设的AES密钥对所述目标密文数据的唯一标识密文进行解密处理以得到该目标密文数据的唯一标识;其中,所述密文索引表用于存储各个冷数据分别对应的关键字密文和唯一标识密文之间的一一对应关系,所述热数据索引表用于存储各个热数据分别对应的关键字密文和唯一标识密文之间的一一对应关系;
若所述目标密文数据的唯一标识密文是在所述热数据索引表中查询到的,则根据所述目标密文数据的唯一标识自数据库服务器中调取所述目标密文数据,其中,所述数据库服务器用于存储各个所述热数据分别对应的唯一标识和密文数据之间的一一对应关系;
基于所述AES密钥对该目标密文数据进行解密处理以得到目标明文数据,并将所述目标明文数据发送至对应的用户节点。
2.根据权利要求1所述的链上链下数据安全存储和查询方法,其特征在于,在所述基于所述AES密钥对该目标密文数据进行解密处理以得到目标明文数据之前,还包括:
若所述目标密文数据的唯一标识密文是在所述密文索引表中查询到的,则根据所述目标密文数据的唯一标识自IPFS分布式存储系统中调取所述目标密文数据,其中,所述IPFS分布式存储系统用于存储各个所述冷数据分别对应的唯一标识和密文数据之间的一一对应关系。
3.根据权利要求1或2所述的链上链下数据安全存储和查询方法,其特征在于,在所述接收区块链网络中的服务节点在该区块链网络中根据目标关键字密文在预设的密文索引表或热数据索引表中查询到的目标密文数据的唯一标识密文之前,还包括:
接收并存储可信授权机构发送的公钥、AES密钥和加密哈希函数,其中,所述可信授权机构预先生成所述AES密钥、加密哈希函数、对应的私钥和所述公钥,并将其中的私钥发送至所述区块链网络中的用户节点;
接收区块链网络中的数据拥有者节点发送的明文数据和对应的关键字;
基于所述AES密钥对所述明文数据进行加密处理以得到对应的密文数据,并基于所述公钥对所述关键字进行加密处理以得到对应的关键字密文;
基于所述加密哈希函数获取所述密文数据对应的密文数据哈希值。
4.根据权利要求3所述的链上链下数据安全存储和查询方法,其特征在于,还包括:
将所述密文数据发送至IPFS分布式存储系统以使该IPFS分布式存储系统将所述密文数据标记为冷数据并生成对应的唯一标识,并将所述密文数据对应的密文数据哈希值发送至所述区块链网络进行存储;
接收所述IPFS分布式存储系统发送的所述密文数据对应的唯一标识,并基于所述AES密钥对所述密文数据对应的唯一标识进行加密处理以得到对应的唯一标识密文;
将所述密文数据的关键字密文和所述唯一标识密文发送至所述区块链网络中进行存储,以使所述区块链网络中的智能合约对应更新密文索引表。
5.根据权利要求2所述的链上链下数据安全存储和查询方法,其特征在于,在所述根据所述目标密文数据的唯一标识自IPFS分布式存储系统中调取所述目标密文数据之后,还包括:
将所述目标密文数据和对应的唯一标识发送至数据库服务器中进行存储,其中,若所述目标密文数据的唯一标识密文是在所述密文索引表中查询到的,则所述区块链网络的智能合约预先将该目标密文数据对应的目标关键字密文和唯一标识密文更新至热数据索引表,以使所述目标密文数据由冷数据标记为热数据。
6.根据权利要求4所述的链上链下数据安全存储和查询方法,其特征在于,在所述将所述目标明文数据发送至对应的用户节点之后,还包括:
接收所述用户节点发送的针对所述目标明文数据的仲裁请求;
将所述目标明文数据对应的目标密文数据的唯一标识密文、目标密文数据和加密哈希函数发送至所述区块链网络中的仲裁节点群中的各个仲裁节点,以使各个所述仲裁节点分别根据所述目标关键字密文在预设的密文索引表或热数据索引表中重新查询到的目标密文数据的唯一标识密文以作为当前的重检唯一标识密文,并分别根据所述加密哈希函数获取所述目标密文数据的密文数据哈希值并作为当前的重检密文数据哈希值,再分别判断所述重检唯一标识密文与所述目标密文数据的唯一标识密文是否相同,以及,所述重检密文数据哈希值和所述目标密文数据的密文数据哈希值是否相同,并分别基于对应的判定结果生成对应的独立仲裁结果;
接收各个所述仲裁节点分别发送的独立仲裁结果;
基于预设的判定规则汇总各个所述独立仲裁结果,以得到用于表示所述目标明文数据是否有误的目标仲裁结果;
将所述目标明文数据对应的目标仲裁结果发送至针对该目标明文数据提出仲裁请求的所述用户节点。
7.一种链上链下数据安全存储和查询装置,其特征在于,包括:
冷热区分查询模块,用于接收区块链网络中的服务节点在该区块链网络中根据目标关键字密文在预设的密文索引表或热数据索引表中查询到的目标密文数据的唯一标识密文,并基于预设的AES密钥对所述目标密文数据的唯一标识密文进行解密处理以得到该目标密文数据的唯一标识;其中,所述密文索引表用于存储各个冷数据分别对应的关键字密文和唯一标识密文之间的一一对应关系,所述热数据索引表用于存储各个热数据分别对应的关键字密文和唯一标识密文之间的一一对应关系;
热数据调取模块,用于若所述目标密文数据的唯一标识密文是在所述热数据索引表中查询到的,则根据所述目标密文数据的唯一标识自数据库服务器中调取所述目标密文数据,其中,所述数据库服务器用于存储各个所述热数据分别对应的唯一标识和密文数据之间的一一对应关系;
明文数据发送模块,用于基于所述AES密钥对该目标密文数据进行解密处理以得到目标明文数据,并将所述目标明文数据发送至对应的用户节点。
8.根据权利要求7所述的链上链下数据安全存储和查询装置,其特征在于,还包括:
冷数据调取模块,用于若所述目标密文数据的唯一标识密文是在所述密文索引表中查询到的,则根据所述目标密文数据的唯一标识自IPFS分布式存储系统中调取所述目标密文数据,其中,所述IPFS分布式存储系统用于存储各个所述冷数据分别对应的唯一标识和密文数据之间的一一对应关系。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6任一项所述的链上链下数据安全存储和查询方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至6任一项所述的链上链下数据安全存储和查询方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310553291.6A CN116881932A (zh) | 2023-05-16 | 2023-05-16 | 链上链下数据安全存储和查询方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310553291.6A CN116881932A (zh) | 2023-05-16 | 2023-05-16 | 链上链下数据安全存储和查询方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116881932A true CN116881932A (zh) | 2023-10-13 |
Family
ID=88270459
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310553291.6A Pending CN116881932A (zh) | 2023-05-16 | 2023-05-16 | 链上链下数据安全存储和查询方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116881932A (zh) |
-
2023
- 2023-05-16 CN CN202310553291.6A patent/CN116881932A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Xhafa et al. | Designing cloud-based electronic health record system with attribute-based encryption | |
US8938074B2 (en) | Systems and methods for secure communication using a communication encryption bios based upon a message specific identifier | |
JP4958246B2 (ja) | 高速検索可能な暗号化のための方法、装置およびシステム | |
US11546173B2 (en) | Methods, application server, IoT device and media for implementing IoT services | |
CN102769529A (zh) | Dnssec签名服务器 | |
US11539672B2 (en) | Private virtual network replication of cloud databases | |
CN110059055B (zh) | 一种基于分布式私有云的文件存储及读取方法及装置 | |
US9253171B2 (en) | Distributed network encryption key generation | |
Li et al. | Enabling efficient and secure data sharing in cloud computing | |
US20150381716A1 (en) | Method and system for sharing files over p2p | |
US20110238975A1 (en) | Information processing device, route control device, and data relay method | |
US10129025B2 (en) | Binding data to a network in the presence of an entity with revocation capabilities | |
CN116633701B (zh) | 信息传输方法、装置、计算机设备和存储介质 | |
CN110610101A (zh) | 一种数据存证方法、装置、设备及存储介质 | |
CN114880698B (zh) | 数据库访问方法和装置、计算设备和计算机程序产品 | |
CN112860790B (zh) | 数据管理方法、系统、装置 | |
US20170244753A1 (en) | Establishing a secure data exchange channel | |
CN112235290A (zh) | 基于区块链的物联网设备管理方法及第一物联网设备 | |
CN109150661B (zh) | 一种设备发现方法及装置 | |
CN116633625A (zh) | 基于联盟链的对称可搜索加密系统及方法 | |
CN114389878B (zh) | 一种区块链分片方法及区块链网络系统 | |
CN116881932A (zh) | 链上链下数据安全存储和查询方法及装置 | |
JP5799635B2 (ja) | 暗号データ検索システム、装置、方法及びプログラム | |
CN108141462B (zh) | 数据库查询的方法和系统 | |
KR102263053B1 (ko) | 근거리 영역 네트워크(lan) 환경에서 기기 간 데이터 동기화가 가능한 데이터베이스 구조 및 이를 이용한 데이터 동기화 방법 |
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 |