一种基于区块链的密文检索方法技术

技术编号:24121440 阅读:27 留言:0更新日期:2020-05-13 03:12
本发明专利技术公开了一种基于区块链的密文检索方法,包括:初始化生成公共参数以及主密钥;根据用户的属性集生成关键词搜索密钥;由数据拥有者提供的访问控制策略以及数据关键词生成密文关键词数据,并采用对称加密加密用户数据,并将密文关键词数据以及密文数据调用智能合约来上传至区块链;由数据需求者提供的关键词以及关键词搜索密钥生成相应的关键词搜索令牌;将关键词搜索令牌传参至智能合约,智能合约将链上每个密文数关键词数据与关键词搜索令牌进行匹配;将得到的密文解密;本方法在区块链密文检索基础上,改进为基于属性的密文检索,将用户数据以密文的形式上传,并通过用户属性来决定用户对数据的权限。

【技术实现步骤摘要】
一种基于区块链的密文检索方法
本专利技术涉及一种基于区块链的密文检索方法,属于数据存储

技术介绍
随着区块链的不断发展,越来越多的信息被存放到区块链上,与之伴随的越来越多的私密信息也面临着上链的需求,然而区块链是全网公开的共享账本,这就使得密文上链成为必然。当数据量增多时,用户对链上密文数据产生检索需求,区块链上的密文检索方案应运而生。现阶段的区块链上的密文检索,区块链上的所有用户既可以是数据拥有者,即数据的所有者,主要目的是将自身的数据上传至区块链共享,也可以是数据需求者,即需求数据的用户,目的是从区块链上搜索相应的数据。现存的方法中有需要交互的对称加密方式的密文检索,然而这种方式需要数据需求者和数据拥有者进行交流,并提供对称密钥,也不能全链检索,操作繁琐,效率不高。
技术实现思路
本专利技术用于解决无法对区块链内容进行全链检索的问题,主要分为以下六步:步骤(1)初始化生成公共参数以及主密钥设安全参数为k,G1和GT为两个阶为大素数q的乘法循环群。设e:G1×G1→GT为双线性映射,g为群G1的生成元。H:{0,1}*→G1,分别表示两个哈希函数。随机选择a,b,c,x,y∈G1,设置主密钥msk=(a,b,c,x,y),计算Ex=e(gx,g)。然后公布公开参数pm=(g,e,ga,gb,gc,gy,H,h,G1,GT,Ex)。步骤(2)根据用户的属性集生成关键词搜索密钥随机生成计算A=g(ac-r)/b和B=g(x+r)/y。然后根据用户的属性集As,对于每一个属性atti∈As,随机选择计算和最终生成关键词搜索密钥sk={As,A,B,{Mi,Ni|atti∈As}}。步骤(3)由数据拥有者提供的访问控制策略以及数据关键词生成密文关键词数据,并采用对称加密加密用户数据,并将密文关键词数据以及密文数据调用智能合约来上传至区块链数据拥有者首先为每个文件F生成关键词kw。然后,数据拥有者本地生成对称密钥ck,首先用对称密钥ck对文件F进行加密,生成然后随机选择计算然后根据访问控制策略生成访问控制树T。访问控制树中包含一组属性集Ts,每个叶子节点代表一个属性。访问控制树T的叶子节点v代表的属性由att(v)表示。数据拥有者利用访问控制树将随机秘密值r2分享到每个叶子节点中,每个叶子节点的秘密值对应qv(0)。对于每个叶子节点属于v∈T,计算和其中qv(x)是访问控制树中的多项式。最终得到密文关键词cph={T,W0,W1,W2,C0,C1,{(Wv,Dv)|att(v)∈Ts}}。然后将密文关键词数据cph、加密文件作为事务上传至区块链存储。步骤(4)由数据需求者提供的关键词以及关键词搜索密钥生成相应的关键词搜索令牌数据需求者随机选取然后计算tk1=(gagbh(kw))s,tk2=gcs,tk3=As。然后,对于每个用户的属性atti∈As,datauser计算最后,生成查询tokentk={tk1,tk2,tk3,As,{(Mi',Ni')|atti∈As}}。步骤(5)将关键词搜索令牌传参至智能合约,智能合约将链上每个密文数关键词数据与关键词搜索令牌进行匹配数据使用者调用并传递参数tk给检索智能合约Sc,智能合约Sc根据查询口令tk对链上的每个密文数据关键词cph进行检索。首先智能合约Sc判断查询口令tk中的属性集As是否存在一个子集可以满足cph中的访问控制树T,如果不满足,则返回空集。如果满足,对于每个属性atti=att(v)∈Ts,计算然后基于所有{Ev|att(v)∈S}对访问控制树T从下到上计算秘密值,直至恢复树根的秘密值然后通过判断是否e(W0,tk1)Ere(tk3,W2)=e(W1,tk2),如果成立,将对应文件保存。然后按照上述步骤继续检索,直到遍历所有关键词。最终智能合约Sc返回数据使用者所有满足检索结果步骤(6)将得到的密文解密计算C0/(e(C1,B)*Er^(1/s))=ck,获取对称密钥ck。然后利用对称密钥ck,解密对应检索文件地址的文件,得到明文F。有益效果本方法在区块链密文检索的基础上,加入了基于属性的密文检索方案,通过对上传数据的关键词进行属性策略访问限制,为用户无需交互的全链检索提供了方法,并且在保证用户隐私信息的情况下提供了权限控制。实验结果表明,加入了基于属性的密文检索方案的区块链密文检索有效地实现用户隐私信息的私密性和数据需求者无需交互的全链检索。附图说明图1:方法流程图图2:访问控制树样例图具体实施方式本专利技术采用的技术方案为基于区块链的密文检索方案和基于属性的可搜索加密方案,该方法的具体实施过程如下:步骤(1)初始化生成公共参数以及主密钥设安全参数为k,G1和GT为两个阶为大素数q的乘法循环群。设e:G1×G1→GT为双线性映射,g为群G1的生成元。随机选择a,b,c,x,y∈G1,设置主密钥msk=(a,b,c,x,y),计算Ex=e(gx,g),H:{0,1}*→G1,分别表示两个哈希函数。然后公布公开参数pm=(g,e,ga,gb,gc,gy,H,h,G1,GT,Ex)。步骤(2)根据用户的属性集生成关键词搜索密钥用户的属性集依据具体情景的不同可以自由决定,例如在学校管理中可以为{身份(学生/老师),性别(男/女),学院(计算机/土木/…)}。随机生成计算A=g(ac-r)/b和B=g(x+r)/y。然后根据用户的属性集As,对于每一个属性atti∈As,随机选择计算和最终生成关键词搜索密钥sk={As,A,B,{Mi,Ni|atti∈As}}。步骤(3)由数据拥有者提供的访问控制策略以及数据关键词生成密文关键词数据,并采用对称加密加密用户数据,并将密文关键词数据以及密文数据调用智能合约来上传至区块链。此步骤中的访问控制策略为数据拥有者决定的,形式为(计算机土木1/2老师1/2),表示只有老师或者计算机和土木的学生可以查阅数据拥有者的数据。对称加密采用AES加密方式。数据拥有者首先为每个文件F生成关键词kw。然后,数据拥有者本地生成对称密钥ck,首先用对称密钥ck对文件F进行加密,生成然后随机选择计算然后根据访问控制策略生成访问控制树T。访问控制树中包含一组属性集Ts,每个叶子节点代表一个属性。访问控制树T的叶子节点v代表的属性由att(v)表示。数据拥有者利用访问控制树将随机秘密值r2分享到每个叶子节点中,每个叶子节点的秘密值对应qv(0)。对于每个叶子节点属于v∈T,计算和其中qv(x)是访问控制树中的多项式。最终得到密文关键词cph={T,W0,W1,W2,C0,C1,{(Wv,Dv)|att(v)∈Ts}}。然后将密文关键词数据cph、加密文件作为事务上传至区块链存储。生成访问控制树T的具体过程如下:访问控制树是一棵树。其叶子节点为数据所有者设定的属性和属性值以及父节点传于此节点的秘密值,并对其加密处理,只有数据访问本文档来自技高网...

【技术保护点】
1.一种基于区块链的密文检索方法,其特征在于实施过程如下,/n步骤(1)初始化生成公共参数以及主密钥/n步骤(2)根据用户的属性集生成关键词搜索密钥/n步骤(3)由数据拥有者提供的访问控制策略以及数据关键词生成密文关键词数据,并采用对称加密加密用户数据,并将密文关键词数据以及密文数据调用智能合约来上传至区块链/n步骤(4)由数据需求者提供的关键词以及关键词搜索密钥生成相应的关键词搜索令牌/n步骤(5)将关键词搜索令牌传参至智能合约,智能合约将链上每个密文关键词数据与关键词搜索令牌进行匹配/n步骤(6)将得到的密文解密。/n

【技术特征摘要】
1.一种基于区块链的密文检索方法,其特征在于实施过程如下,
步骤(1)初始化生成公共参数以及主密钥
步骤(2)根据用户的属性集生成关键词搜索密钥
步骤(3)由数据拥有者提供的访问控制策略以及数据关键词生成密文关键词数据,并采用对称加密加密用户数据,并将密文关键词数据以及密文数据调用智能合约来上传至区块链
步骤(4)由数据需求者提供的关键词以及关键词搜索密钥生成相应的关键词搜索令牌
步骤(5)将关键词搜索令牌传参至智能合约,智能合约将链上每个密文关键词数据与关键词搜索令牌进行匹配
步骤(6)将得到的密文解密。


2.根据权利要求1所述的一种基于区块链的密文检索方法,其特征在于:步骤(1)的实施过程如下,
设安全参数为k,G1和GT为两个阶为大素数p的乘法循环群;设e:G1×G1→GT为双线性映射,g为群G1的生成元,本发明中出现的XY型皆为X的Y次幂;随机选择a,b,c,x,y∈G1,设置主密钥msk=(a,b,c,x,y),计算Ex=e(gx,g),H:{0,1}*→G1,分别表示两个哈希函数,是p阶正整数域,然后公布公共参数pm=(g,e,ga,gb,gc,gy,H,h,G1,GT,Ex)。


3.根据权利要求1所述的一种基于区块链的密文检索方法,其特征在于:步骤(2)的实施过程如下,
随机生成计算A=g(ac-r)/b和B=g(x+r)/y,然后根据用户的属性集As,对于每一个属性atti∈As,随机选择计算和最终生成关键词搜索密钥sk={As,A,B,{Mi,Ni|atti∈As}}。


4.根据权利要求1所述的一种基于区块链的密文检索方法,其特征在于:步骤(3)的实施过程如下,
数据拥有者首先为文件F生成关键词kw,然后,数据拥有者本地生成对称密钥ck,首先用对称密钥ck对文件F进行加...

【专利技术属性】
技术研发人员:朱博成于海阳杨震
申请(专利权)人:北京工业大学
类型:发明
国别省市:北京;11

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

1