首页 / 专利库 / 无土农业 / 过滤器 / 一种排序可验证的语义模糊可搜索加密方法

一种排序可验证的语义模糊可搜索加密方法

阅读:56发布:2021-04-11

专利汇可以提供一种排序可验证的语义模糊可搜索加密方法专利检索,专利查询,专利分析的服务。并且本 发明 涉及一种排序可验证的语义模糊可搜索加密方法,首先,引入相关度分数和域加权得分,获得了更加准确的索引结构。接着,基于WordNet词典集对查询关键词进行语义拓展,并综合语义相似度和加密分数,设计了双因子排序 算法 对搜索结果进行精确排序。最后,运用布隆 过滤器 和消息认证码,对关键词、索引、密文进行全面而有效的验证。本发明不仅实现了语义模糊搜索,并且能够对搜索结果进行排序,特别是在现有可验证方案验证结果精确性、完整性的 基础 上,补充了排序可验证功能。,下面是一种排序可验证的语义模糊可搜索加密方法专利的具体信息内容。

1.一种排序可验证的语义模糊可搜索加密方法,其特征在于:包括数据拥有者,授权用户和服务器,包括以下步骤:
步骤S1:数据拥有者输入一个安全参数λ,生成文档加密密钥sk、单向哈希函数的密钥hk,保序加密函数的密钥ek;将密钥sk、hk发送给授权用户;
步骤S2:依次进行抽取关键词、计算相关度分数、计算域加权得分、创建倒排索引、加密倒排索引;
所述抽取关键词为:数据拥有者对文档集F=(f1,f2,…,fm)抽取关键词,得到关键词集合W=(w1,w2,…,wn);
所述计算相关度分数为:引入tf-idf权值计算方法计算关键词相关度分数S:
其中,|f|表示文档f的长度,tft,f表示关键词t在某篇文档f中出现的频率;N表示所有文档数量,dft表示包含关键词t的文档数量;
所述计算域加权得分为:在不同域中的关键词通常具有不同的重要性,标题、摘要、正文中的关键词重要性依次递减;给定一系列文档,假定每篇文档有t个域,其对应权重系数分别是k1,…kt∈[0,1],它们满足:
令si为查询关键词和文档的第i个域的匹配得分,其中,1和0分别表示匹配上和没匹配上,定义域加权评分为:
所述创建倒排索引为:为关键词wi∈W创建索引 其中,idj表示
包含wi的文档fj的标识符, 表示wi在fj中的相关度分数, 表示wi在fj中的域加权得分;
所述加密倒排索引为:为了保护相关度分数 与域加权得分 的隐私性,需要进行加密操作;引入密钥为ek的非线性保序加密函数OPE(·),将 加密为 即
使 处于密文状态,云服务器仍然可以对其进行高效排序;为了保障关键词wi∈W的隐私安全,使用带密钥hk的哈希函数将其加密为h(wi);因此,经过加密后的索引为最后,数据拥有者将索引集合 上传给
云服务器;
步骤S3:数据拥有者使用密钥为sk的对称加密算法 对文档集合F=(f1,f2,…,fm)进行加密,得到密文集合C=(c1,c2,…,cm)并上传给云服务器;
步骤S4:当授权用户搜索时,首先输入u个感兴趣的关键词Λ=(q1,q2,…,qu),基于WordNet创建语义拓展树,考虑关键词qi多词性多词义的情况,并且进行上义词、同义词、下义词的语义拓展;计算原单词qi和拓展词 之间的语义相似度 只选取最相关的前σ个拓展词,最后得到语义拓展集合Q=(q1,q2,…,qu,α1,…,ασ);将Q中的元素qi或αj统一表示为βz,即Q=(β1,β2,…,βu+σ),其中1≤i≤u,1≤j≤σ,1≤z≤u+σ;使用密钥hk生成陷TQ=(h(β1),h(β2),…,h(βu+σ));最后,将TQ上传到云服务器;
步骤S5:依次进行遍历倒排索引与双因子排序;
所述遍历倒排索引为:云服务器接收到陷门TQ后,依次将h(βz)∈TQ与倒排索引中的h(wi)进行匹配;若h(βz)=h(wi),则找到对应的索引
所述双因子排序为:首先根据查询关键词h(βz)对应的语义相似度Zz由大到小的顺序,对h(βz)匹配到的索引Ii进行排序;再根据每个索引Ii中的加密分数 对文档标
识符idj进行排序;最后,根据idj返回top-k篇密文C'=(c1,c2,…,ck);
步骤S6:授权用户使用数据拥有者分发的密钥sk,将top-k篇密文C'=(c1,c2,…,ck)解密,获得所需的明文;
还包括一验证过程,数据拥有者首先构造出验证信息,连同索引上传给云服务器;接着,用户提交陷门进行搜索,云服务器返回搜索结果以及相应验证信息;最后,用户在本地对搜索结果进行验证;具体包括以下步骤:
步骤S11:验证信息的准备:数据拥有者在构建完安全索引 后,为了能
让搜索用户快速检测搜索集合Q=(β1,β2,…,βu+σ)中的查询关键词βz是否存在于关键词集合W=(w1,w2,…,wn)中,其中1≤z≤u+σ,将所有密文关键词h(wi)插入布隆过滤器BLW中,并使用密钥为mk的函数Mac(·)计算消息认证码 另外,为了实现对安全
索引的验证,需要对安全索引计算消息认证码 为了实现对密文文档的验
证,还需要结合文档标识符集合ID=(id1,id2,…,idm),对密文文档集C=(c1,c2,…,cm)中的每篇密文文档计算消息认证码,生成 将BLW、 以及所有
连同索引 密文集合C=(c1,c2,…,cm)一起上传到云服务
器;
步骤S12:搜索过程:用户搜索后云服务器返回的内容包括:
布隆过滤器 以及
所有查询关键词h(βz)匹配到的安全索引 以及
在匹配到的安全索引 中,经过双因子排序后的idj所对应的所有密文文档集
以及
步骤S13:验证过程:依次验证索引中是否包含查询关键词、验证返回的索引是否正确且完整、验证返回的密文是否正确且完整。
2.根据权利要求1所述的一种排序可验证的语义模糊可搜索加密方法,其特征在于:所述步骤S4具体包括以下步骤:
步骤S41:创建语义拓展树:给定关键词Λ=(q1,q2,…,qu),利用WordNet进行语义拓展;
步骤S42:进行语义相似度计算:
计算原单词和拓展词之间的语义相似度Z,只选取最相关的前σ个拓展词,得到语义拓展集合Q=(q1,q2,…,qu,α1,…,ασ);计算两个关键词之间的相似度分数:
其中,F(w)表示关键词w包含的特征集合,IC(S)表示特征集合S中包含的信息内容,其计算方法如下:
IC(S)=-∑f∈Slog P(f);
其中,P(f)是特征f的出现概率,通过计算含有特征f的关键词在语料库中的百分比,可以得到P(f);当两个关键词有完全相同的特征时,它们的相似度分数为最大值1,而两个关键词没有任何相同的特征时,它们的相似度分数为0。
3.根据权利要求1所述的一种排序可验证的语义模糊可搜索加密方法,其特征在于:所述验证索引中是否包含查询关键词具体为:用户使用密钥mk对返回的布隆过滤器 计算若 则证明返回的 没有被篡改;通过 可
以快速检测查询关键词βz∈Q是否存在于关键词集合W=(w1,w2,…,wn)中,其中1≤z≤u+σ,如果h(βz)属于 则βz∈W;令所有属于 的h(βz)构成的集合为TQ′。
4.根据权利要求1所述的一种排序可验证的语义模糊可搜索加密方法,其特征在于:所述验证返回的索引是否正确且完整具体为:首先,用户使用密钥mk对返回的安全索引计算得到 若所有 则证
明返回的 没有被篡改;然后,用户使用TQ′中的查询关键词h(βz)在返回的安全索引 中进行本地搜索;若每个查询关键词h(βz)都能在返回的 中找到对应相等的h(wi),则说明云服务器返回的安全索引是完整的;最后,执行双因子排序算法,获得经过排序的文档标识符集FID=(id1,id2,…,idy)。
5.根据权利要求1所述的一种排序可验证的语义模糊可搜索加密方法,其特征在于:所述验证返回的密文是否正确且完整具体为:用户获得了经过本地排序后的文档标识符集FID=(id1,id2,…,idy),也获得了经过云服务器排序后的密文文档集
使用密钥mk依照顺序计算 若x=y且所有 则证明返回
的密文文档是完整且正确的,并且同时证明了经过云服务器排序后的密文文档的次序也是正确的,即实现了排序可验证。

说明书全文

一种排序可验证的语义模糊可搜索加密方法

技术领域

[0001] 本发明涉及计算领域,特别是一种排序可验证的语义模糊可搜索加密方法。

背景技术

[0002] 随着云计算的发展,越来越多用户将数据外包给公有云服务器,极大减轻了本地的计算和存储开销。然而如果将敏感数据,例如:未发表的论文或专利、私人电子健康记录、公司财税报告等,以明文的形式存储在云服务器中,则有可能面临被云端管理员或攻击者窥视和窃取的险。因此,为了保障数据安全和用户隐私,许多敏感数据在外包之前需要进行加密。但这又使得传统的明文搜索技术难以使用,给高效的数据利用带来了挑战。为了解决在密文中进行搜索的难题,Song率先开始进行可搜索加密技术的研究并提出了可行的方案。
[0003] 早先的可搜索加密方案主要致于精确关键词搜索,当用户输入的关键词匹配上预定义的关键词时,就能返回搜索结果。然而在用户输入搜索关键词时,由于粗心或遗忘等原因,很可能出现拼写错误或格式不匹配的情况。为此,Li率先提出模糊关键词可搜索加密方案,即使查询条件无法完全匹配预定义关键词,也能以较大的概率找到相关文档,极大改善了用户的搜索体验。但是,现有的模糊搜索方案中,大部分只考虑了关键词字符上的模糊,而忽视了关键词语义上的模糊。
[0004] 为了实现语义模糊搜索,Fu对文档关键词进行同义词拓展,通过计算内积的方式,实现了支持同义词查询的多关键词排序搜索方案。Xia为文档集创建倒排索引,再结合语义相似库对查询关键词进行语义拓展,实现了语义拓展的排序搜索方案。然而,这些方案无法对返回的搜索结果进行验证。
[0005] 在密文搜索的环境下,Chai提出了“半诚实且好奇”的云服务器模型,服务器提供商为了节省计算量和带宽资源,可能仅仅执行了部分搜索操作或返回部分搜索结果。为此文章提出了基于单词查找树索引结构的可验证的可搜索加密方案。Wang在关键词模糊搜索的基础上,通过构造符号索引树,提出了可验证的关键词模糊搜索方案。Sun采用向量空间模型和MDB树结构,实现了可验证的多关键词排序搜索方案。虽然这些方案都支持可验证功能,却无法支持语义模糊搜索。Lin基于通过构造校验和的方式,实现了可验证的语义模糊搜索。Fu通过TST树对关键词进行语义拓展,并同样借助符号索引树结构,提出了可验证的语义模糊搜索方案。然而,以上可验证方案都无法验证搜索结果排序后的次序是否正确,即无法实现排序可验证的功能。

发明内容

[0006] 有鉴于此,本发明的目的是提出一种排序可验证的语义模糊可搜索加密方法,既支持语义模糊搜索,又能够对搜索结果的排序进行验证。
[0007] 本发明采用以下方案实现:一种排序可验证的语义模糊可搜索加密方法,包括数据拥有者,授权用户和云服务器,具体包括以下步骤:
[0008] 步骤S1:数据拥有者输入一个安全参数λ,生成文档加密密钥sk、单向哈希函数的密钥hk,保序加密函数的密钥ek;将密钥sk、hk发送给授权用户;
[0009] 步骤S2:依次进行抽取关键词、计算相关度分数、计算域加权得分、创建倒排索引、加密倒排索引;
[0010] 所述抽取关键词为:数据拥有者对文档集F=(f1,f2,…,fm)抽取关键词,得到关键词集合W=(w1,w2,…,wn);
[0011] 所述计算相关度分数为:引入tf-idf权值计算方法计算关键词相关度分数S:
[0012]
[0013] 其中,|f|表示文档f的长度,tft,f表示关键词t在某篇文档f中出现的频率;N表示所有文档数量,dft表示包含关键词t的文档数量;
[0014] 所述计算域加权得分为:在不同域中的关键词通常具有不同的重要性,标题、摘要、正文中的关键词重要性依次递减;给定一系列文档,假定每篇文档有t个域,其对应权重系数分别是k1,…kt∈[0,1],它们满足:
[0015]
[0016] 令si为查询关键词和文档的第i个域的匹配得分,其中,1和0分别表示匹配上和没匹配上,定义域加权评分为:
[0017]
[0018] 所述创建倒排索引为:为关键词wi∈W创建索引 其中,idj表示包含wi的文档fj的标识符, 表示wi在fj中的相关度分数, 表示wi在fj中的域加权得分;
[0019] 所述加密倒排索引为:为了保护相关度分数 与域加权得分 的隐私性,需要进行加密操作;引入密钥为ek的非线性保序加密函数OPE(·),将 加密为即使 处于密文状态,云服务器仍然可以对其进行高效排序;为了保
障关键词wi∈W的隐私安全,使用带密钥hk的哈希函数将其加密为h(wi);因此,经过加密后的索引为 最后,数据拥有者将索引集合
上传给云服务器;
[0020] 步骤S3:数据拥有者使用密钥为sk的对称加密算法 对文档集合F=(f1,f2,…,fm)进行加密,得到密文集合C=(c1,c2,…,cm)并上传给云服务器;
[0021] 步骤S4:当授权用户搜索时,首先输入u个感兴趣的关键词Λ=(q1,q2,…,qu),基于WordNet创建语义拓展树,考虑关键词qi多词性多词义的情况,并且进行上义词、同义词、下义词的语义拓展;计算原单词qi和拓展词 之间的语义相似度 只选取最相关的前σ个拓展词,最后得到语义拓展集合Q=(q1,q2,…,qu,α1,…,ασ);将Q中的元素qi(1≤i≤u)或αj(1≤j≤σ)统一表示为βz(1≤z≤u+σ),即Q=(β1,β2,…,βu+σ);使用密钥hk生成陷TQ=(h(β1),h(β2),…,h(βu+σ));最后,将TQ上传到云服务器;
[0022] 步骤S5:依次进行遍历倒排索引与双因子排序;
[0023] 所述遍历倒排索引为:云服务器接收到陷门TQ后,依次将h(βz)∈TQ与倒排索引中的h(wi)进行匹配;若h(βz)=h(wi),则找到对应的索引
[0024] 所述双因子排序为:首先根据查询关键词h(βz)对应的语义相似度Zz由大到小的顺序,对h(βz)匹配到的索引Ii进行排序;再根据每个索引Ii中的加密分数 对文档标识符idj进行排序;最后,根据idj返回top-k篇密文C'=(c1,c2,…,ck);
[0025] 步骤S6:授权用户使用数据拥有者分发的密钥sk,将top-k篇密文C'=(c1,c2,…,ck)解密,获得所需的明文。
[0026] 进一步地,所述步骤S4具体包括以下步骤:
[0027] 步骤S41:创建语义拓展树:给定关键词Λ=(q1,q2,…,qu),利用WordNet进行语义拓展;
[0028] 步骤S42:进行语义相似度计算:
[0029] 计算原单词和拓展词之间的语义相似度Z,只选取最相关的前σ个拓展词,得到语义拓展集合Q=(q1,q2,…,qu,α1,…,ασ);计算两个关键词之间的相似度分数:
[0030]
[0031] 其中,F(w)表示关键词w包含的特征集合,IC(S)表示特征集合S中包含的信息内容,其计算方法如下:
[0032] IC(S)=-Σf∈SlogP(f);
[0033] 其中,P(f)是特征f的出现概率,通过计算含有特征f的关键词在语料库中的百分比,可以得到P(f);当两个关键词有完全相同的特征时,它们的相似度分数为最大值1,而两个关键词没有任何相同的特征时,它们的相似度分数为0。
[0034] 进一步地,还包括一验证过程,数据拥有者首先构造出验证信息,连同索引上传给云服务器;接着,用户提交陷门进行搜索,云服务器返回搜索结果以及相应验证信息;最后,用户在本地对搜索结果进行验证;具体包括以下步骤:
[0035] 步骤S11:验证信息的准备:数据拥有者在构建完安全索引 后,为了能让搜索用户快速检测搜索集合Q=(β1,β2,…,βu+σ)中的查询关键词βz(1≤z≤u+σ)是否存在于关键词集合W=(w1,w2,…,wn)中,将所有密文关键词h(wi)插入布隆过滤器BLW中,并使用密钥为mk的函数Mac(·)计算消息认证码 另外,为了实现对安全
索引的验证,需要对安全索引计算消息认证码 为了实现对密文文档的验
证,还需要结合文档标识符集合ID=(id1,id2,…,idm),对密文文档集C=(c1,c2,…,cm)中的每篇密文文档计算消息认证码,生成 将BLW、 以及所有
连同索引 密文集合C=(c1,c2,…,cm)一起上传到云服务
器;
[0036] 步骤S12:搜索过程:用户搜索后云服务器返回的内容包括:
[0037] 布隆过滤器 以及
[0038] 所有查询关键词h(βz)匹配到的安全索引 以及
[0039] 在匹配到的安全索引 中,经过双因子排序后的idj所对应的所有密文文档集以及
[0040] 步骤S13:验证过程:依次验证索引中是否包含查询关键词、验证返回的索引是否正确且完整、验证返回的密文是否正确且完整。
[0041] 进一步地,所述验证索引中是否包含查询关键词具体为:用户使用密钥mk对返回的布隆过滤器 计算 若 则证明返回的 没有被篡改;通过 可以快速检测查询关键词βz∈Q(1≤z≤u+σ)是否存在于关键词集合W=(w1,w2,…,wn)中,如果h(βz)属于 则βz∈W;令所有属于 的h(βz)构成的集合为T′Q。
[0042] 进一步地,所述验证返回的索引是否正确且完整具体为:首先,用户使用密钥mk对返回的安全索引 计算得到 若所有则证明返回的 没有被篡改;然后,用户使用T′Q中的查询关键词h(βz)在返
回的安全索引 中进行本地搜索;若每个查询关键词h(βz)都能在返回的 中找到对应相等的h(wi),则说明云服务器返回的安全索引是完整的;最后,执行双因子排序算法,获得经过排序的文档标识符集FID=(id1,id2,…,idy)。
[0043] 进一步地,所述验证返回的密文是否正确且完整具体为:用户获得了经过本地排序后的文档标识符集FID=(id1,id2,…,idy),也获得了经过云服务器排序后的密文文档集使用密钥mk依照顺序计算 若x=y且所有则证明返回的密文文档是完整且正确的,并且同时证明了经过云服务器排
序后的密文文档的次序也是正确的,即实现了排序可验证。
[0044] 与现有技术相比,本发明有以下有益效果:
[0045] 1、关键词语义模糊搜索:本发明对查询关键词进行语义拓展并计算语义相似度,然后选取最相关的语义拓展词进行查询,实现了语义模糊检索。
[0046] 2、支持搜索结果的精确排序:本发明对文档不同域中的关键词赋予不同的权重,并将其作为评估文档相关性的指标之一。通过双因子排序算法,云服务器能够对搜索结果进行精确的排序并返回给搜索用户。
[0047] 3、排序可验证:本发明通过引入布隆过滤器和消息认证码,能够对结果进行验证,特别是能够验证排序后的次序是否正确,实现了排序可验证功能。而这在很多可验证方案中没有实现。附图说明
[0048] 图1为本发明实施例中的系统框架图。
[0049] 图2为本发明实施例中的语义拓展数示意图。
[0050] 图3为本发明实施例中的验证方法流程示意图。
[0051] 图4为本发明实施例中的符号索引数示意图。

具体实施方式

[0052] 下面结合附图及实施例对本发明做进一步说明。
[0053] 如图1所示,图1为本发明实施例的系统框架,包含三个实体:数据拥有者,授权用户和云服务器。本实施例的基本操作流程如下:
[0054] (1)KeyGen(λ):数据拥有者输入一个安全参数λ,生成文档加密密钥sk、单向哈希函数的密钥hk,保序加密函数的密钥ek。将密钥sk、hk发送给授权用户。
[0055] (2)Index(F,hk,ek):
[0056] a.抽取关键词:数据拥有者对文档集F=(f1,f2,…,fm)抽取关键词,得到关键词集合W=(w1,w2,…,wn)。
[0057] b.计算相关度分数:引入tf-idf权值计算方法计算关键词相关度分数S。
[0058]
[0059] |f|表示文档f的长度,tft,f表示关键词t在某篇文档f中出现的频率;N表示所有文档数量,dft表示包含关键词t的文档数量。
[0060] c.计算域加权得分Y:在不同域中的关键词通常具有不同的重要性,标题、摘要、正文中的关键词重要性依次递减。给定一系列文档,假定每篇文档有t个域,其对应权重系数分别是k1,…kt∈[0,1],它们满足:
[0061]
[0062] 令si为查询关键词和文档的第i个域的匹配得分(1和0分别表示匹配上和没匹配上),于是,域加权评分方法可以定义为:
[0063]
[0064] 在本实施例中,假定每篇文档有3个域,标题为第一个域zone1、摘要为第二个域zone2,正文为第三个域zone3。其对应的权重系数分别是k1=0.5,k2=0.3,k3=0.2,它们满足公式(2)。再根据公式(3)计算出该查询关键词的域加权得分。
[0065] d.创建倒排索引:为关键词wi∈W创建索引 其中,idj表示包含wi的文档fj的标识符, 表示wi在fj中的相关度分数, 表示wi在fj中的域加权得分。
[0066] e.加密倒排索引:为了保护相关度分数 与域加权得分 的隐私性,需要进行加密操作。本发明引入密钥为ek的非线性保序加密函数OPE(·),将 加密为即使 处于密文状态,云服务器仍然可以对其进行高效排序,减少了
用户的计算开销和带宽资源浪费。另外,为了保障关键词wi∈W的隐私安全,需要使用带密钥 h k的 哈 希函 数 将 其 加密 为 h (w i ) 。因 此 ,经 过 加 密 后的 索 引 为最后,数据拥有者将索引集合 上传给
云服务器。
[0067] (3)Encrypt(F,sk):数据拥有者使用密钥为sk的对称加密算法 对文档集合F=(f1,f2,…,fm)进行加密,得到密文集合C=(c1,c2,…,cm)并上传给云服务器。
[0068] (4)Trapdoor(Λ,hk):当授权用户搜索时,首先输入u个感兴趣的关键词Λ=(q1,q2,…,qu)。接着如图2所示,基于WordNet创建语义拓展树,由于考虑了关键词qi多词性多词义的情况,并且进行了上义词、同义词、下义词的语义拓展,因此拓展出的关键词较为全面。但此时拓展词数量可能较多,将其全部用于查询则查询范围太大、查询结果不精确。因此使用基于信息内容的Lin的方法,计算原单词qi和拓展词 之间的语义相似度 只选取最
相关的前σ个拓展词,最后得到语义拓展集合Q=(q1,q2,…,qu,α1,…,ασ)。为了方便下文的描述,将Q中的元素qi(1≤i≤u)或αj(1≤j≤σ)统一表示为βz(1≤z≤u+σ),即Q=(β1,β2,…,βu+σ)。然后,使用密钥hk生成陷门TQ=(h(β1),h(β2),…,h(βu+σ))。最后,将TQ上传到云服务器。(更具体的语义拓展方法见下文)
[0069] (5)
[0070] a.遍历倒排索引:云服务器接收到陷门TQ后,依次将h(βz)∈TQ与倒排索引中的h(wi)进行匹配。若h(βz)=h(wi),则找到对应的索引
[0071] b.双因子排序:为了进行精确排序,本发明设计了双因子排序算法。首先,根据查询关键词h(βz)对应的语义相似度Zz由大到小的顺序,对h(βz)匹配到的索引Ii进行排序;再根据每个索引Ii中的加密分数 对文档标识符idj进行排序;最后,根据idj返回top-k篇密文C'=(c1,c2,…,ck)。其流程可参考下表算法一。
[0072]
[0073] (6)Decrypt(C',sk):授权用户使用数据拥有者分发的密钥sk,将top-k篇密文C'=(c1,c2,…,ck)解密,获得所需的明文。
[0074] 较佳的,本实施例提供了关键词语义拓展方法,具体如下:
[0075] (1)创建语义拓展树:给定关键词Λ=(q1,q2,…,qu),利用WordNet进行语义拓展。在WordNet中,主要含有名词、动词、形容词、副词这四类实词,每个关键词可能包括这四种词性的一个或多个,而每个词性下又有多种词义。因此,语义拓展要考虑各种词性和词义的情况。例如:good在名称词性下的第一种意思为“好处”,因此可以拓展出单词advantage等。
为了语义拓展更为全面,还要考虑它的第二种意思“美德”,并由此拓展出kindness等。good在形容词词性下则可以拓展出其他单词。另外,在语义研究中有一对概念是上义词
(superordinate)和下义词(subordinate),上义词是对事物的概括性、抽象性说明,下义词是事物的具体表现形式,例如color和white、black、blue等互为上下义关系。在语义拓展中考虑上下义关系可以使拓展结果更合理、全面。因此,可以构造出一棵语义拓展树,其结构如图2。
[0076] (2)语义相似度计算:由于初步语义拓展的关键词可能较多,将其全部用于查询则查询范围太大、查询结果不够精确,因此计算原单词和拓展词之间的语义相似度Z,只选取最相关的前σ个拓展词,得到语义拓展集合Q=(q1,q2,…,qu,α1,…,ασ)。目前语义相似度分数的计算方法主要有两种,一种是基于语义距离的方法,另一种是基于信息内容的方法。本实施例使用基于信息内容的Lin方法计算两个关键
[0077] 词之间的相似度分数:
[0078]
[0079] 其中,F(w)表示关键词w包含的特征集合,IC(S)表示特征集合S中包含的信息内容,其计算方法如下:
[0080] IC(S)=-Σf∈SlogP(f)  (5)
[0081] 其中,P(f)是特征f的出现概率,通过计算含有特征f的关键词在语料库中的百分比,可以得到P(f)。当两个关键词有完全相同的特征时,它们的相似度分数为最大值1,而两个关键词没有任何相同的特征时,它们的相似度分数为0。具体的语义拓展流程可以参考下表算法二,其中sim(·,·)可以换成其他语义相似度计算方法。
[0082]
[0083] 较佳的,本实施例还包括一验证方法,具体如下:
[0084] 为了应对“半诚实且好奇”的云服务器威胁,用户希望确保搜索结果的精确性(返回的文档确实存在于数据集中并且符合用户的搜索请求)和完整性(没有遗漏符合搜索请求的文档),以及实现排序可验证功能。因此,数据拥有者首先构造出验证信息,连同索引上传给云服务器。接着,用户提交陷门进行搜索,云服务器返回搜索结果以及相应验证信息。最后,用户在本地对搜索结果进行验证。具体的验证方案如下:
[0085] (1)验证信息的准备:数据拥有者在构建完安全索引 后,为了能让搜索用户快速检测搜索集合Q=(β1,β2,…,βu+σ)中的查询关键词βz(1≤z≤u+σ)是否存在于关键词集合W=(w1,w2,…,wn)中,还要将所有密文关键词h(wi)插入布隆过滤器BLW中,并使用密钥为mk的函数Mac(·)计算消息认证码 另外,为了实现对安
全索引的验证,需要对安全索引计算消息认证码 最后,为了实现对密文
文档的验证,还需要结合文档标识符集合ID=(id1,id2,…,idm),对密文文档集C=(c1,c2,…,cm)中的每篇密文文档计算消息认证码,生成 最后将BLW、
以及所有 连同索引 密文集合C=(c1,c2,…,cm)一
起上传到云服务器。
[0086] (2)搜索过程:用户的搜索方法和基本流程中Query的步骤基本相同,但有一些改动。注意到在基本流程的Query中根据文档得分大小排序后,云服务器只返回了top-k篇密文文档给用户,这与验证搜索结果完整性的目的相矛盾。因此,在启动本发明的可验证功能后,需要取消只返回top-k篇密文文档的设定。为了配合之后的验证操作,此时云服务器应该返回的内容包括:
[0087] 布隆过滤器 以及
[0088] 所有查询关键词h(βz)匹配到的安全索引 以及
[0089] 在匹配到的安全索引 中,经过双因子排序后的idj所对应的所有密文文档集以及
[0090] 注意到由于用户返回的布隆过滤器 安全索引 密文集都有待验证,因此在其指代符号之上添加波浪号,区别于数据拥有者上传到云服务器的相应原始数据。
[0091] (3)验证过程:
[0092] a.验证索引中是否包含查询关键词:首先,用户使用密钥mk对返回的布隆过滤器计算 若 则证明返回的 没有被篡改。然后,通过 可以快速检测查询关键词βz∈Q(1≤z≤u+σ)是否存在于关键词集合W=(w1,w2,…,wn)中。如果h(βz)属于 则βz∈W。令所有属于 的h(βz)构成的集合为T′Q。该验证过程可以有效防止云服务器对用户的欺骗。例如,云服务器的原始安全索引 中含有用户查询的关键词,但云服务器却欺骗用户没有找到相关文档并且不返回任何搜索结果,通过该验证就可以很容易判断搜索结果是假的。
[0093] b.验证返回的索引是否正确且完整:首先,用户使用密钥mk对返回的安全索引计算得到 若所有 则证明返回的 没有被篡改。然后,用户使用T′Q中的查询关键词h(βz)在返回的安全索引 中进行本地搜索。若每个查询关键词h(βz)都能在返回的 中找到对应相等的h(wi),则说明云服务器返回的安全索引是完整的。最后,执行双因子排序算法,获得经过排序的文档标识符集FID=(id1,id2,…,idy)。
[0094] c.验证返回的密文是否正确且完整:
[0095] 至此,用户获得了经过本地排序后的文档标识符集FID=(id1,id2,…,idy),也获得了经过云服务器排序后的密文文档集 因此可以使用密钥mk依照顺序计算 若x=y且所有 则证明返回的密文文档是完整
且正确的,并且同时证明了经过云服务器排序后的密文文档的次序也是正确的,即实现了排序可验证。
[0096] 如果用户第一次进行查询并希望验证搜索结果,云服务器将返回所有用于验证的数据结构给用户。用户可以选择保存它们,避免之后搜索时的通信开销。如果用户使用了之前的关键词进行重复查询,云服务器就没有必要返回相应的验证结构,用户只需要将搜索结果和之前保存的验证结构比较,可以极大节省通信开销。
[0097] 本实施例通过倒排索引、哈希函数、布隆过滤器和消息认证技术,创建相关验证信息。通过验证 和 等结构,用户能够确保返回文档的精确性和完整性。因此,本实施例取得了完备的搜索结果可验证功能。另外,如果有必要对搜索结果的时效性进行验证,则在相应消息认证码中添加时间戳即可。
[0098] 以上验证方案的流程可以参考图3。
[0099] 特别的,在本实施例中,基于倒排索引的搜索开销为O(N),为了进一步提高搜索效率,在不改变其他操作的前提下,只需将原有的倒排索引更改为符号索引树结构,即可将搜索开销降低为O(1)。如图4,在构建索引树GW时,首先产生根节点 其为空集。然后计算h(wi),若h(wi)为τ个比特长,可以将h(wi)分成τ/λ段,每段都用αρ进行表示,则h(wi)可以表示为α1α2…ατ/λ。接着,用αρ代表一个节点,相同的αρ则为同一个节点。当αρ为叶子节点时,在叶子节点中插入 与其对应的消息认证码 每一条从根节点到叶子节点的路径表示h(wi)。对每个关键词都进行上述操作,直至一棵完整的符号索引树构造完成。云服务器在查询阶段,能从匹配到的叶子节点中获取相应的索引Ii和
[0100] 以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈