基于带有存储结构的Bloom过滤器的关键词可搜索加密方法
【技术领域】
[0001] 本发明属于信息安全技术领域,具体涉及一种基于带有存储结构的Bloom过滤器 的关键词可搜索加密方法。
【背景技术】
[0002] 云计算作为一种新的计算模型,能够提供成本较低、可扩展的各种先进的计算服 务,为了节省存储及管理数据的代价,企业和个人可以将数据外包到云存储服务器。云存 储服务提供的数据具有可用性和可靠性等优势,但是其也有一个很明显的缺点,即数据不 在用户的管理及控制之下,那么如何维护数据的机密性和完整性便成为用户迫切关注的问 题。
[0003] 虽然企业相信云存储服务提供商(CloudStorageServiceProvider,CSSP)的可 靠性、可用性、容错性等,但是人们无法确信CSSP不将托管的数据用于其他目的;同样对于 个人用户而言,他们希望自己的数据只能由自己或指定的人访问而不能被CSSP访问。这将 导致两方面的问题:一方面,从用户的角度看,他们无法找到让他们完全可信的CSSP来存 储和管理他们的数据;另一方面从CSSP的角度看,在没有解决上述问题的情况下将会丢失 大量的客户。因此,数据的机密性及完整性将阻碍云存储的推广及使用。
[0004] 鉴于以上的实际问题,云存储中数据必须在传输到CSSP之前,由用户自己加密, 并且也只能由用户自己进行解密,这样将会减轻用户数据泄漏的危险。但这将引入一个新 的问题,如用户需要包含某个关键字的文档,那么用户是否能很快的获得他们想要的数据 并保证数据对CSSP的机密性?
【发明内容】
[0005] 本发明的目的是提供一种基于带有存储结构的Bloom过滤器的关键词可搜索加 密方法,解决了现有技术中存在的现有的加密方法密文检索效率不高的问题。
[0006] 本发明所采用的技术方案是,基于带有存储结构的Bloom过滤器的关键词可搜索 加密方法,具体按照以下步骤实施:
[0007]步骤1、系统参数初始化;
[0008] 步骤2、用户密钥生成;
[0009] 步骤3、检索索引生成;
[0010] 步骤4、搜索令牌生成;
[0011] 步骤5、云存储服务器关于密文关键词的搜索。
[0012] 本发明的特点还在于,
[0013] 步骤1具体过程为:
[0014] 建立一个带有存储结构的Bloom过滤器,Bloom过滤器是由两部分构成,其一为 一个大小为n的数组M,其二为m个值域为[1,…,n]的独立随机哈希函数Ii1,…,hn,这里 的m个哈希函数都是从{0,l:r映射到[1,…,n]中任意整数的函数,用数学函数表达为:Iii: {0, 1}、[1,???,]!](i= 1,"'m),由云存储服务器Serv输入安全参数A,选择GpG1^ 阶为大素数P的群,其中g是匕的生成元,选择一个哈希函数/l: , 其中碑是从1到p-1的整数,输出公共参数p= %,GT,g,H>。
[0015] 步骤2具体过程为:
[0016]由用户端自主进行计算,接收云存储服务器Serv输出的公共参数P,随机选择 尤€ ,将XG作为自己的私钥Sk=〈x>,保密。
[0017] 步骤3具体按照以下步骤实施:
[0018] 步骤(3.1)、设用户选择的待加密文档集合为D=(D1,…,Dn),用户选择待加密文 档D的关键词组W= (W1,…,wj,1彡i彡n,接收公共参数P和上一步生成的密钥sk,对 于关键词组W= (W1, 中的每一个关键词WiQg[]_,???,1]),随机选择Sp上的元素 Sp计算
[0021]步骤(3. 2)、设密文=《為,馬),利用Bloom过滤器生成关键词组W=Iw1,??? ,wj的索引M和压缩索引M%索引M和压缩索引矿都是大小为n的数组,索引M中存放的 元素为下式计算的y,,压缩索引,存放的为0或者1,哈希函数的个数为m,计算:
[0023]并将y所对应密文的仏/j:插入到M[y J中;
[0024] 步骤(3. 3)、根据数组M生成其对应的压缩索引M*,即如果M的第i(i= 1,…,n) 个分量中不空,则对应的将矿的第i个分量标记为1,然后根据上传文档的先后顺序,将M 插入到数据库的索引表中,将矿添加到数据库的压缩索引表中。
[0025] 步骤4具体按照以下步骤实施:
[0026]步骤(4. 1)、待搜索用户在用户端输入待搜索的关键词组浓=Iw1,, 密钥sk,其中I1S1,生成一个连接关键词组的搜索令牌t,搜索令牌t中的所有关键词为W1,其中,iG[1,…,I1],I1Sl对于所有待检索的关键词组来生成令牌,选择忍f上的一 个随机元素r,计算:
[0028]步骤(4. 2)、新生成一个压缩索引妒,其大小为n,即妒:为一个大小为n的数组, 并且初始化的每一个元素都为0,计算每一个关键词Wj的yU=Iii(W),其中,iG[1,… ,m],je[1,…,I1],并将奶1标记为I,输出搜索令牌= (I?4,5V:f}:到Serv。
[0029]步骤5具体按照以下步骤实施:
[0030]步骤(5. 1)、云存储服务器Serv接收到待匹配的搜索令牌<iTWr》,服务器从数 据库中检索所有存储文档对应的索引和压缩索引,设当前检索到的索引为M和压缩索引为M*;
[0031] 步骤(5. 2)、进行判断:
[0032] (a)判断压缩索引妒:是否包含在M*中,即Z1S/2,这里Z1 =Ijir⑴=l},I2= U IM* (i)= 1},如果I1eJ2,即丨膽包含在M*中,则进行下一步操作;
[0033] (b)根据压缩索引JT%对所有M[i]中存放的重复元素进行统计,其中i满足 I^I=I,找到所有重复个数等于m的元素,并将其作为密文集<CWi.》(ISSI),由于 存在哈希碰撞的情况,因此所得到的密文集中密文个数会存在大于待检索的关键词的个数 的情况,这时,需要对密文集<CM/; 进行组合形成一系列新的密文集,并保证密文集的个数 和待检索的关键词的个数相同,然后对新的密文集进行下一步操作;
[0034] (C)对所有新生成的密文集私进行如下判断,对于e t= 判断下式是否成立:
[0036] 如果上式成立,则匹配成功,输出1给用户,反之输出0。
[0037] 本发明的有益效果是,基于带有存储结构的Bloom过滤器的关键词可搜索加密方 法,数据用户可以将自己的数据加密后,存放到云存储服务器,需要时候,可以通过关键词 检索令牌检索到需要的密文数据,然后下载解密,同时,云存储服务器并不知道用户检索的 关键词,确保用户的数据信息隐私性,在计算代价,即Serv对文档搜索的速度方面的综合 效率得到提高,同时,每个文档所包含的关键词数量没有约束,关键词的所属域也没有约束 的情况下,依然保证了Serv的文档检索效率。
【具体实施方式】
[0038] 下面结合【具体实施方式】对本发明进行详细说明。
[0039] 本发明基于带有存储结构的Bloom过滤器的关键词可搜索加密方法,具体按照以 下步骤实施:
[0040]步骤1、系统参数初始化:
[0041] 具体过程为:
[0042] 建立一个带有存储结构的Bloom过滤器,Bloom过滤器是由两部分构成,其一为 一个大小为n的数组M,其二为m个值域为[1,…,n]的独立随机哈希函数Ii1,…,hn,这里 的m个哈希函数都是从{0,l:r映射到[1,…,n]中任意整数的函数,用数学函数表达为:Iii: {0, 1}、[1,???,]!](i= 1,"'m),由云存储服务器Serv输入安全参数A,选择GpG1^ 阶为大素数P的群,其中g是匕的生成元,选择一个哈希函数A: (〇,IF-碎,其中略从1 至IjP-1的整数,输出公共参数P= (G1,Gt,g,H> ;
[0043] 步骤2、用户密钥生成:
[0044] 具体过程为:
[0045]由用户端自主进行计算,接收云存储服务器Serv输出的公共参数P,随机选择 尤:£ 2^,将XG 作为自己的私钥sk=〈X〉,保密;
[0046] 步骤3、检索索引生成: