CN107220343B - 基于局部敏感哈希的中文多关键词模糊排序密文搜索方法 - Google Patents

基于局部敏感哈希的中文多关键词模糊排序密文搜索方法 Download PDF

Info

Publication number
CN107220343B
CN107220343B CN201710387493.2A CN201710387493A CN107220343B CN 107220343 B CN107220343 B CN 107220343B CN 201710387493 A CN201710387493 A CN 201710387493A CN 107220343 B CN107220343 B CN 107220343B
Authority
CN
China
Prior art keywords
keyword
chinese
document
vector
ciphertext
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710387493.2A
Other languages
English (en)
Other versions
CN107220343A (zh
Inventor
杨旸
刘佳
郭文忠
叶少珍
董晨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fuzhou University
Original Assignee
Fuzhou University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fuzhou University filed Critical Fuzhou University
Priority to CN201710387493.2A priority Critical patent/CN107220343B/zh
Publication of CN107220343A publication Critical patent/CN107220343A/zh
Application granted granted Critical
Publication of CN107220343B publication Critical patent/CN107220343B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/3332Query translation
    • G06F16/3334Selection or weighting of terms from queries, including natural language queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • G06F16/325Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself

Abstract

本发明涉及一种基于局部敏感哈希的中文多关键词模糊排序密文搜索方法,将中文关键词转换成对应的拼音串后,基于声韵母和音调、unigram对拼音串分割;设计了三种中文关键词向量生成算法,将拼音串映射成关键词向量。并且,利用局部敏感哈希的特性和布隆过滤器来实现关键词的模糊匹配。本发明采用一篇文档对应一个布隆过滤器作为文档的加密索引,当加入新文档(或删除旧文档)时,无需更改原数据集的加密索引,只需构建新文档的加密索引(或删除旧文档的加密索引),就可实现文档的动态更新。为了提高排序结果的精确性,本发明引入了域加权评分,将关键词向量间的欧氏距离、词频权重和域加权评分结合,实现更为精确的三因子排序,返回更加满足用户需求的文档。

Description

基于局部敏感哈希的中文多关键词模糊排序密文搜索方法
技术领域
本发明涉及一种基于局部敏感哈希的中文多关键词模糊排序密文搜索方法
背景技术
随着云计算技术的飞速发展,敏感数据越来越多的存储到云中,如电子邮件、个人健康记录、私人视频和照片、公司财务数据和政府文件等。云服务器提供了高质量的数据存储服务,将数据存储到云中,可以减少用户的数据存储和维护开销。但是数据拥有者和云服务器不在同一个信任域中会使外包数据处于危险之中,为了保护用户的隐私安全,将数据加密后再存储到云服务器是一种常见的解决方法。然而数据经过加密后不再具有原有的特性,当用户需要某些数据时,无法直接在密文中分辨出所需要的数据,在数据量很小的情况下,可以将所有的密文数据下载至本地,解密后在明文中搜索自己想要的数据。然而随着云端数据规模的急剧增长,这种浪费了大量时间开销与带宽功耗的做法显然已经不能满足用户的实际需求,因此,如何在大量密文中搜索到需要的文档成为了一个难题。
Song等率先开始进行可搜索加密技术的研究,为解决密文检索的问题提供了思路。Chang等为每篇文档创建索引,搜索时只需对加密的文档索引进行搜索,提高了搜索效率。Wang等提出了单关键词排序的搜索方案,主要通过计算文档的tf-idf(词频-逆文档频率)值并经过保序加密后,对保序加密后的相关度分数进行排序,返回top-k篇文档给用户。Cao等提出了多关键词排序可搜索加密方案,引入了向量空间模型和安全KNN(secure k-nearest neighbor)方法,通过矩阵对索引向量进行加密,计算索引向量和搜索向量的内积相似度来实现多关键词的排序搜索。但是这些方案只支持精确关键词搜索,用户输入的关键词必须与预定义的关键词完全匹配,才能返回搜索结果,这使得搜索方案具有较大局限性。因此,Li等提出模糊关键词可搜索加密方案,用通配符的方法构造关键词模糊集合,用户在输入的搜索关键词出现拼写错误或格式不匹配的情况时,也能以较大的概率找到相关文档,极大改善了用户的搜索体验。Li等提出了节省存储空间的模糊搜索方案,通过克(gram)来构造模糊集。Wang等利用通配符和索引树,实现了高效的模糊搜索方案。Chuah等为了提高搜索效率,实现了基于BedTree的多关键词模糊搜索方案。
但是以上的方案都是针对英文关键词实现模糊搜索,由于汉字是典型的非字母语言,词语的搭配灵活多样,因此以上的方案并不适用于中文关键词的模糊搜索。Cao等提出了一种基于汉语拼音的明文模糊搜索方案,但是并不能实现密文上的搜索。Chen等使用基于拼音的汉字串相似度衡量方案,实现了中文关键词的密文模糊搜索方案。
然而以上的模糊搜索方案都要预先构建模糊集,这些模糊集合将占用云服务器大量的存储空间。例如,在基于通配符的模糊集构造方法中,随着编辑距离的增加,模糊集合的大小会呈指数增长,因此构造模糊集合会耗费大量的计算和存储开销。Yang等基于simhash的降维思想,将关键词做n-gram处理得到simhash指纹来实现模糊搜索。Wang等和Fu等将局部敏感哈希(Locality-sensitive hashing,LSH)和安全KNN方法(secure k-nearest neighbor)结合,实现了一种新的多关键词模糊搜索方案。以上方案虽然无需构建关键词模糊集合,但是同样是针对英文的模糊搜索,并不能实现中文模糊搜索。
针对目前的中文密文关键词搜索方案中,要预先构造模糊集合,浪费大量的存储空间和时间开销等问题,本发明提出了一种新型的中文多关键词模糊排序搜索方法,可以实现高效的模糊关键词存储、支持文档动态更新,并返回精确的排序结果。
发明内容
本发明的目的在于提供一种基于局部敏感哈希的中文多关键词模糊排序密文搜索方法,以克服现有技术中存在的缺陷。
为实现上述目的,本发明的技术方案是:一种基于局部敏感哈希的中文多关键词模糊排序密文搜索方法,提供一数据拥有单元、一授权用户单元以及一云服务器,按照如下步骤实现:
步骤S1:初始化,所述数据拥有单元从明文文档集合F=(f1,f2,…,fm)中抽取关键词,得到关键词集合W=(w1,w2,…,wn);
步骤S2:生成密钥,所述数据拥有单元输入一预设安全参数λ,产生一个向量S,S∈{0,1}λ,以及两个λ×λ维的可逆矩阵{M1,M2},密钥SK由三元组{S,M1,M2}组成,所述数据拥有单元生成一加密文档的密钥sk;
步骤S3:建立索引,所述数据拥有单元从一LSH哈希族中选取l个独立的LSH函数,为每篇文档fi构建一个λ比特的布隆过滤器,作为文档fi的索引Ii
步骤S4:索引加密,采用安全KNN算法加密索引Ii,得到加密后的索引
Figure BDA0001306621030000031
所述数据拥有单元将加密的索引集合
Figure BDA0001306621030000032
上传到所述云服务器;
步骤S5:文档加密,所述数据拥有单元通过对称加密算法对所述文档集合F=(f1,f2,…,fm)进行加密,得到密文集合C=(c1,c2,…,cm),并上传给所述云服务器;
步骤S6:生成陷门,当授权用户搜索时,通过所述授权用户单元输入η个搜索关键词Q=(q1,q2,…,qη),并为查询关键词集合Q构建一个λ比特的布隆过滤器作为陷门TQ
步骤S7:陷门加密,采用安全KNN算法对陷门TQ加密,得到加密后的陷门
Figure BDA0001306621030000033
所述授权用户单元将加密后的陷门EncSK(TQ)上传到所述云服务器;
步骤S8:所述云服务器根据加密的索引EncSK(Ii)和加密的陷门EncSK(TQ),计算文档的相似度分数,将所有分数排序后,返回前k篇文档给用户;
步骤S9:所述授权用户单元通过使用所述数据拥有单元分发的密钥sk,对返回的top-k篇密文进行解密,获得所需的明文文档集。
相较于现有技术,本发明具有以下有益效果:
(1)新型中文模糊搜索方法:本发明首次提出了无需预先构造关键词模糊集合的新型中文多关键词模糊排序密文搜索方法。首先将中文关键词转换成对应的拼音串,接着设计了基于拼音串的中文关键词向量生成算法基于unigram的中文关键词向量生成算法1和算法2三种向量生成算法将关键词拼音串转化成对应的向量,然后为每篇文档构建一个布隆过滤器作为索引,利用LSH函数将文档中关键词对应的向量插入到布隆过滤器中。由于LSH函数的特性(原数据相似,经过LSH后的哈希值以很高的概率相等),授权用户在拼写错误的情况下也能匹配到正确的关键词,从而实现中文关键词的密文搜索。
(2)高效的模糊关键词存储:本发明设计了三种算法将每个关键词转化为对应的向量,即一个关键词对应一个向量,使得特定的向量在经过LSH函数哈希后能够匹配上拼写错误的查询词向量,从而实现模糊搜索。不同于以往的中文关键词模糊搜索方法,本发明无需构造庞大的关键词模糊集合,而只需要将一个关键词处理为一个对应的向量,再构造成索引存储在云服务器即可,因此极大减少了计算和存储开销。
(3)精确返回排序结果:本发明引入了域加权评分,对处于文档不同域中的关键词赋予不同的权重,将域加权评分、关键词向量间的欧氏距离和词频权重结合,实现了更加精确的三因子排序方法,满足用户的需求。
(4)支持文档动态更新:本发明引入了关键词的权重信息和域加权评分来提高排序结果的精确性,但发明采用了关键词的词频权重wft,f来代替传统方案大多采用的tf-idf相关度分数作为关键词的权重,使得关键词的权重信息不会随着文档的增加或减少发生变化,并且本发明采用一篇文档对应一个布隆过滤器作为加密索引。加入新文档(或删除旧文档)时,只需在计算当前文档中关键词的权重信息和域加权评分后构建新文档的索引并加密(或删除旧文档的加密索引,接着将文档加密后上传到云端(或删除加密的旧文档)即可,实现了文档的动态更新。
附图说明
图1为本发明中基于局部敏感哈希的中文多关键词模糊排序密文搜索方法的系统框架图。
图2为本发明中基于局部敏感哈希的中文多关键词模糊排序密文搜索方法的流程图。
图3为本发明中基于局部敏感哈希的中文多关键词模糊排序密文搜索方法中基于拼音串的中文关键词向量生成算法的过程。
图4为本发明中基于局部敏感哈希的中文多关键词模糊排序密文搜索方法中基于unigram的中文关键词向量生成算法1。
具体实施方式
下面结合附图,对本发明的技术方案进行具体说明。
本发明提供一种基于局部敏感哈希的中文多关键词模糊排序密文搜索方法,图1为本发明的系统框架,包含三个实体:数据拥有者,授权用户和云服务器。本发明的索引和陷门加密采用安全KNN算法加密,可以参考:WongW K,Cheung W L,Kao B,et al.SecurekNN computation on encrypted databases//Proceedings of the ACM SigmodInternational Conference on Management of Data.New York,USA,2009:139-152.
进一步的,如图2为本发明的基本流程,具体步骤如下:
(1)Setup:数据拥有者从明文文档集合F=(f1,f2,…,fm)中抽取关键词,得到关键词集合W=(w1,w2,…,wn)。
(2)KeyGen(λ):数据拥有者输入一个安全参数λ,产生一个向量S,S∈{0,1}λ和两个λ×λ维的可逆矩阵{M1,M2},密钥SK由三元组{S,M1,M2}组成。接着,数据拥有者生成一个加密文档的密钥sk。
(3)BuildIndex(F,SK,l):从LSH哈希族中选取l个独立的LSH函数。为每篇文档fi构建一个λ比特的布隆过滤器作为fi的索引Ii,具体操作如下:
31)采用基于拼音串的中文关键词向量生成算法或基于unigram的中文关键词向量生成算法1或基于unigram的中文关键词向量生成算法2,为文档fi中的每个关键词wj生成对应的关键词向量
Figure BDA0001306621030000051
则文档fi的关键词向量集合为
Figure BDA0001306621030000052
32)利用hσ∈H将每一个关键词向量
Figure BDA0001306621030000053
进行哈希,并插入到布隆过滤器Ii中,其中1≤σ≤l。
(4)
Figure BDA0001306621030000054
采用安全KNN算法加密索引Ii,得到加密后的索引
Figure BDA0001306621030000055
Figure BDA0001306621030000056
最后,数据拥有者将加密的索引集合
Figure BDA0001306621030000057
上传到云服务器。
(5)EncFile(F,sk):数据拥有者使用对称加密算法对文档集合F=(f1,f2,…,fm)进行加密,得到密文集合C=(c1,c2,…,cm)并上传给云服务器。
(6)Trapdoor(Q,SK,l):当授权用户搜索时,首先输入η个搜索关键词Q=(q1,q2,…,qη)。接着为查询关键词集合Q构建一个λ比特的布隆过滤器作为陷门TQ,具体操作如下:
61)采用基于拼音串的中文关键词向量生成算法或基于unigram的中文关键词向量生成算法1或基于unigram的中文关键词向量生成算法2为每个查询词qj生成对应的查询词向量
Figure BDA0001306621030000061
qj∈Q,则查询Q的查询词向量集合为
Figure BDA0001306621030000062
62)利用hσ∈H将每一个查询词向量
Figure BDA0001306621030000063
进行哈希,并插入到布隆过滤器TQ中,其中1≤σ≤l。
(7)EncTrapdoor(TQ,SK):采用安全KNN算法陷门TQ,得到加密后的陷门
Figure BDA0001306621030000064
最后,授权用户将加密的陷门EncSK(TQ)上传到云服务器。
(8)
Figure BDA0001306621030000065
EncSK(TQ),k):云服务器根据加密的索引EncSK(Ii)和加密的陷门EncSK(TQ)计算文档的相似度分数,将所有分数排序后,返回前k篇文档给用户。
(9)Decrypt(C,sk):授权用户使用数据拥有者分发的密钥sk,对返回的top-k篇密文进行解密,获得所需的明文文档集。
进一步的,结合具体实施例说明基于拼音串的中文关键词向量生成算法。
在本实施例中,如果将中文关键词的拼音串看做英文字母串,那么插入、删除和替换掉一个或若干个字母后得到的很可能不是合法的拼音串。因此需要基于拼音的结构来定义编辑操作,具体定义如下:
1.只有同一个音节的声母或韵母发生变化。
2.同一个音节的声母和韵母同时发生变化。
3.音调发生变化。
由于LSH函数的输入是向量,因此应当用向量来表示中文关键词。此算法采用63比特的关键词向量
Figure BDA0001306621030000066
来表示关键词wi。由于中文有23个声母,24个韵母和4个音调,设定一个关键词最多有4个字,因此关键词向量
Figure BDA0001306621030000067
的比特长度为23+24+4*4=63。基于拼音串的中文关键词向量生成算法的过程如图3所示,步骤如下:
(A11)将中文关键词转化成对应的拼音字符串;
(A12)将每一个关键词按声母、韵母分割,分别用1、2、3、4表示音节的四个音调;
(A13)在音调后加入1、2、3、4来表示关键词的第1、2、3、4个字。
例如,关键词“实验”的音节的分割集为{sh,i,21,y,an,42},声母集为{sh,y},韵母集为{i,an},音调集为{21,42},其中“21”表示关键词“实验”中的第一个字“实”的音调为二声,“42”表示关键词“实验”中的第二个字“验”的音调为四声;
(A14)将关键词声母集、韵母集和音调集中的元素映射到关键词向量
Figure BDA0001306621030000071
中对应的位置上,若pi中包含
Figure BDA0001306621030000072
中第j位对应的元素,则
Figure BDA0001306621030000073
否则
Figure BDA0001306621030000074
例如,
Figure BDA0001306621030000075
中第7位对应的元素为“y”,若pi中包含元素“y”,则
Figure BDA0001306621030000076
否则
Figure BDA0001306621030000077
该处pi指关键词经过基于拼音串的中文关键词向量生成算法处理后,得到的音节分割集。例如,关键词“实验”经过此算法处理后得到的音节分割集pi为{sh,i,21,y,an,42}
进一步的,在本实施例中,当采用基于拼音串的中文关键词向量生成算法时,采用哈希族H={hσ:{0,1}63→{0,1}λ}。
进一步的,假设用户需要查询的关键词为“实验”,但是由于用户的拼写错误等原因,他实际输入的查询词为“实样”,即把an拼成ang(在中文关键词中前鼻音韵母和后鼻音韵母发音出错是常见的拼写错误)。根据上文的操作可得到查询词“实样”的音节分割集为{sh,i,21,y,ang,42},声母集为{sh,y},韵母集为{i,ang},音调集为{21,42}。经过映射可得到查询词向量
Figure BDA0001306621030000078
在传统的哈希算法中,如果拼写错了关键词的一个音节,那么关键词哈希出的结果会与原来完全不同。但本发明此算法中的向量
Figure BDA0001306621030000079
Figure BDA00013066210300000710
经过LSH后插入到布隆过滤器中作为索引和陷门进行比对,由于LSH局部敏感哈希函数的特性,若原数据相似,则经过LSH后的哈希值有很高的概率相等,而关键词“实验”的向量
Figure BDA00013066210300000711
和查询词“实样”的向量
Figure BDA00013066210300000712
之间的欧式距离仅为
Figure BDA00013066210300000713
可知它们经过LSH后的哈希值会以很大的概率相等,即查询关键词“实样”会有很大的概率模糊搜索到包含关键词“实验”的文档。
进一步的,结合具体实例说明基于unigram的中文关键词向量生成算法1。
在本实施例中,Unigram即为一元语法,例如,英文单词“cloud”经过unigram处理后得到的集合为{c,l,o,u,d};中文单词“可搜索加密”经过unigram处理后得到的集合为{可,搜,索,加,密}。
此算法采用42比特的关键词向量
Figure BDA00013066210300000714
来表示关键词wi。由于拼音串按unigram方法分割相当于将中文拼音串转化为英文处理,而英文有26个英文字母,中文4个音调,设定一个关键词最多有4个字,因此关键词向量
Figure BDA0001306621030000081
的比特长度为26+4*4=42。基于unigram的中文关键词向量生成算法1的过程如图4所示,步骤如下:
(A21)将中文关键词转化成对应的拼音字符串;
(A22)将每一个关键词的拼音串按unigram方法分割。分别用1、2、3、4表示音节的四个音调;
(A23)在音调后加入1、2、3、4来表示关键词的第1、2、3、4个字。例如,关键词“实验”的音节的分割集为{s,h,i,21,y,a,n,42}。
(A24)将关键词音节分割集中的元素映射到关键词向量
Figure BDA0001306621030000082
中对应的位置上,若pi中包含
Figure BDA0001306621030000083
中第j位对应的元素,则
Figure BDA0001306621030000084
否则
Figure BDA0001306621030000085
例如,
Figure BDA0001306621030000086
中第6位对应的元素为“h”,若pi中包含元素“h”,则
Figure BDA0001306621030000087
否则
Figure BDA0001306621030000088
该处pi指关键词经过基于unigram的中文关键词向量生成算法1处理后,得到的音节分割集。例如,关键词“实验”经过此算法处理后得到的音节分割集pi为{s,h,i,21,y,a,n,42}。
进一步的,在本实施例中,当采用基于unigram的中文关键词向量生成算法1时,采用哈希族H={hσ:{0,1}42→{0,1}λ}。
进一步的,假设用户需要查询的关键词为“实验”,但是由于用户的拼写错误等原因,他实际输入的查询词为“实样”,即把an拼成ang。根据上文相同的操作可得到查询词“实样”的音节分割集yi为{s,h,i,21,y,a,n,g,42}。经过映射可得到查询词向量
Figure BDA0001306621030000089
将关键词“实验”的向量
Figure BDA00013066210300000810
和查询词“实样”的向量
Figure BDA00013066210300000811
进行对比,可得它们之间的欧式距离仅为1。在原单词“实验”和查询词“实样”相同的情况下,显然此时两向量间的欧式距离小于图3中两向量的欧式距离(图3中两向量的欧式距离为
Figure BDA00013066210300000812
)。那么根据LSH位置敏感哈希函数原数据相似,经过LSH后的哈希值有很高的概率相等的特性,向量
Figure BDA00013066210300000813
Figure BDA00013066210300000814
经过LSH后插入到布隆过滤器中作为索引和陷门进行比对时,此算法实现中文模糊搜索的精确性会高于基于拼音串的中文关键词向量生成算法实现的中文模糊搜索的精确性。
进一步的,结合具体实例基于unigram的中文关键词向量生成算法2。在基于unigram的中文关键词向量生成算法1(简称算法1)中,当查询关键词出现前后字调换时,可能会返回无关文档。例如:“故事”,“事故”为两个意义完全不同的关键词,但是它们的音节的分割集都为{g,u,41,s,h,i,42}。由于算法1未考虑到音节的有序性,因此,在算法1中,用户若想查询关键词“事故”的相关文档,会返回有关“故事”的文档,并且由于音节分割集完全相同,包含“故事”的文档的欧氏距离与包含“事故”文档的欧氏距离相同,使得包含“故事”的文档也返回给用户,浪费了大量的带宽。针对这种缺陷,对算法1提出进一步改进。
此算法采用120比特的关键词向量
Figure BDA0001306621030000091
来表示关键词wi。由于拼音串按unigram方法分割相当于将中文拼音串转化为英文处理,而英文有26个英文字母,中文4个音调,设定一个关键词最多有4个字,因此关键词向量
Figure BDA0001306621030000092
的比特长度为26*4+4*4=120。
基于unigram的中文关键词向量生成算法2(简称算法2)与基于unigram的中文关键词向量生成算法1(简称算法1)不同之处在于:
(A31)首先将中文关键词转化成对应的拼音字符串;
(A32)将每一个关键词的拼音串按unigram方法分割,由于一般情况下最多只有四字成语调换前后字后还能是一个词,因此,在关键词的音节分割集后加入1、2、3、4来表示关键词的第1、2、3、4个字;
(A33)分别用1、2、3、4表示音节的四个音调,并在音调后加入1、2、3、4来表示关键词的第1、2、3、4个字。例如,例如,关键词“故事”的音节的分割集为{g1,u1,41,s2,h2,i2,42}。
(A34)将关键词音节分割集中的元素映射到关键词向量
Figure BDA0001306621030000093
中对应的位置上,若pi中包含
Figure BDA0001306621030000094
中第j位对应的元素,则
Figure BDA0001306621030000095
否则
Figure BDA0001306621030000096
例如,
Figure BDA0001306621030000097
中第8位对应的元素为“g”,若pi中包含元素“g”,则
Figure BDA0001306621030000098
否则
Figure BDA0001306621030000099
该处pi指关键词经过基于unigram的中文关键词向量生成算法2处理后,得到的音节分割集。例如,关键词“实验”经过此算法处理后得到的音节分割集pi为{s1,h1,i1,21,y2,a2,n2,42}。
进一步的,在本实施例中,当采用基于unigram的中文关键词向量生成算法2时,采用哈希族H={hσ:{0,1}120→{0,1}λ}。
进一步的,由上文分析可知,“故事”和“事故”两个意义完全不同的关键词的音节的分割集都为{g,u,41,s,h,i,42}。而两关键词经过算法2处理后的音节分割集完全不同,关键词“故事”的音节的分割集为{g1,u1,41,s2,h2,i2,42},“事故”的音节的分割集为{s1,h1,i1,41,g2,u2,42}。显然,这两个意义完全不同的关键词的向量
Figure BDA0001306621030000101
差异很大,经过LSH函数哈希过后的值相等的概率很小,那么当用户想查询包含关键词“事故”的相关文档时,不会返回有关“故事”的文档,使得方案的精确性更高。
进一步的,在本实施例中,将域加权评分的概念引入文档的评分当中,对处于文档不同域中的关键词赋予不同的权重,将词频权重、域加权评分和关键词向量间的欧式距离三者结合,提出了一种三因子排序方法,使得排序结果更加精确。
进一步的,域加权评分过程如下:
将域加权评分的概念引入文档的评分当中,可以参考Manning C D,Raghavan P,Schütze H.Introduction to information retrieval.Cambridge:CambridgeUniversity Press,2008.
给定一系列文档,假定每篇文档有
Figure BDA0001306621030000102
个域,其对应的权重系数分别是
Figure BDA0001306621030000103
它们满足:
Figure BDA0001306621030000104
令υi为查询和文档的第i个域的匹配得分(1和0分别表示是否匹配),于是,域加权评分方法可以定义为:
Figure BDA0001306621030000105
进一步的,词频权重过程如下:
采用tf的亚线性尺度变换方法计算词频权重wft,f
Figure BDA0001306621030000106
可以参考Jin L I,Chen X.Efficient multi-user keyword search overencrypted data in cloud computing.Computing&Informatics,2013,32(4):723-738。
进一步的,对步骤(3)以及步骤(8)进行细化说明。
BuildIndex(F,SK,l):
(B1)计算词频权重wft,f
(B2)计算域加权得分Zij:在本发明中,设定每篇文档fi有3个域,分别为标题、摘要和正文。其对应的权重系数分别为g1,g2,g3,满足公式(1)且g1>g2>g3。令υi为查询关键词在某篇文档的第i个域的匹配得分,υi=1表示匹配,υi=0表示未匹配。根据公式(2)计算关键词wj的域加权得分。例如,在文档fi中,关键词wj出现在标题和正文中,未在摘要中出现,则3个域的得分为υ1=1,υ2=0,υ3=1,那么,关键词wj在文档fi中的域加权得分为Zij=g1×υ1+g2×υ2+g3×υ3=g1+g3
(B3)构建索引:从LSH哈希族中选取l个独立的LSH函数。为每篇文档fi构建一个λ比特的布隆过滤器作为fi的索引Ii,具体操作如下:
(B31)采用基于拼音串的中文关键词向量生成算法或基于unigram的中文关键词向量生成算法1或基于unigram的中文关键词向量生成算法2为文档fi中的每个关键词wj生成对应的关键词向量
Figure BDA0001306621030000111
则文档fi的关键词向量集合为
Figure BDA0001306621030000112
(B32)利用hσ∈H将每一个关键词向量
Figure BDA0001306621030000113
进行哈希,将哈希值插入到布隆过滤器时,把所有的1替换成(Zij·wft,f)/l,其中1≤σ≤l。
进一步的,在本实施例中,当采用基于拼音串的中文关键词向量生成算法时,采用哈希族H={hσ:{0,1}63→{0,1}λ}。当采用基于unigram的中文关键词向量生成算法1时,采用哈希族H={hσ:{0,1}42→{0,1}λ}。当采用基于unigram的中文关键词向量生成算法2时,采用哈希族H={hσ:{0,1}120→{0,1}λ}。
进一步的,则对于
Figure BDA0001306621030000114
EncSK(TQ),k):云服务器根据加密的索引EncSK(Ii)和加密的陷门EncSK(TQ)计算文档的相似度分数,将所有分数排序后,返回前k篇文档给用户。此时文档的得分计算公式如下:
Figure BDA0001306621030000115
最后,授权用户使用数据拥有者分发的密钥sk,对返回的top-k篇密文进行解密,获得所需的明文文档。
进一步的,在本实施例中,由于云服务器不是完全可信的第三方,因此为了保障数据安全和个人隐私,用户会将部分敏感数据,例如私密邮件、个人电子医疗记录、公司财务报表等,加密后再存储到云服务器。当需要使用这些数据时,用户可以使用本发明提供的方法对云端数据进行中文多关键词模糊排序密文关键词检索。当授权用户由于各种原因无法输入准确的关键词时,也可以匹配到相关的文档,精确的返回给授权用户,满足用户的搜索需求。
以上是本发明的较佳实施例,凡依本发明技术方案所作的改变,所产生的功能作用未超出本发明技术方案的范围时,均属于本发明的保护范围。

Claims (7)

1.一种基于局部敏感哈希的中文多关键词模糊排序密文搜索方法,其特征在于,提供一数据拥有单元、一授权用户单元以及一云服务器,按照如下步骤实现:
步骤S1:初始化,所述数据拥有单元从明文文档集合F=(f1,f2,…,fm)中抽取关键词,得到关键词集合W=(w1,w2,…,wn);
步骤S2:生成密钥,所述数据拥有单元输入一预设安全参数λ,产生一个向量S∈{0,1}λ,以及两个λ×λ维的可逆矩阵{M1,M2},密钥SK由三元组{S,M1,M2}组成,所述数据拥有单元生成文档加密密钥sk;
步骤S3:建立索引,所述数据拥有单元从一LSH哈希族中选取l个独立的LSH函数,为每篇文档fi构建一个λ比特的布隆过滤器,作为文档fi的索引Ii
步骤S4:索引加密,采用安全KNN算法加密索引Ii,得到加密后的索引
Figure FDA0002557526440000011
EncSK(I)=(EncSK(I1),EncSK(I2),…EncSK(Im)),其中Ii',Ii”表示加密索引Ii随机分裂后的向量,I表示关键词索引集合I=(I1,…,Im);所述数据拥有单元将加密的索引集合EncSK(I)上传到所述云服务器;
步骤S5:文档加密,所述数据拥有单元通过对称加密算法对所述文档集合F=(f1,f2,…,fm)进行加密,得到密文集合C=(c1,c2,…,cm),并上传给所述云服务器;
步骤S6:生成陷门,当授权用户搜索时,通过所述授权用户单元输入η个搜索关键词Q=(q1,q2,…,qη),并为查询关键词集合Q构建一个λ比特的布隆过滤器作为陷门TQ
步骤S7:陷门加密,采用安全KNN算法对陷门TQ加密,得到加密后的陷门
Figure FDA0002557526440000012
其中TQ',TQ”表示陷门TQ随机分裂后的向量;所述授权用户单元将加密后的陷门EncSK(TQ)上传到所述云服务器;
步骤S8:所述云服务器根据加密的索引EncSK(Ii)和加密的陷门EncSK(TQ),计算文档的相似度分数,将所有分数排序后,返回前k篇文档给用户;
步骤S9:所述授权用户单元通过使用所述数据拥有单元分发的密钥sk,对返回的top-k篇密文进行解密,获得所需的明文文档集;
在所述步骤S3中,还包括如下步骤:
步骤S31:采用基于拼音串的中文关键词向量生成算法为文档fi中的每个关键词wj生成对应的关键词向量
Figure FDA0002557526440000021
则文档fi的关键词向量集合为
Figure FDA0002557526440000022
步骤S32:通过hσ∈H,对每一个关键词向量
Figure FDA0002557526440000023
进行哈希操作,并插入到布隆过滤器Ii中,其中,1≤σ≤l,H表示哈希函数集合,hσ表示一个具体的哈希函数;
所述基于拼音串的中文关键词向量生成算法按照如下步骤实现:
步骤SA11:将中文关键词转化成对应的拼音字符串;
步骤SA12:将每一个关键词按声母、韵母分割,分别用1、2、3、4表示音节的四个音调;
步骤SA13:在音调后加入1、2、3、4来表示关键词的第1、2、3、4个字,建立关键词的声母集、韵母集以及音调集;
步骤SA14:将关键词的声母集、韵母集和音调集中的元素映射到关键词向量
Figure FDA0002557526440000024
中对应的位置上;若所获取的音节分割集pi中包含
Figure FDA0002557526440000025
中第j位对应的元素,则
Figure FDA0002557526440000026
否则
Figure FDA0002557526440000027
2.根据权利要求1所述的基于局部敏感哈希的中文多关键词模糊排序密文搜索方法,其特征在于,在所述步骤S3中,还包括如下步骤:
步骤S31:采用词频tf的亚线性尺度变换方法,计算词频权重wft,f
Figure FDA0002557526440000028
其中,tft,f表示关键词t在文档f中的词频;
步骤S32:计算关键词wj在文档fi中的域加权得分Zij,记每篇文档fi有3个域,分别为标题、摘要和正文,其对应的权重系数分别为g1,g2,g3,满足下式且g1>g2>g3
Figure FDA0002557526440000029
其中,
Figure FDA00025575264400000210
令υi为查询关键词在文档的第i个域的匹配得分,υi=1表示匹配,υi=0表示未匹配,根据下计算关键词wj的域加权得分:
Figure FDA0002557526440000031
步骤S33:构建索引,从一LSH哈希族中选取l个独立的LSH函数,为每篇文档fi构建一个λ比特的布隆过滤器,作为fi的索引Ii
3.根据权利要求2所述的基于局部敏感哈希的中文多关键词模糊排序密文搜索方法,其特征在于,在所述步骤S33中,还包括如下步骤:
步骤S331:采用中文关键词向量生成算法为文档fi中的每个关键词wj生成对应的关键词向量
Figure FDA0002557526440000032
则文档fi的关键词向量集合为
Figure FDA0002557526440000033
步骤S332:利用hσ∈H将每一个关键词向量
Figure FDA0002557526440000034
进行哈希操作,将哈希值插入到布隆过滤器时,把所有的1替换成(Zij·wft,f)/l,其中,1≤σ≤l。
4.根据权利要求3所述的基于局部敏感哈希的中文多关键词模糊排序密文搜索方法,其特征在于,在所述步骤S8中,文档的相似度分数按照如下方式计算:
Figure FDA0002557526440000035
5.根据权利要求1所述的基于局部敏感哈希的中文多关键词模糊排序密文搜索方法,其特征在于,在所述步骤S6中,还包括如下步骤:
步骤S61:采用中文关键词向量生成算法为每个搜索关键词qj生成对应的查询词向量
Figure FDA0002557526440000036
qj∈Q,则查询Q的查询词向量集合为
Figure FDA0002557526440000037
步骤S62:通过hσ∈H,对每一个查询词向量
Figure FDA0002557526440000038
进行哈希操作,并插入到布隆过滤器TQ中,其中,1≤σ≤l。
6.根据权利要求1所述的基于局部敏感哈希的中文多关键词模糊排序密文搜索方法,其特征在于,所述基于拼音串的中文关键词向量生成算法可替换为第一基于unigram的中文关键词向量生成算法,按照如下步骤实现:
步骤SA21:将每一个关键词的拼音串按unigram方法分割,分别用1、2、3、4表示音节的四个音调;
步骤SA22:在音调后加入1、2、3、4来表示关键词的第1、2、3、4个字;
步骤SA23:将关键词音节分割集中的元素映射到关键词向量
Figure FDA0002557526440000041
中对应的位置上,若所获取的音节分割集pi中包含
Figure FDA0002557526440000042
中第j位对应的元素,则
Figure FDA0002557526440000043
否则
Figure FDA0002557526440000044
7.根据权利要求1所述的基于局部敏感哈希的中文多关键词模糊排序密文搜索方法,其特征在于,所述基于拼音串的中文关键词向量生成算法可替换为第二基于unigram的中文关键词向量生成算法,按照如下步骤实现:
步骤SA31:将中文关键词转化成对应的拼音字符串;
步骤SA32:将每一个关键词的拼音串按unigram方法分割,在关键词的音节分割集后加入1、2、3、4来表示关键词的第1、2、3、4个字;
步骤SA33:分别用1、2、3、4表示音节的四个音调,并在音调后加入1、2、3、4来表示关键词的第1、2、3、4个字;
步骤SA34:将关键词音节分割集中的元素映射到关键词向量
Figure FDA0002557526440000045
中对应的位置上,若所获取的音节分割集pi中包含
Figure FDA0002557526440000046
中第j位对应的元素,则
Figure FDA0002557526440000047
否则
Figure FDA0002557526440000048
CN201710387493.2A 2017-05-26 2017-05-26 基于局部敏感哈希的中文多关键词模糊排序密文搜索方法 Active CN107220343B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710387493.2A CN107220343B (zh) 2017-05-26 2017-05-26 基于局部敏感哈希的中文多关键词模糊排序密文搜索方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710387493.2A CN107220343B (zh) 2017-05-26 2017-05-26 基于局部敏感哈希的中文多关键词模糊排序密文搜索方法

Publications (2)

Publication Number Publication Date
CN107220343A CN107220343A (zh) 2017-09-29
CN107220343B true CN107220343B (zh) 2020-09-01

Family

ID=59946711

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710387493.2A Active CN107220343B (zh) 2017-05-26 2017-05-26 基于局部敏感哈希的中文多关键词模糊排序密文搜索方法

Country Status (1)

Country Link
CN (1) CN107220343B (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107734054A (zh) * 2017-11-06 2018-02-23 福州大学 安全云存储中的加密数据检索系统
CN108536669B (zh) * 2018-02-27 2019-10-22 北京达佳互联信息技术有限公司 文字信息处理方法、装置及终端
CN108512840A (zh) * 2018-03-21 2018-09-07 杭州弗兰科信息安全科技有限公司 一种基于泄序加密的密文检索方法
CN108632248B (zh) * 2018-03-22 2019-10-29 平安科技(深圳)有限公司 数据加密方法、数据查询方法、装置、设备及存储介质
CN109213731B (zh) * 2018-08-01 2021-05-14 安徽大学 云环境中基于迭代加密的多关键词密文检索方法
CN109088719B (zh) * 2018-08-14 2019-06-04 重庆第二师范学院 外包数据库多关键词可验证密文搜索方法、数据处理系统
CN109326284B (zh) * 2018-08-22 2022-06-10 深圳创维数字技术有限公司 语音搜索的方法、装置和存储介质
CN112868001B (zh) * 2018-10-04 2024-04-26 株式会社力森诺科 文档检索装置、文档检索程序、文档检索方法
CN109815730B (zh) * 2018-12-29 2020-11-20 中国科学院软件研究所 一种支持skyline查询的可搜索加密方法与系统
CN109766314A (zh) * 2019-01-07 2019-05-17 西安电子科技大学 基于概率陷门的密文数据多关键词搜索方法
CN109992995B (zh) * 2019-03-05 2021-05-14 华南理工大学 一种支持位置保护和查询隐私的可搜索加密方法
CN110032891B (zh) * 2019-04-16 2021-06-22 中国电力科学研究院有限公司 一种基于联盟区块链的智能电网分布式密文检索方法和系统模型
CN110245507B (zh) * 2019-06-17 2023-06-02 湘潭大学 一种基于中文填字游戏的信息加密方法
CN112989802B (zh) * 2021-01-28 2023-06-20 北京信息科技大学 一种弹幕关键词提取方法、装置、设备及介质
CN112966086A (zh) * 2021-03-12 2021-06-15 湖南大学 一种基于位置敏感哈希函数的可验证模糊搜索方法
CN113364884B (zh) * 2021-06-28 2023-06-30 福建师范大学 基于局部敏感布隆过滤器的工业物联网隐性异常检测方法
CN116595587B (zh) * 2023-07-14 2023-09-22 江西通友科技有限公司 一种基于保密业务的文档隐写方法及文档管理方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103970889A (zh) * 2014-05-22 2014-08-06 福州大学 一种中英文关键词模糊搜索的安全云盘
CN106330865A (zh) * 2016-08-12 2017-01-11 安徽大学 云环境下支持高效撤销的属性基关键字搜索方法
CN106407447A (zh) * 2016-09-30 2017-02-15 福州大学 一种加密云数据下基于Simhash的模糊排序搜索方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103970889A (zh) * 2014-05-22 2014-08-06 福州大学 一种中英文关键词模糊搜索的安全云盘
CN106330865A (zh) * 2016-08-12 2017-01-11 安徽大学 云环境下支持高效撤销的属性基关键字搜索方法
CN106407447A (zh) * 2016-09-30 2017-02-15 福州大学 一种加密云数据下基于Simhash的模糊排序搜索方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Privacy-Preserving Multi-Keyword Fuzzy Search over Encrypted Data in the Cloud;Bing Wang 等;《IEEE INFOCOM 2014》;20140502;第2112-2120页 *
Toward Efficient Multi-Keyword F uzzy Search Over Encrypted Outsourced Data With Accuracy Improvement;Zhangjie Fu;《IEEE transactions on information forensics and security》;20161231;第11卷(第12期);第2706-2716页 *
基于密文的中文关键词模糊搜索方案;陈何峰 等;《信息网络安全》;20140710(第7期);第69-74页 *

Also Published As

Publication number Publication date
CN107220343A (zh) 2017-09-29

Similar Documents

Publication Publication Date Title
CN107220343B (zh) 基于局部敏感哈希的中文多关键词模糊排序密文搜索方法
Fu et al. Enabling central keyword-based semantic extension search over encrypted outsourced data
Fu et al. Toward efficient multi-keyword fuzzy search over encrypted outsourced data with accuracy improvement
CN106815350B (zh) 一种云环境中动态的密文多关键词模糊搜索方法
Fu et al. Privacy-preserving smart semantic search based on conceptual graphs over encrypted outsourced data
CN108712366B (zh) 云环境中支持词形词义模糊检索的可搜索加密方法及系统
Zhang et al. SE-PPFM: A searchable encryption scheme supporting privacy-preserving fuzzy multikeyword in cloud systems
CN104765848B (zh) 混合云存储中支持结果高效排序的对称可搜索加密方法
CN108647529A (zh) 一种基于语义的多关键词排序搜索隐私保护系统及方法
CN107562831A (zh) 一种基于全文检索的精确查找方法
CN109992978B (zh) 信息的传输方法、装置及存储介质
CN109902143B (zh) 一种基于密文的多关键字扩展检索方法
Mohan et al. An efficient technique for cloud storage using secured de-duplication algorithm
CN109255244B (zh) 数据加密方法及其装置、数据加密检索系统
Rane et al. Multi-user multi-keyword privacy preserving ranked based search over encrypted cloud data
CN112257455A (zh) 一种语义理解的密文空间关键字检索方法及系统
CN115757676A (zh) 模糊可搜索加密方法、装置及电子设备
Yang et al. Chinese Multi-Keyword Fuzzy Rank Search over Encrypted Cloud Data Based on Locality-Sensitive Hashing.
CN112966086A (zh) 一种基于位置敏感哈希函数的可验证模糊搜索方法
Fu et al. Semantic and secure search over encrypted outsourcing cloud based on BERT
CN107329911B (zh) 一种基于cp-abe属性访问机制的缓存替换方法
Zhao et al. Privacy-preserving personalized search over encrypted cloud data supporting multi-keyword ranking
CN112328733B (zh) 基于MinHash函数的中文多关键字模糊排序可搜索加密方法
CN111966778B (zh) 一种基于关键词分组倒排索引的多关键词密文排序检索方法
CN114528370A (zh) 动态多关键字模糊排序搜索方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant