一种基于区块链的多关键字可搜索加密方法技术

技术编号:38500512 阅读:19 留言:0更新日期:2023-08-15 17:08
本发明专利技术公开了一种基于区块链的多关键字可搜索加密方法,包括数据所有者、可信赖用户、区块链以及存储服务器,所述方法包括如下步骤:(1)、初始化阶段;(2)、生成索引阶段;(3)、生成陷门阶段;(4)、搜索阶段;(5)、文件返回阶段。本发明专利技术采用上述一种基于区块链的多关键字可搜索加密方法,解决了中心化服务器带来的弊端,同时改善了区块链上可搜索加密方案的数据搜索效率;另一方面,将区块链与可搜索加密结合,不断完善可搜索加密方案,这为可搜索加密的发展提供一定的研究价值。的发展提供一定的研究价值。的发展提供一定的研究价值。

【技术实现步骤摘要】
一种基于区块链的多关键字可搜索加密方法


[0001]本专利技术涉及多关键字加密
,尤其是涉及一种基于区块链的多关键字可搜索加密方法。

技术介绍

[0002]云计算的快速发展使云存储成为一种主要的数据存储方式,该方式减轻了用户的本地存储管理开销。然而,实际中的云服务器是半可信的,当数据所有者将数据上传到云服务器时,数据将面临着服务器、恶意用户和攻击者的访问或窃取等安全问题。对此,数据拥有者可以对数据文件进行加密后再存储到云服务器,但当用户想从云服务器中查询文件中的特定数据时,又会面临如何在云服务器上快速有效检索密文数据的问题。可搜索加密(Searchable Encryption,SE)技术很好的解决了上述问题,目前在智慧医疗、社交网络等一些分布式场景下得到了广泛应用。
[0003]但是传统的可搜索加密方案是基于云服务器的,而云服务器是一个中心化的设备,如果云服务器是不诚实的或者被恶意用户攻破,则数据将会泄露,用户的隐私也无法得到保证,而区块链具有去中心化等特征,可以有效地避免中心化服务器带来的这些弊端。其次,可搜索加密技术虽然一直在发展,但是仍然存在不完善的地方,比如方案的计算量大,存在安全问题,搜索效率低等。
[0004]将区块链与可搜索加密技术结合,可以构建更加完善的方案。在安全索引中,每一个文件的关键字集合均会生成一个加密向量,生成的陷门包含由需要进行搜索的关键字集合生成的一个加密向量。在搜索阶段,当要搜索的关键字集合生成的加密向量与索引中某个文件的关键字集合生成的加密向量匹配度足够高时,我们就可以说这个文件就是要搜寻的文件。但即使需要搜索的关键字集合生成的加密向量与安全索引中的每个向量匹配度都足够低,甚至都为0,在搜索过程中也都会进行需要搜索的关键字集合生成的加密向量与安全索引中每个向量进行乘积运算,然后进行排序计算,在这种情况下,当文件数过多,向量选择长度过大时,这个内积会耗费大量计算资源进行无用计算。

技术实现思路

[0005]本专利技术的目的是提供一种基于区块链的多关键字可搜索加密方法,解决了中心化服务器带来的弊端,同时改善了区块链上可搜索加密方案的数据搜索效率;另一方面,将区块链与可搜索加密结合,不断完善可搜索加密方案,这为可搜索加密的发展提供一定的研究价值。
[0006]为实现上述目的,本专利技术提供了一种基于区块链的多关键字可搜索加密方法,包括数据所有者、可信赖用户、区块链以及存储服务器,所述方法包括如下步骤:
[0007](1)初始化阶段:初始化阶段负责将数据所有者生成密钥,并创建智能合约;
[0008](2)生成索引阶段:数据所有者根据加密文件与文件关键字生成密文文件集与加密关键字集,并以此生成安全索引,使用布谷鸟过滤器将文件集中所有的关键字降重后插
入进去,在用户进行文件搜索时依据布谷鸟过滤器高效查询快速支持高并发的特点先进行所有关键字集合与用户所要查询的关键字集合进行匹配;
[0009](3)生成陷门阶段:用户根据密钥将想要搜索的关键字集合加密生成加密关键字集,根据加密关键字集生成安全陷门,陷门生成后用户将陷门发送给智能合约并发起检索请求;
[0010](4)搜索阶段:智能合约接收安全索引与搜索陷门后,进行安全索引与陷门的匹配,将陷门与安全索引中每个文件的关键字集合通过向量内积的形式一一计算匹配度,随后排序将匹配度较高的文件标识符发送给存储服务器;
[0011](5)文件返回阶段:存储服务器根据文件标识符从存储服务器中获取对应的加密文件返回给用户。
[0012]优选的,步骤(1)中,所述初始化阶段包括如下步骤:
[0013](1)随机构建两个元素均属于实数集的K
×
K维的矩阵M1,M2;
[0014](2)随机构建1个K维向量S∈{0,1}
k

[0015](3)输出sk=(M1,M2,S)作为安全密钥。
[0016]优选的,步骤(2)中,所述生成索引阶段包括如下步骤:
[0017](1)为文件集合F构建一个布谷鸟过滤器G;
[0018](2)对于文件集合F={f1,f2,

,f
n
}中的每一个文件f
i

[0019]①
为文件f
i
构建一个k位的Bloom过滤器B
i

[0020]②
对于文件f
i
对应的关键字集合W中的每一个关键字w
i
,使用对偶编码函数将其转换为向量v
i
,从而构建出关键字集合对应的向量集合V;
[0021]③
对于向量集合V中每个向量v
i
,使用位置敏感Hash函数进行计算,计算的结果得到一个k位的数组b
i
,将加密后的数组b
i
插入到Bloom过滤器B
i
中,随后将b
i
使用密钥sk进行对称加密算法的加密,得到的密文在布谷鸟过滤器G中查询是否存在,不存在的话将密文插入到布谷鸟过滤器G中;
[0022](3)对于每一个B
i
,使用密钥sk进行基于距离可恢复加密算法的加密,生成模糊检索索引I
B

[0023](4)输出索引I=(F,G,I
B
)。
[0024]优选的,步骤(3)中,所述生成陷门阶段包括如下步骤:
[0025](1)构建一个k位的Bloom过滤器B以及一个存放关键字密文的链表L;
[0026](2)对于需要查询的关键字集合Q中的每一个关键字q
i
,使用对偶编码函数将其转换为向量v
i
,从而构建出关键字集合对应的向量集合V;
[0027](3)对于向量集合V中每个向量v
i
,使用位置敏感Hash函数进行计算,计算的结果插入到Bloom过滤器B中,随后将b
i
使用密钥sk进行对称加密算法的加密,得到的密文插入到链表L中;
[0028](4)对于过滤器B,使用密钥sk进行基于距离可恢复加密算法的加密,生成搜索陷门t
B

[0029](5)输出陷门t=(t
B
,L)。
[0030]优选的,步骤(4)中,所述搜索阶段包括前置搜索,在安全索引中的布谷鸟过滤器中查询陷门中每一个关键字密文的存在性,得到查询关键字集合中与总文件关键字模糊重
合的关键字集合占查询关键字集合的比例,并与提前设定好的命中阈值相比较。
[0031]优选的,步骤(4)中,所述搜索阶段包括如下步骤:
[0032](1)构建一个初始为空的文件标识符集合F
R
,关键字命中系数q;
[0033](2)进行前置搜索,对于陷门t中的链表L的每一个关键字密文,在安全索引中的布谷鸟过滤器中查询存在性,存在则本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于区块链的多关键字可搜索加密方法,包括数据所有者、可信赖用户、区块链以及存储服务器,其特征在于,所述方法包括如下步骤:(1)初始化阶段:初始化阶段负责将数据所有者生成密钥,并创建智能合约;(2)生成索引阶段:数据所有者根据加密文件与文件关键字生成密文文件集与加密关键字集,并以此生成安全索引,使用布谷鸟过滤器将文件集中所有的关键字降重后插入进去,在用户进行文件搜索时依据布谷鸟过滤器高效查询快速支持高并发的特点先进行所有关键字集合与用户所要查询的关键字集合进行匹配;(3)生成陷门阶段:用户根据密钥将想要搜索的关键字集合加密生成加密关键字集,根据加密关键字集生成安全陷门,陷门生成后用户将陷门发送给智能合约并发起检索请求;(4)搜索阶段:智能合约接收安全索引与搜索陷门后,进行安全索引与陷门的匹配,将陷门与安全索引中每个文件的关键字集合通过向量内积的形式一一计算匹配度,随后排序将匹配度较高的文件标识符发送给存储服务器;(5)文件返回阶段:存储服务器根据文件标识符从存储服务器中获取对应的加密文件返回给用户。2.根据权利要求1所述的一种基于区块链的多关键字可搜索加密方法,其特征在于:步骤(1)中,所述初始化阶段包括如下步骤:(1)随机构建两个元素均属于实数集的K
×
K维的矩阵M1,M2;(2)随机构建1个K维向量S∈{0,1}
k
;(3)输出sk=(M1,M2,S)作为安全密钥。3.根据权利要求1所述的一种基于区块链的多关键字可搜索加密方法,其特征在于:步骤(2)中,所述生成索引阶段包括如下步骤:(1)为文件集合F构建一个布谷鸟过滤器G;(2)对于文件集合F={f1,f2,

,f
n
}中的每一个文件f
i


为文件f
i
构建一个k位的Bloom过滤器B
i


对于文件f
i
对应的关键字集合W中的每一个关键字w
i
,使用对偶编码函数将其转换为向量v
i
,从而构建出关键字集合对应的向量集合V;

对于向量集合V中每个向量v
i
,使用位置敏感Hash函数进行计算,计算的结果得到一个k位的数组b
i
,将加密后的数组b
i
插入到Bloom过滤器B
i
中,随后将b
i
使用密钥sk进行对称加密算法的加密,得到的密文在布谷鸟过滤器G中查询是否存在...

【专利技术属性】
技术研发人员:邱望洁
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:

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

1