CN109063509A - 一种基于关键词语义排序的可搜索加密方法 - Google Patents
一种基于关键词语义排序的可搜索加密方法 Download PDFInfo
- Publication number
- CN109063509A CN109063509A CN201810890114.6A CN201810890114A CN109063509A CN 109063509 A CN109063509 A CN 109063509A CN 201810890114 A CN201810890114 A CN 201810890114A CN 109063509 A CN109063509 A CN 109063509A
- Authority
- CN
- China
- Prior art keywords
- document
- vector
- keyword
- cloud server
- owned cloud
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2107—File encryption
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种基于关键词语义排序的可搜索加密方法,包含以下步骤:数据拥有者生成加密密钥并发送给授权用户,然后从明文文档集中抽取关键词,根据关键词构建文档标记向量发送给私有云服务器,创建安全索引树发送给公有云服务器;授权用户将搜索关键词生成的查询标记向量发送给私有云服务器,将生成的查询陷门发送给公有云服务器;私有云服务器对查询标记向量与文档标记向量进行匹配,将可能满足用户查询请求的安全索引标识符集合发送给公有云服务器;公有云服务器计算文档相似度,对计算结果排序,并将相似度最高的密文文档集返回给授权用户。本发明通过实现多关键词语义排序方法,在保障数据隐私安全的同时,有效提高检索效率。
Description
技术领域
本发明涉及云安全领域,特别涉及一种基于关键词语义排序的可搜索加密方法。
背景技术
随着云技术的飞速发展,越来越多的用户将自己的数据外包给云服务器,但是云服务器在为用户提供高质量的数据存储服务的同时,也对用户的数据隐私产生了很大的威胁。为了保证用户的敏感数据不被泄露,数据拥有者在将数据上传到云服务器之前,大多采用密码技术,将数据加密存储,于是,一些关于加密数据的搜索技术应运而生。将数据加密后存储在云服务器中,无论是云服务器管理员还是外部攻击者都无法获取数据真实内容,保护了用户的隐私性。但这给密文数据的信息检索带来了极大挑战,特别是在非可信环境下,如何对密文提供高效安全的搜索方案引起了普遍关注。
可搜索加密技术最早被提出时,是使用对称密钥对文档中的每个单词采用双层结构加密,但是全文搜索的方式效率太低,后又被提出基于关键词的公钥可搜索加密***,使得任何拥有公钥的用户都可以向服务器存储数据,只有拥有私钥的用户才可以搜索关键词,但是这种基于双线性对的结构使得检索效率很低,不适合大规模数据的云计算环境。
为了更好满足搜索请求,关键词模糊搜索方案被提出,通过构造关键词模糊集,来容忍用户搜索时输入拼写错误和格式不一致的情况,但是缺点是无法搜索与关键词语义相关的文档。
现有的研究方法中虽然有些加密方法支持语义模糊搜索、多关键词搜索、并行搜索、相似性检索等检索方法,但是却不能将语义相似度参与到文档的评分中。
发明内容
本发明的目的在于提供一种基于关键词语义排序的可搜索加密方法,在带关键词语义模糊搜索的基础上,通过对关键词进行提取,构建索引向量,使用关键词语义作为文档特征,实现了多关键词排序密文检索,使得用户能够快速找到最相关数据,减轻了网络流量方面的开销,提高了搜索的精确性。此外,通过利用混合云模型,即***模型中包含一个公有云服务器和一个私有云服务器,最大限度地利用服务器资源,降低终端的计算开销,同时使模型具有较高的安全性。
为了达到以上目的,本发明提供了一种基于关键词语义排序的可搜索加密方法,该方法包含以下步骤:
S1、数据拥有者从明文文档集中抽取关键词,得到关键词集合,再生成一个加密明文文档集的密钥SK,并将生成的加密明文文档集的密钥SK发送给授权用户;
S2、数据拥有者根据关键词集合构建文档标记向量并创建安全索引树,然后将文档标记向量发送给私有云服务器,将安全索引树发送给公有云服务器;
S3、数据拥有者使用密钥SK对明文文档集进行加密,得到密文文档集,将得到的该密文文档集发送给公有云服务器;
S4、授权用户输入要搜索的关键词集合,根据要搜索的关键词集合得到查询标记向量和陷门,然后将该查询标记向量发送给私有云服务器,将该陷门发送给公有云服务器;
S5、私有云服务器对授权用户发送的查询标记向量与数据拥有者发送的文档标记向量进行匹配,得到可能包含关键词的候选索引标识符集合,然后将该候选索引标识符集合发送给公有云服务器;
S6、公有云服务器接收到私有云服务器发送的候选索引标识符集合,根据候选索引标识符集合和数据拥有者发送的安全索引树,将对应的加密后的文档索引向量和授权用户发送的陷门计算文档的相似度分数并排序,返回给授权用户前k篇密文文档,其中安全索引树的每一个叶子节点都对应一个文档索引向量,叶子结点中存放的文档索引向量每一维的值是该维向量对应关键词的TF值;其中,k为满足授权用户需求的密文文档数目,该TF值表示某一给定关键词在一个文档中出现的频率;
S7、授权用户使用密钥SK,对公有云服务器返回的前k篇密文文档进行解密,得到相应明文文档。
优选地,所述步骤S1中进一步包含以下步骤:
S1.1、数据拥有者从明文文档集F=(f1,f2,…,fm)中抽取关键词,得到关键词集合W=(w1,w2,…,wn),其中w1,w2,…,wn分别为抽取的各个关键词;
S1.2、数据拥有者随机产生一个n维向量S,该向量S每一维的值都是随机生成,取值只能为1或0;
S1.3、数据拥有者随机产生两个n×n维的可逆矩阵M1和M2,两个矩阵每一维的值也是随机生成的,n为关键词集合中的关键词个数;
S1.4、数据拥有者随机选择两个密钥sk1和sk2;其中加密明文文档集F的密钥SK是一个五元组,表示为{S,M1,M2,sk1,sk2}。
优选地,所述步骤S2中进一步包含以下步骤:
S2.1、构建文档标记向量B:对于明文文档集F中每个文档fi,首先生成一个n维文档向量D=(D1,D2,…,Di,…,Dn),其中i∈{1,2,…,n},该n为关键词集合中的关键词个数,文档向量D中的Di的值设置为对应关键词在当前明文文档集F中的TF值;若明文文档集F不包含该关键词,则将Di设为0;文档标记向量的每一维对应关键词集合中的一个关键词,将文档向量D均分为u块,如果某个块全为0,则标记值bbi=0,否则bbi=1,得到文档标记向量B=(bb1,bb2,…,bbi,…,bbu),其中i∈{1,2,…,u};
S2.2、构建安全索引树I:安全索引树I的每个叶子节点对应一个n维文档索引向量V=(V1,V2,…,Vi,…,Vn),对于明文文档集F中的每个文档fi生成一个叶子节点,由于明文文档集F中有m个文档,则安全索引树I中有m个叶子节点,叶子节点中存放每个文档对应的文档索引向量V,若该叶子节点对应的文档fi包含该关键词,则V中Vi的值为1,否则为0;对于安全索引树I中的每个中间节点v,均存放一个n维文档索引向量V=(Vv[1],Vv[2],…,Vv[i],…,Vv[n]),若中间节点v的左孩子或右孩子节点中存放的文档索引向量不等于0,Vv[i]=1,否则Vv[i]=0,i为关键词wi在关键词集合W中的顺序;若Vv[i]=1,则表示至少存在一条从中间节点v到某一包含关键词wi的叶子节点的路径;
S2.3、数据拥有者对安全索引树I叶子节点中的文档索引向量V进行加密:对于每个叶子节点中文档索引向量V=(V1,V2,…,Vi,…,Vn)中的Vi被***成两个随机变量{Vi',Vi”};该***方法为:使用数据拥有者随机产生的n维向量S作为***指示器,如果S的第j维值为0,则将Vi'[j]和Vi”[j]的值设置为与Vi[j]相同,如果S的第j维值为1,则随机设置Vi'[j]和Vi”[j]的值,保证两者之和等于Vi[j],然后用密钥SK对Vi'和Vi”加密,得到加密后的文档索引向量将加密后的文档索引向量V存放在文档索引向量V的叶子节点中,并删除相应的Vi;其中,由于V被***成两个随机变量,密钥SK对Vi'加密结果为Vi',对Vi”加密结果为Vi”,M1和M2为数据拥有者随机产生的两个n×n维的可逆矩阵;
S2.4、数据拥有者将安全索引树I发送给公有云服务器,将文档标记向量B发送给私有云服务器。
优选地,所述步骤S4中进一步包含以下步骤:
S4.1、授权用户输入要搜索的关键词集合W'=(w1',w'2,…,w'n),并为该搜索请求生成一个n维查询标记向量Q=(Q1,Q2,…,Qi,…,Qn),其中查询标记向量Q=(Q1,Q2,…,Qi,…,Qn)的每一维对应关键词集合中的一个关键词,即Qi对应W中的关键词Wi,其中i∈{1,2,…,n},如果关键词Wi在要搜索的关键词集合W’中,则将Qi设置为该维对应关键词在文档集中的IDF值,否则将Qi设为0;其中,该IDF值是通过计算包含某一给定词语的文档数目除以文档集中所有文档数目得到的;
S4.2、生成陷门:将查询标记向量Q***成两个随机向量{Q',Q”};如果S的第j维的值为0,则随机设置Q'j和Q'j'的值,保证两者之和等于Qj,如果S的第j维的值为1,则将Q'j和Q'j'的值设为与Qj相同;使用秘钥SK对查询标记向量Q进行加密,生成陷门由于查询标记向量Q被***成两个随机向量Q'和Q”,则加密查询标记向量Q的过程就是用秘钥SK分别对***后的两个随机变量进行加密,加密得到的结果分别为Q'和Q”,其中M1和M2为数据拥有者随机产生的两个n×n维的可逆矩阵;授权用户将陷门T发送给公有云服务器,将查询标记向量Q发送给私有云服务器。
优选地,所述步骤S5中进一步包含以下步骤:
S5.1、私有云服务器接收到授权用户发送的查询标记向量Q后,依次用查询标记向量Q中的每一位去匹配数据拥有者发送的文档标记向量B中对应的值是否为0,如果为0,则说明数据拥有者给出的关键词集合里没有要搜索的关键词,如果为1,则将对应的文档索引向量记录下来;
S5.2、私有云服务器通过记录对应的文档索引向量,得到可能包含要搜索的关键词的候选索引标识符集合SID={…,sidi,…,sidj,…,sidz,…},其中i,j,z∈{1,2,…,n},然后将候选索引标识符集合SID={…,sidi,…,sidj,…,sidz,…}发送给公有云服务器。
优选地,所述步骤S6中进一步包含:
公有云服务器根据私有云服务器发送的候选索引标识符集合SID={…,sidi,…,sidj,…,sidz,…},找到对应的数据拥有者发送的加密后的文档索引向量和授权用户发送的陷门T,计算文档的相似度分数SC,文档相似度分数SC计算公式如下:
其中,i∈(1,2,…,n);
公有云服务器将计算得到的文档相似度分数进行排序,返回给授权用户前k篇密文文档,其中k的值为满足授权用户需求的密文文档数目。
与现有技术相比,本发明的有益效果为:本发明对授权用户要搜索的关键词集合进行提取,构造加密的可搜索索引树,并将语义相似度引入到文档的评分中,因而当授权用户希望搜索到其要搜索的关键词语义相关的文档但又无法搜到准确的关键词时,本发明可以为其匹配到语义相关度最高的文档,并返回给授权用户,实现了关键词语义排序搜索,有效地提高了授权用户的检索效率,由于本发明通过文档标记向量与授权用户查询标记向量匹配,过滤了大量无关文档。这种基于关键词语义排序的可搜索加密方法在保证安全的前提下,减少了创建索引的时间,有效地提高了用户的检索效率,也可以更加准确地返回给授权用户最满足的语义排序搜索结果。同时本发明利用混合云模型,因为私有云具有较高的安全性,因而该方法可以最大限度的利用服务器资源,在实现高效率检索的同时,可以保证数据的安全性,不会泄露任何关键词相关的信息。
附图说明
图1本发明一种基于关键词语义排序的可搜索加密方法的流程图。
具体实施方式
以下结合附图,通过详细说明一个较佳的具体实施例,对本发明做进一步阐述。
如图1所示,本发明的基于关键词语义排序的可搜索加密方法通过构造可搜索索引树,在关键词的语义模糊排序方面明显提高了性能效果,授权用户的检索效率得到很大提升,该检测方法包含以下步骤:
步骤S1、***初始化:数据拥有者从明文文档集F=(f1,f2,…,fm)中抽取关键词,得到关键词集合W=(w1,w2,…,wn),再生成一个加密明文文档集的密钥SK,并将生成的加密明文文档集的密钥SK发送给授权用户,其中,w1,w2,…,wn分别为抽取的各个关键词;
步骤S2、数据拥有者根据关键词集合W=(w1,w2,…,wn)构建文档标记向量B并创建安全索引树I,然后将文档标记向量B发送给私有云服务器,将安全索引树I发送给公有云服务器;
步骤S3、数据拥有者使用密钥SK对明文文档集F=(f1,f2,…,fm)进行加密,得到密文文档集C=(c1,c2,…,cm),将得到的该密文文档集发送给公有云服务器;
步骤S4、授权用户输入要搜索的关键词集合W'=(w1',w'2,…,w'n),根据要搜索的关键词集合得到查询标记向量Q和陷门T,然后将查询标记向量Q发送给私有云服务器,将陷门T发送给公有云服务器,其中,w1',w'2,…,w'n分别为要搜索的各个关键词;
步骤S5、私有云服务器对授权用户发送的查询标记向量Q与数据拥有者发送的文档标记向量B进行匹配,得到可能包含关键词的候选索引标识符集合SID,然后将候选索引标识符集合SID发送给公有云服务器;
步骤S6、公有云服务器接收到私有云服务器发送的候选索引标识符集合SID={…,sidi,…,sidj,…,sidz,…},根据候选索引标识符集合SID和数据拥有者发送的安全索引树I,将对应的加密后的文档索引向量和授权用户发送的陷门T计算文档的相似度分数并排序,返回给授权用户前k篇密文文档,其中安全索引树I的每一个叶子节点都对应一个文档索引向量叶子结点中存放的文档索引向量每一维的值是该维向量对应关键词的TF值,k的值为满足授权用户需求的密文文档数目;
其中该TF值表示某一给定关键词在一个文档中出现的频率。
步骤S7、授权用户使用密钥SK,对公有云服务器返回的前k篇密文文档进行解密,得到相应明文文档。
示例地,所述步骤S1中,数据拥有者生成加密明文文档集密钥SK的具体生成过程为:
步骤S1.1、数据拥有者从明文文档集F=(f1,f2,…,fm)中抽取关键词,得到关键词集合W=(w1,w2,…,wn);
步骤S1.2、数据拥有者随机产生一个n维向量S,该向量每一维的值都是随机生成的,取值只能为1或0;
步骤S1.3、数据拥有者随机产生两个n×n维的可逆矩阵M1和M2,两个矩阵每一维的值也是随机生成的;
步骤S1.4、数据拥有者随机选择两个密钥sk1和sk2;
因此,加密明文文档集的密钥SK是一个五元组,表示为{S,M1,M2,sk1,sk2},上述n均为关键词集合中的关键词个数。
示例地,所述步骤S2中,具体包含以下过程:
步骤S2.1、构建文档标记向量B:对于明文文档集中每个文档fi,首先生成一个n维文档向量D=(D1,D2,…,Di,…,Dn),其中i∈{1,2,…,n},这里的n为关键词集合中的关键词个数,文档向量D中的Di的值设置为对应关键词在当前明文文档集F中的TF值,若明文文档集F不包含该关键词,则将Di设为0。文档标记向量的每一维对应关键词集合中的一个关键词,将文档向量D均分为u块,如果某个块全为0,则标记值bbi=0,否则bbi=1,得到文档标记向量B=(bb1,bb2,…,bbi,…,bbu),其中i∈{1,2,…,u};
步骤S2.2、构建安全索引树I:安全索引树I的每个叶子节点对应一个n维文档索引向量V=(V1,V2,…,Vi,…,Vn),对于明文文档集F中的每个文档fi生成一个叶子节点,因为明文文档集F中有m个文档,所以安全索引树I中有m个叶子节点。叶子节点中存放每个文档对应的文档索引向量V,如果该叶子节点对应的文档fi包含该关键词,则V中Vi的值为1,否则为0。对于安全索引树中的每个中间节点v,均存放一个n维文档索引向量V=(Vv[1],Vv[2],…,Vv[i],…,Vv[n]),如果中间节点v的左孩子或右孩子节点中存放的文档索引向量不等于0,Vv[i]=1,否则Vv[i]=0,i为关键词wi在关键词集合W中的顺序。如果Vv[i]=1,则表示至少存在一条从中间节点v到某一包含关键词wi的叶子节点的路径;
步骤S2.3、数据拥有者对安全索引树I叶子节点中的文档索引向量V进行加密:对于每个叶子节点中文档索引向量V=(V1,V2,…,Vi,…,Vn)中的Vi被***成两个随机变量{Vi',Vi”}。***程序具体如下:使用数据拥有者随机产生的n维向量S作为***指示器,如果S的第j维值为0,则将Vi'[j]和Vi”[j]的值设置为与Vi[j]相同,如果S的第j维值为1,则随机设置Vi'[j]和Vi”[j]的值,但要保证两者之和等于Vi[j]。然后用密钥SK对V进行加密,由于V被***成两个随机变量,其中密钥SK对Vi'加密结果为Vi',对Vi”加密结果为Vi”,从而得到加密后的文档索引向量其中M1和M2为数据拥有者随机产生的两个n×n维的可逆矩阵,将加密后的文档索引向量存放在文档索引向量V的叶子节点中,并删除相应的Vi。
步骤S2.4、数据拥有者将安全索引树I发送给公有云服务器,将文档标记向量B发送给私有云服务器。
示例地,所述步骤S4中,具体包含以下过程:
步骤S4.1、授权用户输入要搜索的关键词集合W'=(w1',w'2,…,w'n),并为该搜索请求生成一个n维查询标记向量Q=(Q1,Q2,…,Qi,…,Qn),其中查询标记向量Q=(Q1,Q2,…,Qi,…,Qn)的每一维对应关键词集合中的一个关键词,即Qi对应W中的关键词Wi,其中i∈{1,2,…,n},如果关键词Wi在要搜索的关键词集合W’中,则将Qi设置为该维对应关键词在文档集中的IDF值,否则将Qi设为0,其中该IDF值是通过计算包含某一给定词语的文档数目除以文档集中所有文档数目得到的;
步骤S4.2、生成陷门:将查询标记向量Q***成两个随机向量{Q',Q”}。如果S的第j维的值为0,则随机设置Q'j和Q'j'的值,保证两者之和等于Qj,如果S的第j维的值为1,则将Q'j和Q'j'的值设为与Qj相同。使用秘钥SK对查询标记向量Q进行加密,由于查询标记向量Q被***成两个随机向量Q'和Q”,所以加密查询标记向量Q的过程就是用秘钥SK分别对***后的两个随机变量进行加密,加密得到的结果分别为和即生成陷门其中M1和M2为数据拥有者随机产生的两个n×n维的可逆矩阵。授权用户将陷门T发送给公有云服务器,将查询标记向量Q发送给私有云服务器。
示例地,所述步骤S5中,具体包含以下过程:
步骤S5.1、私有云服务器接收到授权用户发送的查询标记向量Q后,依次用查询标记向量Q中的每一位去匹配数据拥有者发送的文档标记向量B中对应的值是否为0,如果为0,则说明数据拥有者给出的关键词集合里没有要搜索的关键词,如果为1,则将对应的文档索引向量记录下来;
步骤S5.2、私有云服务器通过记录对应的文档索引向量,得到可能包含要搜索的关键词的候选索引标识符集合SID={…,sidi,…,sidj,…,sidz,…},其中i,j,z∈{1,2,…,n},然后将候选索引标识符集合SID={…,sidi,…,sidj,…,sidz,…}发送给公有云服务器。
示例地,所述步骤S6中,具体包含以下过程:
公有云服务器根据私有云服务器发送的候选索引标识符集合SID={…,sidi,…,sidj,…,sidz,…},找到对应的数据拥有者发送的加密后的文档索引向量V和授权用户发送的陷门T,计算文档的相似度分数SC,文档相似度分数SC计算公式如下:
其中,i∈(1,2,…,n)。
公有云服务器将计算得到的文档相似度分数进行排序,返回给授权用户前k篇密文文档,其中k的值为满足授权用户需求的密文文档数目。
本发明中,为检测基于关键词语义排序的可搜索加密模型的性能,将本发明提出的方法和传统的几种支持多关键字检索的公钥加密方法做了比较。经过实验结果得到的本发明提出的公钥加密方法和传统公钥加密方法比较结果如下表1所示:
表1多种加密方法特性对比表
从表1可以看出,如果对授权用户搜索结果精确性有较高的要求,额外的存储开销是难以避免的。在授权用户希望得到更准确的检索结果的情况下,本发明提出的基于关键词语义排序的可搜索加密方法,与传统的支持多关键字搜索的方法相比,不仅可以实现多关键词语义排序搜索的功能,还通过构建可搜索索引树,进一步提高了授权用户的搜索效率,极大地减少了索引的计算和存储开销,保证了授权用户搜索结果的准确性。
尽管本发明的内容已经通过上述优选实施例作了详细介绍,但应当认识到上述的描述不应被认为是对本发明的限制。在本领域技术人员阅读了上述内容后,对于本发明的多种修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。
Claims (6)
1.一种基于关键词语义排序的可搜索加密方法,其特征在于,该方法包含以下步骤:
S1、数据拥有者从明文文档集中抽取关键词,得到关键词集合,再生成一个加密明文文档集的密钥SK,并将生成的加密明文文档集的密钥SK发送给授权用户;
S2、数据拥有者根据关键词集合构建文档标记向量并创建安全索引树,然后将文档标记向量发送给私有云服务器,将安全索引树发送给公有云服务器;
S3、数据拥有者使用密钥SK对明文文档集进行加密,得到密文文档集,将得到的该密文文档集发送给公有云服务器;
S4、授权用户输入要搜索的关键词集合,根据要搜索的关键词集合得到查询标记向量和陷门,然后将该查询标记向量发送给私有云服务器,将该陷门发送给公有云服务器;
S5、私有云服务器对授权用户发送的查询标记向量与数据拥有者发送的文档标记向量进行匹配,得到可能包含关键词的候选索引标识符集合,然后将该候选索引标识符集合发送给公有云服务器;
S6、公有云服务器接收到私有云服务器发送的候选索引标识符集合,根据候选索引标识符集合和数据拥有者发送的安全索引树,将对应的加密后的文档索引向量和授权用户发送的陷门计算文档的相似度分数并排序,返回给授权用户前k篇密文文档,其中安全索引树的每一个叶子节点都对应一个文档索引向量,叶子结点中存放的文档索引向量每一维的值是该维向量对应关键词的TF值;其中,k为满足授权用户需求的密文文档数目,该TF值表示某一给定关键词在一个文档中出现的频率;
S7、授权用户使用密钥SK,对公有云服务器返回的前k篇密文文档进行解密,得到相应明文文档。
2.如权利要求1所述的一种基于关键词语义排序的可搜索加密方法,其特征在于,
所述步骤S1中进一步包含以下步骤:
S1.1、数据拥有者从明文文档集F=(f1,f2,…,fm)中抽取关键词,得到关键词集合W=(w1,w2,…,wn),其中w1,w2,…,wn分别为抽取的各个关键词;
S1.2、数据拥有者随机产生一个n维向量S,该向量S每一维的值都是随机生成,取值只能为1或0;
S1.3、数据拥有者随机产生两个n×n维的可逆矩阵M1和M2,两个矩阵每一维的值也是随机生成的,n为关键词集合中的关键词个数;
S1.4、数据拥有者随机选择两个密钥sk1和sk2;其中加密明文文档集F的密钥SK是一个五元组,表示为{S,M1,M2,sk1,sk2}。
3.如权利要求2所述的一种基于关键词语义排序的可搜索加密方法,其特征在于,
所述步骤S2中进一步包含以下步骤:
S2.1、构建文档标记向量B:对于明文文档集F中每个文档fi,首先生成一个n维文档向量D=(D1,D2,…,Di,…,Dn),其中i∈{1,2,…,n},该n为关键词集合中的关键词个数,文档向量D中的Di的值设置为对应关键词在当前明文文档集F中的TF值;若明文文档集F不包含该关键词,则将Di设为0;文档标记向量的每一维对应关键词集合中的一个关键词,将文档向量D均分为u块,如果某个块全为0,则标记值bbi=0,否则bbi=1,得到文档标记向量B=(bb1,bb2,…,bbi,…,bbu),其中i∈{1,2,…,u};
S2.2、构建安全索引树I:安全索引树I的每个叶子节点对应一个n维文档索引向量V=(V1,V2,…,Vi,…,Vn),对于明文文档集F中的每个文档fi生成一个叶子节点,由于明文文档集F中有m个文档,则安全索引树I中有m个叶子节点,叶子节点中存放每个文档对应的文档索引向量V,若该叶子节点对应的文档fi包含该关键词,则V中Vi的值为1,否则为0;对于安全索引树I中的每个中间节点v,均存放一个n维文档索引向量V=(Vv[1],Vv[2],…,Vv[i],…,Vv[n]),若中间节点v的左孩子或右孩子节点中存放的文档索引向量不等于0,Vv[i]=1,否则Vv[i]=0,i为关键词wi在关键词集合W中的顺序;若Vv[i]=1,则表示至少存在一条从中间节点v到某一包含关键词wi的叶子节点的路径;
S2.3、数据拥有者对安全索引树I叶子节点中的文档索引向量V进行加密:对于每个叶子节点中文档索引向量V=(V1,V2,…,Vi,…,Vn)中的Vi被***成两个随机变量{Vi',Vi”};该***方法为:使用数据拥有者随机产生的n维向量S作为***指示器,如果S的第j维值为0,则将Vi'[j]和Vi”[j]的值设置为与Vi[j]相同,如果S的第j维值为1,则随机设置Vi'[j]和Vi”[j]的值,保证两者之和等于Vi[j],然后用密钥SK对Vi'和Vi”加密,得到加密后的文档索引向量将加密后的文档索引向量存放在文档索引向量V的叶子节点中,并删除相应的Vi;其中,由于V被***成两个随机变量,密钥SK对Vi'加密结果为对Vi”加密结果为M1和M2为数据拥有者随机产生的两个n×n维的可逆矩阵;
S2.4、数据拥有者将安全索引树I发送给公有云服务器,将文档标记向量B发送给私有云服务器。
4.如权利要求3所述的一种基于关键词语义排序的可搜索加密方法,其特征在于,
所述步骤S4中进一步包含以下步骤:
S4.1、授权用户输入要搜索的关键词集合W'=(w′1,w'2,…,w'n),并为该搜索请求生成一个n维查询标记向量Q=(Q1,Q2,…,Qi,…,Qn),其中查询标记向量Q=(Q1,Q2,…,Qi,…,Qn)的每一维对应关键词集合中的一个关键词,即Qi对应W中的关键词Wi,其中i∈{1,2,…,n},如果关键词Wi在要搜索的关键词集合W’中,则将Qi设置为该维对应关键词在文档集中的IDF值,否则将Qi设为0;其中,该IDF值是通过计算包含某一给定词语的文档数目除以文档集中所有文档数目得到的;
S4.2、生成陷门:将查询标记向量Q***成两个随机向量{Q',Q”};如果S的第j维的值为0,则随机设置Q'j和Q″j的值,保证两者之和等于Qj,如果S的第j维的值为1,则将Q'j和Q″j的值设为与Qj相同;使用秘钥SK对查询标记向量Q进行加密,生成陷门由于查询标记向量Q被***成两个随机向量Q'和Q”,则加密查询标记向量Q的过程就是用秘钥SK分别对***后的两个随机变量进行加密,加密得到的结果分别为和其中M1和M2为数据拥有者随机产生的两个n×n维的可逆矩阵;授权用户将陷门T发送给公有云服务器,将查询标记向量Q发送给私有云服务器。
5.如权利要求4所述的一种基于关键词语义排序的可搜索加密方法,其特征在于,
所述步骤S5中进一步包含以下步骤:
S5.1、私有云服务器接收到授权用户发送的查询标记向量Q后,依次用查询标记向量Q中的每一位去匹配数据拥有者发送的文档标记向量B中对应的值是否为0,如果为0,则说明数据拥有者给出的关键词集合里没有要搜索的关键词,如果为1,则将对应的文档索引向量记录下来;
S5.2、私有云服务器通过记录对应的文档索引向量,得到可能包含要搜索的关键词的候选索引标识符集合SID={…,sidi,…,sidj,…,sidz,…},其中i,j,z∈{1,2,…,n},然后将候选索引标识符集合SID={…,sidi,…,sidj,…,sidz,…}发送给公有云服务器。
6.如权利要求5所述的一种基于关键词语义排序的可搜索加密方法,其特征在于,
所述步骤S6中进一步包含:
公有云服务器根据私有云服务器发送的候选索引标识符集合SID={…,sidi,…,sidj,…,sidz,…},找到对应的数据拥有者发送的加密后的文档索引向量和授权用户发送的陷门T,计算文档的相似度分数SC,文档相似度分数SC计算公式如下:
其中,i∈(1,2,…,n);
公有云服务器将计算得到的文档相似度分数进行排序,返回给授权用户前k篇密文文档,其中k的值为满足授权用户需求的密文文档数目。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810890114.6A CN109063509A (zh) | 2018-08-07 | 2018-08-07 | 一种基于关键词语义排序的可搜索加密方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810890114.6A CN109063509A (zh) | 2018-08-07 | 2018-08-07 | 一种基于关键词语义排序的可搜索加密方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109063509A true CN109063509A (zh) | 2018-12-21 |
Family
ID=64832170
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810890114.6A Pending CN109063509A (zh) | 2018-08-07 | 2018-08-07 | 一种基于关键词语义排序的可搜索加密方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109063509A (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110457574A (zh) * | 2019-07-05 | 2019-11-15 | 深圳壹账通智能科技有限公司 | 基于数据比较的信息推荐方法、装置及存储介质 |
CN110851481A (zh) * | 2019-11-08 | 2020-02-28 | 青岛大学 | 一种可搜索加密方法、装置、设备及可读存储介质 |
CN111431705A (zh) * | 2020-03-06 | 2020-07-17 | 电子科技大学 | 一种适用于可搜索加密的密码逆向防火墙方法 |
CN111756777A (zh) * | 2020-08-28 | 2020-10-09 | 腾讯科技(深圳)有限公司 | 数据传输方法、数据处理设备、装置及计算机存储介质 |
CN111859421A (zh) * | 2020-07-08 | 2020-10-30 | 中国软件与技术服务股份有限公司 | 一种基于词向量的多关键字密文存储、检索方法及*** |
CN112257455A (zh) * | 2020-10-21 | 2021-01-22 | 西安电子科技大学 | 一种语义理解的密文空间关键字检索方法及*** |
CN112272188A (zh) * | 2020-11-02 | 2021-01-26 | 重庆邮电大学 | 一种电商平台数据隐私保护的可搜索加密方法 |
CN112328626A (zh) * | 2020-10-28 | 2021-02-05 | 浙江工商大学 | 面向云环境的支持模糊关键词排序的可搜索加密方法 |
CN113094573A (zh) * | 2020-01-09 | 2021-07-09 | 中移(上海)信息通信科技有限公司 | 多关键词排序可搜索加密方法、装置、设备及存储介质 |
CN113779597A (zh) * | 2021-08-19 | 2021-12-10 | 深圳技术大学 | 加密文档的存储和相似检索方法、装置、设备及介质 |
CN113821704A (zh) * | 2020-06-18 | 2021-12-21 | 华为技术有限公司 | 构建索引的方法、装置、电子设备和存储介质 |
CN114398650A (zh) * | 2021-12-16 | 2022-04-26 | 西安电子科技大学 | 一种支持多关键字子集检索的可搜索加密***及方法 |
CN114417109A (zh) * | 2021-12-29 | 2022-04-29 | 电子科技大学广东电子信息工程研究院 | 一种基于安全网关的密文搜索方法、装置及其*** |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106951411A (zh) * | 2017-03-24 | 2017-07-14 | 福州大学 | 一种云计算中保护数据隐私的快速多关键词语义排序搜索方法 |
CN106997384A (zh) * | 2017-03-24 | 2017-08-01 | 福州大学 | 一种排序可验证的语义模糊可搜索加密方法 |
CN108171071A (zh) * | 2017-12-01 | 2018-06-15 | 南京邮电大学 | 一种面向云计算的多关键字可排序密文检索方法 |
-
2018
- 2018-08-07 CN CN201810890114.6A patent/CN109063509A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106951411A (zh) * | 2017-03-24 | 2017-07-14 | 福州大学 | 一种云计算中保护数据隐私的快速多关键词语义排序搜索方法 |
CN106997384A (zh) * | 2017-03-24 | 2017-08-01 | 福州大学 | 一种排序可验证的语义模糊可搜索加密方法 |
CN108171071A (zh) * | 2017-12-01 | 2018-06-15 | 南京邮电大学 | 一种面向云计算的多关键字可排序密文检索方法 |
Non-Patent Citations (1)
Title |
---|
杨旸等: "云计算中保护数据隐私的快速多关键词语义排序搜索方案", 《计算机学报》 * |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110457574A (zh) * | 2019-07-05 | 2019-11-15 | 深圳壹账通智能科技有限公司 | 基于数据比较的信息推荐方法、装置及存储介质 |
CN110851481A (zh) * | 2019-11-08 | 2020-02-28 | 青岛大学 | 一种可搜索加密方法、装置、设备及可读存储介质 |
CN110851481B (zh) * | 2019-11-08 | 2022-06-28 | 青岛大学 | 一种可搜索加密方法、装置、设备及可读存储介质 |
CN113094573A (zh) * | 2020-01-09 | 2021-07-09 | 中移(上海)信息通信科技有限公司 | 多关键词排序可搜索加密方法、装置、设备及存储介质 |
CN111431705A (zh) * | 2020-03-06 | 2020-07-17 | 电子科技大学 | 一种适用于可搜索加密的密码逆向防火墙方法 |
CN111431705B (zh) * | 2020-03-06 | 2021-08-06 | 电子科技大学 | 一种适用于可搜索加密的密码逆向防火墙方法 |
CN113821704B (zh) * | 2020-06-18 | 2024-01-16 | 华为云计算技术有限公司 | 构建索引的方法、装置、电子设备和存储介质 |
CN113821704A (zh) * | 2020-06-18 | 2021-12-21 | 华为技术有限公司 | 构建索引的方法、装置、电子设备和存储介质 |
CN111859421A (zh) * | 2020-07-08 | 2020-10-30 | 中国软件与技术服务股份有限公司 | 一种基于词向量的多关键字密文存储、检索方法及*** |
CN111756777B (zh) * | 2020-08-28 | 2020-11-17 | 腾讯科技(深圳)有限公司 | 数据传输方法、数据处理设备、装置及计算机存储介质 |
CN111756777A (zh) * | 2020-08-28 | 2020-10-09 | 腾讯科技(深圳)有限公司 | 数据传输方法、数据处理设备、装置及计算机存储介质 |
CN112257455A (zh) * | 2020-10-21 | 2021-01-22 | 西安电子科技大学 | 一种语义理解的密文空间关键字检索方法及*** |
CN112257455B (zh) * | 2020-10-21 | 2024-04-30 | 西安电子科技大学 | 一种语义理解的密文空间关键字检索方法及*** |
CN112328626A (zh) * | 2020-10-28 | 2021-02-05 | 浙江工商大学 | 面向云环境的支持模糊关键词排序的可搜索加密方法 |
CN112328626B (zh) * | 2020-10-28 | 2022-09-30 | 浙江工商大学 | 面向云环境的支持模糊关键词排序的可搜索加密方法 |
CN112272188A (zh) * | 2020-11-02 | 2021-01-26 | 重庆邮电大学 | 一种电商平台数据隐私保护的可搜索加密方法 |
CN112272188B (zh) * | 2020-11-02 | 2022-03-11 | 重庆邮电大学 | 一种电商平台数据隐私保护的可搜索加密方法 |
CN113779597A (zh) * | 2021-08-19 | 2021-12-10 | 深圳技术大学 | 加密文档的存储和相似检索方法、装置、设备及介质 |
CN113779597B (zh) * | 2021-08-19 | 2023-08-18 | 深圳技术大学 | 加密文档的存储和相似检索方法、装置、设备及介质 |
CN114398650A (zh) * | 2021-12-16 | 2022-04-26 | 西安电子科技大学 | 一种支持多关键字子集检索的可搜索加密***及方法 |
CN114417109A (zh) * | 2021-12-29 | 2022-04-29 | 电子科技大学广东电子信息工程研究院 | 一种基于安全网关的密文搜索方法、装置及其*** |
CN114417109B (zh) * | 2021-12-29 | 2024-05-17 | 电子科技大学广东电子信息工程研究院 | 一种基于安全网关的密文搜索方法、装置及其*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109063509A (zh) | 一种基于关键词语义排序的可搜索加密方法 | |
Chen et al. | An efficient privacy-preserving ranked keyword search method | |
CN106951411B (zh) | 一种云计算中保护数据隐私的快速多关键词语义排序搜索方法 | |
Fu et al. | Enabling central keyword-based semantic extension search over encrypted outsourced data | |
Cao et al. | Privacy-preserving multi-keyword ranked search over encrypted cloud data | |
Wang et al. | Achieving usable and privacy-assured similarity search over outsourced cloud data | |
CN106997384B (zh) | 一种排序可验证的语义模糊可搜索加密方法 | |
Sun et al. | Privacy-preserving multi-keyword text search in the cloud supporting similarity-based ranking | |
Murugesan et al. | Providing privacy through plausibly deniable search | |
Guo et al. | Secure multi-keyword ranked search over encrypted cloud data for multiple data owners | |
Wang et al. | Privacy-preserving ranked multi-keyword fuzzy search on cloud encrypted data supporting range query | |
Li et al. | Enabling efficient fuzzy keyword search over encrypted data in cloud computing | |
CN109739945A (zh) | 一种基于混合索引的多关键词密文排序检索方法 | |
Yu et al. | Privacy-preserving multikeyword similarity search over outsourced cloud data | |
Boucenna et al. | Secure inverted index based search over encrypted cloud data with user access rights management | |
Yang et al. | Cloud information retrieval: Model description and scheme design | |
Raghavendra et al. | IGSK: index generation on split keyword for search over cloud data | |
CN108549701A (zh) | 云环境加密外包数据语义扩展搜索方法及*** | |
CN115495792B (zh) | 一种具有隐私保护的模糊关键词可搜索加密方法和*** | |
Raghavendra et al. | Split keyword fuzzy and synonym search over encrypted cloud data | |
Wang et al. | Fault-tolerant Verifiable Keyword Symmetric Searchable Encryption in Hybrid Cloud. | |
CN111966778B (zh) | 一种基于关键词分组倒排索引的多关键词密文排序检索方法 | |
Manasrah et al. | A privacy-preserving multi-keyword search approach in cloud computing | |
Nepolean et al. | Privacy preserving ranked keyword search over encrypted cloud data | |
Li et al. | Diverse multi-keyword ranked search over encrypted cloud data supporting range query |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181221 |