1.一种数据加密方法,其特征在于,包括数据拥有端执行的如下步骤:获取明文文件的明文关键词,基于所述明文关键词采用局部敏感哈希函数建立所述明文文件的文件索引;
获取秘钥管理中心发送的第一随机用户秘钥;
基于第一随机用户秘钥,采用ElGamal算法加密所述明文文件,获取加密文件;
基于第一随机用户秘钥,采用哈希映射函数对所述第一随机用户秘钥进行处理,产生密钥KI;
将文件索引ID按如下规则划分为两个索引向量{I′,I″}:对于每个元素ij∈ID,如果Sj∈S且Sj等于1,则设置ij′=ij″=ij;否则,ij′=1/2·ij+r,ij″=1/2·ij-r,其中,r为一随机数,S∈{0,1}m;
基于密钥KI和两个索引向量{I′,I″}加密文件索引,获取加密索引:EncSK(ID)={M1T·T m*mI′,M2·I″,Enc(KI,fidi)},其中,fidi为明文文件的文件ID,M1,M2∈R 为可逆矩阵;
将所述加密文件和所述加密索引发送至服务器端,以指示服务器端采用由秘钥管理中心发送的第一随机服务器端秘钥对所述加密文件进行加密,形成密文文件;
其中,所述第一随机用户秘钥和所述第一随机服务器端秘钥相关联。
2.如权利要求1所述的数据加密方法,其特征在于,所述获取明文文件的明文关键词,基于所述明文关键词采用局部敏感哈希函数建立所述明文文件的文件索引,包括:从明文文件中提取明文关键词,将所述明文关键词转化成明文关键词向量;
采用p-stable局部敏感哈希函数将每一明文关键词向量进行转换,获取对应的明文哈希值;
将每一所述明文哈希值插入到布隆过滤器进行过滤,得到文件索引。
3.一种数据查询方法,其特征在于,包括服务器端执行的如下步骤:获取查询关键词,采用局部敏感哈希函数对所述查询关键词进行处理,以形成查询陷门;
基于所述查询关键词和所述查询陷门,将与查询陷门匹配成功的加密索引作为目标加密索引;
基于目标加密索引,将与所述目标加密索引相对应的密文文件确定为目标密文文件;
其中,所述密文文件是采用秘钥管理中心发送的第一随机服务器端秘钥对数据拥有端发送的加密文件进行加密后形成的,所述加密文件是采用权利要求1或2所述的数据加密方法得到的;
获取秘钥管理中心发送的第二随机服务器端秘钥;
基于所述第二随机服务器端秘钥,对目标密文文件进行解密,获取目标加密文件;
将所述目标加密文件发送至授权用户端,以指示所述授权用户端采用由秘钥管理中心发送的第二随机用户秘钥对所述目标加密文件进行解密,获取对应的明文文件;
其中,所述第二随机用户秘钥和所述第二随机服务器端秘钥相关联。
4.如权利要求3所述的数据查询方法,其特征在于,所述获取查询关键词,采用局部敏感哈希函数对所述查询关键词进行处理,以形成查询陷门,具体包括:获取查询关键词,将查询关键词转换为查询关键词向量;
采用p-stable局部敏感哈希函数将每一查询关键词向量进行转换,获取对应的查询哈希值;
将每一所述查询哈希值插入到布隆过滤器进行过滤,获取查询关键值Q;
将查询关键值Q按照以下规则划分为两个查询向量{Q′,Q″},对于查询关键值Q中的一个元素qj∈Q,如果Sj∈S且Sj等于1,则设置qj′=qj″=qj;否则,qj′=1/2·qj+r′,qj″=1/
2·qj-r′,其中,r′为一随机数,S∈{0,1}m;
基于两个查询向量{Q′,Q″}加密查询关键值Q,获取查询陷门:EncSK(Q)={M1-1·Q′,M2-1·Q″},其中,M1,M2∈Rm*m为可逆矩阵。
5.如权利要求3所述的数据查询方法,其特征在于,所述基于所述查询关键词和所述查询陷门,将与查询陷门匹配成功的加密索引作为目标加密索引,具体包括:获取所述查询陷门与每一所述加密索引的内积值,作为查询内积值;
获取所述查询关键词与每一文件索引的内积值,作为数据内积值;
获取查询内积值和数据内积值的差值,若查询内积值和数据内积值的差值在预设范围内,则查询陷门和所述加密索引匹配成功,将所述加密索引作为目标加密索引。
6.一种数据加密装置,其特征在于,包括:
文件索引建立模块,用于获取明文文件的明文关键词,基于所述明文关键词采用局部敏感哈希函数建立所述明文文件的文件索引;
第一随机用户秘钥获取模块,用于获取秘钥管理中心发送的第一随机用户秘钥;
加密文件和加密索引获取模块,用于采用第一随机用户秘钥分别加密所述明文文件和所述文件索引,获取加密文件和加密索引;
加密文件和加密索引发送模块,用于将所述加密文件和所述加密索引发送至服务器端,以指示服务器端采用由秘钥管理中心发送的第一随机服务器端秘钥对所述加密文件进行加密,形成密文文件,其中第一随机用户秘钥和第一随机服务器端秘钥相关联;
其中,加密文件和加密索引获取模块包括加密文件获取单元、密钥产生单元、索引向量划分单元和加密索引获取单元;
加密文件获取单元,用于基于第一随机用户秘钥,采用ElGamal算法加密明文文件,获取加密文件;
密钥产生单元,用于基于第一随机用户秘钥,采用哈希映射函数对第一随机用户秘钥进行处理,产生密钥KI;
索引向量划分单元,用于将文件索引ID按如下规则划分为两个索引向量{I′,I″}:对于每个元素ij∈ID,如果Sj∈S且Sj等于1,则设置ij′=ij″=ij;否则,ij′=1/2·ij+r,ij″=1/
2·ij-r,其中,r为一随机数,S∈{0,1}m;
加密索引获取单元,用于基于密钥KI和两个索引向量{I′,I″}加密文件索引,获取加密T T索引:EncSK(ID)={M1·I′,M2·I″,Enc(KI,fidi)},其中,fidi为明文文件的文件ID,M1,M2∈Rm*m为可逆矩阵。
7.一种数据查询装置,其特征在于,包括:
查询陷门获取模块,用于获取查询关键词,采用局部敏感哈希函数对所述查询关键词进行处理,以形成查询陷门;
目标加密索引获取模块,用于基于所述查询关键词和所述查询陷门,将与查询陷门匹配成功的加密索引作为目标加密索引;
目标密文文件获取模块,用于基于目标加密索引,将与所述目标加密索引相对应的密文文件确定为目标密文文件;其中,所述密文文件是采用秘钥管理中心发送的第一随机服务器端秘钥对数据拥有端发送的加密文件进行加密后形成的,所述加密文件是采用权利要求1或2所述的数据加密方法得到的;
第二随机服务器端秘钥获取模块,用于获取秘钥管理中心发送的第二随机服务器端秘钥;
目标加密文件获取模块,用于基于所述第二随机服务器端秘钥,对目标密文文件进行解密,获取目标加密文件;
目标加密文件发送模块,用于将所述目标加密文件发送至授权用户端,以指示所述授权用户端采用由秘钥管理中心发送的第二随机用户秘钥对所述目标加密文件进行解密,获取对应的明文文件,其中,所述第二随机用户秘钥和所述第二随机服务器端秘钥相关联。
8.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至
2任一项所述数据加密方法的步骤,或者所述处理器执行所述计算机程序时实现如权利要求3至5任一项所述数据查询方法的步骤。
9.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至2任一项所述数据加密方法的步骤,或者所述计算机程序被处理器执行时实现如权利要求3至5任一项所述数据查询方法的步骤。