一种支持动态更新及多关键字安全排序的可搜索加密方法技术

技术编号:11439638 阅读:90 留言:0更新日期:2015-05-13 09:07
本发明专利技术请求保护一种支持动态更新、多关键字检索并且实现安全排序的可搜索加密方法,本发明专利技术采用红黑树作为索引结构,对文件集合生成未加密的索引,叶子节点存储文件向量,内部节点存储子节点的并运算结果。树中每个节点的向量用非对称标量积加密。在关键字检索时,客户端生成陷门,和红黑树的子节点进行匹配。根据叶子节点存储的词频进行计算,能够实现检索时返回top-k文件。在增加和删除文件时,客户端发送文件名和操作,服务器返回相关联的节点,同时在服务器实现结构更新。客户端进行解密和更新数据,发给服务器。服务器实现索引的部分更新。本发明专利技术能够较好地解决云存储数据的动态更新问题,并且能够通过多关键字检索和安全排序提高用户的体验。

【技术实现步骤摘要】
一种支持动态更新及多关键字安全排序的可搜索加密方法
本专利技术涉及网络信息安全
,特别是一种支持动态更新及多关键字安全排序的可搜索加密方法,可用于对云存储数据下的加密文件进行高效检索和更新。
技术介绍
随着云存储技术的迅猛发展,许多企业和个人都会使用云存储技术把自己内部数据进行外包,为我们节省了一定的设备资源。运用云服务器强大的数据处理能力,能够在客户端节省一定的计算资源。但是,为了保障数据的机密性,在用户将数据外包之前,都要对数据进行加密,从而云服务器不可能从密文中得到有效的信息。但是,当大量的加密文件存储在云服务器上,如果想要检索一个包含特定关键字的文件,把文件全部下载下来进行解密是不能接受的。因此,需要对上传到云服务器的文件进行提前处理。上传到服务器之前,根据文件集合生成索引,由索引能够快速的检索到指定的文件。对索引进行可搜索加密,文件进行对称加密。此时,加密的索引和文件上传到云服务器。如果要检索特定的关键字,服务器会在索引上进行计算,并且返回相应的密文。但是,如果要更新一个文件时,需要把索引下载到本地,全部更新一遍,效率不高。而且现有的可搜索加密技术大部分是针对单关键字设计的,不能满足用户的检索需求。并且在服务器返回检索结果时,用户希望看到最符合检索关键字的前k个文件,而大多数的可搜索加密技术不支持对检索结果进行排序。因此,有必要提出一种高效率进行更新,同时支持多关键字检索,返回top-k文件的可搜索加密方法。
技术实现思路
针对以上现有技术中的不足,本专利技术的目的在于提供一种支持动态更新、多关键字检索并且实现安全排序的可搜索加密方法,本专利技术的技术方案如下:一种支持动态更新及多关键字安全排序的可搜索加密方法,其包括以下步骤:101、初始化,在云存储的客户端,用户随机生成密钥{M1,M2,S,K},其中M1,M2为(d+1)×(d+1)的矩阵,S为(d+1)维的二进制向量,d为字典中关键字的个数,K为加密文件的对称密钥;102、当生成步骤101的密钥后,用户端根据字典和红黑树结构生成待上传文件集合的未加密索引,其中上传文件集合由待上传文件Fi组成,其中还生成了文件的标识符即标志位数字;103、对步骤102中未加密索引的待上传文件集合进行非对称标量积索引加密,生成节点的索引加密向量I;104、文件加密,用户端完成了对待上传文件集合的索引加密后,对每个待上传文件进行加密,密钥为K,加密算法采用对称加密算法;105、数据外包,将步骤103加密之后的索引和对称加密后的待上传文件上传到云服务器上,云服务器会根据用户生成的陷门,在加密数据上进行计算;106、当用户端用户进行多关键字检索时,用户生成查询向量并进行加密后,和红黑树的子节点进行匹配,根据叶子节点存储的词频进行计算得分,实现检索时返回top-k文件,即与要搜索的关键字最相近的前k个文件;107、当有已经上传的文件需要增加和删除时,用户向云服务器发送请求,包含操作的种类和要进行操作的文件的标识符,增加和删除的文件即为更新文件,云服务器根据文件的标识符进行结构更新,但不访问节点的索引加密向量I,同时返回更新文件所关联的节点和对应的索引加密向量I;根据返回的节点和要更新文件的文件向量,用户端在本地重新计算每个节点的向量,进行加密和结构更新,生成索引加密向量Ⅱ;用户端上传加密向量,服务器复制更新之后的索引加密向量Ⅱ到加密索引中。进一步的,步骤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中非对称标量积索引加密的步骤具体为: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)此时加密之后的红黑树就是加密索引。进一步的,步骤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个文件。本专利技术的本文档来自技高网...
一种支持动态更新及多关键字安全排序的可搜索加密方法

【技术保护点】
一种支持动态更新及多关键字安全排序的可搜索加密方法,其特征在于,包括以下步骤:101、初始化,在云存储的客户端,用户随机生成密钥{M1,M2,S,K},其中M1,M2为(d+1)×(d+1)的矩阵,S为(d+1)维的二进制向量,d为字典中关键字的个数,K为加密文件的对称密钥;102、当生成步骤101的密钥后,用户端根据字典和红黑树结构生成待上传文件集合的未加密索引,其中上传文件集合由待上传文件Fi组成,其中还生成了文件的标识符即标志位数字;103、对步骤102中未加密索引的待上传文件集合进行非对称标量积索引加密,生成节点的索引加密向量I;104、文件加密,用户端完成了对待上传文件集合的索引加密后,对每个待上传文件进行加密,密钥为K,加密算法采用对称加密算法;105、数据外包,将步骤103加密之后的索引和对称加密后的待上传文件上传到云服务器上,云服务器会根据用户生成的陷门,在加密数据上进行计算;106、当用户端用户进行多关键字检索时,用户生成查询向量并进行加密后,和红黑树的子节点进行匹配,根据叶子节点存储的词频进行计算得分,实现检索时返回top‑k文件,即与要搜索的关键字最相近的前k个文件;107、当有已经上传的文件需要增加和删除时,用户向云服务器发送请求,包含操作的种类和要进行操作的文件的标识符,增加和删除的文件即为更新文件,云服务器根据文件的标识符进行结构更新,但不访问节点的索引加密向量I,同时返回更新文件所关联的节点和对应的索引加密向量I;根据返回的节点和要更新文件的文件向量,用户端在本地重新计算每个节点的向量,进行加密和结构更新,生成索引加密向量Ⅱ;用户端上传加密向量,服务器复制更新之后的索引加密向量Ⅱ到加密索引中。...

【技术特征摘要】
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、当用户端用户进行多关键字检索时,用户生成查询向量并进行加密后,和红...

【专利技术属性】
技术研发人员:周由胜陈亚琼罗文俊刘宴兵
申请(专利权)人:重庆邮电大学
类型:发明
国别省市:重庆;85

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

1