一种基于区块链的数据存储方法、装置及存储介质制造方法及图纸

技术编号:28558699 阅读:26 留言:0更新日期:2021-05-25 17:53
本发明专利技术提供一种基于区块链的数据存储方法、装置和存储介质包括:生成第一密钥和第二密钥;基于第一密钥对明文数据加密后生成密文数据,将密文数据存储到区块链上;根据密文数据的存储信息,确定数据标识ID;存储信息包括:密文数据在区块链上的存储位置和/或存储到区块链上的存储顺序;对数据标识ID、密文数据的关键词和第二密钥进行加密,生成密文数据对应的索引;存储索引,索引用于在数据查询过程中与查询数据的查询凭证进行匹配;数据标识ID用于在索引与查询凭证匹配成功时返回查询数据对应的密文数据至发送查询请求的节点;第二密钥用于与查询请求携带的客户端节点的子密钥共同确定发送查询请求的节点是否为有权限查询密文数据的授权节点。

【技术实现步骤摘要】
一种基于区块链的数据存储方法、装置及存储介质
本专利技术涉及信息
,尤其涉及一种基于区块链的数据存储方法、装置及存储介质。
技术介绍
相关技术可以将数据存储在区块链数据库中,但是将数据全部以公开明文的方式存在区块链系统中,这也就造成了很严重的信息泄露,因为任意的恶意服务器都可以获取查询用户的查询关键词、查询结果等信息。因此,这样存储数据可能存在安全问题,部分账户隐私和交易信息保护的需求无法完全满足,且无法控制数据查看的权限。但如果直接将数据加密后存入区块链数据库,又会导致密文数据不方便进行检索查询的问题。
技术实现思路
有鉴于此,本专利技术实施例提供一种基于区块链的数据存储方法、装置及存储介质。本专利技术实施例技术方案是这样实现的:本专利技术实施例提供一种基于区块链的数据存储方法,应用于区块链节点,包括:生成第一密钥和第二密钥;基于所述第一密钥,对明文数据进行加密后生成密文数据,并将所述密文数据存储到区块链上;根据所述密文数据的存储信息,确定数据标识ID;其中,所述存储信息包括:所述密文数据在区块链上的存储位置,和/或,存储到所述区块链上的存储顺序;对数据标识ID、所述密文数据的关键词和所述第二密钥进行加密,生成所述密文数据对应的索引;存储所述索引,其中,所述索引,用于在数据查询的过程中与查询数据的查询凭证进行匹配;所述数据标识ID,用于在所述索引与所述查询凭证匹配成功时返回所述查询数据对应的密文数据至发送查询请求的节点;所述第二密钥,用于与所述查询请求携带的客户端节点的子密钥共同确定发送所述查询请求的节点是否为有权限查询所述密文数据的授权节点。上述方案中,所述方法还包括:将所述第二密钥分为多个子密钥;将所述子密钥发送给授权节点,其中,一个所述授权节点接收一个所述子密钥,不同所述授权节点接收的所述子密钥不同;所述授权节点包括:管理节点和授权查看所述密文数据的客户端节点;其中,所述子密钥,用于在所述授权节点查看所述密文数据时向其他所述授权节点请求子密钥,并生成查询所述密文数据的所述查询凭证;所述查询凭证通过验证之后,确定存在所述查询数据对应的密文数据。上述方案中,所述将所述子密钥发送给授权节点,包括:接收查询权限授权操作;根据所述查询权限授权操作指定的客户端,确定出授权查看所述密文数据所述客户端节点。上述方案中,所述将所述第二密钥分为多个子密钥,包括:根据所述授权节点的个数N,将所述第二密钥分为N个所述子密钥,其中,N为任意正整数。上述方案中,所述方法还包括:组建包含所述授权节点的密钥共享组;其中,所述密钥共享组,用于所述授权节点向其他授权节点请求所述子密钥。本专利技术实施例还提供了一种基于区块链的数据查询方法,应用于区块链节点中,包括:接收客户端节点发送的查询请求,所述查询请求中包括:客户端节点的子密钥和查询数据关键词;确定所述客户端节点的子密钥与第二密钥相匹配后,向管理节点请求管理节点的子密钥;其中,所述客户端节点的子密钥与第二密钥相匹配表征所述客户端节点为有权限查询所述密文数据的授权节点;基于所述客户端节点的子密钥、管理节点的子密钥和所述查询数据关键词,生成查询凭证;根据所述查询凭证,确定与所述查询凭证相匹配的索引;根据所述索引中的数据标识ID,确定所述查询数据对应的密文数据,并将所述查询数据对应的密文数据返回至所述客户端节点。本专利技术实施例还提供了一种区块链数据存储装置,所述装置包括:第一生成模块、第一加密模块、第一确定模块、第二加密模块和第二存储模块;所述第一生成模块,用于生成第一密钥和第二密钥;所述第一加密模块,用于基于所述第一密钥,对明文数据进行加密后生成密文数据,并将所述密文数据存储到区块链上;所述第一确定模块,用于根据所述密文数据的存储信息,确定数据标识ID;其中,所述存储信息包括:所述密文数据在区块链上的存储位置,和/或,存储到所述区块链上的存储顺序;所述第二加密模块,用于对数据标识ID、所述密文数据的关键词和所述第二密钥进行加密,生成所述密文数据对应的索引;所述第二存储模块,用于存储所述索引,其中,所述索引,用于在数据查询的过程中与查询数据的查询凭证进行匹配;所述数据标识ID,用于在所述索引与所述查询凭证匹配成功时返回所述查询数据对应的密文数据至发送查询请求的节点;所述第二密钥,用于与所述查询请求携带的客户端节点的子密钥共同确定发送所述查询请求的节点是否为有权限查询所述密文数据的授权节点。本专利技术实施例还提供了一种区块链数据存储装置,所述装置包括:接收模块、请求模块、第二生成模块、第二确定模块和第三确定模块;接收模块,用于接收客户端节点发送的查询请求,所述查询请求中包括:客户端节点的子密钥和查询数据关键词;请求模块,用于确定所述客户端节点的子密钥与第二密钥相匹配后,向管理节点请求管理节点的子密钥;其中,所述客户端节点的子密钥与第二密钥相匹配表征所述客户端节点为有权限查询所述密文数据的授权节点;第二生成模块,用于基于所述客户端节点的子密钥、管理节点的子密钥和所述查询数据关键词,生成查询凭证;第二确定模块,用于根据所述查询凭证,确定与所述查询凭证相匹配的索引;第三确定模块,用于根据所述索引中的数据标识ID,确定所述查询数据对应的密文数据,并将所述查询数据对应的密文数据返回至所述客户端节点。本专利技术实施例还提供了一种电子设备,其特征在于,所述电子设备包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器;其中,所述处理器用于运行所述计算机程序时,执行上述任一项实施例提供的方法。本专利技术实施例还提供了一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机可执行指令;所述计算机可执行指令被处理器执行后,能够实现上述任一项实施例提供的方法。本专利技术实施例中,生成第一密钥和第二密钥,通过第一密钥将明文数据加密并将密文数据存储至区块链上,实现将要存储的数据以密文数据的形式存储至区块链中,可以提高数据存储的安全性;同时,通过存储所述密文数据的索引,用于供后续进行密文数据查询时,与获得的查询凭证进行匹配,在匹配成功时才将密文数据发送给发送查询请求的节点,在对想要访问存储数据的查询节点进行身份验证通过后,实现密文数据的查询。此外,通过第二密钥和客户端节点发送的子密钥共同确定发送查询请求的节点是否为有权限查询所述密文数据的授权节点,实现了对查询权限的限制,进一步保障了账户隐私和交易信息的安全性。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1是本专利技术提供的基于区块链的数据存储方法的流本文档来自技高网...

【技术保护点】
1.一种基于区块链的数据存储方法,其特征在于,应用于区块链节点,包括:/n生成第一密钥和第二密钥;/n基于所述第一密钥,对明文数据进行加密后生成密文数据,并将所述密文数据存储到区块链上;/n根据所述密文数据的存储信息,确定数据标识ID;其中,所述存储信息包括:所述密文数据在区块链上的存储位置,和/或,存储到所述区块链上的存储顺序;/n对数据标识ID、所述密文数据的关键词和所述第二密钥进行加密,生成所述密文数据对应的索引;/n存储所述索引,其中,所述索引,用于在数据查询的过程中与查询数据的查询凭证进行匹配;所述数据标识ID,用于在所述索引与所述查询凭证匹配成功时返回所述查询数据对应的密文数据至发送查询请求的节点;所述第二密钥,用于与所述查询请求携带的客户端节点的子密钥共同确定发送所述查询请求的节点是否为有权限查询所述密文数据的授权节点。/n

【技术特征摘要】
1.一种基于区块链的数据存储方法,其特征在于,应用于区块链节点,包括:
生成第一密钥和第二密钥;
基于所述第一密钥,对明文数据进行加密后生成密文数据,并将所述密文数据存储到区块链上;
根据所述密文数据的存储信息,确定数据标识ID;其中,所述存储信息包括:所述密文数据在区块链上的存储位置,和/或,存储到所述区块链上的存储顺序;
对数据标识ID、所述密文数据的关键词和所述第二密钥进行加密,生成所述密文数据对应的索引;
存储所述索引,其中,所述索引,用于在数据查询的过程中与查询数据的查询凭证进行匹配;所述数据标识ID,用于在所述索引与所述查询凭证匹配成功时返回所述查询数据对应的密文数据至发送查询请求的节点;所述第二密钥,用于与所述查询请求携带的客户端节点的子密钥共同确定发送所述查询请求的节点是否为有权限查询所述密文数据的授权节点。


2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述第二密钥分为多个子密钥;
将所述子密钥发送给授权节点,其中,一个所述授权节点接收一个所述子密钥,不同所述授权节点接收的所述子密钥不同;所述授权节点包括:管理节点和授权查看所述密文数据的客户端节点;
其中,所述子密钥,用于在所述授权节点查看所述密文数据时向其他所述授权节点请求子密钥,并生成查询所述密文数据的所述查询凭证;所述查询凭证通过验证之后,确定存在所述查询数据对应的密文数据。


3.根据权利要求2所述的方法,其特征在于,所述将所述子密钥发送给授权节点,包括:
接收查询权限授权操作;
根据所述查询权限授权操作指定的客户端,确定出授权查看所述密文数据所述客户端节点。


4.根据权利要求2所述的方法,其特征在于,所述将所述第二密钥分为多个子密钥,包括:
根据所述授权节点的个数N,将所述第二密钥分为N个所述子密钥,其中,N为任意正整数。


5.根据权利要求2所述的方法,其特征在于,所述方法还包括:
组建包含所述授权节点的密钥共享组;
其中,所述密钥共享组,用于所述授权节点向其他授权节点请求所述子密钥。


6.一种基于区块链的数据查询方法,其特征在于,应用于区块链节点中,包括:
接收客户端节点发送的查询请求,所述查询请求中包括:客户端节点的子密钥和查询数据关键词;
确定所述客户端节点的子密钥与第二密钥相匹配后,向管理节点请求管理节点的子密钥;其中,所述客户端节点的子密钥与第二密钥相匹配表征所述客户端节点为有权限查询所述密文数据的授权节点;
基于所述客户端节点的子密钥、管理节点的子密钥和所述查询数据关键词,生成查询凭证;
根据所述...

【专利技术属性】
技术研发人员:向舜
申请(专利权)人:卓尔智联武汉研究院有限公司
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1