一种云环境中基于中文的可搜索加密方法

文档序号:9914434阅读:498来源:国知局
一种云环境中基于中文的可搜索加密方法
【技术领域】
[0001] 本发明属于信息安全技术领域,尤其涉及一种云环境中基于中文的可搜索加密方 法。
【背景技术】
[0002] 目前,随着人们在云端存储数据的不断普及,人们把越来越多的数据存储到云端 的同时,其数据的安全性与可靠性就受到了前所未有的关注程度。虽然利用加密技术将文 件加密存储于云端可有效的保证数据的保密性,但是通过这种方式用户的数据则丧失了许 多的可操作性。例如,对文件进行搜索仅仅只需将关键字直接进行匹配即可,但对于加密后 的数据,则无法进行这种操作。因此,为了能够提供密文搜索方法,大量的可搜索加密方式 孕育而出,不过目前所提出可搜索加密方法主要是基于英文单词来进行的,并且多数方案 都是仅仅支持精确搜索方案以及单关键词搜索。
[0003] 对于实际使用的系统的需求来说,往往希望搜索的内容不仅仅是单个的,更希望 是通过多个关键字进行联合的搜索。与此同时,在进行搜索操作时,又是会产生一些细微的 文字格式或者输入错误,但是通常的精确搜索无法容忍这种错误的出现,导致了搜索系统 可用性的大大降低。

【发明内容】

[0004] 本发明的目的在于提供一种云环境中基于中文的可搜索加密方法,旨在解决搜索 系统可用性较差的问题。
[0005] 本发明是这样实现的,一种云环境中基于中文的可搜索加密方法,所述云环境中 基于中文的可搜索加密方法基于PEKS方案以及布隆过滤器得特性来完成动态可搜索加密 方案,在非安全信道下完成密文搜索功能,支持基于公钥可搜索加密方案的模糊关键字搜 索,支持中文的多关键词搜索,动态添加删除文档中的关键字;
[0006] 首先数据所有者拥有需要上传到云服务器端的文件数据集F,文件数据集F中的所 有文件都由数据所有者使用加密算法进行加密,加密后形成加密文件集合C,数据所有者需 要对文件数据集F中的文件进行关键字的提取,对所提取出来的关键词通过可搜索加密方 式对其进行加密处理,然后将加密后的文档集合C以及密文关键字Enc(w)上传到云端服务 器,并构建索引;
[0007] 其次授权用户通过关键词搜索云服务器端的密文时,首先通过搜索处理方式对关 键词进行处理,生成相关联的搜索陷门信息T,然后将搜索陷门T通过查询请求发送给云服 务器端;云服务器通过规则对从授权用户那得到的陷门信息进行处理,与云服务器端的索 引信息进行匹配,当匹配到相关的关键词后,返回相关的加密文件集合到授权用户;
[0008] 最后,授权用户将云服务器返回的加密文件进行解密得到明文的文件内容。
[0009] 进一步,所述云环境中基于中文的可搜索加密方法具体包括:
[0010]步骤一,系统初始化,输入安全参数λ,根据安全参数λ生成系统公共参数pp;
[0011] 步骤二,密钥生成,数据拥有者根据公共参数PP分别在云服务器端以及授权用户 端生成服务器密钥对SK = [ SKpriv,SKpub ],其中SKpriv表示服务器的私钥,SKpub表示服务器的 公钥,授权用户端生成用户的密钥UK = [UKpriv,UKpub],
[0012] 步骤三,关键字加密,数据所有者提取关键词,并将关键词分别拆封为单个汉字, 通过使用授权用户的公钥以及云服务器的公钥对每一个关键字进行加密处理,将加密后的 关键字集合Enc(w)以及加密后的文档信息集合C上传到云服务器端;
[0013] 步骤四,构建布隆过滤器,根据上传到云服务器端的文档集关键字信息,针对每一 个文档进行构建布隆过滤器BFindex,将每一个密文关键字映射到布隆过滤器中,然后存储该 条记录;
[0014] 步骤五,生成陷门,授权用户根据需要搜索的关键词,通过服务器的公钥以及授权 用户的私钥将单个的关键字加密生成查询陷门,将查询陷门发送到云服务器端,统计搜索 关键词中的数量,记为1;
[0015] 步骤六,搜索匹配,将获取的陷门信息,通过运算变换,将变换后的值通过哈希运 算映射为布隆过滤器,形成陷门布隆过滤器;通过陷门布隆过滤器与文档的布隆过滤器进 行内积运算获得结果向量,计算结果向量的汉明重量,如果重量超过额定值,则返回密文的 文档,否则继续进行匹配运算。
[0016] 进一步,在步骤一中所述初始化过程包括:
[0017] 第一步,选取两个阶为p的乘法循环群GjPG2,根据给定的安全参数λ,随机生成一 个生成元g e Gi,然后生成两个随机数u,m e &;
[0018] 第二步,选取三个基于随机预言模型的哈希函数Hi: {0,1Γ-Gi、H2: {0,1Γ-Gjp H3: {0,1} ^62将0、1表示的数串映射到阶为p的素数域上;
[0019] 第三步,云服务器端生成一组用于形成布隆过滤器的哈希函数集合Η:(1η( · ),h2 (· ),h3( ·),……,hk( ·)),并且确定出系统允许的模糊查询的允许误差数q,最后该阶段 返回一组公共参数PP= {p,Gi,G2,e,Hi,H2,H3,H,g,u,ui,q}。
[0020] 进一步,步骤二所述的密钥生成具体包括:
[0021 ]第一步,用户端通过根据给定的安全参数λ来确定乘法循环群Gi和G2中p的大小; [0022]第二步,在云服务器端,根据给定的公参数PP,以及利用伪随机数生成算法生成一 个随机数〃 € <,将其作为服务器的私钥SKpriv= [α],计算出服务器的公钥SKpub= [SKpubl, SKpub2 ] = [ ga,μιΛ],以及服务器的密钥SK = [ SKpriv,SKpub ];
[0023] 第三步,在授权用户端,根据给定的公共参数PP,随机生成随机数/ie Z,,,将该随 机数β作为授权用户的私钥即UKpriv= [β];
[0024] 第四步,利用该随机数β计算出用户的公钥UKpub = [UKpubl,UKpub2] = [ge,uj],输出 授权用户的密钥UK = [ UKpriv,UKpub ]。
[0025] 进一步,步骤三所述的关键字加密具体包括:
[0026] 第一步,用户端对要上传的文档findex进行关键词^的提取;
[0027] 第二步,将从文档findex中提取的每个关键词拆分成单个汉字,记为Windexiiwi, W2,......,Wn},其中Wi代表第i个独立的关键词;
[0028] 第三步,对于选定的每个文档f index,生成一个随机数r 6 <,计算出辅助参数 A,,, = υκ;,?ι ;
[0029] 第四步,对于Windex中的每一个Wi通过bi = H3 (e (Hi (Wi )τ,SKpubl )) eG2进行加密生成 密文bi,其中对于同一文档中的关键字,使用相同的随机数reZ;;,将加密结果bi构成密文 关键词集合Bindex= {bi,b2,......,bi};
[0030] 第五步,对所选的文档findex进行加密得Enc(findex),对文档序列号IDf加密得到Enc (IDf ),将{EnC(IDf ),Aindex,Bindex,EnC(findex) }上传到75Γ服务器存储。
[0031]进一步,步骤四所述的关于构建布隆过滤器具体包括:
[0032] 第一步,将上传到在云服务器端的每一个密文单元bi通过哈希运算keyij = hj(bi), hj EH生成k个随机值,并且针对每一个文档f构建一个布隆过滤器BFindex,初始化为0;
[0033] 第二步,对于每一个Sies的生成的k个哈希值所表示的位置进行映射,该布隆过 滤器上的第keyij个位置的元素加1,将文档fi ndex对应的索引记录nodeindex= {Enc(IDf), BFindex}存储到云服务器端;
[0034] 第三步,当需要删除关键词时,将所选关键词在布隆过滤器中相对应的位置进行 减1操作即可,使得布隆过滤器中某些位置为〇。
[0035] 进一步,步骤五所述的关于陷门生成阶段具体包括:
[0036]第一步,授权用户需要根据所需要搜索的关键字构成关键字集合W' = {wordS, W〇rd'2,'",W〇rd'm},系统将W'中的关键词拆分单个汉字w',并且统计关键字的个数η以及关 键字中的通配符的个数1;
[0037] 第二步,用户根据随机函数生成一个随机数r'eZ",对每个汉字w^eword'利用 服务器的公钥31(岫=[51(_1,51(_ 2]=匕'111匀以及用户端的私钥1]1([^=[則加密;
[0038] 第三步,授权用户通过公式'= /((U·,丨?仏(Μ?:,ΛΙ)进行加密得到查询陷门 Twi',并且计算出辅助陷门信息Tizg1·;
[0039] 第四步,授权用户将加密后的查询陷门信息TWi'构成陷门
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1