1.一种数据可搜索加密方法,其特征在于,步骤如下:
获取数据拥有者上传的数据文件;
提取出各数据文件的关键词;
对每个数据文件进行摘要提取,得到摘要文件;
根据各关键词与各数据文件之间的对应关系,通过加密算法进行数据处理后生成字典γ,其中字典γ中存储各关键词对应到各数据文件的标签以及各关键词对应到各数据文件的索引信息,其中针对于每一关键词,在字典γ中该关键词对应到各数据文件的标签和该关键词对应到各数据文件的索引信息为一一成对关系;
针对各数据文件进行加密得到加密数据文件;
针对各摘要文件进行加密得到加密后的摘要文件。
2.根据权利要求1所述的数据可搜索加密方法,其特征在于,根据各关键词与各数据文件之间的对应关系,通过加密算法进行数据处理后生成字典γ的具体过程如下:S11、建立一个空表L,为表L选取主密钥K;
S12、针对于每个关键词,获取到包括该关键词的各数据文件,并且通过主密钥K对该关键词生成一对子密钥K1,K2:K1←F(K,1||ω);
K2←F(K,2||ω);
其中ω为关键词;
针对于每个关键词,对包括该关键词的各数据文件进行编号,得到对应各数据文件对应的文件号,并且对各文件号进行排序,得到各文件号的序号;
针对于每个关键词,采用密钥K1针对该关键词对应的各文件号依次生成标签,同时采用密钥K2针对该关键词对应的各文件号依次进行加密,将加密后的结果作为该关键词对应到数据文件的索引信息,得到标签索引对(Li,di):Li←F(K1,i);
di←Enc(K2,idi);
i=0,1,…,N-1;
其中Li为采用密钥K1针对关键词ω对应的第i个文件号idi生成的标签;di为采用密钥K2加密关键词ω对应的第i个文件号idi后得到结果,将该结果作为该关键词对应到文件号为idi的数据文件的索引,N为包括关键词ω的数据文件的总数;
S13、针对于每个关键词,每得到一个标签索引对(Li,di),将其按照字典γ顺序依次插入表L中;并且对每一个标签索引对(Li,di)添加时间戳timei,得到包含(Li,di,timei)的表L,通过该表L创建得到字典γ;其中timei的初始时间为加密完成各标签索引对(Li,di)中索引信息di的时间。
3.根据权利要求1所述的数据可搜索加密方法,其特征在于,获取到各摘要文件的过程具体如下:首先通过文档摘要提取算法从数据文件中提取出摘要文件;然后以摘要对应的文件号为索引,将摘要存储在对应位置,并对剩余位置进行字符填充,形成一个摘要文件;
采用Burrows-Wheeler转换算法和FM索引技术对各摘要文件进行子串搜索加密,具体过程如下:针对于摘要文件中不同的每个字符,分别创建链表;针对于各字符链表,其中每个节点存储元组为
针对于摘要文件中不同的每个字符,将各字符链表第一个节点即链表头的存储元组进行加密处理,得到:m
其中
针对于摘要文件中各个不同的字符,首先进行加密处理,将各不同字符加密处理后的数据作为链表索引,得到链表索引集,并且分别将各不同字符对应的各链表索引映射到各个不同字符链表的链表头,得到各个不同字符的链表索引和链表头之间的映射关系;其中摘要文件中各个不同的字符加密处理后为:K为主密钥,FK(cm)表示通过主密钥K针对字符cm进行加密;FK′(cm)表示通过副密钥K′针对字符cm进行加密。
4.一种数据可搜索加密系统,其特征在于,包括:
数据文件获取单元,用于获取数据拥有者上传的数据文件;
关键词提取单元,用于提取出各数据文件的关键词,
摘要提取单元,用于对每个数据文件进行摘要提取,得到摘要文件;
字典生成单元,根据各关键词与各数据文件之间的对应关系,通过加密算法进行数据处理后生成字典γ,其中字典γ中存储各关键词对应到各数据文件的标签以及各关键词对应到各数据文件的索引信息,其中针对于每一关键词,该关键词对应到各数据文件的标签和该关键词对应到各数据文件的索引信息为一一成对关系;
数据文件加密单元,用于针对各数据文件进行加密得到加密数据文件;
摘要文件加密单元,针对各摘要文件进行子串搜索加密得到加密后的摘要文件。
5.一种终端,其特征在于,包括处理器以及用于存储处理器可执行程序的存储器,其特征在于:所述处理器执行存储器存储的程序时,实现权利要求1-3中任一项所述的数据可搜索加密方法。
6.一种关键词搜索方法,其特征在于,步骤如下:
步骤X1、首先获取到由权利要求1至3中任一项所述数据可搜索加密方法得到的字典γ、加密后的数据文件以及加密后的摘要文件;
在接收到用户发出的需要进行搜索的各关键词时,首先通过搜索字典γ确定是否有加密后的数据文件中包括该关键词;若是,则将对应加密后的数据文件作为查询结果返回给用户进行解密;
若否,则进入步骤X2;
步骤X2、在加密后的摘要文件集中针对需要进行搜索的各关键词进行子串搜索;
若通过子串搜索后,在摘要文件中查询到该关键词,则将上述摘要文件对应的加密后的数据文件作为查询结果返回给用户;在用户确认为正确的情况下,则确定上述作为查询结果的对应数据文件包括该关键词,计算该关键词对应上述数据文件的标签以及对应数据文件的索引信息,并且添加到字典γ中,实现对字典γ的更新;
若通过子串搜索后,在摘要文件中未能搜索到,则返回搜索失败的结果给用户。
7.根据权利要求6所述的关键词搜索方法,其特征在于,所述步骤X1中,针对于需要进行搜索的各关键词,通过搜索字典γ确定是否有加密后的数据文件中包括该关键词的具体过程如下:步骤X11、针对于用户需要进行搜索的每一关键词,根据用户发出的主密钥K对该关键词生成一对子密钥K′1,K′2:K′1←F(K,1||ω′);
K′2←F(K,2||ω′);
其中ω′为用户需要进行搜索的关键词;
步骤X12、针对于需要进行搜索的每一关键词,遍历数据文件对应的文件号序号,通过子密钥K′1生成该关键词对应到各文件号的数据文件的标签:Li′←F(K′1,i′);i′=0,1,2,…I;
其中i′为遍历的数据文件对应的文件号序号,I为遍历的数据文件对应文件序号的最大值;Li′为关键词ω′对应到文件号序号为i′的数据文件的标签;
步骤X13、针对于需要进行搜索的每一关键词,在字典γ中搜索是否存在上述步骤X12生成的该关键词对应到各文件号的数据文件的标签Li′;
若否,则进入步骤X2;
若是,则在字典γ中获取到与该标签成对的索引信息,然后通过该关键词的子密钥K′2解密索引信息,通过解密后的索引信息获取到对应加密后的数据文件,以作为查询结果返回给用户进行解密;同时,将字典γ中存储的该标签索引对的时间戳更新为该关键词的子密钥K′2解密索引信息完成的时间;
其中,在字典γ中获取到与该标签成对的索引信息为:
di′←Get(γ,Li′);
其中di′为在字典Γ获取到与标签Li′成对的索引信息;
其中,通过该关键词的子密钥K′2得到解密后的索引信息为:di←Dec(K′2,di′);
其中di为di′通过关键词ω′的子密钥K′2解密后的索引信息,其中解密后的索引信息di即为包括关键词ω′的数据文件的文件号。
8.根据权利要求6所述的关键词搜索方法,其特征在于,所述步骤X2中,在加密后的摘要文件集中采用Burrows-Wheeler转换算法和FM索引技术进行子串搜索,具体过程如下:步骤X21、针对于需要进行搜索的关键词ω′,生成关键词查询令牌tkT,S:tkT,S=F(K,ω′[1…M])=F(K,ω′[1]),F(K,ω′[2]),…F(K,ω′[M]),F(K′,ω′[M]);
其中,ω′[1],ω′[2],…,ω′[M]为需要进行搜索的关键词ω′的各字符,M为关键词ω′的字符总数;K′为副密钥,K′=F(K,2),K为主密钥;
步骤X22、针对于需要进行搜索的关键词ω′的各字符ω′[m],m=1,2,3,…M,首先对其进行加密得到: 然后从链表索引集中寻找密文为的链表索引,通过各字符ω′[m]的链表索引和链表头之间的映射关系,获取到各字符ω′[m]的链表;
步骤X23、针对于需要进行搜索的关键词ω′的最后一个字符ω′[M],将字符ω′[M]的链表中的每个节点映射到加密FM元组:其中 对应处于FM的F列的数据;
其中 对应为处于FM的L列的数据;
其中E(posj)对应为处于FM的SA列第j行的数据,posj表示SA列第j行的数据对应的字符在摘要文件中的位置密文,n为FM的总行数;
其中, 为处于FM第F列第j行的数据对应的字符, 为处于FM第F列第j行的数据对应的字符 的位置序号; 为处于FM第L列第j行的数据对应的字符, 为处于FM第L列第j行的数据对应的字符 的位置序号;
针对于ω′[M]的链表中每一字节所映射到的每一加密FM元组:首先采用FK(ω′[m])针对处于FM的F列的数据即 进行异或操作,实现解密,得到
然后采用 作为密钥解密处于FM的L列的数据第一部分的元素得到 将 和处于FM的L列的数据第二部分的元素
进行异或操作,得到异或操作结果,然后进入步骤X24;
步骤X24、针对于上一步骤得到的每一异或操作结果,在FM的F列中搜索数据为该异或操作结果的行,然后获取到该行的FM元组,寻找到节点映射到该FM元组的链表,从而获取到该链表对应的字符cx,作为当前搜索到的字符;其中x为当前在FM的F列中搜索数据的次数;
进入步骤X25;
步骤X25、判断步骤X24中获取到的各字符cx中是否有和字符ω′[M-x]相同的字符;
若是,则判断当前在FM的F列中搜索数据的次数x是否等于M-1;若是,则结束子串搜索,并且子串搜索成功,对应摘要文件中包括需要进行搜索的关键词ω′;若否,则进入步骤X26;
若否,则结束子串搜索,并且返回子串搜索失败的结果,即对应摘要文件中不包括关键词ω′;
步骤X26、针对于步骤X24获取到的和字符ω′[M-x]相同的字符cx,得到步骤X24获取该字符cx时所获取到的各FM元组,并且对于各FM元组进行以下操作:首先采用FK(cx)针对处于FM的F列的数据即 进行异或操作,实现解密,得到
然后采用 作为密钥解密处于FM的L列的数据第一部分的元素得到 将 和处于FM的L列的数据第二部分的元素
进行异或操作,得到异或操作结果;然后进入步骤X24。
9.根据权利要求6所述的关键词搜索方法,其特征在于,将字典γ设定为固定长度的字典,所述步骤X2中,实现对字典γ的更新过程如下:当需要添加新的关键词对应数据文件的标签以及对应数据文件的索引信息到字典γ时,即当需要添加新的关键词的标签索引对到字典γ时,若字典当前已经存储满标签索引对,则将新的关键词的标签索引对替换掉字典γ中时间戳最小的标签索引对,当新的关键词的标签索引对为多个时,则替换掉字典γ中时间戳最小的多个标签索引对。
10.一种计算设备,其特征在于,包括处理器以及用于存储处理器可执行程序的存储器,其特征在于:所述处理器执行存储器存储的程序时,实现权利要求6-9中任一项所述的关键词搜索方法。