一种基于区块链的多关键字可搜索加密方法
未命名
08-20
阅读:97
评论:0

1.本发明涉及多关键字加密技术领域,尤其是涉及一种基于区块链的多关键字可搜索加密方法。
背景技术:
2.云计算的快速发展使云存储成为一种主要的数据存储方式,该方式减轻了用户的本地存储管理开销。然而,实际中的云服务器是半可信的,当数据所有者将数据上传到云服务器时,数据将面临着服务器、恶意用户和攻击者的访问或窃取等安全问题。对此,数据拥有者可以对数据文件进行加密后再存储到云服务器,但当用户想从云服务器中查询文件中的特定数据时,又会面临如何在云服务器上快速有效检索密文数据的问题。可搜索加密(searchable encryption,se)技术很好的解决了上述问题,目前在智慧医疗、社交网络等一些分布式场景下得到了广泛应用。
3.但是传统的可搜索加密方案是基于云服务器的,而云服务器是一个中心化的设备,如果云服务器是不诚实的或者被恶意用户攻破,则数据将会泄露,用户的隐私也无法得到保证,而区块链具有去中心化等特征,可以有效地避免中心化服务器带来的这些弊端。其次,可搜索加密技术虽然一直在发展,但是仍然存在不完善的地方,比如方案的计算量大,存在安全问题,搜索效率低等。
4.将区块链与可搜索加密技术结合,可以构建更加完善的方案。在安全索引中,每一个文件的关键字集合均会生成一个加密向量,生成的陷门包含由需要进行搜索的关键字集合生成的一个加密向量。在搜索阶段,当要搜索的关键字集合生成的加密向量与索引中某个文件的关键字集合生成的加密向量匹配度足够高时,我们就可以说这个文件就是要搜寻的文件。但即使需要搜索的关键字集合生成的加密向量与安全索引中的每个向量匹配度都足够低,甚至都为0,在搜索过程中也都会进行需要搜索的关键字集合生成的加密向量与安全索引中每个向量进行乘积运算,然后进行排序计算,在这种情况下,当文件数过多,向量选择长度过大时,这个内积会耗费大量计算资源进行无用计算。
技术实现要素:
5.本发明的目的是提供一种基于区块链的多关键字可搜索加密方法,解决了中心化服务器带来的弊端,同时改善了区块链上可搜索加密方案的数据搜索效率;另一方面,将区块链与可搜索加密结合,不断完善可搜索加密方案,这为可搜索加密的发展提供一定的研究价值。
6.为实现上述目的,本发明提供了一种基于区块链的多关键字可搜索加密方法,包括数据所有者、可信赖用户、区块链以及存储服务器,所述方法包括如下步骤:
7.(1)初始化阶段:初始化阶段负责将数据所有者生成密钥,并创建智能合约;
8.(2)生成索引阶段:数据所有者根据加密文件与文件关键字生成密文文件集与加密关键字集,并以此生成安全索引,使用布谷鸟过滤器将文件集中所有的关键字降重后插
入进去,在用户进行文件搜索时依据布谷鸟过滤器高效查询快速支持高并发的特点先进行所有关键字集合与用户所要查询的关键字集合进行匹配;
9.(3)生成陷门阶段:用户根据密钥将想要搜索的关键字集合加密生成加密关键字集,根据加密关键字集生成安全陷门,陷门生成后用户将陷门发送给智能合约并发起检索请求;
10.(4)搜索阶段:智能合约接收安全索引与搜索陷门后,进行安全索引与陷门的匹配,将陷门与安全索引中每个文件的关键字集合通过向量内积的形式一一计算匹配度,随后排序将匹配度较高的文件标识符发送给存储服务器;
11.(5)文件返回阶段:存储服务器根据文件标识符从存储服务器中获取对应的加密文件返回给用户。
12.优选的,步骤(1)中,所述初始化阶段包括如下步骤:
13.(1)随机构建两个元素均属于实数集的k
×
k维的矩阵m1,m2;
14.(2)随机构建1个k维向量s∈{0,1}k;
15.(3)输出sk=(m1,m2,s)作为安全密钥。
16.优选的,步骤(2)中,所述生成索引阶段包括如下步骤:
17.(1)为文件集合f构建一个布谷鸟过滤器g;
18.(2)对于文件集合f={f1,f2,
…
,fn}中的每一个文件fi:
19.①
为文件fi构建一个k位的bloom过滤器bi;
20.②
对于文件fi对应的关键字集合w中的每一个关键字wi,使用对偶编码函数将其转换为向量vi,从而构建出关键字集合对应的向量集合v;
21.③
对于向量集合v中每个向量vi,使用位置敏感hash函数进行计算,计算的结果得到一个k位的数组bi,将加密后的数组bi插入到bloom过滤器bi中,随后将bi使用密钥sk进行对称加密算法的加密,得到的密文在布谷鸟过滤器g中查询是否存在,不存在的话将密文插入到布谷鸟过滤器g中;
22.(3)对于每一个bi,使用密钥sk进行基于距离可恢复加密算法的加密,生成模糊检索索引ib;
23.(4)输出索引i=(f,g,ib)。
24.优选的,步骤(3)中,所述生成陷门阶段包括如下步骤:
25.(1)构建一个k位的bloom过滤器b以及一个存放关键字密文的链表l;
26.(2)对于需要查询的关键字集合q中的每一个关键字qi,使用对偶编码函数将其转换为向量vi,从而构建出关键字集合对应的向量集合v;
27.(3)对于向量集合v中每个向量vi,使用位置敏感hash函数进行计算,计算的结果插入到bloom过滤器b中,随后将bi使用密钥sk进行对称加密算法的加密,得到的密文插入到链表l中;
28.(4)对于过滤器b,使用密钥sk进行基于距离可恢复加密算法的加密,生成搜索陷门tb;
29.(5)输出陷门t=(tb,l)。
30.优选的,步骤(4)中,所述搜索阶段包括前置搜索,在安全索引中的布谷鸟过滤器中查询陷门中每一个关键字密文的存在性,得到查询关键字集合中与总文件关键字模糊重
合的关键字集合占查询关键字集合的比例,并与提前设定好的命中阈值相比较。
31.优选的,步骤(4)中,所述搜索阶段包括如下步骤:
32.(1)构建一个初始为空的文件标识符集合fr,关键字命中系数q;
33.(2)进行前置搜索,对于陷门t中的链表l的每一个关键字密文,在安全索引中的布谷鸟过滤器中查询存在性,存在则命中系数q加1,遍历结束后比较q与链表l的长度得到查询关键字集合中与总文件关键字模糊重合的关键字集合占查询关键字集合的比例,跟提前设定好的命中阈值相比较,如果此比例低于命中阈值,则不进行后续查询操作,返回空文件标识符集合fr,如果高于命中阈值,则进行后续模糊搜索操作;
34.(3)根据距离可恢复加密算法的特性,将陷门t与索引i中的模糊检索索引ib中的每一个文件的索引ii进行向量内积计算可以得到查询关键字集合与每一个文件的关键字集合的相似度数值,数值越大代表相似度越高,根据相似度排序后将排序序列的前λ条记录对应的文件标识对应的加密文件加入到文件标识符集合fr中。
35.本发明所述的一种基于区块链的多关键字可搜索加密方法的优点和积极效果是:
36.1、使用布谷鸟过滤器在传统多关键字模糊搜索过程之前进行一个前置搜索来初步判断查询的命中率,在命中率过低时提前停止搜索以节省资源。
37.2、通过区块链技术实现可搜索加密方案中的搜索过程,解决了中心化服务器带来的弊端,同时改善了区块链上可搜索加密方案的数据搜索效率。
38.下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
39.图1为本发明一种基于区块链的多关键字可搜索加密方法实施例的整体流程图;
40.图2为本发明一种基于区块链的多关键字可搜索加密方法实施例中的索引生成流程图;
41.图3为本发明一种基于区块链的多关键字可搜索加密方法实施例中的搜索流程图。
具体实施方式
42.以下通过附图和实施例对本发明的技术方案作进一步说明。
43.除非另外定义,本发明使用的技术术语或者科学术语应当为本发明所属领域内具有一般技能的人士所理解的通常意义。
44.一种基于区块链的多关键字可搜索加密方法,包括数据所有者、可信赖用户、区块链以及存储服务器四个参与主体,其中数据拥有者创建密钥,上传加密后的文件密文到存储服务器,与各文件相关的关键字集合加密后生成的安全索引上传到区块链中,密钥发送给可信赖用户;可信赖用户使用密钥加密需要搜索的关键字集合并以此产生搜索陷门提交给区块链;区块链中的智能合约接收到索引与陷门后将陷门与索引中每个文件的关键字集合索引通过向量内积的形式一一计算匹配度,随后排序将匹配度较高的文件标识符发送给存储服务器,存储服务器返回相应加密文件给用户。
45.实施例
46.一种基于区块链的多关键字可搜索加密方法,包括如下步骤:
47.1、初始化阶段:负责将数据所有者生成密钥,并创建智能合约。运行于数据所有者端,输入安全参数1k,输出密钥sk,具体算法设计如下:
48.(1)随机构建两个元素均属于实数集的k
×
k维的矩阵m1,m2;
49.(2)随机构建1个k维向量s∈{0,1}k;
50.(3)输出sk=(m1,m2,s)作为安全密钥。
51.2、生成索引阶段:数据所有者根据加密文件与文件关键字生成密文文件集与加密关键字集,并以此生成安全索引,安全索引中设有布谷鸟过滤器;将密文文件集发送至存储服务器,安全索引发送至智能合约,密钥发送给可信赖用户。
52.首先使用布谷鸟过滤器将文件集中所有的关键字降重后插入进去,在用户进行文件搜索时依据布谷鸟过滤器高效查询快速支持高并发的特点先进行所有关键字集合与用户所要查询的关键字集合进行匹配,在一些场景中,如果匹配度过低的情况下说明没有用户所需要的特定文件,则直接停止搜索,节省了后续模糊搜索要耗费的大量资源;如果匹配度较高,由于为了查询效率,存在布谷鸟过滤器中的关键字均与文件标识符脱离联系,则仍需要进行后续的模糊搜索来得到对应的文件标识符。
53.运行于数据所有者端,主要用于生成文件对应的安全索引。输入密钥sk、文件集合f以及文件对应的关键字集合δ,输出安全索引i,具体算法设计如下:
54.(1)为文件集合f构建一个布谷鸟过滤器g;
55.(2)对于文件集合f={f1,f2,
…
,fn}中的每一个文件fi:
56.①
为文件构建一个k位的bloom过滤器bi;
57.②
对于文件fi对应的关键字集合w中的每一个关键字wi,使用对偶编码函数将其转换为向量vi,从而构建出关键字集合对应的向量集合v;
58.③
对于向量集合v中每个向量vi,使用位置敏感hash函数进行计算,计算的结果得到一个k位的数组bi,将加密后的数组bi插入到bloom过滤器bi中,随后将bi使用密钥sk进行对称加密算法的加密,得到的密文在布谷鸟过滤器g中查询是否存在,不存在的话将密文插入到布谷鸟过滤器g中;
59.(1)对于每一个bi,使用密钥sk进行基于距离可恢复加密算法的加密,生成模糊检索索引ib;
60.(4)输出索引i=(f,g,ib)。
61.3、生成陷门阶段:用户根据密钥将想要搜索的关键字集合加密生成加密关键字集,根据加密关键字集生成安全陷门,陷门生成后用户将陷门发送给智能合约并发起检索请求。运行于可信赖用户端,用于加密查询关键字集合并依次生成安全陷门,输入密钥sk与查询关键字集合q,输出安全陷门t,具体算法设计如下:
62.生成陷门阶段包括如下步骤:
63.(1)构建一个k位的bloom过滤器b以及一个存放关键字密文的链表l;
64.(2)对于需要查询的关键字集合q中的每一个关键字qi,使用对偶编码函数将其转换为向量vi,从而构建出关键字集合对应的向量集合v;
65.(3)对于向量集合v中每个向量vi,使用位置敏感hash函数进行计算,计算的结果插入到bloom过滤器b中,随后将bi使用密钥sk进行对称加密算法的加密,得到的密文插入到链表l中;
66.(4)对于过滤器b,使用密钥sk进行基于距离可恢复加密算法的加密,生成搜索陷门tb;
67.(5)输出陷门t=(tb,l)。
68.4、搜索阶段:智能合约接收安全索引与搜索陷门后,进行安全索引与陷门的匹配,匹配成功后返回安全索引对应的文件标识符给存储服务器。运行于区块链端,向智能合约输入安全索引i以及安全陷门t,进行匹配后输出文件标识符集合,具体算法设计如下:
69.(1)构建一个初始为空的文件标识符集合fr,关键字命中系数q;
70.(2)进行前置搜索,对于陷门t中的链表l的每一个关键字密文,在安全索引中的布谷鸟过滤器中查询存在性,存在则命中系数q加1,遍历结束后比较q与链表l的长度得到查询关键字集合中与总文件关键字模糊重合的关键字集合占查询关键字集合的比例,跟提前设定好的命中阈值相比较,如果此比例低于命中阈值,则不进行后续查询操作,返回空文件集合fr,如果高于命中阈值,则进行后续模糊搜索操作;
71.(3)根据距离可恢复加密算法的特性,将陷门t与索引i中的模糊检索索引ib中的每一个文件的索引ii进行向量内积计算可以得到查询关键字集合与每一个文件的关键字集合的相似度数值,数值越大代表相似度越高,根据相似度排序后将排序序列的前λ条(λ由系统确定,代表返回文件集中的文件最大数量)记录对应的文件标识对应的加密文件加入到文件标识符集合fr中;
72.(4)返回文件标识符集合fr。
73.5、文件返回阶段:存储服务器根据文件标识符从存储服务器中获取对应的加密文件返回给用户。智能合约根据文件标识符集合fr,向存储服务器发送请求返回给用户对应的加密文件。
74.因此,本发明采用上述一种基于区块链的多关键字可搜索加密方法,解决了中心化服务器带来的弊端,同时改善了区块链上可搜索加密方案的数据搜索效率;另一方面,将区块链与可搜索加密结合,不断完善可搜索加密方案,这为可搜索加密的发展提供一定的研究价值。
75.最后应说明的是:以上实施例仅用以说明本发明的技术方案而非对其进行限制,尽管参照较佳实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对本发明的技术方案进行修改或者等同替换,而这些修改或者等同替换亦不能使修改后的技术方案脱离本发明技术方案的精神和范围。
技术特征:
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中查询是否存在,不存在的话将密文插入到布谷鸟过滤器g中;(3)对于每一个b
i
,使用密钥sk进行基于距离可恢复加密算法的加密,生成模糊检索索引i
b
;(4)输出索引i=(f,g,i
b
)。4.根据权利要求1所述的一种基于区块链的多关键字可搜索加密方法,其特征在于:步骤(3)中,所述生成陷门阶段包括如下步骤:(1)构建一个k位的bloom过滤器b以及一个存放关键字密文的链表l;(2)对于需要查询的关键字集合q中的每一个关键字q
i
,使用对偶编码函数将其转换为向量v
i
,从而构建出关键字集合对应的向量集合v;(3)对于向量集合v中每个向量v
i
,使用位置敏感hash函数进行计算,计算的结果插入到
bloom过滤器b中,随后将b
i
使用密钥sk进行对称加密算法的加密,得到的密文插入到链表l中;(4)对于过滤器b,使用密钥sk进行基于距离可恢复加密算法的加密,生成搜索陷门t
b
;(5)输出陷门t=(t
b
,l)。5.根据权利要求1所述的一种基于区块链的多关键字可搜索加密方法,其特征在于:步骤(4)中,所述搜索阶段包括前置搜索,在安全索引中的布谷鸟过滤器中查询陷门中每一个关键字密文的存在性,得到查询关键字集合中与总文件关键字模糊重合的关键字集合占查询关键字集合的比例,并与提前设定好的命中阈值相比较。6.根据权利要求1所述的一种基于区块链的多关键字可搜索加密方法,其特征在于:步骤(4)中,所述搜索阶段包括如下步骤:(1)构建一个初始为空的文件标识符集合f
r
,关键字命中系数q;(2)进行前置搜索,对于陷门t中的链表l的每一个关键字密文,在安全索引中的布谷鸟过滤器中查询存在性,存在则命中系数q加1,遍历结束后比较q与链表l的长度得到查询关键字集合中与总文件关键字模糊重合的关键字集合占查询关键字集合的比例,跟提前设定好的命中阈值相比较,如果此比例低于命中阈值,则不进行后续查询操作,返回空文件标识符集合f
r
,如果高于命中阈值,则进行后续模糊搜索操作;(3)根据距离可恢复加密算法的特性,将陷门t与索引i中的模糊检索索引i
b
中的每一个文件的索引i
i
进行向量内积计算可以得到查询关键字集合与每一个文件的关键字集合的相似度数值,数值越大代表相似度越高,根据相似度排序后将排序序列的前λ条记录对应的文件标识对应的加密文件加入到文件标识符集合f
r
中。
技术总结
本发明公开了一种基于区块链的多关键字可搜索加密方法,包括数据所有者、可信赖用户、区块链以及存储服务器,所述方法包括如下步骤:(1)、初始化阶段;(2)、生成索引阶段;(3)、生成陷门阶段;(4)、搜索阶段;(5)、文件返回阶段。本发明采用上述一种基于区块链的多关键字可搜索加密方法,解决了中心化服务器带来的弊端,同时改善了区块链上可搜索加密方案的数据搜索效率;另一方面,将区块链与可搜索加密结合,不断完善可搜索加密方案,这为可搜索加密的发展提供一定的研究价值。的发展提供一定的研究价值。的发展提供一定的研究价值。
技术研发人员:邱望洁
受保护的技术使用者:北京航空航天大学
技术研发日:2023.04.07
技术公布日:2023/8/14

版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/