一种密文数据多关键词的模糊搜索方法技术

技术编号:19480024 阅读:22 留言:0更新日期:2018-11-17 10:32
本发明专利技术提出一种密文数据多关键词的模糊搜索方法,用于解决现有技术中存在的应用范围较窄的技术问题。实现步骤为:数据拥有者根据安全要求生成公钥和主密钥,并根据主密钥生成数据使用者的密钥;提取明文文件集合的关键词;构建文件索引函数集合f(x);对明文文件集合f进行加密,得到密文文件集合F;向云服务器发送密文文件集合F和索引函数集合f(x);数据拥有者获取哈希值集合,并发送给数据使用者;数据使用者向云服务器发送关键词哈希值集合;云服务器对密文文件集合F进行搜索,得到包含多关键词的密文文件集合F′;数据使用者解密密文文件集合F′,得到对应的明文文件集合f′,本发明专利技术的应用范围宽,本地存储开销小。

【技术实现步骤摘要】
一种密文数据多关键词的模糊搜索方法
本专利技术属于信息安全领域,涉及一种模糊搜索方法,具体涉及一种密文数据多关键词的模糊搜索方法,可应用于云计算、大数据环境等重要数据密态形式的关键词模糊搜索。
技术介绍
随着互联网的发展,云计算的诞生,数据库服务的广泛使用,越来越多的用户或组织选择将数据外包给云服务器,以节省本地数据管理开销和系统维护开支。但是,由于云服务器容易遭受内部或外部攻击,云端数据存在隐私泄露问题,所以将数据外包给云服务器之前要对其进行加密;使用传统加密方法可以保护数据隐私信息,但却使得用户或组织利用和计算云端数据变得非常困难。因此,迫切需要提出一种既不会泄露云端数据隐私信息,同时又可以方便用户或组织利用云端数据的方案,可搜索加密技术应运而生。可搜索加密技术是一种密码学原语,它可以在保护数据隐私的情况下完成密文数据的搜索。但是,传统的可搜索加密方案支持精确的关键词搜索,当搜索的关键词出现偏差时,这些方案将失去作用,所以模糊关键词搜索很大程度上增强了方案的可用性。现在的模糊搜索方案分为单关键词模糊搜索方案和多关键词模糊搜索方案,单关键词模糊搜索方案仅能完成用户输入单关键词的查询请求,当用户输入多个关键词时,方案搜索的精确度将会大幅度降低,并且搜索结果会耗费巨大的存储开销,导致单关键词模糊搜索方案实用性较低。而现存的多关键词模糊搜索方案搜索原理是:当用户想要搜索包含多个关键词的明文文件时,用户计算多个关键词的陷门集合,云服务器根据用户提交的陷门集合在云端搜索密文文件,倘若密文文件与陷门集合匹配,则表明搜索成功,返回该密文文件,用户通过密钥解密密文文件,得到明文文件;这些方案可以完成用户输入多关键词的查询请求,但是实现步骤复杂,搜索效率低下,或者仅能完成简单的模糊多关键词查询请求,应用范围较窄,且需要存储关键词陷门集合,导致开销较大。近些年来,多个学者针对上面存在的问题给出了一些多关键词模糊搜索方案,提高了多关键词搜索的效率。XiehuaLi、YapingCui等人在论文“EfficientMulti-KeywordFuzzySearchonEncryptedDatainCloudStorage”(InternationalConferenceonInformationScienceandControlEngineering.2017.Pages288-294)中,公开了一种云存储中密文数据高效的多关键词模糊搜索方法:数据拥有者根据安全需求产生公钥和主密钥,根据主密钥为每个数据使用者生成各自的密钥;数据拥有者提取每个文件的关键词并生成关键词陷门集合,然后,根据哈希函数计算关键词哈希值,利用关键词哈希值构建文件索引函数,并加密明文文件生成密文文件;数据拥有者将密文文件和文件索引函数发送给云服务器;数据使用者根据哈希函数计算出对应的关键词哈希值集合,并将关键词哈希值集合发送给云服务器;云服务器根据接收到的关键词哈希值集合构建索引曲线,并与接收到的文件索引函数进行匹配,若匹配成功,则返回该文件索引对应的密文文件,并将其发送给数据使用者,数据使用者使用密钥进行解密,得到包含关键词集合的明文文件。该方案给出了一种关键词哈希值映射方法,将相似关键词转换为相似哈希值,引入索引函数,通过索引函数与哈希值进行匹配,从而可以实现高效的多关键词模糊搜索,但是不足之处在于:(1)云服务器在搜索过程中仅能处理关键词缺失的模糊搜索情况,应用范围较窄;(2)数据拥有者在提取关键词时需要存储关键词的陷门集合,导致本地存储开销增大。
技术实现思路
本专利技术的目的是针对上述现有技术的缺陷,提出了一种密文数据多关键词的模糊搜索方法,用于解决现有多关键词模糊搜索方法中存在的应用范围较窄的技术问题。为实现上述目的,本专利技术采取的技术方案包括如下步骤:(1)数据拥有者生成密钥:数据拥有者根据安全要求随机生成公钥PK和主密钥MK,并根据MK为T个数据使用者生成密钥Kt,其中t=1,2,…,T;(2)数据拥有者提取明文文件集合的关键词:数据拥有者从明文文件集合f中提取每个文件的多个关键词,f={f1,f2,…,fi,…,fn},得到每个明文文件fi的关键词集合Wi:其中,i=1,2,…,n,n表示明文文件个数,mj表示每个明文文件中关键词个数;(3)数据拥有者构建文件索引函数集合:(3.1)数据拥有者构建哈希函数H:H=y[1]||y[2]||…||y[s],其中y表示任意单词,s是单词y的长度,y[1],y[2],…,y[s]是单词y的每个字母对应的ASCII值,符号||表示并接;(3.2)数据拥有者根据哈希函数H,计算Wi对应的关键词哈希值集合H(wi):并通过H(wi)构建文件索引函数集合f(x):f(x)={f1(x),f1(x),…,fi(x),…,fn(x)},其中fi(x)是文件fi的索引函数;(4)数据拥有者对明文文件集合f进行加密:数据拥有者对明文文件集合f中的每个明文文件进行加密,得到f对应的密文文件集合F:F={F1,F2,…,Fn};(5)数据拥有者向云服务器发送密文文件集合F和索引函数集合f(x):数据拥有者将密文文件集合F和索引函数集合f(x)通过安全信道发送给云服务器;(6)数据拥有者获取哈希值集合H(w′):数据拥有者根据哈希函数H,计算数据使用者通过安全信道发送的关键词集合W′对应的关键词哈希值集合H(w′):{H(w1′),H(w2′),…,H(wl′)},并通过安全信道将其发送给数据使用者,其中,W′={w1′,w2′,…,wl′},l表示集合W′中的关键词的个数;(7)数据使用者向云服务器发送关键词哈希值集合H(w′):数据使用者将接收到的关键词哈希值集合H(w′)通过安全信道发送给云服务器;(8)云服务器对密文文件集合F进行搜索:(8.1)云服务器在云端创建密文文件集合F′;(8.2)云服务器在F′中添加密文文件:(8.2.1)云服务器将关键词哈希值集合H(w′)与每个索引函数fi(x)的系数进行比较,并判断H(w′)是否为索引函数fi(x)系数集合的子集,若是,则H(w′)与fi(x)匹配成功,执行步骤(8.2.3),否则,执行步骤(8.2.2);(8.2.2)云服务器判断H(w′)中的每一个关键词哈希值与索引函数fi(x)的每个系数的差中0的个数是否大于或等于索引函数fi(x)当前系数的长度的一半,若是,则H(w′)与fi(x)匹配成功,执行步骤(8.2.3),否则,执行步骤(8.2.1),直至索引函数集合f(x)中所有的索引函数都完成匹配;(8.2.3)云服务器将索引函数fi(x)对应的密文文件Fi添加至F′中;(8.3)云服务器将包含密文文件Fi的密文文件集合F′通过安全信道发送给数据使用者,其中(9)数据使用者解密密文文件集合F′:数据使用者通过密钥Kt解密密文文件集合F′,得到包含搜索多关键词的明文文件集合f′。本专利技术与现有技术相比,具有以下优点:本专利技术由于云服务器在对密文文件进行搜索时,是通过将关键词哈希值集合与每个索引函数的系数进行比较实现的,即判断关键词哈希值集合是否为索引函数系数集合的子集,再判断关键词哈希值与索引函数系数的差中0的个数是否大于或等于索引函数当前系数的长度的一半,既可本文档来自技高网
...

【技术保护点】
1.一种密文数据多关键词的模糊搜索方法,其特征在于包括如下步骤:(1)数据拥有者生成密钥:数据拥有者根据安全要求随机生成公钥PK和主密钥MK,并根据MK为T个数据使用者生成密钥Kt,其中t=1,2,…,T;(2)数据拥有者提取明文文件集合的关键词:数据拥有者从明文文件集合f中提取每个文件的多个关键词,f={f1,f2,…,fi,…,fn},得到每个明文文件fi的关键词集合W

【技术特征摘要】
1.一种密文数据多关键词的模糊搜索方法,其特征在于包括如下步骤:(1)数据拥有者生成密钥:数据拥有者根据安全要求随机生成公钥PK和主密钥MK,并根据MK为T个数据使用者生成密钥Kt,其中t=1,2,…,T;(2)数据拥有者提取明文文件集合的关键词:数据拥有者从明文文件集合f中提取每个文件的多个关键词,f={f1,f2,…,fi,…,fn},得到每个明文文件fi的关键词集合Wi:其中,i=1,2,…,n,n表示明文文件个数,mj表示每个明文文件中关键词个数;(3)数据拥有者构建文件索引函数集合:(3.1)数据拥有者构建哈希函数H:H=y[1]||y[2]||…||y[s],其中y表示任意单词,s是单词y的长度,y[1],y[2],…,y[s]是单词y的每个字母对应的ASCII值,符号||表示并接;(3.2)数据拥有者根据哈希函数H,计算Wi对应的关键词哈希值集合H(wi):并通过H(wi)构建文件索引函数集合f(x):f(x)={f1(x),f1(x),…,fi(x),…,fn(x)},其中fi(x)是文件fi的索引函数;(4)数据拥有者对明文文件集合f进行加密:数据拥有者对明文文件集合f中的每个明文文件进行加密,得到f对应的密文文件集合F:F={F1,F2,…,Fn};(5)数据拥有者向云服务器发送密文文件集合F和索引函数集合f(x):数据拥有者将密文文件集合F和索引函数集合f(x)通过安全信道发送给云服务器;(6)数据拥有者获取哈希值集合H(w′):数据拥有者根据哈希函数H,计算数据使用者通过安全信道发送的关键词集合W′对应的关键词哈希值集合H(w′):{H(w1′),H(w2′),…,H(wl′)},并通过安全信道将其发送给数据使用者,其中,W′={w1′,w2′,…,wl′},l表示集合W′中的关键词的个数;(7)数据使用者向云服务器发送关键词哈希值集合H(w′):数据使用者将接收到的关键词哈希值集合H(w′)通过安全信道发送给云服务器;(8)云服务器对密文文件集合F进行搜索...

【专利技术属性】
技术研发人员:宋威王保仓周立国柴炎廷杨爱洁马晨阳
申请(专利权)人:西安电子科技大学
类型:发明
国别省市:陕西,61

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

1