一种具有隐私保护的模糊关键词可搜索加密方法和系统与流程

文档序号:32618025发布日期:2022-12-20 21:54阅读:75来源:国知局
一种具有隐私保护的模糊关键词可搜索加密方法和系统与流程

1.本发明涉及信息安全技术领域,更具体的说是涉及一种具有隐私保护的模糊关键词可搜索加密方法和系统。


背景技术:

2.可搜索加密技术是一种支持在加密数据中执行关键词匹配检索的技术。目前还存在以下弊端:(1)大多数可搜索加密方案都仅支持精准关键词搜索,也就是数据用户输入的关键词是正确的。但在实际应用中,用户很可能键入错误的关键词,而大多数可搜索加密方案不支持模糊搜索。
3.(2)可搜索加密技术大多需要进行复杂运算来查找目标文件,当数据量达到一定规模时就会带来检索效率低的问题,影响用户的使用体验。
4.(3)在对云端数据进行更新或检索时,外部网络攻击或恶意的云服务器会造成用户隐私数据的泄露。
5.因此,如何提供一种具有隐私保护的模糊关键词可搜索加密方法用于解决上述至少一个技术问题。


技术实现要素:

6.有鉴于此,本发明提供了一种具有隐私保护的模糊关键词可搜索加密方法和系统,支持模糊关键词搜索,在一轮通讯内能够快速返回给用户正确的检索结果,整个存储和搜索过程不会造成用户隐私的泄露。
7.为了实现上述目的,本发明采用如下技术方案:一种具有隐私保护的模糊关键词可搜索加密方法,包括:s1:数据客户端对文件集合中每个文件提取关键词并建立模糊关键词集,通过虚拟二叉树结构分别对关键词和模糊关键词进行索引构建并基于计数布隆过滤器对索引进行存储;对每个文件进行加密,生成加密文件集合和密钥集合,并将索引和加密文件集合上传至云服务器进行存储;s2:搜索客户端接收数据客户端发送的密钥集合,基于密钥集合中关键词密钥生成搜索陷门,并将搜索陷门发送至云服务器;s3:云服务器收到搜索陷门后通过搜索算法在索引上进行计算,并将匹配的加密文件集合返回至搜索客户端;s4:搜索客户端通过密钥集合中文件密钥对加密文件集合中的加密文件进行解密得到明文文件。
8.优选地,s1具体包括:s11:数据客户端对文件集合f中每一个文件fi提取关键词,将提取的关键词作为
精准关键词并构建关键词集w;对每一个精准关键词wi∈w,构建第i个精准关键词编辑距离为d模糊关键词词集s
wi
;对文件集合f中的每一个文件fi经过数据加密算法ske.enc(k,fi)(fi∈f)进行加密处理得到加密文件ci,并构建加密文件集合c,c={c1,c2...,cn},其中k为文件加解密密钥;s12:基于方案支持的最大文件数量n分别构造虚拟二叉树vb1和虚拟二叉树vb2,所有虚拟二叉树高度h满足n ≤2
h-1
;s13:虚拟二叉树vb1的叶子节点中存储文件中精准关键词wi,所有非叶子节点存储其左右子节点中所有精准关键词;虚拟二叉树vb2的叶子节点中存储文件中模糊关键词w
i,j
∈s
wi
,所有非叶子节点存储其左右子节点中所有模糊关键词;s14:构建计数布隆过滤器cb1和计数布隆过滤器cb2,将虚拟二叉树vb1和虚拟二叉树vb2中所有的数据对应映射至计数布隆过滤器cb1和计数布隆过滤器cb2;s15:数据客户端将加密文件集合c、计数布隆过滤器cb1和计数布隆过滤器cb2发送到云服务器。
9.优选地,密钥集合具体生成过程为:数据客户端基于安全参数λ并采用密钥生成算法ske.gen(1
λ
)生成文件加解密密钥k,随机选择用于精准关键词或模糊关键词伪随机置换的关键词密钥kw←
{0, 1}
λ
,表示通过输入安全参数λ输出0和1组成的比特串,输出密钥集合sk={k, kw}。
10.优选地,s2具体包括:搜索客户端基于密钥集合sk中的关键词密钥kw,对查询关键词集q中的每个关键词采用伪随机函数prf生成搜索陷门:t
wi

prf
kw
(wi),t
wi
表示第i个查询关键词wi对应的陷门,关键词密钥kw作为伪随机函数prf的输入,构建陷门集合tq并发送至云服务器。
11.优选地,s3具体包括:s31:云服务器从根节点开始计算搜索陷门中关键词是否存在于计数布隆过滤器cb1中,即检查经过哈希运算后在计数布隆过滤器cb1中对应的位置是否不为0,若陷门集合中每个关键词在计数布隆过滤器cb1中对应的哈希位置都不为0且当前节点深度小于h,则云服务器递归的检查当前节点的子节点,直到节点深度为h,代表找到了符合条件的叶子节点,将该叶子节点对应的加密文件返回给搜索客户端;s32:若云服务器在s31中没有检索成功,则从根节点开始计算搜索陷门中关键词是否存在于计数布隆过滤器cb2中,如果搜索陷门中关键词存在于当前节点,则云服务器递归的检查当前节点的孩子节点,直到节点深度为h,代表找到了符合条件的叶子节点,将该叶子节点对应的加密文件返回给搜索客户端。
12.优选地,s4具体包括:搜索客户端接收到加密文件集合后,通过密钥集合sk中的文件密钥k对加密文件集合中的加密文件ci解密得到明文文件f

ske.dec(k, ci),ske.dec表示数据解密算法。
13.优选地,s14具体包括:数据客户端初始化两个长度为m的整数型数组,分别选取n个哈希函数组成计数布
隆过滤器cb1和计数布隆过滤器cb2,数组中每个位置初始设置为0;对于虚拟二叉树vb1,从根节点开始,将每个节点中的所有精准关键字都以如下形式映射到计数布隆过滤器cb1中,映射对应位置的计数加1;对于虚拟二叉树vb2,从根节点开始,将每个节点中的所有模糊关键字都以如下形式映射到计数布隆过滤器cb2中,映射对应位置的计数加1。
14.一种具有隐私保护的模糊关键词可搜索加密系统,包括:数据客户端、搜索客户端和云服务器;数据客户端用于对文件集合中每个文件提取关键词,通过虚拟二叉树结构对关键词进行索引构建并基于计数布隆过滤器对索引进行存储;对每个文件进行加密,生成加密文件集合和密钥集合,并将索引和加密文件集合上传至云服务器进行存储;搜索客户端用于接收数据客户端发送的密钥集合,基于密钥集合中关键词密钥生成搜索陷门,并将搜索陷门发送至云服务器;云服务器用于存储索引和加密文件,在收到搜索陷门后通过搜索算法在索引上进行计算,并将匹配的加密文件集合返回至搜索客户端;搜索客户端还用于通过密钥集合中文件密钥对加密文件集合中的加密文件进行解密得到明文文件。
15.本发明具有以下优点:(1)利用虚拟二叉树结构进行关键词索引构建,使用计数布隆过滤器对索引进行存储,实现了多关键词下的可搜索加密。通过编辑距离模式来建立模糊关键词集,使用单独的计数布隆过滤器来存储模糊关键词索引,去除了对精准关键词搜索误判的干扰,实现了模糊关键词可搜索加密。
16.(2)即使键入了错误的关键词,数据用户也仅需与云服务器进行一轮交互。计数布隆过滤器结构使得关键词检索的时间开销不会随文件数量的增加而增长,保证用户检索可以在一定时间内返回正确的结果。
17.(3)用户文件和索引文件都经过加密处理,云服务器不保存用户的明文信息,搜索陷门的生成须使用数据拥有者提供的密钥,整个存储和搜索的过程不会造成用户隐私的泄露。
附图说明
18.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
19.图1附图为本发明提供的一种具有隐私保护的模糊关键词可搜索加密方法流程图。
20.图2附图为本发明提供的一种具有隐私保护的模糊关键词可搜索加密系统模型图。
21.图3附图为本发明提供的虚拟二叉树结构。
具体实施方式
22.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
23.本发明实施例公开了一种具有隐私保护的模糊关键词可搜索加密方法,如图1所示,包括:s1:数据客户端对文件集合中每个文件提取关键词并建立模糊关键词集,通过虚拟二叉树结构分别对关键词和模糊关键词进行索引构建并基于计数布隆过滤器对索引进行存储;对每个文件进行加密,生成加密文件集合和密钥集合,并将索引和加密文件集合上传至云服务器进行存储;s2:搜索客户端接收数据客户端发送的密钥集合,基于密钥集合中关键词密钥生成搜索陷门,并将搜索陷门发送至云服务器;s3:云服务器收到搜索陷门后通过搜索算法在索引上进行计算,并将匹配的加密文件集合返回至搜索客户端;s4:搜索客户端通过密钥集合中文件密钥对加密文件集合中的加密文件进行解密得到明文文件。
24.在本实施例中,s1具体包括:s11:数据客户端对文件集合f中每一个文件fi提取关键词,将提取的关键词作为精准关键词并构建关键词集w;对每一个精准关键词wi∈w,构建第i个精准关键词编辑距离为d模糊关键词词集s
wi
;对文件集合f中的每一个文件fi经过数据加密算法ske.enc(k,fi)(fi∈f)进行加密处理得到加密文件ci,并构建加密文件集合c,c={c1,c2...,cn},其中k为文件加解密密钥;s12:基于方案支持的最大文件数量n分别构造虚拟二叉树vb1和虚拟二叉树vb2,如图3所示,虚拟二叉树vb1存储精准关键词索引,虚拟二叉树vb2存储模糊关键词索引,虚拟二叉树vb1和虚拟二叉树vb2高度h均满足n ≤2
h-1
;s13:为每个文件ci∈c在虚拟二叉树中分配相同的叶子节点,虚拟二叉树vb1的叶子节点中存储文件中精准关键词wi,所有非叶子节点存储其左右子节点中所有精准关键词;虚拟二叉树vb2的叶子节点中存储文件中模糊关键词w
i,j
,w
i,j
∈s
wi
,所有非叶子节点存储其左右子节点中所有模糊关键词;s14:数据客户端初始化两个长度为m的整数型数组,分别选取n个哈希函数组成计数布隆过滤器cb1和计数布隆过滤器cb2,数组中每个位置初始设置为0;对于虚拟二叉树vb1,从根节点开始,将每个节点中的所有精准关键字都以如下形式映射到计数布隆过滤器cb1中,即hi(prf
kw
(w)||mark(node)) i=1, 2,
ꢀ…
, n,i表示哈希函数编号,prf表示伪随机函数,hi代表第i个哈希函数,mark(node)表示节点node的编号;
将映射对应位置的计数加1,即cb1[hi(prf
kw
(w)|| mark(node))]++,i=1, 2,
ꢀ…
, n;对于虚拟二叉树vb2,从根节点开始,将每个节点中的所有模糊关键字都以如下形式映射到计数布隆过滤器cb2中,即hi(prf
kw
(w)||mark(node)) ,i=1, 2,
ꢀ…
, n,i表示哈希函数编号,prf表示伪随机函数,hi代表第i个哈希函数,mark(node)表示节点node的编号;将映射对应位置的计数加1,即cb2[hi(prf
kw
(w)|| mark(node))]++,i=1, 2,
ꢀ…
,n;s15:数据客户端将加密文件集合c、计数布隆过滤器cb1和计数布隆过滤器cb2发送到云服务器。
[0025]
在本实施例中,密钥集合具体生成过程为:数据客户端基于安全参数λ并采用密钥生成算法ske.gen(1
λ
)生成文件加解密密钥k,随机选择用于精准关键词或模糊关键词伪随机置换的密钥kw←
{0, 1}
λ
,表示通过输入安全参数λ输出0和1组成的比特串,输出密钥集合sk={k, kw}。
[0026]
在本实施例中,s2具体包括:搜索客户端基于密钥集合sk中的关键词密钥kw,对查询关键词集q中的每个关键词采用伪随机函数prf生成搜索陷门:t
wi

prf
kw
(wi),t
wi
表示第i个查询关键词wi对应的陷门,关键词密钥kw作为伪随机函数prf的输入,构建陷门集合tq并发送至云服务器。
[0027]
在本实施例中,s3具体包括:s31:云服务器从根节点开始计算搜索陷门中关键词是否存在于计数布隆过滤器cb1中,即检查经过哈希运算后在计数布隆过滤器cb1中对应的位置是否不为0,哈希运算公式为hi(t
wi
||mark(node)),i=1, 2,
ꢀ…
, n, t
wi
∈tq,公式代表经过哈希运算后在数组中的下标位置,i表示第几个哈希函数,tq表示查询关键词陷门,hi代表第i个哈希函数,若陷门集合中每个关键词在计数布隆过滤器cb1中对应的哈希位置都不为0且当前节点深度小于h,则云服务器递归的检查当前节点的子节点,直到节点深度为h,代表找到了符合条件的叶子节点,将该叶子节点对应的加密文件返回给搜索客户端,若查询到多个叶子节点满足条件则返回多个叶子节点对应的加密文件集合,每个叶子节点对应一个加密文件,若陷门集合中每个关键词在计数布隆过滤器cb1中对应的哈希位置不满足都不为0,代表当前叶子节点不包含所查询关键词,则放弃查询该节点和其孩子节点;s32:若云服务器在s31中没有检索成功,则从根节点开始计算搜索陷门中关键词是否存在于计数布隆过滤器cb2中,如果搜索陷门中关键词存在于当前节点,则云服务器递归的检查当前节点的孩子节点,直到节点深度为h,代表找到了符合条件的叶子节点,将该叶子节点对应的加密文件返回给搜索客户端,若查询到多个叶子节点满足条件则返回多个叶子节点对应的加密文件集合,每个叶子节点对应一个密文文件;若不存在于计数布隆过滤器cb2中代表无匹配文件,服务器不返回。
[0028]
在本实施例中,s4具体包括:搜索客户端接收到加密文件集合后,通过密钥集合sk中的文件密钥k对加密文件集合中的加密文件ci解密得到明文文件f

ske.dec(k, ci),ske.dec表示数据解密算法。
[0029]
对称加密算法ske由密钥生成算法gen,数据加密算法enc和数据解密算法 dec三
个多项式时间内的算法构成,可以表示为ske=(gen,enc,dec)。
[0030]
需要说明的是,上述公式中所有箭头指向表示输出结果。
[0031]
如图2所示,本实施例公开了一种具有隐私保护的模糊关键词可搜索加密系统,包括:数据客户端、搜索客户端和云服务器;数据客户端用于对文件集合中每个文件提取关键词,通过虚拟二叉树结构对关键词进行索引构建并基于计数布隆过滤器对索引进行存储;对每个文件进行加密,生成加密文件集合和密钥集合,并将索引和加密文件集合上传至云服务器进行存储;具体的:数据客户端对文件集合f中每一个文件fi提取关键词,将提取的关键词作为精准关键词并构建关键词集w;对每一个精准关键词wi∈w,构建第i个精准关键词编辑距离为d模糊关键词词集s
wi
;对文件集合f中的每一个文件fi经过对称加密算法ske.enc(k,fi),fi∈f,进行加密处理得到加密文件ci,并构建加密文件集合c,c={c1,c2...,cn},其中k为文件加解密密钥;基于方案支持的最大文件数量n分别构造虚拟二叉树vb1和虚拟二叉树vb2,所有虚拟二叉树高度h满足n ≤2
h-1
;虚拟二叉树vb1的叶子节点中存储文件中精准关键词wi,所有非叶子节点存储其左右子节点中所有精准关键词;虚拟二叉树vb2的叶子节点中存储文件中模糊关键词w
i,j
∈s
wi
,所有非叶子节点存储其左右子节点中所有模糊关键词;构建计数布隆过滤器cb1和计数布隆过滤器cb2,将虚拟二叉树vb1和虚拟二叉树vb2中所有的数据对应映射至计数布隆过滤器cb1和计数布隆过滤器cb2;数据客户端将加密文件集合c、计数布隆过滤器cb1和计数布隆过滤器cb2发送到云服务器。
[0032]
搜索客户端用于接收数据客户端发送的密钥集合,基于密钥集合中关键词密钥生成搜索陷门,并将搜索陷门发送至云服务器;具体的:搜索客户端基于密钥集合sk中的关键词密钥kw,对查询关键词集q中的每个关键词采用伪随机函数prf生成搜索陷门:t
wi

prf
kw
(wi),构建陷门集合tq并发送至云服务器。
[0033]
云服务器用于存储索引和加密文件,在收到搜索陷门后通过搜索算法在索引上进行计算,并将匹配的加密文件集合返回至搜索客户端;具体的:云服务器从根节点开始计算搜索陷门中关键词是否存在于计数布隆过滤器cb1中,即检查经过哈希运算后在计数布隆过滤器cb1中对应的位置是否不为0,哈希运算公式为hi(t
wi
||mark(node)),i=1, 2,
ꢀ…
, n,t
wi
∈tq,公式代表经过哈希运算后在数组中的下标位置,i表示第几个哈希函数,tq表示查询关键词陷门,hi代表第i个哈希函数,若陷门集合中每个关键词在计数布隆过滤器cb1中对应的哈希位置都不为0且当前节点深度小于h,则云服务器递归的检查当前节点的子节点,直到节点深度为h,代表找到了符合条件的叶子节点,将该叶子节点对应的加密文件返回给搜索客户端,若查询到多个叶子节点满足条件则返回多个叶子节点对应的加密文件集合,每个叶子节点对应一个加密文件,若陷门集合中
每个关键词在计数布隆过滤器cb1中对应的哈希位置不满足都不为0,代表当前叶子节点不包含所查询关键词,则放弃查询该节点和其孩子节点;若云服务器在上述没有检索成功,则从根节点开始计算搜索陷门中关键词是否存在于计数布隆过滤器cb2中,如果搜索陷门中关键词存在于当前节点,则云服务器递归的检查当前节点的孩子节点,直到节点深度为h,代表找到了符合条件的叶子节点,将该叶子节点对应的加密文件返回给搜索客户端,若查询到多个叶子节点满足条件则返回多个叶子节点对应的加密文件集合,每个叶子节点对应一个密文文件;若不存在于计数布隆过滤器cb2中代表无匹配文件,服务器不返回。
[0034]
搜索客户端还用于通过密钥集合中文件密钥对加密文件集合中的加密文件进行解密得到明文文件。具体的:搜索客户端接收到加密文件集合后,通过密钥集合sk中的文件密钥k对加密文件集合中的加密文件ci解密得到明文文件f

ske.dec(k, ci)。
[0035]
在本实施例中,密钥集合具体生成过程为:数据客户端基于安全参数λ并采用对称加密算法ske.gen(1
λ
)生成文件加解密密钥k,随机选择用于关键词伪随机置换的密钥kw←
{0, 1}
λ
,输出密钥集合sk={k, kw}。
[0036]
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0037]
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1