CN110851481B - 一种可搜索加密方法、装置、设备及可读存储介质 - Google Patents
一种可搜索加密方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN110851481B CN110851481B CN201911089980.6A CN201911089980A CN110851481B CN 110851481 B CN110851481 B CN 110851481B CN 201911089980 A CN201911089980 A CN 201911089980A CN 110851481 B CN110851481 B CN 110851481B
- Authority
- CN
- China
- Prior art keywords
- file
- lookup table
- keyword
- key
- binary matrix
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6209—Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种可搜索加密方法,包括:获取安全参数,利用安全参数生成密钥集;从多个文件中提取多个关键词组成关键词集,并对各个文件加密,得到与文件对应的加密文件;构建初始化二进制矩阵,利用密钥集计算各个关键词的伪随机函数值,并利用伪随机函数值和初始化二进制矩阵构建二进制矩阵;构建初始化查找表,获取各个关键词与目标文件对应的个数参量,并利用个数参量、密钥集和初始化查找表构建目标文件对应的查找表;构建关键词的模糊关键词集进而构建安全索引,并将安全索引和加密文件发送至云服务器;该方法可以避免造成网络带宽和计算资源浪费;此外,本发明还提供了一种可搜索加密装置、设备及可读存储介质,同样具有上述有益效果。
Description
技术领域
本发明涉及信息安全领域,特别涉及一种可搜索加密方法、装置、设备及计算机可读存储介质。
背景技术
随着云端存储技术的不断普及,人们把越来越多的数据存入云端。为了保证数据的安全性,存入云端的数据均会被加密。加密技术虽然保证了数据安全性,却给用户使用带来诸多不便,例如在进行关键词搜索时无法获取包括该关键词的加密文件。
为了解决上述问题,出现了可搜索加密技术。现有的可搜索加密技术可以在加密文件中搜索用户输入的关键词,提取具有该关键词的文件。但是现有可搜索加密方法具有以下缺点:其搜索结果不准确,包含很多无用数据,例如当用户输入的词组为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:利用单词元素值替换具有查找表行坐标的元素行中目标元素的元素值。
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。具体的,若用户输入的搜索词组为my hone,则一次陷门为因此搜索词组对应的正确词组为my home,其中各个单词的伪随机函数值为在确定伪随机函数值γ′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)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应该认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系属于仅仅用来将一个实体或者操作与另一个实体或者操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其他任何变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
以上对本发明所提供的可搜索加密方法、装置、设备和计算机可读存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (9)
1.一种可搜索加密方法,其特征在于,包括:
获取安全参数,利用所述安全参数生成密钥集;
从多个文件中提取多个关键词组成关键词集,并对各个所述文件加密,得到与所述文件对应的加密文件;
构建初始化二进制矩阵,利用所述密钥集计算各个所述关键词的伪随机函数值,并利用所述伪随机函数值和所述初始化二进制矩阵构建二进制矩阵;
构建初始化查找表,获取各个所述关键词与目标文件对应的个数参量,并利用所述个数参量、所述密钥集和所述初始化查找表构建所述目标文件对应的查找表;
构建所述关键词的模糊关键词集,利用所述模糊关键词集、所述二进制矩阵和所述查找表构建安全索引,并将安全索引和加密文件发送至云服务器;
利用所述个数参量、所述密钥集和所述初始化查找表构建所述目标文件对应的查找表,包括:
利用所述密钥集和所述个数参量计算查找表密钥和所述目标文件中各个所述关键词对应的查找表行坐标;
利用所述查找表密钥和所述个数参量计算各个所述关键词对应的单词元素值;
利用所述单词元素值替换具有所述查找表行坐标的元素行中目标元素的元素值;
生成随机二进制字符串,并利用所述随机二进制字符串替换所述查找表中未被替换过的元素值,得到所述查找表。
2.根据权利要求1所述的可搜索加密方法,其特征在于,所述对各个所述文件加密,得到与所述文件对应的加密文件,包括:
对各个所述文件编号,得到编号文件;
利用私钥密码算法对各个所述编号文件进行加密计算,得到与所述文件对应的加密文件。
3.根据权利要求2所述的可搜索加密方法,其特征在于,利用所述伪随机函数值和所述初始化二进制矩阵构建二进制矩阵,包括:
判断各个所述文件中是否存在所述关键词;
若是,则将所述初始化二进制矩阵中以所述伪随机函数值为行坐标,以所述文件的编号为列坐标的元素值修改为1;
生成随机二进制字符串,并将所述随机二进制字符串填入元素全部为0的矩阵行中,得到未加密二进制矩阵;
对所述未加密二进制矩阵进行加密,得到所述二进制矩阵。
4.根据权利要求1所述的可搜索加密方法,其特征在于,所述构建所述关键词的模糊关键词集,包括:
构建所述关键词基于通配符的基本关键词集;
利用所述密钥集对所述基本关键词集进行加密,得到所述模糊关键词集。
5.根据权利要求1至4任一项所述的可搜索加密方法,其特征在于,搜索过程,包括:
获取搜索词组,利用所述搜索词组和所述密钥集生成一次陷门,并将所述一次陷门发送给所述云服务器;
所述云服务器利用所述一次陷门和所述模糊关键词集确定所述搜索词组对应的正确词组中各个单词的所述伪随机函数值以及以所述伪随机函数值为行坐标的二进制矩阵行;
利用各个所述伪随机函数值和所述密钥集确定候选文件集并生成二次陷门,将所述二次陷门和候选文件集的信息发送给所述云服务器;
所述云服务器利用所述二次陷门和所述信息从所述候选文件集中获取与所述搜索词组对应的所述加密文件;
获取所述加密文件并对所述加密文件进行解密,得到所述搜索词组对应的所述文件。
6.根据权利要求5所述的可搜索加密方法,其特征在于,所述利用各个所述伪随机函数值和所述密钥集确定候选文件集,包括:
利用所述伪随机函数值和所述密钥集计算各个所述伪随机函数值对应的函数异或值,并利用所有所述函数异或值做与运算,得到异或与值;
判断所述异或与值中的目标位是否为1;
若是,则将所述目标位对应的所述文件添加到所述候选文件集中。
7.一种可搜索加密装置,其特征在于,包括:
密钥集生成模块,用于获取安全参数,利用所述安全参数生成密钥集;
文件加密模块,用于从多个文件中提取多个关键词组成关键词集,并对各个所述文件加密,得到与所述文件对应的加密文件;
二进制矩阵构建模块,用于构建初始化二进制矩阵,利用所述密钥集计算各个所述关键词的伪随机函数值,并利用所述伪随机函数值和所述初始化二进制矩阵构建二进制矩阵;
查找表构建模块,用于构建初始化查找表,获取各个所述关键词与目标文件对应的个数参量,并利用所述个数参量、所述密钥集和所述初始化查找表构建所述目标文件对应的查找表;
安全索引构建模块,用于构建所述关键词的模糊关键词集,利用所述模糊关键词集、所述二进制矩阵和所述查找表构建安全索引,并将安全索引和加密文件发送至云服务器;
查找表构建模块,包括:
计算单元,利用密钥集和个数参量计算查找表密钥和目标文件中各个关键词对应的查找表行坐标;
单词元素值计算单元,用于利用查找表密钥和个数参量计算各个关键词对应的单词元素值;
元素值替换单元,用于利用单词元素值替换具有查找表行坐标的元素行中目标元素的元素值;
查找表获取单元,用于生成随机二进制字符串,并利用随机二进制字符串替换查找表中未被替换过的元素值,得到查找表。
8.一种可搜索加密设备,其特征在于,包括存储器和处理器,其中:
所述存储器,用于保存计算机程序;
所述处理器,用于执行所述计算机程序,以实现如权利要求1至6任一项所述的可搜索加密方法。
9.一种计算机可读存储介质,其特征在于,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的可搜索加密方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911089980.6A CN110851481B (zh) | 2019-11-08 | 2019-11-08 | 一种可搜索加密方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911089980.6A CN110851481B (zh) | 2019-11-08 | 2019-11-08 | 一种可搜索加密方法、装置、设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110851481A CN110851481A (zh) | 2020-02-28 |
CN110851481B true CN110851481B (zh) | 2022-06-28 |
Family
ID=69600116
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911089980.6A Active CN110851481B (zh) | 2019-11-08 | 2019-11-08 | 一种可搜索加密方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110851481B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110851481B (zh) * | 2019-11-08 | 2022-06-28 | 青岛大学 | 一种可搜索加密方法、装置、设备及可读存储介质 |
CN112632063B (zh) * | 2020-12-08 | 2023-06-09 | 青岛大学 | 受限最短距离查询方法、电子设备和可读存储介质 |
CN113157862B (zh) * | 2021-04-13 | 2024-03-22 | 青岛大学 | 词组搜索方法、装置、云服务器、系统及存储介质 |
CN115189962B (zh) * | 2022-07-25 | 2024-02-13 | 中国测绘科学研究院 | 一种基于sm4算法的地理数据逐点传输方法及系统 |
CN115098649B (zh) * | 2022-08-25 | 2022-11-22 | 北京融数联智科技有限公司 | 基于双密钥不经意伪随机函数的关键词搜索方法和系统 |
KR102613985B1 (ko) * | 2023-03-31 | 2023-12-14 | 고려대학교산학협력단 | 탐색 가능한 암호화에서 역방향 안정성 하향 공격에 대한 방어 방법, 장치 및 시스템 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104052740A (zh) * | 2014-05-22 | 2014-09-17 | 西安理工大学 | 云存储中可验证的基于词典的可搜索加密方法 |
CN105049196A (zh) * | 2015-07-13 | 2015-11-11 | 西安理工大学 | 云存储中指定位置的多个关键词可搜索的加密方法 |
CN106407822A (zh) * | 2016-09-14 | 2017-02-15 | 华南理工大学 | 一种关键词、多关键词可搜索加密方法和系统 |
CN108055122A (zh) * | 2017-11-17 | 2018-05-18 | 西安电子科技大学 | 可验证的防内存泄露动态可搜索加密方法、云服务器 |
CN108632032A (zh) * | 2018-02-22 | 2018-10-09 | 福州大学 | 无密钥托管的安全多关键词排序检索系统 |
CN108712366A (zh) * | 2018-03-27 | 2018-10-26 | 西安电子科技大学 | 云环境中支持词形词义模糊检索的可搜索加密方法及系统 |
CN109063509A (zh) * | 2018-08-07 | 2018-12-21 | 上海海事大学 | 一种基于关键词语义排序的可搜索加密方法 |
CN109471964A (zh) * | 2018-10-23 | 2019-03-15 | 哈尔滨工程大学 | 一种基于同义词集的模糊多关键词可搜索加密方法 |
CN110069944A (zh) * | 2019-04-03 | 2019-07-30 | 南方电网科学研究院有限责任公司 | 一种可搜索加密的数据检索方法及系统 |
CN110851481A (zh) * | 2019-11-08 | 2020-02-28 | 青岛大学 | 一种可搜索加密方法、装置、设备及可读存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10007803B2 (en) * | 2012-10-26 | 2018-06-26 | Infosys Limited | Searching over encrypted keywords in a database |
US10341086B2 (en) * | 2013-01-29 | 2019-07-02 | Nec Corporation | Method and system for providing encrypted data for searching of information therein and a method and system for searching of information on encrypted data |
-
2019
- 2019-11-08 CN CN201911089980.6A patent/CN110851481B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104052740A (zh) * | 2014-05-22 | 2014-09-17 | 西安理工大学 | 云存储中可验证的基于词典的可搜索加密方法 |
CN105049196A (zh) * | 2015-07-13 | 2015-11-11 | 西安理工大学 | 云存储中指定位置的多个关键词可搜索的加密方法 |
CN106407822A (zh) * | 2016-09-14 | 2017-02-15 | 华南理工大学 | 一种关键词、多关键词可搜索加密方法和系统 |
CN108055122A (zh) * | 2017-11-17 | 2018-05-18 | 西安电子科技大学 | 可验证的防内存泄露动态可搜索加密方法、云服务器 |
CN108632032A (zh) * | 2018-02-22 | 2018-10-09 | 福州大学 | 无密钥托管的安全多关键词排序检索系统 |
CN108712366A (zh) * | 2018-03-27 | 2018-10-26 | 西安电子科技大学 | 云环境中支持词形词义模糊检索的可搜索加密方法及系统 |
CN109063509A (zh) * | 2018-08-07 | 2018-12-21 | 上海海事大学 | 一种基于关键词语义排序的可搜索加密方法 |
CN109471964A (zh) * | 2018-10-23 | 2019-03-15 | 哈尔滨工程大学 | 一种基于同义词集的模糊多关键词可搜索加密方法 |
CN110069944A (zh) * | 2019-04-03 | 2019-07-30 | 南方电网科学研究院有限责任公司 | 一种可搜索加密的数据检索方法及系统 |
CN110851481A (zh) * | 2019-11-08 | 2020-02-28 | 青岛大学 | 一种可搜索加密方法、装置、设备及可读存储介质 |
Non-Patent Citations (2)
Title |
---|
"LDAP-based authentication for Samba";Keith Robertson;《ibm.com/developerWorks》;20081231;第1-32页 * |
"基于LDAP的高可用目录服务器的设计与实现";章松;《软件》;20151231;第1-4页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110851481A (zh) | 2020-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110851481B (zh) | 一种可搜索加密方法、装置、设备及可读存储介质 | |
CN107480163B (zh) | 一种云环境下支持隐私保护的高效密文图像检索方法 | |
WO2017036547A1 (en) | Method for providing encrypted data in a database and method for searching on encrypted data | |
Wang et al. | A privacy-preserving and traitor tracking content-based image retrieval scheme in cloud computing | |
CN102314580A (zh) | 一种基于向量和矩阵运算的支持计算的加密方法 | |
US20170262546A1 (en) | Key search token for encrypted data | |
CN111026788A (zh) | 一种混合云中基于同态加密的多关键词密文排序检索方法 | |
Guo et al. | Enabling secure cross-modal retrieval over encrypted heterogeneous IoT databases with collective matrix factorization | |
CN111475690B (zh) | 字符串的匹配方法和装置、数据检测方法、服务器 | |
Andola et al. | A secure searchable encryption scheme for cloud using hash-based indexing | |
US20120131355A1 (en) | Range search system, range search method, and range search program | |
CN113779597A (zh) | 加密文档的存储和相似检索方法、装置、设备及介质 | |
US20230113896A1 (en) | System for Restrictive Discovery of Private Data Feature Intersection | |
US8594329B2 (en) | Non-interactive verifiable, delegated computation | |
Yan et al. | Privacy-preserving multi-source image retrieval in edge computing | |
CN117294429B (zh) | 基于区块链的公共资源交易数据加解密方法、系统及介质 | |
WO2024212647A1 (zh) | 数据匹配方法、装置以及系统 | |
KR101444828B1 (ko) | 암호화된 이미지의 저장 및 검색 방법 | |
CN117951730A (zh) | 一种基于哈希索引的云端安全可搜索加密方法 | |
CN112836078B (zh) | 一种图上最短路径安全查询方法、装置、系统及存储介质 | |
Cheng et al. | Enabling secure and efficient kNN query processing over encrypted spatial data in the cloud | |
Xu et al. | Practical and privacy-preserving geo-social-based POI recommendation | |
Sharma et al. | Privacy-preserving boosting with random linear classifiers | |
CN111901447B (zh) | 域名数据管理方法、装置、设备及存储介质 | |
CN115048432A (zh) | 基于布隆过滤器的模糊关键词公共审计方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |