一种不可信云计算环境中支持动态验证的模糊查询加密方法与流程

文档序号:12465284阅读:519来源:国知局
一种不可信云计算环境中支持动态验证的模糊查询加密方法与流程

本发明涉及计算机科学与技术领域,特别涉及一种不可信云计算环境中支持动态验证的模糊查询加密方法。



背景技术:

随着云计算的快速发展,可查询加密方案逐渐获得人们的关注和认可。大量的用户通过云盘上传个人文件,然而人们在享用云计算服务带来便利的同时,也面临着敏感信息泄露的风险。在云计算环境中,用户失去了对数据的直接控制权。为了保护用户的隐私信息不被云破解,很多用户会选择将个人的数据加密之后上传。用户需要在加密的数据集上进行查询,而明文的信息查询方法无法适用于加密数据,因此可查询加密方法成为了研究的热点问题。

可查询加密方法可按照不同的功能和设定条件进行划分。模糊查询指的是在用户输入的查询请求存在拼写错误时云服务器仍可以返回正确的查询结果。另外,不可信云服务器可能会由于病毒或意外而出现故障,甚至会为了节省存储空间和计算资源而恶意的删除或修改用户的加密数据,或者直接篡改用户的查询结果。而支持验证的可查询加密方法可以验证文档和查询结果的完整性,保护用户的查询结果不被篡改。在实际生活中,用户将大量的数据外包到云存储后,用户可能需要动态频繁地更新数据,如插入、删除、修改数据,此时数据更新成为了一个重要的问题。现有的可查询加密方法都只是单独针对模糊查询、可验证查询或动态更新等问题,而没有方法能够同时支持加密数据的模糊查询、验证结果和动态更新。因此需要针对不可信云计算环境,提供一种支持动态验证的模糊查询加密方法。



技术实现要素:

本发明提供了一种不可信云计算环境中支持动态验证的模糊查询加密方法,该方法支持用户对加密数据进行模糊查询、验证结果以及动态更新,可以保护用户的数据隐私,并方便用户进行查询、验证和更新。

一种不可信云计算环境中支持动态验证的模糊查询加密方法,包括以下几个步骤:

步骤1:数据拥有者利用密钥生成算法,获得私钥集合k和公钥集合pk=(N,g),然后使用对称加密算法和私钥集合k将明文文档集合D加密,生成加密文档集合

步骤2:数据拥有者依据明文文档中的每个关键词和编辑距离构建关键词模糊集合和对应的查询陷门Ti,利用查询陷门构建模糊关键词的安全查询索引Index,并对加密文档和对应的安全查询索引采用RSA累加器计算验证累加值;同时,将密文集合安全查询索引 Index和公钥集合pk上传至云服务器;

通过模糊关键词集生成算法,输入关键词w和编辑距离ed,输出模糊关键词集Sw

步骤3:数据使用者发出查询请求关键词wa,并依据查询请求关键词生成查询请求关键词模糊集合数据拥有者接收到查询请求关键词模糊集合后,计算该查询请求关键词的查询陷门,并将查询陷门返回给数据使用者;

对于查询请求wa,首先数据使用者通过FuzzySet算法计算出wa对应的模糊关键词集并将发送到数据拥有者。接收后,数据拥有者通过Trapdoor算法计算查询陷门 并将Ta返回给数据使用者。

云服务器从数据使用者处接收到查询陷门Ta后,服务器将与查询索引 进行匹配,查找到获得索引然后服务器再利用查询辅助信息计算解密得到Ia。令Ia=(e1,...,en),最终服务器计算出查询结果

步骤4:数据使用者将从数据拥有者发送来的查询陷门Ta发送至云服务器,从云服务器中存储的安全查询索引集合中寻找与查询陷门Ta匹配的安全查询索引,并从匹配的安全查询索引中提取对应的加密索引再利用加密索引获取对应的加密文档;

步骤5:对步骤4获得的加密文档和对应的安全查询索引计算验证累加值,得到文档验证证据和索引验证证据并将获得的加密文档的查询结果和验证证据发送至数据使用者;

对于所有不在查询结果中的文档即ej=0,先利用无碰撞哈希函数H:{0,1}*→{0,1}σ生成文档哈希值,再通过质数生成函数P(·)生成一个质数。再利用密钥生成算法生成的公钥集合(N,g)计算文档的验证证据:

对于不包含查询关键词wa的索引即i≠a。先利用无碰撞哈希函数H:{0,1}*→{0,1}σ生成索引哈希值,再通过质数生成函数P(·)生成一个质数。再利用密钥生成算法生成的公钥集合(N,g)计算索引的验证证据:

步骤6:对步骤5获得的查询结果和验证证据进行验证,若验证通过,则允许数据使用者下载步骤4获得的加密文档,并从云服务器中获取私钥集合k对加密文档进行解密。

进一步地,所述安全查询索引的构建步骤如下:

步骤1):采用Trapdoor算法对明文文档中每个关键词分别构造一个查询陷门Ti

其中,表示关键词模糊集合的加密集合,表示利用伪随机函数fk和密钥k0加密关键词模糊集合中的关键词wi′,表示取 前128位;是由属于文档中的关键词wi采用FuzzySet算法生成的集合;

表示查询辅助信息,表示利用伪随机函数fk和密钥k1加密关键词wi, 表示取前n位;

步骤2):将查询辅助信息和第i行索引Ii进行异或运算,获得加密后的第i行索引所有的关键词wi∈W,获得加密索引为

Ii代表I的第i行,I为m×n的二元矩阵,I={Ii,j},关键词wi包含在文档dj中,则Ii,j=1;否则Ii,j=0;

步骤3):使用随机排列函数γ作用于{1,...,m},m为关键词数量,获得安全查询索引集合

进一步地,所述对加密文档和对应的安全查询索引采用RSA累加器计算验证累加值的具体过程如下:

文档验证累加值

索引验证累加值代表加密后的第i行索引的第j位;

其中,P(·)是一个质数生成函数,H:{0,1}*→{0,1}σ是一个无碰撞哈希函数,m为关键词数量,n为明文文档数量,(N,g)为利用密钥生成算法生成的公钥集合。

所述对步骤5获得的查询结果和验证证据进行验证的具体过程如下:

步骤A:对于查询结果中包含的所有文档利用无碰撞哈希函数H生成文档 哈希值,再通过质数生成函数P(·)生成一个质数xj

步骤B:从数据拥有者处获得验证累加值从云服务器处获得验证证据判断是否相等,若相等,则查询结果正确且完整,验证通过,若不相等,则验证失败,退出整个查询加密过程;

步骤C:根据查询结果重建查询关键词wa对应的索引行Ia,通过Ia和查询辅助信息 重建出加密后的索引行

步骤D:对于所有的1≤j≤n,利用H和P(·)生成一个质数zj

步骤E:判断与是否相等,若相等,则索引未被篡改,验证通过,若不相等,则退出整个查询加密过程。

进一步地,在动态云存储环境中,数据拥有者按照以下步骤进行任意的增加、删除或修改文档,实现动态数据更新:

1)增加一个文档dn+1

首先对矩阵索引新增一列,如果文档dn+1中包含关键词文档wi,令Ii,n+1=1,否则令Ii,n+1=0;

其次,数据拥有者首先使用加密算法将文档dn+1加密成

对于1≤i≤m,计算再计算出bn+1=(bγ(1),...,bγ(m)),其中,γ(1)...γ(m)为随机排列函数γ作用于{1,...,m}得到,数据拥有者将发送到云服务器;

对于1≤i≤m,云服务器将安全加密索引更新为其中“||”代表连接词;

最后,计算出将更新为更新为云服务器更新密文集合、安全查询索引和验证累加值;

2)删除文档dj

云服务器收到数据拥有者发出的文档dj删除请求后,计算计算累加值 云服务器删除密文将累加值更新为

3)修改:数据拥有者将文档dj修改为d′j,且dj和d′j拥有相同的关键词;

云服务器收到数据拥有者发出的修改请求后,计算和其中是d′j的密文;计算最后将累加值更新为

有益效果

本发明提供了一种不可信云计算环境中支持动态验证的模糊查询加密方法,在对称密码学的研究基础之上,提出了模糊查询的加密方法,实现了云计算环境中用户查询隐私的保护,提高了云计算环境中加密数据的查询体验。该方法通过编辑距离来定义关键词之间的相似度,利用通配符构造模糊关键词集,基于倒排索引构造安全索引,使得用户能够进行模糊关键字的查询。利用可验证技术,构造可验证集合验证服务器是否篡改查询结果,验证云服务器返回的查询结果是否正确和完整。针对云计算环境中用户需要大量更新数据的问题,实现了数据的高效更新。该方法支持用户不可信云环境中同时进行模糊查询、动态更新加密数据、验证查询结果的正确性,在保护数据隐私的前提下,提升了用户的查询体验。

附图说明

图1为本发明所述方法的整体架构示意图;

图2为本发明中关键词模糊集的生成时间示意图;

图3为本发明中安全查询索引生成时间示意图;

图4位本发明中所述方法中进行查询的时间示意图;

图5为本发明中所述方法中进行验证的时间示意图。

具体实施方式

下面将结合附图和实施例对本发明做进一步的说明。

实验硬件环境为Windows 7操作系统,CPU为Intel Core i5-4590(3.30GHz),内存为4GB,采用Java编程语言实现。数据集为近10年的IEEE INFOCOM论文集,包含超过3500篇文章,通过提取文档中包含的关键词,形成关键词集合。实验采用256位AES对称加密算法来加密和解密文档,采用密钥长度1024位的RSA累加器生成验证证据,采用SHA-256作为哈希函数。

一种不可信云计算环境中支持动态验证的模糊查询加密方法,整体架构如图1所示,包括以下几个步骤:

步骤1:数据拥有者利用密钥生成算法,获得私钥集合k和公钥集合pk=(N,g),然后使 用对称加密算法和私钥集合k将明文文档集合D加密,生成加密文档集合

步骤2:数据拥有者依据明文文档中的每个关键词和编辑距离构建关键词模糊集合和对应的查询陷门Ti,利用查询陷门构建模糊关键词的安全查询索引Index,并对加密文档和对应的安全查询索引采用RSA累加器计算验证累加值;同时,将密文集合安全查询索引Index和公钥集合pk上传至云服务器;

步骤3:数据使用者发出查询请求关键词wa,并依据查询请求关键词生成查询请求关键词模糊集合数据拥有者接收到查询请求关键词模糊集合后,计算该请求关键词的查询陷门,并将查询陷门返回给数据使用者;

步骤4:数据使用者将从数据拥有者发送来的查询陷门Ta发送至云服务器,从云服务器中存储的安全查询索引集合中寻找与查询陷门Ta匹配的安全查询索引,并从匹配的安全查询索引中提取对应的加密索引再利用加密索引获取对应的加密文档;

步骤5:对步骤4获得的加密文档和对应的安全查询索引计算验证累加值,得到文档验证证据和索引验证证据并将获得的加密文档的查询结果和验证证据发送至数据使用者;

步骤6:对步骤5获得的查询结果和验证证据进行验证,若验证通过,则允许数据使用者下载步骤4获得的加密文档,并从云服务器中获取私钥集合k对加密文档进行解密。

所述安全查询索引的构建步骤如下:

步骤1):采用Trapdoor算法对明文文档中每个关键词分别构造一个查询陷门Ti

其中,表示关键词模糊集合的加密集合,表示利用伪随机函数fk和密钥k0加密关键词模糊集合中的关键词wi′,表示取 前128位;是由属于文档中的关键词wi采用FuzzySet算法生成的集合;

表示查询辅助信息,表示利用伪随机函数fk和密钥k1加密关键词wi, 表示取前n位;

步骤2):将查询辅助信息和第i行索引Ii进行异或运算,获得加密后的第i行索 引所有的关键词wi∈W,获得加密索引为

Ii代表I的第i行,I为m×n的二元矩阵,I={Ii,j},关键词wi包含在文档dj中,则Ii,j=1;否则Ii,j=0;

步骤3):使用随机排列函数γ作用于{1,...,m},m为关键词数量,获得安全查询索引集合

所述对加密文档和对应的安全查询索引采用RSA累加器计算验证累加值的具体过程如下:

文档验证累加值

索引验证累加值代表加密后的第i行索引的第j位;

其中,P(·)是一个质数生成函数,H:{0,1}*→{0,1}σ是一个无碰撞哈希函数,m为关键词数量,n为明文文档数量,(N,g)为利用密钥生成算法生成的公钥集合。

所述对步骤5获得的查询结果和验证证据进行验证的具体过程如下:

步骤A:对于查询结果中包含的所有文档利用无碰撞哈希函数H生成文档哈希值,再通过质数生成函数P(·)生成一个质数xj

步骤B:从数据拥有者处获得验证累加值从云服务器处获得验证证据判断与是否相等,若相等,则查询结果正确且完整,验证通过,若不相等,则验证失败,退出整个查询加密过程;

步骤C:根据查询结果重建查询关键词wa对应的索引行Ia,通过Ia和查询辅助信息 重建出加密后的索引行

步骤D:对于所有的1≤j≤n,利用H和P(·)生成一个质数zj

步骤E:判断与是否相等,若相等,则索引未被篡改,验证通过,若不相等,则退出整个查询加密过程。在动态云存储环境中,数据拥有者按照以下步骤进行任意的增加、删除或修改文档,实现动态数据更新:

1)增加一个文档dn+1

首先对矩阵索引新增一列,如果文档dn+1中包含关键词文档wi,令Ii,n+1=1,否则令Ii,n+1=0;

其次,数据拥有者首先使用加密算法将文档dn+1加密成

对于1≤i≤m,计算再计算出bn+1=(bγ(1),...,bγ(m)),其中,γ(1)...γ(m)为随机排列函数γ作用于{1,...,m}得到,数据拥有者将发送到云服务器;

对于1≤i≤m,云服务器将安全加密索引更新为其中“||”代表连接词;

最后,计算出将更新为更新为云服务器更新密文集合、安全查询索引和验证累加值;

2)删除文档dj

云服务器收到数据拥有者发出的文档dj删除请求后,计算计算累加值 云服务器删除密文将累加值更新为

3)修改:数据拥有者将文档dj修改为d′j,且dj和d′j拥有相同的关键词;

云服务器收到数据拥有者发出的修改请求后,计算和其中是d′j的密文;计算最后将将累加值更新为

生成模糊关键词集合的时间开销如图2所示。在编辑距离变化时,时间开销与关键词数都几乎呈线性增长,而编辑距离为2比编辑距离为1的时间开销大很多,因为编辑距离越大,生成的模糊关键词集的数目将呈指数级增长。编辑距离是影响模糊查询效率的一个非常重要的因子。

生成安全查询索引的时间开销如图3所示。设定编辑距离为1,安全查询索引的生成时间与文件数呈正相关性。随着文件数增加,关键词数量也不断增加,构造安全查询索引的时间开销随之增加。安全查询索引只需要构造一次,在文档增加、更新、删除时,只需给服务器发送请求,服务器在原有的安全查询索引上进行更新,而无需再次重新构造索引,节省了数据拥有者的时间开销。

查询的时间开销如图4所示。查询时间随着文件数的增加呈线性增长,查询陷门由数据拥有者生成并发送给云服务器,云服务器将查询陷门与安全查询索引匹配得到查询结果。模糊关键词集由数据拥有者完成,因而在云服务器端的查询时间开销与文件数呈正相关性,与 生成模糊关键词集的开销无关。

验证的时间开销如图5所示。验证时间随着文件数的增加而增加,数据使用者首先验证文档的完整性,然后根据查询结果重建索引并验证查询结果的完整性。验证时间与文件数呈正相关性。

隐私安全:在整个可查询加密过程中,云服务器仅获取上传的加密文档、安全查询索引、验证累加值、查询陷门、查询结果和验证证据。除此之外,云服务器无法获取文档对应的明文、查询陷门对应的查询请求等其他任何信息,从而做到隐私保护。

定理1:本发明提出的支持可验证模糊查询的加密方案可以隐私安全。

证明:假定S是一个模拟器,S首先从敌手处接收到|d1|,...,|dn|和m。对于1≤j≤n,S可以模拟出密文文档其中sk在Enc算法中随机选取,然后生成 对于1≤i≤m,S随机选择随机数为随机选择用一个随机排列函数γ作用于{1,...,m},生成最后将发送给

发出查询请求wa,S得知查询结果首先计算 关键词wi对应的陷门为S将Ta′发送给

发出增加文档的请求,S模拟出对于1≤i≤m,随机选取bi′∈{0,1},使用一个随机排列函数γ作用于{1,...,m},并计算出b′n+1=(b′γ(1),...,b′γ(m)),S将发送给

发出删除文档的请求,S将(del,j)发送给

发出修改文档的请求,S模拟出然后将发送给

由于加密算法Enc是CPA安全的,所以无法区分密文和由于伪随机函数f和随机排列函数γ,导致和也是不可区分的。所以无法获知更多的信息,所以保护了隐私安全。

可验证安全:在整个可查询加密过程中,假定恶意攻击者存在篡改用户查询结果等恶意行为,那么用户能够快速识别。

本发明提出的支持可验证模糊查询的加密方案可以满足定义3中的可验证安全。

证明:为了证明本文提出的方案是可验证安全的,需要证明攻击者无法伪造正确的查询结果和验证证据。

假设是正确的查询结果和验证证据,需要证明攻击者伪造的查询结果和验证证据无法通过数据使用者的验证算法,需要证明伪造的查询结果和证据与原有的证据不符,即分为三种可能的情况:1)且2)且{zj}≠{z′j};3) 且{zj}={z′j}。

接下来证明这三种情况下,验证过程失败的概率可以忽略不计。1)因为 因此验证失败的概率可以忽略不计;2)因为{zj}≠{z′j},在强RSA假设下,验证失败的概率可以忽略不计;3)因为这说明存在两种情况和可以使得对于这种情况,由于哈希函数H的无冲撞特性,导致因此,在强RSA假设下,由于 验证失败的概率可以忽略不计。

基于以上分析,攻击者不能伪造出真实可信的查询结果和验证证据,因此本发明提出的方案是可以满足可验证安全的。

综上所述,生成模糊关键词集需要较大的时间开销,因而扩展后的安全查询索引耗时较多,但是构造索引只需一次,而查询和文档更新操作较为频繁,本方案在搜索、更新操作上有较高的效率,可以满足实际环境的需求。

以上所述仅是本发明技术的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和替换,这些改进和替换也应视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1