当前位置: 首页 > 专利查询>湖南大学专利>正文

云环境下基于密文的多关键词模糊查询方法技术

技术编号:19263550 阅读:33 留言:0更新日期:2018-10-27 02:25
本发明专利技术提供了一种云环境下基于密文的多关键词模糊查询方法。本方法通过构造向量和矩阵的方法,引入通配符来解决多关键词模糊查询问题,淘汰预设字典的方式,提供了高效的更新删除文件索引;同时,本方法支持多关键词的一轮运算,减少运算次数;再者,本方法有着较高的查准率和查全率,提供十分灵活的富语义AND/OR查询,即本方法既支持关键词之间的逻辑并查询,又支持关键词之间的逻辑或查询。另外,采用kNN算法加密处理方案中的矩阵,使本发明专利技术方案具有很好的安全性。

Multi keyword fuzzy query method based on ciphertext in cloud environment

The invention provides a multi keyword fuzzy query method based on ciphertext in cloud environment. This method solves the multi-keyword fuzzy query problem by constructing vectors and matrices, introducing wildcards, eliminating the preset dictionary, providing an efficient update and deletion of file index; at the same time, this method supports multi-keyword round operation, reducing the number of operations; moreover, this method has a high precision rate. And recall rate, provide a very flexible rich semantic AND / OR query, that is, this method supports the logic between keywords and query, but also support the logic between keywords or query. In addition, the matrix in the processing scheme is encrypted by the kNN algorithm, so that the scheme of the invention has good security.

【技术实现步骤摘要】
云环境下基于密文的多关键词模糊查询方法
本专利技术涉及数据处理
,尤其涉及一种云环境下基于密文的多关键词模糊查询方法。
技术介绍
云计算的出现和发展,实现了人类将计算作为一种基础设施的梦想。云计算是一种基于互联网的计算方式,处于共享状态的软件硬件资源和信息可以按照需求提供给网络中的计算机和其他设备使用。然而,云计算在有效地解决用户资源受限状况的同时,也带来了新的、不容忽视的安全问题。为了保护存储在云服务器上的敏感隐私数据不被泄露,用户必须将数据进行加密处理后存储在云平台。现有的基于关键词的可搜索密文模糊查询技术允许用户输入中含有微小的错误和形式不一致的问题,极大地提高了系统的可用性和用户搜索体验。然而,现有的方案中存在如下方面的缺陷:(1)更新删除不灵活:现有方案需要一个预定义字典,字典包含每个关键词可能的错误形式,这就导致查询和更新的效率比较低;(2)现有方案运算效率低:因为现有方案中,支持多关键词查询的方法需要多轮运算才能得到结果,因此运算效率低;(3)现有方案不支持灵活的AND/OR查询;(4)现有方案无法抵抗选择明文攻击,安全性较低。
技术实现思路
为了解决现有技术中存在的上述问题,本专利技术提供了一种云环境下基于密文的多关键词模糊查询方法。本方法引入通配符来解决多关键词模糊查询问题,淘汰预设字典的方式,提供了高效的更新删除文件索引;同时,本方法支持多关键词的一轮运算,减少运算次数;再者,本方法有着较高的查准率和查全率,提供十分灵活的AND/OR查询,即本方法既支持关键词之间的逻辑并查询,又支持关键词之间的逻辑或查询。本专利技术提供了一种云环境下基于密文的多关键词模糊查询方法,包括:步骤S1:本地服务器根据预设数据加密算法加密明文数据集得到密文数据集;步骤S2:本地服务器将与所述明文数据集对应的初始索引关键词构造成索引向量,并将所述索引向量构造成索引矩阵,采用预设的矩阵加密算法对索引矩阵进行加密,得到加密索引矩阵,将所述密文数据集和加密索引矩阵发送给云端服务器;步骤S3:用户将查询请求中的查询关键词构造成请求向量,并将所述请求向量构造成请求矩阵,采用预设的矩阵加密算法对请求矩阵进行加密,得到加密请求矩阵,并将所述加密请求矩阵发送给云端服务器;步骤S4:云端服务器根据加密请求矩阵,计算所述加密索引矩阵与加密请求矩阵的乘积,根据乘积结果确定目标数据密文,并将所述目标数据密文发回用户;步骤S5:用户通过步骤S1的数据加密算法解密所述目标数据密文,得到目标数据明文;其中,每一个所述初始索引关键词对应一个索引向量;所述索引矩阵的每一行元素对应一个索引向量;所述查询请求中的查询关键词包含通配符;所述查询请求中的查询关键词通过逻辑运算符连接;所述逻辑运算符包括“AND”或者“OR”。本专利技术提供的方法,通过将初始索引关键词构造成索引向量进而构造索引矩阵再进而加密得到加密索引矩阵,将查询关键词构造为请求向量进而构造查询矩阵再进而加密得到加密请求矩阵,通过计算加密索引矩阵与加密请求矩阵的乘积来确定目标数据密文。采用本专利技术提供的方法构造向量和矩阵后,只有当矩阵中某一个索引向量与请求向量乘积为整数时,该索引向量对应的数据密文才是目标数据密文。同时,本专利技术方案中的查询关键词包含通配符,在构造请求向量时,考虑通配符的影响,对请求向量进行相应处理,由此可以实现模糊查询功能。通配符可以代表任何不确定的英文字母,例如当查询关键词为“**sure”时,“unsure”和“insure”均为正确的查询结果。因为本专利技术方案中的查询请求中的查询关键词之间存在逻辑运算关系(即逻辑和或者逻辑或),所以,本专利技术还可以实现逻辑查询。在本专利技术方案中,关键词包含两种类型,一种是精确关键词,另一种是模糊关键词。初始索引关键词只能为精确关键词,而查询关键词可以是精确关键词,也可以是包含通配符的模糊关键词。在现有技术中,假设有查询关键字W1,W2,W3,需要先查出含有W1的文件集D(W1),再从文件集D(W1)中查出含有W2的文件集D(W1∩W2),最后从文件集D(W1∩W2)中查出含有W3的文件集D(W1∩W2∩W3),这样就是3轮运算得到同时含有W1,W2和W3的文件集,相当于执行了3次查询算法。而本专利技术方案支持逻辑运算关系,可以实现逻辑查询,只需执行一次查询算法得到目标文件D(W1∩W2∩W3)。进一步的,所述预设的矩阵加密算法为kNN算法;所述预设的矩阵加密算法的密钥为Sk,密钥Sk至少包括:素数序列表P、补全字母表S和可逆加密矩阵M;所述素数序列表P={P1,...,Pi,...PL},其中,每一个元素Pi均为一个随机产生的素数;所述补全字母表S={S1,...,Si,...SL},其中,每一个元素Si均为从26个英文字母顺序词典字母表中随机选取的英文字母,所述可逆加密矩阵M={M1,M2,s},其中,M1和M2均为大小为d×d的可逆矩阵,M1和M2相应的逆矩阵分别表示为M1-1和M2-1,s是一个列数为d的一维矩阵,矩阵元素的值为0或1,通过伪随机数函数生成;其中,d≥26,L大于或等于长度最长的所述初始索引关键词所包含的字母个数,且d和L均为正整数。现有文献资料《SecureknnComputationonEncryptedDatabases》(W.K.Wong,D.W.-l.Cheung,B.Kao,andN.Mamoulis,Proc.OfSIGMOD,2009)公开了将kNN算法用于加密处理的方法,本专利技术则利用kNN算法来加密本方案中涉及的向量,从而加强方案中涉及向量的加密安全性。其中,素数序列表由随机生成的素数按从小到大的顺序排列组成。L的取值由初始索引中长度最长的关键词决定,L的取值应该大于或者等于该关键词所包含的字母总数。出于方案正确性考虑,d的取值应该大于或等于26;出于安全性考虑,d的取值最好是大于或等于128。顺序词典字母表中的英文字母不区分大小写。补全字母表中的字母为随机顺序,进一步增加本专利技术方案的安全性。进一步的,根据如下步骤构造每一个初始索引关键词Wi,k对应的d维索引向量Pi,k:步骤S201:将初始索引关键词Wi,k的字母个数补全到统一长度L;判断初始索引关键词Wi,k包含的字母个数||Wi,k||:当||Wi,k||<L时,从所述补全字母表S中顺序选取L-||Wi,k||个字母补全初始索引关键词Wi,k,使得||Wi,k||=L;当||Wi,k||≥L时,直接执行步骤S202;步骤S202:初始化d维索引向量Pi,k,将索引向量Pi,k的所有元素均设为1,使Pi,k[l]=1,l∈[1,d],l为整数;其中,Pi,k[l]表示索引向量Pi,k第l位元素的初始值;步骤S203:选取初始索引关键词Wi,k包含的字母在索引向量Pi,k中的填充位置;依次将索引向量Pi,k的第posl位确定为初始索引关键词Wi,k包含的第l位的字母的填充位置;其中,posl=Fkf(Wi,k[l]),Fkf()为伪随机数函数,Wi,k[l]表示初始索引关键词Wi,k包含的第l位的字母,l∈[1,L];步骤S204:更新索引向量Pi,k的第posl位上的值Pi,k[posl];其中,Pi,k[posl]=Pi,k[po本文档来自技高网...

【技术保护点】
1.一种云环境下基于密文的多关键词模糊查询方法,其特征在于,包括:步骤S1:本地服务器根据预设数据加密算法加密明文数据集得到密文数据集;步骤S2:本地服务器将与所述明文数据集对应的初始索引关键词构造成索引向量,并将所述索引向量构造成索引矩阵,采用预设的矩阵加密算法对索引矩阵进行加密,得到加密索引矩阵,将所述密文数据集和加密索引矩阵发送给云端服务器;步骤S3:用户将查询请求中的查询关键词构造成请求向量,并将所述请求向量构造成请求矩阵,采用预设的矩阵加密算法对请求矩阵进行加密,得到加密请求矩阵,并将所述加密请求矩阵发送给云端服务器;步骤S4:云端服务器根据加密请求矩阵,计算所述加密索引矩阵与加密请求矩阵的乘积,根据乘积结果确定目标数据密文,并将所述目标数据密文发回用户;步骤S5:用户通过步骤S1的数据加密算法解密所述目标数据密文,得到目标数据明文;其中,每一个所述初始索引关键词对应一个索引向量;所述索引矩阵的每一行元素对应一个索引向量;所述查询请求中的查询关键词包含通配符;所述查询请求中的查询关键词通过逻辑运算符连接;所述逻辑运算符包括“AND”或者“OR”。

【技术特征摘要】
1.一种云环境下基于密文的多关键词模糊查询方法,其特征在于,包括:步骤S1:本地服务器根据预设数据加密算法加密明文数据集得到密文数据集;步骤S2:本地服务器将与所述明文数据集对应的初始索引关键词构造成索引向量,并将所述索引向量构造成索引矩阵,采用预设的矩阵加密算法对索引矩阵进行加密,得到加密索引矩阵,将所述密文数据集和加密索引矩阵发送给云端服务器;步骤S3:用户将查询请求中的查询关键词构造成请求向量,并将所述请求向量构造成请求矩阵,采用预设的矩阵加密算法对请求矩阵进行加密,得到加密请求矩阵,并将所述加密请求矩阵发送给云端服务器;步骤S4:云端服务器根据加密请求矩阵,计算所述加密索引矩阵与加密请求矩阵的乘积,根据乘积结果确定目标数据密文,并将所述目标数据密文发回用户;步骤S5:用户通过步骤S1的数据加密算法解密所述目标数据密文,得到目标数据明文;其中,每一个所述初始索引关键词对应一个索引向量;所述索引矩阵的每一行元素对应一个索引向量;所述查询请求中的查询关键词包含通配符;所述查询请求中的查询关键词通过逻辑运算符连接;所述逻辑运算符包括“AND”或者“OR”。2.根据权利要求1所述的方法,其特征在于,所述预设的矩阵加密算法为kNN算法;所述预设的矩阵加密算法的密钥为Sk,密钥Sk至少包括:素数序列表P、补全字母表S和可逆加密矩阵M;所述素数序列表P={P1,...,Pi,...PL},其中,每一个元素Pi均为一个随机产生的素数;所述补全字母表S={S1,...,Si,...SL},其中,每一个元素Si均为从26个英文字母顺序词典字母表中随机选取的英文字母,所述可逆加密矩阵M={M1,M2,s},其中,M1和M2均为大小为d×d的可逆矩阵,M1和M2相应的逆矩阵分别表示为M1-1和M2-1,s是一个列数为d的一维矩阵,矩阵元素的值为0或1,通过伪随机数函数生成;其中,d≥26,L大于或等于长度最长的所述初始索引关键词所包含的字母个数,且d和L均为正整数。3.根据权利要求2所述的方法,其特征在于,根据如下步骤构造每一个初始索引关键词Wi,k对应的d维索引向量Pi,k:步骤S201:将初始索引关键词Wi,k的字母个数补全到统一长度L;判断初始索引关键词Wi,k包含的字母个数||Wi,k||:当||Wi,k||<L时,从所述补全字母表S中顺序选取L-||Wi,k||个字母补全初始索引关键词Wi,k,使得||Wi,k||=L;当||Wi,k||≥L时,直接执行步骤S202;步骤S202:初始化d维索引向量Pi,k,将索引向量Pi,k的所有元素均设为1,使Pi,k[l]=1,l∈[1,d],l为整数;其中,Pi,k[l]表示索引向量Pi,k第l位元素的初始值;步骤S203:选取初始索引关键词Wi,k包含的字母在索引向量Pi,k中的填充位置;依次将索引向量Pi,k的第posl位确定为初始索引关键词Wi,k包含的第l位的字母的填充位置;其中,posl=Fkf(Wi,k[l]),Fkf()为伪随机数函数,Wi,k[l]表示初始索引关键词Wi,k包含的第l位的字母,l∈[1,L];步骤S204:更新索引向量Pi,k的第posl位上的值Pi,k[posl];其中,Pi,k[posl]=Pi,k[posl]/Pl;Pi,k[posl]的初始值为Pi,k[l],Pl为所述素数序列表P中第l位的素数,l∈[1,L];步骤S205:随机选取一个自然数α,将索引向量Pi,k中仍为初始值1的位置的值替换为α,得到最终的索引向量Pi,k。4.根据权利要求3所述的方法,其特征在于,根据如下步骤将由索引向量Pi,k构成的索引向量集Pi构造为索引矩阵Ai,并通过kNN算法对索引矩阵Ai进行加密处理:步骤S211:依次将索引向量集Pi={Pi,1,...,Pi,k,...,Pi,mi}中的Pi,k放置在索引矩阵Ai的第k行中,得到一个大小为mi×d的索引矩阵Ai,k∈[1,mi];步骤S212:根据索引矩阵Ai生成两个大小为mi×d的矩阵Ai'和Ai",生成规则如下:对于索引矩阵Ai的每一行Ai[k][*]:若s[j]=0,则Ai'[k][j]=Ai"[k][j]=Ai[k][j];若s[j]=1,则Ai'[k][j]+Ai"[k][j]=Ai[k][j];其中,s[j]表示所述密钥Sk中的一维矩阵s的第j位,Ai[k][j]表示索引矩阵Ai中第k行第j列的元素,Ai'[k][j...

【专利技术属性】
技术研发人员:刘琴裴书玉
申请(专利权)人:湖南大学
类型:发明
国别省市:湖南,43

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1