一种可搜索加密方法、装置、设备及可读存储介质与流程

文档序号:20029806发布日期:2020-02-28 10:15阅读:129来源:国知局
一种可搜索加密方法、装置、设备及可读存储介质与流程

本发明涉及信息安全领域,特别涉及一种可搜索加密方法、装置、设备及计算机可读存储介质。



背景技术:

随着云端存储技术的不断普及,人们把越来越多的数据存入云端。为了保证数据的安全性,存入云端的数据均会被加密。加密技术虽然保证了数据安全性,却给用户使用带来诸多不便,例如在进行关键词搜索时无法获取包括该关键词的加密文件。

为了解决上述问题,出现了可搜索加密技术。现有的可搜索加密技术可以在加密文件中搜索用户输入的关键词,提取具有该关键词的文件。但是现有可搜索加密方法具有以下缺点:其搜索结果不准确,包含很多无用数据,例如当用户输入的词组为abc时,搜索得到的文件中可能仅包含关键词abc;或者仅包含关键词abdbc,这其中ab连续,bc也连续,但是ab中的b与bc中的b并不是同一个b。即现有可搜索加密技术仅能保证当用户搜索abc时得到的搜索结果中包括ab连续的文件和bc连续的文件,而无法保证abc三个均连续。当用户输入词组时打错词中的字母,例如用户想输入home时错误输入了hone,由于没有文件包括hone这个单词,因此用户无法得到搜索结果,需要重新搜索。这种现有的搜索方法会造成网络带宽和计算资源的浪费。

因此,如何解决现有可搜索加密方法造成网络带宽和计算资源浪费的问题,是本领域技术人员需要解决的技术问题。



技术实现要素:

有鉴于此,本发明的目的在于提供一种可搜索加密方法、装置、设备及计算机可读存储介质,解决现有可搜索加密方法造成的网络带宽和计算资源浪费的问题。

为解决上述技术问题,本发明提供了一种可搜索加密方法,包括:

获取安全参数,利用所述安全参数生成密钥集;

从多个文件中提取多个关键词组成关键词集,并对各个所述文件加密,得到与所述文件对应的加密文件;

构建初始化二进制矩阵,利用所述密钥集计算各个所述关键词的伪随机函数值,并利用所述伪随机函数值和所述初始化二进制矩阵构建二进制矩阵;

构建初始化查找表,获取各个所述关键词与目标文件对应的个数参量,并利用所述个数参量、所述密钥集和所述初始化查找表构建所述目标文件对应的查找表;

构建所述关键词的模糊关键词集,利用所述模糊关键词集、所述二进制矩阵和所述查找表构建安全索引,并将安全索引和加密文件发送至云服务器。

可选的,所述对各个所述文件加密,得到与所述文件对应的加密文件,包括:

对各个所述文件编号,得到编号文件;

利用私钥密码算法对各个所述编号文件进行加密计算,得到与所述文件对应的加密文件。

可选的,利用所述伪随机函数值和所述初始化二进制矩阵构建二进制矩阵,包括:

判断各个所述文件中是否存在所述关键词;

若是,则将所述初始化二进制矩阵中以所述伪随机函数值为行坐标,以所述文件的编号为列坐标的元素值修改为1;

生成随机二进制字符串,并将所述随机二进制字符串填入元素全部为0的矩阵行中,得到未加密二进制矩阵;

对所述未加密二进制矩阵进行加密,得到所述二进制矩阵。

可选的,利用所述个数参量、所述密钥集和所述初始化查找表构建所述目标文件对应的查找表,包括:

利用所述密钥集和所述个数参量计算查找表密钥和所述目标文件中各个所述关键词对应的查找表行坐标;

利用所述查找表密钥和所述个数参量计算各个所述关键词对应的单词元素值;

利用所述单词元素值替换具有所述查找表行坐标的元素行中目标元素的元素值;

生成随机二进制字符串,并利用所述随机二进制字符串替换所述查找表中未被替换过的元素值,得到所述查找表。

可选的,所述构建所述关键词的模糊关键词集,包括:

构建所述关键词基于通配符的基本关键词集;

利用所述密钥集对所述基本关键词集进行加密,得到所述模糊关键词集。

可选的,搜索过程,包括:

获取搜索词组,利用所述搜索词组和所述密钥集生成一次陷门,并将所述一次陷门发送给所述云服务器;

所述云服务器利用所述一次陷门和所述模糊关键词集确定所述搜索词组对应的正确词组中各个单词的所述伪随机函数值以及以所述伪随机函数值为行坐标的二进制矩阵行;

利用各个所述伪随机函数值和所述密钥集确定候选文件集并生成二次陷门,将所述二次陷门和候选文件集的信息发送给所述云服务器;

所述云服务器利用所述二次陷门和所述信息从所述候选文件集中获取与所述搜索词组对应的所述加密文件;

获取所述加密文件并对所述加密文件进行解密,得到所述搜索词组对应的所述文件。

可选的,所述利用各个所述伪随机函数值和所述密钥集确定候选文件集,包括:

利用所述伪随机函数值和所述密钥集计算各个所述伪随机函数值对应的函数异或值,并利用所有所述函数异或值做与运算,得到异或与值;

判断所述异与或值中的目标位是否为1;

若是,则将所述目标位对应的所述文件添加到所述候选文件集中。

本发明还提供了一种可搜索加密装置,包括:

密钥集生成模块,用于获取安全参数,利用所述安全参数生成密钥集;

文件加密模块,用于从多个文件中提取多个关键词组成关键词集,并对各个所述文件加密,得到与所述文件对应的加密文件;

二进制矩阵构建模块,用于构建初始化二进制矩阵,利用所述密钥集计算各个所述关键词的伪随机函数值,并利用所述伪随机函数值和所述初始化二进制矩阵构建二进制矩阵;

查找表构建模块,用于构建初始化查找表,获取各个所述关键词与目标文件对应的个数参量,并利用所述个数参量、所述密钥集和所述初始化查找表构建所述目标文件对应的查找表;

安全索引构建模块,用于构建所述关键词的模糊关键词集,利用所述模糊关键词集、所述二进制矩阵和所述查找表构建安全索引,并将安全索引和加密文件发送至云服务器。

本发明还提供了一种可搜索加密设备,包括存储器和处理器,其中:

所述存储器,用于保存计算机程序;

所述处理器,用于执行所述计算机程序,以实现上述的可搜索加密方法。

本发明还提供了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现上述的可搜索加密方法。

该方法获取安全参数,利用安全参数生成密钥集。从多个文件中提取多个关键词组成关键词集,并对各个文件加密,得到与文件对应的加密文件。构建初始化二进制矩阵,利用密钥集计算各个关键词的伪随机函数值,并利用伪随机函数值和初始化二进制矩阵构建二进制矩阵。构建初始化查找表,获取各个关键词与目标文件对应的个数参量,并利用个数参量、密钥集和初始化查找表构建目标文件对应的查找表。构建关键词的模糊关键词集,利用模糊关键词集、二进制矩阵和查找表构建安全索引,并将安全索引和加密文件发送至云服务器。

可见,该方法统计关键词,建立查找表、二进制矩阵和模糊关键词集,并构建安全索引,将安全索引与加密文件一起发送至云服务器,以便在后续为用户提供精确查询服务,得到精确查询结果,避免造成网络带宽和计算资源的浪费。

此外,本发明还提供了一种可搜索加密装置、设备及计算机可读存储介质,同样具有上述有益效果。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例提供的一种可搜索加密方法流程图;

图2为本发明实施例提供的另一种可搜索加密方法流程图;

图3为本发明实施例提供的另一种可搜索加密方法流程图;

图4为本发明实施例提供的另一种可搜索加密方法流程图;

图5为本发明实施例提供的一种可搜索加密装置的结构示意图;

图6为本发明实施例提供的一种可搜索加密设备的结构示意图;

图7为本发明实施例提供的一种二进制矩阵结构示意图;

图8为本发明实施例提供的一种查找表结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参考图1,图1为本发明实施例提供的一种可搜索加密方法流程图。该方法包括:

s101:获取安全参数,利用安全参数生成密钥集。

具体的,安全参数用于生成密钥集,进而执行后续步骤。为了保证数据的安全性,安全参数应该由用户本身持有且不得被泄露。安全参数为一个整数,用于表示密钥集中各个密钥的位数。对于安全参数的具体大小,本实施例对此不做限定。本实施例中,可以用λ表示安全参数。

密钥集中包括若干个密钥,其中可以包括一个文件加解密密钥和若干个伪随机函数密钥,对于伪随机函数密钥的具体个数不做限定。文件加解密密钥可以用于对文件进行私钥加密和解密,伪随机函数密钥可以用于构建二进制矩阵和查找表。本实施例也不限定伪随机函数密钥对应的伪随机函数是否相同,例如密钥集中包括两个伪随机函数密钥时,其分别对应的伪随机函数可以为相同的伪随机函数,也可以为不同的伪随机函数。本实施例中优选的,为了提高二进制矩阵和查找表的安全性,采用五个不同的伪随机函数构建二进制矩阵和查找表,因此密钥集中包括五个伪随机函数密钥。具体的,可以利用sk={k1,k2,k3,k4,k5,k6}表示密钥集,密钥集sk包括一个文件加解密密钥k6和五个伪随机函数密钥,其中,k1为伪随机函数f的密钥,k2为伪随机函数g的密钥,k3为伪随机函数ρ的密钥,k4为伪随机函数φ的密钥,k5为伪随机函数h的密钥。

s102:从多个文件中提取多个关键词组成关键词集,并对各个文件加密,得到与文件对应的加密文件。

文件为想要上传至云端进行存储的含有英语单词的文件。需要说明的是,本实施例并不限定文件的具体数量,由于需要在文件中进行搜索挑选,因此文件的数量应该至少为两个。为了提高可搜索的范围,保证搜索准确性,本实施例可以将所有文件中包括的所有单词均设置为关键词。本实施例中,可以利用w={w1,w2,...,wp}表示关键词集,其中,wi为第i个关键词,共有p个关键词。本实施例并不限定获取关键词集的具体过程,例如可以先对一个文件中的关键词进行确定,在该文件中的关键词确定过后,再对下一个文件中的关键词进行确定;或者可以同时对多个文件中的关键词进行确定。

在得到关键词集后,可以利用密钥集中的文件加解密密钥对各个文件进行加密,得到与文件对应的加密文件。本实施例并不限定对各个文件进行加密得到加密文件的时机,例如可以在得到关键词集后立刻加密,同时对文件进行备份,以便后续利用备份文件构建查找表;或者可以在构建查找表后再对文件进行加密,得到与文件对应的加密文件。具体的,对各个文件进行编号,同时得到编号文件,本实施例中,可以利用di表示编号为i的编号文件。在对文件进行编号后,利用私钥密码算法对编号文件进行加密计算,即可得到与文件对应的加密文件,本实施例并不限定私钥密码算法的具体内容。例如,可以利用密钥集中的文件加解密密钥k6进行如下文件加密:ci=ske.enck6(di)(i∈[1,n]),ci为编号为i的编号文件对应的加密文件,即编号为i的加密文件,ske.enck6为密钥为k6私钥密码算法,n为文件的个数。本实施例并不限定文件加密的具体过程,例如可以在一个文件经过关键词确定后立即对其进行加密,得到加密文件;或者可以等多个文件经过关键词确定后对这多个文件进行加密,得到加密文件;或者可以先对各个文件进行加密,得到加密文件,再利用各个文件的备份文件对关键词进行确定。

s103:构建初始化二进制矩阵,利用密钥集计算各个关键词的伪随机函数值,并利用伪随机函数值和初始化二进制矩阵构建二进制矩阵。

初始化二进制矩阵为元素值全部为0的矩阵,具体的,其可以为2wd×n的零矩阵m0,其中wd为关键词的位长,位长的具体大小本实施例不做限定,只要2wd不小于关键词的个数即可。利用密钥集可计算各个关键词的伪随机函数值,本实施例中优选的,利用sk={k1,k2,k3,k4,k5,k6}中的k1,计算各个关键词wi∈w(i=1→p)的伪随机函数值,即利用伪随机函数f的密钥计算伪随机函数值,可以利用fk1(wi)表示第i个关键词的伪随机函数值。利用伪随机函数值和初始化二进制矩阵可以构建二进制矩阵。具体请参考图2,图2为本发明实施例提供的另一种可搜索加密方法流程图,包括:

s201:判断各个文件中是否存在关键词。

对每一个关键词均做判断,判断各个文件中是否存在该关键词。若存在,则进入步骤s202;若不存在,本实施例不限定此时采取的操作,例如可以进入步骤s205,即无操作。

s202:将初始化二进制矩阵中以伪随机函数值为行坐标,以文件的编号为列坐标的元素值修改为1。

具体的,将fk1(wi)作为第i个关键词的二进制矩阵行坐标,判断各个文件中是否存在wi,若存在,则将以存在wi的文件的编号作为列坐标的元素值修改为1。例如,当关键词wi出现在文件dj(j=1→n)中时,即将m0[fk1(wi)][j]设置为1。

具体的,若fk1(wi)的值为2,而编号为3和5的文件中存在关键词wi,则将初始化二进制矩阵中第2行第3列和第2行第5列元素的元素值修改为1。对每一个关键词均进行如上判断并对初始化二进制矩阵进行如上修改。

s203:生成随机二进制字符串,并将随机二进制字符串填入元素全部为0的矩阵行中,得到未加密二进制矩阵。

在对初始化二进制矩阵进行如上修改后,生成随机二进制字符串,并将随机二进制字符串填入元素全部为0的矩阵行中。二进制字符串为由数字0和数字1组成的字符串,其长度为初始化二进制矩阵的列数,即为n。本实施例并不限定随机二进制字符串的具体内容。对于元素全部为0的矩阵行的数量,本实施例不做限定,具体数量根据实际情况统计得到,若有多个,则多个元素全部为0的矩阵行中填入的二进制字符串可以为相同字符串,也可以为不同字符串。将随机二进制字符串填入元素全部为0的矩阵行中之后,即可得到未加密二进制矩阵。

s204:对未加密二进制矩阵进行加密,得到二进制矩阵。

需要说明的是,对未加密二进制矩阵进行加密的加密方法可以有多种,但需与后续搜索过程中的搜索方法相对应,否则无法实现搜索功能。本实施例中优选的,利用密钥集对未加密二进制矩阵进行加密。具体的,可以利用密钥集sk中的k2,即伪随机函数g的密钥,计算并利用未加密二进制矩阵m0中行号为的矩阵行数据,即进行异或计算,即计算在计算结束后,利用替换对每一个进行过元素值替换的矩阵行均进行上述计算和替换操作,即可实现对未加密二进制矩阵的加密,得到二进制矩阵m。具体请参考图7,图7为本发明实施例提供的一种二进制矩阵结构示意图。

s104:构建初始化查找表,获取各个关键词与目标文件对应的个数参量,并利用个数参量、密钥集和初始化查找表构建目标文件对应的查找表。

初始化查找表为元素值均为0的查找表,具体的,其可以为一个md×e的查找表a0,即有md行,有e列的查找表。md为一个文件中最大不重复单词数量,e为一个文件中单词的最高出现频率,上述两参数根据文件的不同而不同。由于需要对每个文件构建一个相应的查找表,因此可以对文件进行遍历统计,获取md和e的值。同时需要获取各个关键词与目标文件对应的个数参量,个数参量的具体形式本实施例并不限定。在本实施例中,可以利用cwi表示单词wi与目标文件对应的个数参量。需要说明的是,该个数参量可以在统计目标文件中各个关键词个数的过程中变化。例如,在统计单词“a”在目标文件中数量的过程中,“a”在目标文件中第一次出现时,个数参量可以为cwi1;当在目标文件中第二次出现时,可以在cwi1中插入预设参量,此时个数参量可以用cwi2表示。当对整个目标文件统计结束后,利用cwi表示单词wi与目标文件对应的个数参量,即cwi表示单词wi与目标文件对应的最终个数参量。

每个文件均有相应的查找表,故目标文件即为当前正在构建查找表的文件。具体请参考图3,图3为本发明实施例提供的另一种可搜索加密方法流程图,包括:

s301:利用密钥集计算查找表密钥和目标文件中各个关键词对应的查找表行坐标。

具体的,在对文件dj(j=1→n)构建查找表时(即构建编号为j的文件的查找表时),可以利用密钥集sk中的k3,即伪随机函数ρ的密钥计算查找表密钥,即计算sk即为查找表密钥;可以利用密钥集sk中的k4,即伪随机函数φ的密钥计算各个关键词对应的查找表行坐标,即计算即为wi对应的查找表行坐标。

s302:利用查找表密钥计算各个关键词对应的单词元素值。

本实施例中,可以利用sk中的k5,即伪随机函数h的密钥,计算各个关键词对应的单词元素值,即计算即为关键词wi的单词元素值。需要说明的是,伪随机函数h与伪随机函数h并不为同一伪随机函数,伪随机函数h的具体内容本实施例不做限定。

s303:利用单词元素值替换具有查找表行坐标的元素行中目标元素的元素值。

在本实施例中,目标元素为具有查找表行坐标的元素行中第一个为0的元素。利用每一个关键词的单词元素值对原有的元素值0进行替换。

s304:生成随机二进制字符串,并利用随机二进制字符串替换查找表中未被替换过的元素值,得到查找表。

生成随机二进制字符串,并将随机二进制字符串填入查找表中为替换过元素值的元素行中,即可得到查找表a。具体请参考图8,图8为本发明实施例提供的一种查找表结构示意图。随机二进制字符串中字符数量与单词元素值的位数相同,即为e。

s105:构建关键词的模糊关键词集,利用模糊关键词集、二进制矩阵和查找表构建安全索引,并将安全索引和加密文件发送至云服务器。

模糊关键词为各个关键词基于通配符的,编辑距离为d的相近词,通配符即为符号*,编辑距离是指两个字串之间,由一个转成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。本实施例并不限定编辑距离d的具体大小,实际应用中,考虑到实用性和模糊关键词集的大小,一般将编辑距离d设置为1。

本实施例中,可以用表示所有关键词的基于通配符的基本关键词集。例如,关键词sir的基本关键词集为ssir,1={sir,*sir,*ir,s*ir,s*r,si*r,si*,sir*}。在获得关键词的基本关键词集后,利用密钥集对各个基本关键词集进行加密并合并,得到模糊关键词集。需要说明的是,对基本关键词集进行加密时选用的伪随机函数应当与计算关键词的伪随机函数值时采用的伪随机函数相同,因此在本实施例中,利用伪随机函数f对基本关键词集进行加密并合并得到模糊关键词集

在获取模糊关键词集后,利用模糊关键词集、二进制矩阵和各个查找表构建安全索引i={sw,m,a},并将安全索引和对应的加密文件发送至云服务器。

应用本发明实施例提供的可搜索加密方法,统计关键词,建立查找表、二进制矩阵和模糊关键词集,并构建安全索引,将安全索引与加密文件一起发送至云服务器,以便在后续为用户提供精确查询服务,得到精确查询结果,避免造成网络带宽和计算资源的浪费。

基于上述实施例,本实施例将介绍与上述实施例相应的搜索过程,具体请参考图4,图4为本发明实施例提供的另一种可搜索加密方法流程图,包括:

s401:获取搜索词组,利用搜索词组和密钥集生成一次陷门,并将一次陷门发送给云服务器。

搜索词组为用户输入的词组,本实施例中,可以用prs={x1,x2,...,xt}表示搜索词组。在获取搜索词组后,利用密钥集和搜索词组生成一次陷门,需要说明的是,生成一次陷门所采用的伪随机函数应当与生成模糊关键词集时采用的伪随机函数相同。因此在本实施例中,利用伪随机函数f生成一次陷门,具体的,计算搜索词组中各个单词的伪随机函数值,即并利用该伪随机函数值组成一次陷门在生成一次陷门后,将一次陷门发送给云服务器。

s402:云服务器利用一次陷门和模糊关键词集确定搜索词组对应的正确词组中各个单词的伪随机函数值以及以伪随机函数值为行坐标的二进制矩阵行。

云服务器在接收到一次陷门后对一次陷门进行解析,利用γ1,γ2,...,γt在模糊关键词集中确定搜索词组对应的正确词组中各个单词的伪随机函数值γ′1,γ′2,...,γ′t。具体的,若用户输入的搜索词组为myhone,则一次陷门为因此搜索词组对应的正确词组为myhome,其中各个单词的伪随机函数值为在确定伪随机函数值γ′1,γ′2,...,γ′t后,利用伪随机函数值获取二进制矩阵中以伪随机函数值为行坐标的二进制矩阵行m[γ′1],m[γ′2],...,m[γ′t]。在获取伪随机函数值以及二进制矩阵行后,云服务器将其发送给用户。

s403:利用各个伪随机函数值和密钥集确定候选文件集并生成二次陷门,将二次陷门和候选文件集的信息发送给云服务器。

用户在接收到伪随机函数值以及二进制矩阵行后,利用伪随机函数值和密钥集计算各个伪随机函数值对应的函数异或值,即并利用所有的函数异或值做与运算,得到异或与值,即计算θ=θ1∧θ2∧...∧θt。判断异或与值中的各个位是否为1,当前被判断的位即为目标位。判断异或与值中的目标位是否为1,当θ[i]=1(i=1→n)时,即异或与值中的目标位为1时,将目标位对应的加密文件,即编号为i的加密文件添加到候选文件集中,即表示编号为i的加密文件通过第一次筛选,将其添加到候选文件集中。对每一个伪随机函数值均进行如上计算,即可确定候选文件集cd。根据候选文件集可得到候选文件集的信息,候选文件集的信息的具体内容本实施例不做限定,只要能表示候选文件集中包括哪些文件即可,例如可以为各个候选文件的编号;或者可以将整个候选文件集中的文件作为信息进行发送。

在确定候选文件集cd={d1,d2,...,dμ}后,利用密钥集对其中每一个文件dq(q=1→μ),均进行如下计算以生成二次陷门:

利用t′prs,q组成二次陷门tprs={t′prs,1,t′prs,2,...,t′prs,μ},并将二次陷门和候选文件集的信息发送给云服务器。

s404:云服务器利用二次陷门和信息从候选文件集中获取与搜索词组对应的加密文件。

云服务器在获取二次陷门后对其进行解析,通过候选文件集的信息对候选文件集中的每个文件对应的查找表进行如下操作,即对i=1→t:

1)获取单词xi在查找表中对应的第δi,q行数据;

2)获取单词xi+1在查找表中对应的第δi+1,q行数据;

3)获取第δi,q行中各个元素值的右v位,并用sj(j∈[1,e])表示;

4)获取第δi+1,q行中各个元素值的左u位,并用rk(k∈[1,e])表示;

5)计算hζi-1,q(sj)(j=1→e)并比较hζi-1,q(sj)(j=1→e)和rk(k=1→e),若存在一个j和一个k,使得hζi-1,q(sj)=rk,则对i进行更新;

6)当对任意i的取值均满足上述条件时,说明该查找表对应的文件中包括用户输入的搜索词组,该查找表对应的加密文件通过第二次筛选。将所有通过二次筛选的加密文件发送给用户。

s405:获取加密文件并对加密文件进行解密,得到搜索词组对应的文件。

用户在获取加密文件后,利用与得到加密文件时使用的私钥密码算法相对应的解密算法对加密文件进行解密,得到与搜索词组对应的文件。本实施例中,利用得到搜索词组对应的文件,其中,c为通过二次筛选的加密文件,d为搜索词组对应的文件。

应用本发明实施例提供的可搜索加密方法,根据搜索词组生成一次陷门,进而生成二次陷门。利用两次陷门可以进行精确查询,得到精确查询结果,进而获取与搜索词组相对应的文件。由于查询更加精确,因此发送的文件更少,因此可以避免造成网络带宽和计算资源的浪费。

下面对本发明实施例提供的可搜索加密装置进行介绍,下文描述的可搜索加密装置与上文描述的可搜索加密方法可相互对应参照。

请参考图5,图5为本发明实施例提供的一种可搜索加密装置的结构示意图,包括:

密钥集生成模块100,用于获取安全参数,利用安全参数生成密钥集;

文件加密模块200,用于从多个文件中提取多个关键词组成关键词集,并对各个文件加密,得到与文件对应的加密文件;

二进制矩阵构建模块300,用于构建初始化二进制矩阵,利用密钥集计算各个关键词的伪随机函数值,并利用伪随机函数值和初始化二进制矩阵构建二进制矩阵;

查找表构建模块400,用于构建初始化查找表,获取各个关键词与目标文件对应的个数参量,并利用个数参量、密钥集和初始化查找表构建目标文件对应的查找表;

安全索引构建模块500,用于构建关键词的模糊关键词集,利用模糊关键词集、二进制矩阵和查找表构建安全索引,并将安全索引和加密文件发送至云服务器。

可选的,文件加密模块200,包括:

编号单元,用于对各个文件编号,得到编号文件;

加密文件获取单元,用于利用私钥密码算法对各个编号文件进行加密计算,得到与文件对应的加密文件。

可选的,二进制矩阵构建模块300,包括:

关键词存在判断单元,用于判断各个文件中是否存在关键词;

元素值修改单元,用于若文件中存在关键词,则将初始化二进制矩阵中以伪随机函数值为行坐标,以文件的编号为列坐标的元素值修改为1;

未加密二进制矩阵获取单元,用于生成随机二进制字符串,并将随机二进制字符串填入元素全部为0的矩阵行中,得到未加密二进制矩阵;

二进制矩阵获取单元,用于对未加密二进制矩阵进行加密,得到二进制矩阵。

可选的,查找表构建模块400,包括:

计算单元,利用密钥集和个数参量计算查找表密钥和目标文件中各个关键词对应的查找表行坐标;

单词元素值计算单元,用于利用查找表密钥和个数参量计算各个关键词对应的单词元素值;

元素值替换单元,用于利用单词元素值替换具有查找表行坐标的元素行中目标元素的元素值;

查找表获取单元,用于生成随机二进制字符串,并利用随机二进制字符串替换查找表中未被替换过的元素值,得到查找表。

可选的,安全索引构建模块500,包括:

基本关键词集获取单元,用于构建关键词基于通配符的基本关键词集;

模糊关键词集获取单元,用于利用密钥集对基本关键词集进行加密,得到模糊关键词集。

可选的,包括:

一次陷门获取模块,用于获取搜索词组,利用搜索词组和密钥集生成一次陷门,并将一次陷门发送给云服务器;

二进制矩阵行获取模块,用于云服务器利用一次陷门和模糊关键词集确定搜索词组对应的正确词组中各个单词的伪随机函数值以及以伪随机函数值为行坐标的二进制矩阵行;

二次陷门获取模块,用于利用各个伪随机函数值和密钥集确定候选文件集并生成二次陷门,将二次陷门和候选文件集的信息发送给云服务器;

加密文件获取模块,用于云服务器利用二次陷门和候选文件集的信息从候选文件集中获取与搜索词组对应的加密文件;

加密模块,用于获取加密文件并对加密文件进行解密,得到搜索词组对应的文件。

可选的,二次陷门获取模块,包括:

函数异或值获取单元,用于利用伪随机函数值和密钥集计算各个伪随机函数值对应的函数异或值,并利用所有函数异或值做与运算,得到异或与值;

判断单元,用于判断异或与值中的目标位是否为1;

候选文件集确定单元,用于若函数异或值为1,则将目标位对应的文件添加到候选文件集中。

下面对本发明实施例提供的可搜索加密设备进行介绍,下文描述的可搜索加密设备与上文描述的可搜索加密方法可相互对应参照。

请参考图6,图6为本发明实施例所提供的一种可搜索加密设备的结构示意图,该可搜索加密设备包括存储器和处理器,其中:

存储器10,用于存储计算机程序;

处理器20,用于执行计算机程序,以实现上述的可搜索加密方法。

下面对本发明实施例提供的计算机可读存储介质进行介绍,下文描述的计算机可读存储介质与上文描述的可搜索加密方法可相互对应参照。

本发明还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述的可搜索加密方法的步骤。

该计算机可读存储介质可以包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应该认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系属于仅仅用来将一个实体或者操作与另一个实体或者操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其他任何变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。

以上对本发明所提供的可搜索加密方法、装置、设备和计算机可读存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1