基于区块链的密文关键字搜索方法、系统、装置及介质制造方法及图纸

技术编号:27471213 阅读:30 留言:0更新日期:2021-03-02 17:36
本发明专利技术公开了基于区块链的密文关键字搜索方法、系统、装置及介质,属于关键字搜索技术领域,要解决的技术问题为如何实现安全、多用户、可验证且公平支付的密文搜索。方法包括:数据拥有者生成系统参数、主公钥和主密钥,并公开系统参数和主公钥;基于主密钥对关键字进行加密生成支持多个关键字检索的索引,并对明文加密生成密文,将上述索引和密文上传云服务器;数据拥有者对数据用户进行认证并将认证通过的数据用户加入用户列表;数据用户基于搜索请求生成陷门,云服务器基于陷门进行搜索,并将搜索结果返回数据用户;数据用户基于智能合约验证搜索结果的正确性,并向云服务器和数据所有者支付费用;数据用户基于搜索结果解密密文,得到明文。得到明文。得到明文。

【技术实现步骤摘要】
基于区块链的密文关键字搜索方法、系统、装置及介质


[0001]本专利技术涉及关键字搜索
,具体地说是基于区块链的密文关键字搜索方法、系统、装置及介质。

技术介绍

[0002]云存储是一种无限的存储资源,给我们带来了极大的方便。无论是个人还是企业都倾向于将大量数据分享于网络,然而,在享受低成本和方便的协作的同时,用户也关注数据隐私问题。当个人用户通过社交网络分享照片和视频,公司用户将敏感数据外包给云存储时,数据隐私问题就存在了。
[0003]为了保护用户数据的隐私,数据在上传到云服务器之前需要进行加密,加密之后用户只能依据密文进行搜索,这就是可搜索加密。按照如何根据密文搜索关键字,可搜索加密分为私钥可搜索加密和公钥可搜索加密。最初提出的无记忆关键字搜索是基于单关键字的,首先,数据所有者加密数据和关键字,然后将它们提交给用户。当用户想要搜索的时候,用户产生令牌并将其发送给数据所有者,数据所有者将陷门返回给用户。
[0004]目前,云服务器不诚实地执行搜索操作,并返回不正确或者不完整地结果,这是可搜索加密和无记忆关键字搜索面临一个的问题。在先支付后使用的模型中,即使云服务器是不诚实的,用户也需要提前支付服务费用。在先使用后支付的模型中,用户可能会欺骗云服务器为其服务。因此,迫切需要一个解决公平支付问题的方案。
[0005]如何实现安全、多用户、可验证且公平支付的密文搜索,是需要解决的技术问题。

技术实现思路

[0006]本专利技术的技术任务是针对以上不足,提供基于区块链的密文关键字搜索方法、系统、装置及介质,来解决如何实现安全、多用户、可验证且公平支付的密文搜索的问题。
[0007]第一方面,本专利技术提供一种基于区块链的密文关键字搜索方法,应用于包括区块链以及加入区块链的数据拥有者、数据用户和云服务器的系统,所述区块链上部署有智能合约,所述智能合约部署有用户列表和公平支付规则,所述方法包括如下步骤:
[0008]数据所有者生成系统参数、主公钥和主密钥,并向系统公开所述系统参数和主公钥;
[0009]数据拥有者从明文中提取关键字,基于主密钥对关键字加密生成支持多个关键字搜索的索引,并对明文明文加密生成密文,将上述索引和密文上传云服务器;
[0010]数据用户发起搜索请求,基于搜索请求生成陷门并将陷门上传智能合约和云服务器;
[0011]智能合约基于用户列表对数据用户进行认证,如果认证不通过,通过数据拥有者对数据用户进行认证并将认证通过的数据用户加入用户列表,如果认证通过,云服务器基于陷门进行搜索并将搜索结果返回数据用户;
[0012]数据用户调用智能合约,智能合约基于公平支付规则验证搜索结果的内容是否正
确,验证通过后,数据用户根据公平支付规则分别向云服务器和数据所有者支付费用,并解密搜索结果。
[0013]作为优选,所述智能合约包括用户管理合约和公平支付合约,所述用户管理合约部署有用户列表,每个数据所有者对应有一个用户列表,每个用户列表用于存储相关数据所有者与其验证通过的数据用户之间的映射关系;
[0014]公平支付合约部署有公平支付规则,用于基于陷门调用用户管理合约对数据用户进行认证,用于在数据用户认证通过后触发云服务器基于陷门进行搜索,用于基于公平支付规则验证搜索结果的内容是否正确,并根据验证结果限定数据用户分别向云服务器和数据所有者支付费用。
[0015]作为优选,所述系统参数表示为:
[0016]pp=(PG,H,g,h,f)
[0017]PG=(p,G1,G2,e)
[0018]其中,α∈Z
p
,为数据所有者随机选择的参数;
[0019]G1和G2均表示群,g和h均表示群的生成元,g,h∈G1;
[0020]e表示双线性映射;
[0021]H表示哈希函数,H:Z
M

Z
p
,Z
M
和Z
p
分别表示阶为M和p的集合;
[0022]f表示一个伪随机函数;
[0023]主公钥表示为:
[0024]mpk=(h
α
,N,e')
[0025]其中,N和e'均为非对称加密算法RSA的公钥;
[0026]主密钥表示为:
[0027]msk=(α,d)
[0028]其中,α为Z
p
中的任意一个数,d是为非对称加密算法RSA的私钥。
[0029]作为优选,数据拥有者从明文中提取关键字,基于主密钥对关键字加密生成支持多个关键字检索的索引,包括如下步骤:
[0030]数据所有者拥有m个文档,表示为D=(D1,D2,...,D
m
),关键字空间表示为KS,数据所有者与数据用户协定关键字集文档D
i
包含关键字集
[0031]数据所有者随机选择r
i
',基于关键字集W
i
和主密钥α,数据所有者执行以下操作产生用于支持多个关键字检索的索引:
[0032]OCSI
ij
=f(w
ij
)
d
r
i
'mod N
[0033][0034]其中,i=1,2,...,m,j=1,2,...,n',n'表示文档所包含的关键字个数。
[0035]作为优选,数据拥有者对数据用户进行认证并将认证通过的数据用户加入用户列表,包括如下步骤:
[0036]数据用户选择其私钥s以及关键字集W',s∈
R Z
p
,基于系统参数、主公钥mpk、用户私钥s、关键字集W'以及数据用户与数据拥有者协定的关键字集W,数据用户执行如下计算生成认证信息:
[0037][0038][0039][0040]∑=(∑1,∑2,∑3)
[0041]数据用户将上述认证信息∑发送至数据拥有者;
[0042]基于认证信息∑、关键字集W以及主公钥mpk,数据所有者进行如下操作验证上述认证信息∑:
[0043]e(∑3,h
α
)=e(∑2,h)
[0044][0045]如果验证通过,数据所有者通过智能合约将所述数据用户添加至对应的用户列表。
[0046]作为优选,数据用户发起搜索请求,基于搜索请求生成陷门,包括如下步骤:
[0047]数据用户选择关键字集W'=(w1,w2,...,w
t
),并随机选择r∈Z
N
,基于关键字集W'和r,数据用户执行如下计算:
[0048]Y=r
e'
×
f(w1)
×
f(w2)
×
...
×
f(w
t
)
[0049]数据用户将Y返回数据所有者,数据所有者执行如下操作:
[0050]Tr'=Y
d<本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.基于区块链的密文关键字搜索方法,其特征在于应用于包括区块链以及加入区块链的数据拥有者、数据用户和云服务器的系统,所述区块链上部署有智能合约,所述智能合约部署有用户列表和公平支付规则,所述方法包括如下步骤:数据所有者生成系统参数、主公钥和主密钥,并向系统公开所述系统参数和主公钥;数据拥有者从明文中提取关键字,基于主密钥对关键字加密生成支持多个关键字搜索的索引,并对明文明文加密生成密文,将上述索引和密文上传云服务器;数据用户发起搜索请求,基于搜索请求生成陷门并将陷门上传智能合约和云服务器;智能合约基于用户列表对数据用户进行认证,如果认证不通过,通过数据拥有者对数据用户进行认证并将认证通过的数据用户加入用户列表,如果认证通过,云服务器基于陷门进行搜索并将搜索结果返回数据用户;数据用户调用智能合约,智能合约基于公平支付规则验证搜索结果的内容是否正确,验证通过后,数据用户根据公平支付规则分别向云服务器和数据所有者支付费用,并解密搜索结果。2.根据权利要求1所述的基于区块链的密文关键字搜索方法,其特征在于所述智能合约包括用户管理合约和公平支付合约,所述用户管理合约部署有用户列表,每个数据所有者对应有一个用户列表,每个用户列表用于存储相关数据所有者与其验证通过的数据用户之间的映射关系;公平支付合约部署有公平支付规则,用于基于陷门调用用户管理合约对数据用户进行认证,用于在数据用户认证通过后触发云服务器基于陷门进行搜索,用于基于公平支付规则验证搜索结果的内容是否正确,并根据验证结果限定数据用户分别向云服务器和数据所有者支付费用。3.根据权利要求1所述的基于区块链的密文关键字搜索方法,其特征在于所述系统参数表示为:pp=(PG,H,g,h,f)PG=(p,G1,G2,e)其中,α∈Z
p
,为数据所有者随机选择的参数;G1和G2均表示群,g和h均表示群的生成元,g,h∈G1;e表示双线性映射;H表示哈希函数,H:Z
M

Z
p
,Z
M
和Z
p
分别表示阶为M和p的集合;f表示一个伪随机函数;主公钥表示为:mpk=(h
α
,N,e')其中,N和e'均为非对称加密算法RSA的公钥;主密钥表示为:msk=(α,d)其中,α为Z
p
中的任意一个数,d是为非对称加密算法RSA的私钥。4.根据权利要求1所述的基于区块链的密文关键字搜索方法,其特征在于数据拥有者从明文中提取关键字,基于主密钥对关键字加密生成支持多个关键字检索的索引,包括如下步骤:
数据所有者拥有m个文档,表示为D=(D1,D2,...,D
m
),关键字空间表示为KS,数据所有者与数据用户协定关键字集文档D
i
包含关键字集数据所有者随机选择r
i
',基于关键字集W
i
和主密钥α,数据所有者执行以下操作产生用于支持多个关键字检索的索引:OCSI
ij
=f(w
ij
)
d
r
i
'mod N其中,i=1,2,...,m,j=1,2,...,n',n'表示文档所包含的关键字个数。5.根据权利要求1所述的基于区块链的密文关键字搜索方法,其特征在于数据拥有者对数据用户进行认证并将认证通过的数据用户加入用户列表,包括如下步骤:数据用户选择其私钥s以及关键字集W',s∈
R
Z
p
,基于系统参数、主公钥mpk、用户私钥s、关键字集W'以及数据用户与数据拥有者协定的关键字集W,数据用户执行如下计算生成认证信息:证信息:证信息:∑=(∑1,∑2,∑3)数据用户将上述认证信息∑发送至数据拥有者;基于认证信息∑、关键字集W以及主公钥mpk,数据所有者进行如下操作验证上述认证信息∑:e(∑3,h
α
)=e(∑2,h)如果验证通过,数据所有者通过智能合约将所述数据用户添加至对应的用户列表。6.根据权利要求1所述的基于区块链的密文关键字搜索方法,其特征在于数据用户发起搜索请求,基于搜索请求生成陷门,包括如下步骤:数据用户选择关键字集W'=(w1,w2,...,w
t
),并随机选择r∈Z
N
,基于关键字集W'和r,数据用户执行如下计算:Y=r

【专利技术属性】
技术研发人员:禹继国刘希茹王英龙董安明
申请(专利权)人:齐鲁工业大学
类型:发明
国别省市:

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

1