[发明专利]一种支持动态更新及多关键字安全排序的可搜索加密方法有效
申请号: | 201510035076.2 | 申请日: | 2015-01-23 |
公开(公告)号: | CN104615692B | 公开(公告)日: | 2017-09-19 |
发明(设计)人: | 周由胜;陈亚琼;罗文俊;刘宴兵 | 申请(专利权)人: | 重庆邮电大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 重庆市恒信知识产权代理有限公司50102 | 代理人: | 刘小红 |
地址: | 400065 *** | 国省代码: | 重庆;85 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 支持 动态 更新 关键字 安全 排序 搜索 加密 方法 | ||
1.一种支持动态更新及多关键字安全排序的可搜索加密方法,其特征在于,包括以下步骤:
101、初始化,在云存储的客户端,用户随机生成密钥{M1,M2,S,K},其中M1,M2为(d+1)×(d+1)的矩阵,S为(d+1)维的二进制向量,d为字典中关键字的个数,K为加密文件的对称密钥;
102、当生成步骤101的密钥后,用户端根据字典和红黑树结构生成待上传文件集合的未加密索引,其中待上传文件集合由待上传文件Fi组成,其中还生成了文件的标识符即标志位数字;步骤102中用户端根据红黑树法生成待上传文件集合的未加密索引的步骤具体:2a)根据用户端待上传文件集合中的每个待上传文件Fi的关键字,建立一个字典,所述字典为所有待上传文件Fi去重之后的关键字集合;2b)根据步骤2a)中字典的关键字和该关键字在待上传文件Fi中的词频,对每个待上传文件Fi建立d+1维列向量P,d为字典中的关键字个数,Pj为关键字Wj的词频,且Pd+1=1,如果,Pj≠0则说明文件Fi中含有关键字Wj;如果Pj=0,则说明文件文件Fi中不含有关键字Wj;2c)根据步骤2b)对每个待上传文件Fi建立的列向量P,及步骤2a)中建立的关键字字典建立红黑树,红黑树的叶子节点存放的是文件的词频Pj,而内部节点存放的是两个待上传文件Fi列向量的或运算结果,叶子节点的父亲节点的计算规则是:如果叶子节点向量不为0,则取1;如果为0,则取0,内部节点为0,1向量,如果内部节点的向量某一位为1,表示至少有一条路线从此内部节点到某个叶子节点,这个叶子节点代表存储有标志位1的关键字的文件,该红黑树就是未加密的索引;
103、对步骤102中未加密索引的待上传文件集合进行非对称标量积索引加密,生成节点的索引加密向量I;步骤103中非对称标量积索引加密的步骤具体为:3a)依据密钥中二进制(d+1)维向量S中不同位置的值,对红黑树的每个节点进行随机拆分,拆分之后为两个d+1维向量p1及p2,当向量Sj=1,即节点的第j位可以拆分,拆分之后两个随机数之和等于拆分之前第j位的值,即p1j+p2j=pj;当向量S某一位j为0,即节点的第j位不可以拆分,即p1j=p2j=pj;3b)对每个节点存放的两个向量p1,p2进行非对称标量积加密:(M1Tq1,M2Tq2);M1T表示矩阵M1的转置,M2T表示矩阵M2的转置;3c)此时加密之后的红黑树就是加密索引;
104、文件加密,用户端完成了对待上传文件集合的索引加密后,对每个待上传文件进行加密,密钥为K,加密算法采用对称加密算法;
105、数据外包,将步骤103加密之后的索引和对称加密后的待上传文件上传到云服务器上,云服务器会根据用户生成的陷门,在加密数据上进行计算;
106、当用户端用户进行多关键字检索时,用户生成查询向量并进行加密后,和红黑树的子节点进行匹配,根据叶子节点存储的词频进行计算得分,实现检索时返回top-k文件,即与要搜索的关键字最相近的前k个文件;
107、当有已经上传的文件需要增加和删除时,用户向云服务器发送请求,包含操作的种类和要进行操作的文件的标识符,增加和删除的文件即为更新文件,云服务器根据文件的标识符进行结构更新,但不访问节点的索引加密向量I,同时返回更新文件所关联的节点和对应的索引加密向量I;根据返回的节点和要更新文件的文件向量,用户端在本地重新计算每个节点的向量,进行加密和结构更新,生成索引加密向量Ⅱ;用户端上传加密向量,服务器复制更新之后的索引加密向量Ⅱ到加密索引中。
2.根据权利要求1所述的支持动态更新及多关键字安全排序的可搜索加密方法,其特征在于,步骤106的具体步骤为:
6a)当用户端用户进行文件检索时,用户根据字典和要查询的关键字在本地生成d维的本地查询向量q,及随机数r,t,生成d+1维本地查询向量为(rq,t),qj=1表示用户要查询Wj,依据二进制(d+1)维向量S中不同位置的值,对查询向量进行随机拆分,拆分之后为两个d+1维向量q1,q2,当向量S某一位j为0,即节点的第j位可以拆分,拆分之后两个随机数之和等于拆分之前第j位的值,即q1j+q2j=qj,当向量S某一位j为1,即节点的第j不可以拆分,q1j=q2j=qj;
6b)对拆分后的两个向量q1,q2进行非对称标量积加密,此时生成陷门T的第一部分T1=(M1-1q1,M2-1q2),M1-1表示矩阵M1的逆,M2-1表示矩阵M2的逆;
6c)用户根据字典中的逆向文件频率IDF生成d维的查询向量Q,随机数r,t,查询向量为(rQ,t),Qj为要查询的关键字Wj的逆向文件频率,此查询向量用作计算叶子节点所存储的文件的得分,和之前向量q的拆分和加密一样,生成陷门的第二部分T2=(M1-1Q1,M2-1Q2);Q1和Q2为拆分之后的(d+1)维查询向量;
6d)加密之后的查询向量和索引中的每个节点进行相乘,如果满足用户端待查询格式,则说明内部节点中的子孙结点可能含有所要查询的多关键字,继续在孩子节点进行计算,直到找到叶子结点为止;如果不满足用户端待查询格式,则停止向下查询;
6e)当遍历所有节点,找到满足条件的叶子节点后,计算满足多关键字的文件的得分,其中fi,j是关键字Wj在文件Fi中的词频,m是总的文档数目,fj是含有关键字Wj文件的个数,|Fi|是文件的欧几里得距离,由得分可以得到最符合用户检索的前K个文件,陷门共有四部分组成T=(T1,T2,(rm+t),K),其中m是查询的关键词的个数,如果和每个内部节点相乘的结果等于(rm+t),代表这个内部节点含有所要查询的关键字,当遍历到叶子节点时,计算此叶子节点存储文件的得分,并返回给用户前K个文件。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于重庆邮电大学,未经重庆邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510035076.2/1.html,转载请声明来源钻瓜专利网。