区块链加密检索方案的制作方法

文档序号:11920308阅读:265来源:国知局
区块链加密检索方案的制作方法与工艺

本发明涉及区块链上的隐私保护及加密状态下的检索。



背景技术:

目前大多数区块链用零知识证明或同态加密效率不高,需要一种高效的在加密情况下的检索方式。



技术实现要素:

本发明的目的是设计一种方案能够使区块链上的数据在加密的情况下可以被迅速的检索。

本方案使只有知道检索码的用户才能检索相关数据,并且可以分级管理。

本发明所采用的技术方案是:区块链加密检索方案,其特征在于,用户甲需要在区块链上存数据,包括检索的关键字和内容,用户设置一个检索码c_i,用于用户甲自己查看,或授权给乙用户查看,步骤如下;

步骤S1,将需要检索的关键字和检索码c_i串联,并做哈希运算,算出哈希值hash_c_i,把与关键字对应的内容value用对称密钥加密,计算内容的哈希值Hash(内容),用甲公钥加密对称密钥,用乙公钥加密对称密钥;

步骤S2,将步骤S1获得的所有数据进行哈希运算,得出交易哈希值Hash_c_i,一同写入区块链;

步骤S3,区块链上的数据下载解析分离出key_c_i和value_c_i后存入数据库;

步骤S4,甲或乙知道检索码c_i,需要检索某关键字,计算出关键字加检索码c_i的哈希值key_c_i;

步骤S5,在数据库中用key_c_i检索出value_c_i,将两者串联哈希后,得出交易哈希值hash_c_i,可在区块链上找到对应的Tx_c_i,找到key_c_i和value_c_i,可验证数据是否在区块链上;

步骤S6,甲或乙用自己的私钥可以解开各自公钥加密的对称密钥,用对称密钥解密加密的内容,内容进行哈希后和区块链上的Hash(内容)对比是否一致;

步骤S7,若想告诉其他用户,可以告诉交易哈希值hash_c_i、内容、Hash(内容),其他用户可以在区块链上直接校验内容是否是甲保存到区块链上的。

根据权利要求1所述区块链加密检索方案,其特征在于,用户可以分小组,管理一小组用户的小组长可以知道其下管理的所有用户的检索码,小组长可以检索到全小组的所有数据,多个小组还可以组成大组,每个大组长可以知道其下所有小组用户的检索码。

根据权利要求1、2所述区块链加密检索方案,其特征在于,用户的检索码用小组长的公钥加密,用大组长的公钥加密,存于value中,key用小组长的检索码与用户的特征值如证件号串联哈希后获得的hash值表示,这里大组长因为知道小组长的检索码,所以也能算出key,获得value里的数据。

根据权利要求1所述区块链加密检索方案,其特征在于,用户的检索码可以由小组长的检索码加用户特征值串联哈希运算后得出的哈希值hash_id来代替,用户的特征值id可以是用户自己知道并不会忘记的一些信息,小组长告知用户检索码hash_id,用户可以用检索码hash_id查询自己的数据。

附图说明

图1是 区块链上加密检索方案原理的说明图;

图2是 区块链航空意外险的加密检索方案的说明图;

具体实施方式

实施例1,参照说明书附图1,本例说明区块链上加密检索方案的实现原理;

用户甲需要在区块链上存数据,包括检索的关键字和内容,用户设置一个检索码c_i,用于用户甲自己查看,或授权给乙用户查看,步骤如下;

步骤S1,将需要检索的关键字和检索码c_i串联,并做哈希运算,算出哈希值hash_c_i,把与关键字对应的内容value用对称密钥加密,计算内容的哈希值Hash(内容),用甲公钥加密对称密钥,用乙公钥加密对称密钥;

步骤S2,将步骤S1获得的所有数据进行哈希运算,得出交易哈希值Hash_c_i,一同写入区块链;

步骤S3,区块链上的数据下载解析分离出key_c_i和value_c_i后存入数据库;

步骤S4,甲或乙知道检索码c_i,需要检索某关键字,计算出关键字加检索码c_i的哈希值key_c_i;

步骤S5,在数据库中用key_c_i检索出value_c_i,将两者串联哈希后,得出交易哈希值hash_c_i,可在区块链上找到对应的Tx_c_i,找到key_c_i和value_c_i,可验证数据是否在区块链上;

步骤S6,甲或乙用自己的私钥可以解开各自公钥加密的对称密钥,用对称密钥解密加密的内容,内容进行哈希后和区块链上的Hash(内容)对比是否一致;

步骤S7,若想告诉其他用户,可以告诉交易哈希值hash_c_i、内容、Hash(内容),其他用户可以在区块链上直接校验内容是否是甲保存到区块链上的。

实施例2,参照说明书附图2,本例说明保险保单在区块链上的加密检索方案;

监管部门、承保公司、代理公司、乘客是分级权限管理,监管部分可以看所有的数据,承保公司可以看自己下属的代理公司及乘客的信息,代理公司可以查询下属乘客的信息,乘客只能看自己的信息,代理公司的客服若不知道乘客的信息也不能查询乘客的信息;

根据信息查询要求进行加密,承保企业或代理公司将信息加密后,在经私钥签名后上传,在区块链和数据库中建立加密索引。

监管方,10家承保公司拥有不对称公私钥,用于加密的检索码,私钥和检索码各自保密保管。

每家承保公司的代理公司都有公私钥及检索码,检索码的哈希值用作加密对比检索。

每个代理公司将自己的检索码和用户的特征值ID号串联哈希后,生成用户的检索码,监管部门、承保公司、代理公司都可以获取下属相应乘客的检索码,可以检索到加密的用户信息,乘客可以向代理公司索要自己的检索码,用自己的检索码查询相应的信息,并可校验真实性。

以下是信息录入和查询的方案;

1、录入航班号,可由监管部分审批后提交,value里可保存参加承保的公司

Key_ab1234 = Hash(航班号ab1234)

Value 用监管公钥或承保公司加密对称密钥,密钥加密承保及代理公司名称及检索码的hash值。如果每日检索码都一致,下面第3项可以不需要。

2、录入每天的航班号

Key_ab1234_20161212 = Hash(ab1234航班号+日期20161212)

Value 用监管或承保公钥加密对称密钥,密钥加密承保及代理的几家公司名称及检索码的hash值,若需要可每天用不同的检索码,保密性更好,也可以设置一段时间内有效。

3、每日各航班的购买保险的乘客及保单号,承保公司、代理公司和监管可查

Key_ab1234_20161212_za = Hash(ab1234航班号+日期20161212+众安保险代理检索码的hash+第几个乘客)

Value 姓名+身份证+保单号 对称密钥加密后保存,用众安和监管的公钥加密密钥,一同保存。

4、用乘客作为索引记录保单号,承保公司、代理公司和监管可查。

Key_Name_ID_za = Hash(姓名+身份证+年(2016或加12月)+ 保险代理公司的检索码),这个Key可重复,但保单号不能重复。

Value 保单号 购买时间,对称密钥加密后保存,用承保公司和代理公司和监管的公钥加密密钥,一同保存。

这里可以查询某乘客在莫保险代理下的2016年某月的所有保单,key可以相同,但是保单号一定不同。

5、 由代理公司帮乘客查询,代理公司用自己的检索码加上乘客的信息,如乘客姓名、证件名称、证件号码串联后进行哈希运算得出哈希值作为乘客的检索码。

Hash(乘客检索码+2016年+当年第几个保单),由代理公司提供,承保公司上传,给乘客设的检索码,用于校验数据是否在区块链上,仅相关的代理公司、承保公司、监管、乘客本人知道。算出Hash作为查询的Key。Value 为用户的保单信息内容。

这里乘客可以用乘客检索码获取2016年的第几个保单或全部保单。

6、 Hash(代理公司检索码+20161220+当日第几个保单),由代理公司或上级承保公司上传,监管知道代理公司的检索码。算出Hash作为查询的Key。Value 为用户的保单号,可加密,密钥加密,并用代理、承保、监管的公钥加密。如果代理公司是多家保险公司的代理,检索码必须是不同的。

7、承保公司查询下属的代理的检索码

Key =Hash(承保公司检索码+序号), Value 承保或监管公钥加密密钥,对称密钥加密(代理公司名称 代理公司检索码)

8、Hash(保单号)作为key,不能重复

Value为保单内容,对称密钥加密后保存,用代理公司、承保公司和监管的公钥加密密钥,一同保存。

本发明的目的是设计一种方案能够使区块链上的数据在加密的情况下可以被迅速的检索。

本方案使只有知道检索码的用户才能检索相关数据,并且可以分级管理。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1