区块链上基于属性的具有前向和后向隐私的可搜索加密方法及系统技术方案

技术编号:35777947 阅读:14 留言:0更新日期:2022-12-01 14:22
本发明专利技术公开了一种区块链上基于属性的具有前向和后向隐私的可搜索加密方法及系统方法包括:S1、生成系统参数SPP并将SPP公布,生成私钥dk1和dk2,为用户生成私钥K

【技术实现步骤摘要】
区块链上基于属性的具有前向和后向隐私的可搜索加密方法及系统


[0001]本专利技术属于信息检索和密码学的
,具体涉及一种区块链上基于属性的具有前向和后向隐私的可搜索加密方法及系统。

技术介绍

[0002]随着互联网技术的迅速发展、云计算技术的流行以及用户数据量的指数增长,越来越多的企业用户和个人选择将他们的数据存储到云中,这减轻了其自身管理和存储数据的开销。用户可以随时随地地检索云中的数据,且可以轻松分享给获得许可的人。然而,云计算给我们提供便利的同时也存在着严重的安全隐患。当数据以明文的形式外包给云服务器时,可能会遭受到云服务提供商或黑客的非法访问。通常的解决方法是对数据进行加密处理后以密文的形式存储在云服务器上,但也导致传统的明文检索技术无法应用在密文上。
[0003]为了使得用户能在密文数据上进行关键字搜索,可搜索加密(Searchable Encryption,简称SE)技术作为一种解决方案而被提出。根据加密方法不同,可搜索加密可分为可搜索对称加密(Symmetrically Searchable Encryption,简称SSE)和公钥可搜索加密(Public Key Encryption with Keyword Search,简称PEKS)。基于公钥的可搜索加密中,数据拥有者将数据上传到云服务器之前使用指定用户的公钥加密数据,之后这些用户可以使用其私钥对数据进行搜索和解密。
[0004]但这两类可搜索加密方案在私钥生成分配方面大多依赖于可信机构,这一方面使得可信机构成为大多数黑客的攻击目标;另一方面可信机构的“可信任”这一前提一旦消失,用户数据的安全便荡然无存。因此,研究者尝试将具有去中心化等特性的区块链技术应用于可搜索加密领域,并提出了许多方案。这些主要通过将数据与索引分离存储,数据存储在服务器中,索引存储在区块链上,利用区块链来进行加密检索。数据拥有者将数据加密上传到服务器,当用户要查询关键字时,将生成的检索陷门发送到区块链来查询,根据返回的结果从服务器处获得相应的数据。基于区块链的可搜索加密实现了检索过程的去中心化,确保返回的结果的合法性,并且减轻了云服务器的存储空间和搜索代价。
[0005]尽管现有的工作为基于区块链的搜索提供了解决方案,但目前没有一个方案能同时解决检索的去中心化、对用户的细粒度访问控制、数据的前向隐私和后向隐私等三个问题。
[0006]检索的去中心化可以排除单点故障问题从而提高系统的稳定性,现有的大多数工作都通过单一服务器进行检索操作;对用户的细粒度访问控制对于确保数据拥有者的数据安全具有非常重要的作用且其多用户的模式有许多应用场景,已存在的一些区块链上的方法并不支持该特性;数据的前向隐私保证用户使用以往生成的检索陷门无法检索到该陷门生成之后所更新的数据,而数据的后向隐私则保证用户使用检索陷门无法检索得到之前添加但现在已经被删除的数据,现有的大多数工作没有考虑到这一问题,而具备该安全考虑
的方案没有对用户访问权限进行细化。
[0007]综上所述,即便有些工作针对以上三个问题中的部分问题提出了优秀的解决方法,但仍不可避免地在其他方面做出了妥协,不能同时解决这三个方面的问题。因此,如何在大数据和云存储背景下针对以上三个问题设计一个完备的区块链上基于属性的具有前向和后向隐私的可搜索加密方案方法成为急需解决的关键问题。

技术实现思路

[0008]本专利技术的主要目的在于克服现有技术的缺点与不足,提供一种区块链上基于属性的具有前向和后向隐私的可搜索加密方法及系统,利用密文策略基于属性加密(Ciphertext Policy Attribute

Based Encryption简称CP

ABE),支持对用户的细粒度访问控制,能有效对用户的访问权限进行设置;同时实现数据的前向隐私和后向隐私;并利用区块链,实现检索的去中心化,能有效避免单点故障。
[0009]为了达到上述目的,本专利技术采用以下技术方案:
[0010]本专利技术一方面提供了一种区块链上基于属性的具有前向和后向隐私的可搜索加密方法,包括下述步骤:
[0011]S1、数据拥有者DO根据安全参数λ,生成系统参数SPP并将SPP公布,接着根据SPP生成私钥dk1和dk2,并利用公共参数SPP、私钥dk2和数据使用者即用户的属性集S
u
,为用户生成私钥K
u
,并通过安全的通道发送给用户DU;
[0012]S2、数据拥有者DO使用其私钥dk1、数据集合DB={OP,ind,W,T}、公开参数SPP以及一个映射∑,为文档生成索引密文集EDB和已更新的映射∑,并把EDB部署到区块链上,其中OP表示对数据的操作方式即添加或者删除,ind表示文件索引集,W表示关键字集合,T表示关键字的访问树集合;
[0013]S3、数据用户DU进行检索操作时,数据用户使用其私钥K
u
对关键字q进行加密,得到检索陷门Tra并发送给区块链网络;
[0014]S4、区块链网络BP收到数据用户DU发来的检索陷门Tra之后,BP先根据EDB[T
ind
]获取得到相应的访问树T;接着利用陷门中的T
q
以及用户的属性集在访问树上进行计算得到C,根据EDB[H2(C)]判断用户是否具有相应的访问权限;权限检查通过后,根据EDB[H2(C)]得到相应的状态值,从该状态开始,向前回溯,将这之前每次更新的与关键字q相关的加密索引添加到结果集MEI中,最终将MEI返回给数据用户;
[0015]S5、数据用户接收到结果集MEI后,使用私钥K
u
,恢复出对应的明文内容。
[0016]作为优选的技术方案,步骤S1中,所述数据拥有者DO生成系统参数SPP、私钥dk1和私钥dk2后,将系统参数SPP公开发布在区块链网络中或广播给所有用户,所有用户均有访问系统公开参数SPP的权限;私钥dk1和私钥dk2保存于数据拥有者DO中,只有数据拥有者DO具有访问私钥dk1和私钥dk2的权限。
[0017]作为优选的技术方案,步骤S1具体为:
[0018]S11、数据拥有者DO用群生成器执行生成(G1,G2,e,g,q),其中,q为素数,G1和G2为关于q的乘法群,g是G1的生成元,e∶G1×
G1→
G2是一个双线性映射;
[0019]S12、数据拥有者DO随机选择多个安全hash函数,并选择一个伪随机序列生成函数F、F
‑1,F:{0,1}
λ
*{0,1}
λ

{0,1}
λ
,F
‑1是其逆置换;将以上安全hash函数、伪随机序列生成函
数和步骤S11中的参数组合成公开参数SPP=(G1,G2,e,g,q,H0,H1,H2,H3H4,h1,h2,h3,h4,F,F
‑1),将SPP发布在区块链网络中或广播给系统中所有用户,其中H0,H1,H2本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.区块链上基于属性的具有前向和后向隐私的可搜索加密方法,其特征在于,包括下述步骤:S1、数据拥有者DO根据安全参数λ,生成系统参数SPP并将SPP公布,接着根据SPP生成私钥dk1和dk2,并利用公共参数SPP、私钥dk2和数据使用者即用户的属性集S
u
,为用户生成私钥K
u
,并通过安全的通道发送给用户DU;S2、数据拥有者DO使用其私钥dk1、数据集合DB={OP,ind,W,T}、公开参数SPP以及一个映射∑,为文档生成索引密文集EDB和已更新的映射∑,并把EDB部署到区块链上,其中OP表示对数据的操作方式即添加或者删除,ind表示文件索引集,W表示关键字集合,T表示关键字的访问树集合;S3、数据用户DU进行检索操作时,数据用户使用其私钥K
u
对关键字q进行加密,得到检索陷门Tra并发送给区块链网络;S4、区块链网络BP收到数据用户DU发来的检索陷门Tra之后,BP先根据EDB[T
ind
]获取得到相应的访问树T;接着利用陷门中的T
q
以及用户的属性集在访问树上进行计算得到C,根据EDB[H2(C)]判断用户是否具有相应的访问权限;权限检查通过后,根据EDB[H2(C)]得到相应的状态值,从该状态开始,向前回溯,将这之前每次更新的与关键字q相关的加密索引添加到结果集MEI中,最终将MEI返回给数据用户;S5、数据用户接收到结果集MEI后,使用私钥K
u
,恢复出对应的明文内容。2.根据权利要求1所述区块链上基于属性的具有前向和后向隐私的可搜索加密方法,其特征在于,步骤S1中,所述数据拥有者DO生成系统参数SPP、私钥dk1和私钥dk2后,将系统参数SPP公开发布在区块链网络中或广播给所有用户,所有用户均有访问系统公开参数SPP的权限;私钥dk1和私钥dk2保存于数据拥有者DO中,只有数据拥有者DO具有访问私钥dk1和私钥dk2的权限。3.根据权利要求1所述区块链上基于属性的具有前向和后向隐私的可搜索加密方法,其特征在于,步骤S1具体为:S11、数据拥有者DO用群生成器执行生成(G1,G2,e,g,q),其中,q为素数,G1和G2为关于q的乘法群,g是G1的生成元,e:G1×
G1→
G2是一个双线性映射;S12、数据拥有者DO随机选择多个安全hash函数,并选择一个伪随机序列生成函数F、F
‑1,F:{0,1}
λ
*{0,1}
λ

{0,1}
λ
,F
‑1是其逆置换;将以上安全hash函数、伪随机序列生成函数和步骤S11中的参数组合成公开参数SPP=(G1,G2,e,g,q,H0,H1,H2,H3,H4,h1,h2,h3,h4,F,F
‑1),将SPP发布在区块链网络中或广播给系统中所有用户,其中H0,H1,H2,H3,H4,h1,h2,h3,h4均表示安全hash函数;S13、数据拥有者DO初始化一个空的映射∑,即∑[key]=value,该映射由数据拥有者DO来维护,用于存储关键字的状态;S14、数据拥有者DO定义拉格朗日系数:其中S表示一个集合,i,j∈Z
q*
;S15、数据拥有者随机选择α,β∈Z
q*
,计算g
α
,g
β
和e(g,g)
α
,得到dk1=(e(g,g)
α
,g
β
),dk2=(β,g
α
);
S16、数据拥有者随机选择r∈Z
q*
,计算和k3=g
r
,对于用户的属性集S
u
中的每个属性a
i
,都进行以下计算:随机选择然后计算和最终用户的私钥并通过安全的通道发送给用户DU。4.根据权利要求1所述区块链上基于属性的具有前向和后向隐私的可搜索加密方法,其特征在于,步骤S2中,所述索引密文集EDB是指数据拥有者通过对关键字进行加密后的数据,在搜索阶段时,通过用户提交的访问树索引T
ind
找到相应的访问树找到相应的访问树是对于关键字w
i
的访问权限描述,服务器利用访问树和用户发送的检索令牌计算得到结果,利用该结果判断是否有相应的加密索引,从而继续检索。5.根据权利要求1所述区块链上基于属性的具有前向和后向隐私的可搜索加密方法,其特征在于,步骤S2具体为:S21、数据拥有者DO随机选择版本号v∈Z
q*
,计算并公开版本信息EV=g
v
;S22、数据拥有者对数据集DB中的每个关键字w
i
进行以下计算,利用映射∑判断关键字是否存在,不存在则对其状态值进行初始化,接着利用状态值计算得到键再将存储在相应的值中,其中是DB(w
i
)的大小,DB(w
i
)是w
i
对应的文件索引的集合;S23、对于DB(w
i
)中的每个索引进行以下计算,首先对索引进行加密,公式如下:然后利用状态值计算另一个键将加密索引存储在相应的值中,其中,中,其中,S24、接着数据拥有者随机选择秘密数s∈Z
q*
,并计算s作为属性访问树的根的秘密值;令t为的根节点,对中的每个节点x做以下计算,如果x是t则随机选择d
t
=k
t

1次的多项式q
t
,...

【专利技术属性】
技术研发人员:徐玲玲金祥徐培明
申请(专利权)人:南方电网科学研究院有限责任公司
类型:发明
国别省市:

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

1