一种加密文件的检索方法、系统、终端设备及存储介质与流程

文档序号:14426601阅读:160来源:国知局

本发明涉及电子技术领域,尤其涉及一种加密文件的检索方法、系统、终端设备及存储介质。



背景技术:

随着云计算的不断发展,越来越多的用户将文件保存在云服务器,为了保证云端服务器上的数据的安全性,通常会将文件加密后再上传到云服务器中。当用户需要搜索加密文件时,可以将搜索关键字的搜索凭证发送到云服务器,云服务器使用搜索凭证对每个加密文件进行匹配,将匹配成功的加密文件返回给用户,用户对返回的文件进行解密后即可读取该文件。

但是,传统的可搜索加密方法虽然能够实现对加密文件进行检索的功能,但是,其仅支持共享密钥的方式,即数据提供者和使用者共享同一个密钥实现对文件的加解密和检索操作,这种共享密钥的方式很容易造成密钥泄露,对数据安全性造成影响。



技术实现要素:

本发明实施例提供一种加密文件的检索方法,以解决现有的通过共享密钥方式实现对加密文件的检索导致数据安全性较低的问题。

第一方面,本发明实施例提供一种加密文件的检索方法,包括:

第一终端使用第一用户密钥对共享文件进行加密,得到加密文件,并将所述加密文件和所述共享文件对应的索引信息发送到服务端,其中,所述第一用户密钥由密钥管理中心根据预设的根密钥生成;

所述服务端使用第一服务端密钥对所述加密文件进行加密,得到二重加密文件,其中,所述第一服务端密钥由所述密钥管理中心根据预设的根密钥生成,并与所述第一用户密钥唯一对应;

第二终端获取目标关键字信息,并将所述目标关键字信息发送到所述服务端,其中,所述第二终端为所述第一终端的授权用户端;

所述服务端根据所述目标关键字信息,在所述索引信息中进行检索,获取与检索到的所述目标关键字信息相匹配的目标二重加密文件,并使用第二服务端密钥对所述目标二重加密文件进行解密,得到目标加密文件,其中,所述第二服务端密钥由所述密钥管理中心根据所述根密钥生成;

所述服务端将所述目标加密文件发送给所述第二终端;

所述第二终端使用第二用户密钥对所述目标加密文件进行解密,得到目共享标文件,其中,所述第二用户密钥由所述密钥管理中心根据所述根密钥生成,并与所述第二服务端密钥唯一对应。

第二方面,本发明实施例提供一种加密文件的检索系统,包括第一终端、第二终端、服务端和密钥管理中心;所述第一终端和所述服务器之间,所述第二终端和所述服务器之间,以及所述密钥管理中心分别和所述第一终端、所述第二终端、所述服务端之间均通过网络进行连接;

所述第一终端包括:

加密模块,用于使用第一用户密钥对共享文件进行加密,得到加密文件,并将所述加密文件和所述共享文件对应的索引信息发送到服务端,其中,所述第一用户密钥由密钥管理中心根据预设的根密钥生成;

所述第二终端包括:

目标关键字模块,用于获取目标关键字信息,并将所述目标关键字信息发送到所述服务端,其中,所述第二终端为所述第一终端的授权用户端;

所述服务端包括:

二重加密模块,用于使用第一服务端密钥对所述加密文件进行加密,得到二重加密文件,其中,所述第一服务端密钥由所述密钥管理中心根据预设的根密钥生成,并与所述第一用户密钥唯一对应;

检索模块,用于根据所述目标关键字信息,在所述索引信息中进行检索,获取与检索到的所述目标关键字信息相匹配的目标二重加密文件,并使用第二服务端密钥对所述目标二重加密文件进行解密,得到目标加密文件,其中,所述第二服务端密钥由所述密钥管理中心根据所述根密钥生成;

发送模块,用于将所述目标加密文件发送给所述第二终端;

所述第二终端还包括:

解密模块,用于使用第二用户密钥对所述目标加密文件进行解密,得到目标共享文件,其中,所述第二用户密钥由所述密钥管理中心根据所述根密钥生成,并与所述第二服务端密钥唯一对应;

所述密钥管理中心,用于根据所述预设的根密钥生成所述第一用户密钥、所述第一服务端密钥、所述第二用户密钥和所述第二服务端密钥。

第三方面,本发明实施例提供一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述加密文件的检索方法的步骤。

第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现所述发票加密文件的检索方法的步骤。

本发明实施例与现有技术相比具有如下优点:作为数据提供者的第一终端使用第一用户密钥将共享文件加密后上传到服务端,服务端使用第一服务端密钥对加密文件进行加密,第二终端作为第一终端的授权用户端,其将用于检索的目标关键字信息发送到服务端,服务端根据该目标关键字信息检索到对应的二重加密文件后,使用第二服务端密钥对该二重加密文件进行解密,将得到的目标加密文件发送给第二终端,第二终端使用第二用户密钥对该目标加密文件进行解密,得到目标共享文件,由于第一用户密钥和第一服务端密钥唯一对应,第二用户密钥和第二服务端密钥唯一对应,并且,第一用户密钥和第一服务端密钥以及第二用户密钥和第二服务端密钥均由密钥管理中心根据根密钥生成,从而使得第一终端和第二终端可以使用不同的密钥对共享文件进行加解密,并且不同的第二终端之间的密钥也可以互不相同,从而实现了多个授权用户可以通过各自不同的密钥对共享文件进行检索,提高共享文件的数据安全性,同时,由于服务端对加密文件进行二次加密,进一步提高了共享文件的数据安全性。

附图说明

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

图1是本发明实施例提供的加密文件的检索方法的应用场景示意图;

图2是本发明实施例提供的加密文件的检索方法的实现流程图;

图3是本发明实施例提供的加密文件的检索方法中步骤s1的实现流程图;

图4是本发明实施例提供的加密文件的检索方法中步骤s2的实现流程图;

图5是本发明实施例提供的加密文件的检索方法中步骤s4的实现流程图;

图6是本发明实施例提供的加密文件的检索系统的示意图;

图7是本发明实施例提供的终端设备的示意图。

具体实施方式

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

请参阅图1,图1示出了本发明实施例提供的加密文件的检索方法的应用场景,该加密文件的检索方法的应用场景中涉及到第一终端、第二终端、服务端和密钥管理中心,其中,第一终端为数据提供者,第二终端为第一终端的授权用户端,第一终端可以同时授权多个第二终端作为授权用户端,无论是第一终端还是每个第二终端,均由密钥管理中心统一分配密钥,密钥管理中心完成对加密文件检索过程中所使用的全部密钥的生成和分配等管理操作,并且第一终端和每个第二终端之间的密钥均不相同,每个终端使用自己的密钥完成对共享文件的加解密。

请参阅图2,图2示出了本发明实施例提供的加密文件的检索方法的实现流程。详述如下:

s1:第一终端使用第一用户密钥对共享文件进行加密,得到加密文件,并将该加密文件和共享文件对应的索引信息发送到服务端,其中,第一用户密钥由密钥管理中心根据预设的根密钥生成。

在本发明实施例中,密钥管理中心预先根据预设的根密钥生成第一用户密钥和第一服务端密钥,并且第一用户密钥和第一服务端密钥唯一对应,密钥管理中心将第一用户密钥发送给第一终端,并将对应的第一服务端密钥发送给服务端。

需要说明的是,第二终端在成功申请成为第一终端的授权用户端时,密钥管理中心会基于与生成第一用户密钥和第一服务端密钥相同的根密钥,生成授权用户端的第二用户密钥和第二服务端密钥,将第二用户密钥发送给第二终端,同时将对应的第二服务端密钥发送给服务端。

服务端将接收到的每个服务端密钥与对应的用户端的用户标识信息关联保存。

具体地,密钥生成和分配的实现过程包括(a1)至(a5),详细说明如下:

(a1)密钥管理中心从基础密钥集合中随机选择一个数x作为根密钥;

(a2)对于用户k,包括第一用户终端或者第二用户终端的用户,密钥管理中心从基础密钥集合中随机选择一个数xk1,并计算xk2=x-xk1;其中,k为用户端的用户标识信息;

(a3)密钥管理中心将kuk=(xk1)作为用户k的密钥,将ksk=(xk2)作为用户k对应的服务端密钥;

(a4)密钥管理中心将kuk发送给用户k,并将ksk发送给服务端;

(a5)服务端接收到ksk后,将用户标识信息k和ksk关联保存为(k,ksk)。

当作为数据提供者的第一终端需要共享数据时,使用第一用户密钥对待上传的共享文件进行加密,得到加密文件。

具体地,第一终端利用elgamal代理加密算法对共享文件进行加密,得到的加密文件为c(file)=(gx,grxi1file),其中,file为共享文件,x为根密钥,i为第一终端的用户标识信息,xi1为第一用户密钥,g为密钥管理中心根据预设的安全参数生成的循环群的一个生成元,r为基础密钥集合中的随机选择的一个随机数,密钥管理中心在向第一终端发送第一用户密钥时,将g和r同步发送给第一终端。

共享文件对应的索引信息用于搜索该共享文件,第一终端可以通过对共享文件的内容识别确定对应的索引信息,也可以直接获取用户输入的索引关键字建立索引信息,此处不做限制。

第一终端将加密文件和索引信息发送到服务端的同时,将自身的用户标识信息也发送到服务端。

s2:服务端使用第一服务端密钥对加密文件进行加密,得到二重加密文件,其中,第一服务端密钥由密钥管理中心根据预设的根密钥生成,并与第一用户密钥唯一对应。

在本发明实施例中,服务端在接收到第一终端发送的加密文件后,根据第一终端的用户标识信息,从关联保存的记录中获取该第一终端的用户标识信息对应的第一服务端密钥,并使用该第一服务端密钥对加密文件进行二次加密,得到二重加密文件c*(file)=(gx,(gr)xi2*grxi1file),其中,xi2为第一服务端密钥,并且xi1+xi2=x,由于(gr)xi2*grxi1file=grxi2+rxi1file=gr(xi2+xi1)file=grxfile,因此最终得到的二重加密文件为c*(file)=(gx,grxfile),由此可知,虽然第一终端使用第一用户密钥对共享文件进行加密,然后服务端再使用第一服务端密钥进行二次加密,最终得到的二重加密文件与根密钥x直接相关。

服务端将索引信息和二重加密文件关联保存,以便通过该索引信息能够搜索到对应的二重加密文件。

s3:第二终端获取目标关键字信息,并将该目标关键字信息发送到服务端,其中,第二终端为第一终端的授权用户端。

在本发明实施例中,当作为授权用户端的第二终端需要检索该共享文件时,获取进行检索的目标关键字信息,该目标关键字信息由第二终端的用户输入的检索关键字生成。

第二终端将目标关键字信息发送到服务端的同时,将自身的标识信息也发送到服务端。

s4:服务端根据目标关键字信息,在索引信息中进行检索,获取与检索到的目标关键字信息相匹配的目标二重加密文件,并使用第二服务端密钥对该目标二重加密文件进行解密,得到目标加密文件,其中,第二服务端密钥由密钥管理中心根据预设的根密钥生成。

在本发明实施例中,服务端接收到第二终端发送的目标关键字信息,在预存的索引信息中进行检索,若检索到该目标关键字信息,则获取该目标关键字信息对应的目标二重加密文件。

服务端根据第二终端的标识信息,从关联保存的记录中获取该第二终端的标识信息对应的第二服务端密钥,使用该第二服务端密钥对目标二重加密文件进行解密,得到目标加密文件。

具体地,目标二重加密文件为c*(file)=(gx,grxfile),假设第二终端的标识信息为j,第二服务端密钥为xj2,第二用户密钥为xj1,xj1+xj2=x,则使用第二服务端密钥对目标二重加密文件进行解密,得到目标加密文件c'(file)=(gx,(gr)-xj2*grxfile),由于(gr)-xj2*grxfile=gr(x-xj2)file=grxj1file,因此最终得到的目标加密文件c'(file)=(gx,grxj1file)。由此可知,此时的目标加密文件已经变成由第二用户密钥xj1加密得到,即该目标加密文件与通过第一用户密钥xi1加密得到的加密文件不同。

s5:服务端将目标加密文件发送给第二终端。

在本发明实施例中,服务端将步骤s4得到的目标加密文件c'(file)=(gx,grxj1file)发送给第二终端。

s6:第二终端使用第二用户密钥对目标加密文件进行解密,得到目标共享文件,其中,第二用户密钥由密钥管理中心根据预设的根密钥生成,并与第二服务端密钥唯一对应。

在本发明实施例中,第二终端接收到的目标加密文件已经变为根据第二第二用户密钥xj1加密得到,因此,第二终端使用自己的第二用户密钥xj1完成对目标加密文件的解密,即grxj1file*(gr)-xj1=grxj1-rxj1file=file,从而得到目标共享文件file,该目标共享文件即为步骤s1中作为数据提供者的第一终端共享的共享文件。

需要说明的是,加密过程中使用的第一用户密钥xi1和第一服务端密钥xi2,以及解密过程中使用的第二用户密钥xj1和第二服务端密钥xi2,均可互不相同,但由于xi1+xi2=xj1+xj2=x,确保了最终的二重加密文件只与根密钥x直接相关,因此能够使得第一终端和第二终端分别使用不同的密钥对共享文件进行加解密,从而提高共享文件的数据安全性。

在图2对应的实施例中,作为数据提供者的第一终端使用第一用户密钥将共享文件加密后上传到服务端,服务端使用第一服务端密钥对加密文件进行加密,第二终端作为第一终端的授权用户端,其将用于检索的目标关键字信息发送到服务端,服务端根据该目标关键字信息检索到对应的二重加密文件后,使用第二服务端密钥对该二重加密文件进行解密,将得到的目标加密文件发送给第二终端,第二终端使用第二用户密钥对该目标加密文件进行解密,得到目标共享文件,由于第一用户密钥和第一服务端密钥唯一对应,第二用户密钥和第二服务端密钥唯一对应,并且,第一用户密钥和第一服务端密钥以及第二用户密钥和第二服务端密钥均由密钥管理中心根据根密钥生成,从而使得第一终端和第二终端可以使用不同的密钥对共享文件进行加解密,并且不同的第二终端之间的密钥也可以互不相同,从而实现了多个授权用户可以通过各自不同的密钥对共享文件进行检索,提高共享文件的数据安全性,同时,由于服务端对加密文件进行二次加密,进一步提高了共享文件的数据安全性。

接下来,在图2对应的实施例的基础之上,下面通过一个具体的实施例对步骤s1中所提及的第一终端使用第一用户密钥对共享文件进行加密,得到加密文件,并将该加密文件和共享文件对应的索引信息发送到服务端的具体实现方法进行详细说明。

请参阅图3,图3示出了本发明实施例提供的步骤s1的具体实现流程,详述如下:

s11:第一终端获取共享文件和该共享文件对应的检索关键字。

在本发明实施例中,第一终端获取用户提供的共享文件,以及该共享文件对应的检索关键字。

第一终端可以通过对共享文件的内容识别确定对应的检索关键字,也可以直接获取用户输入的检索关键字,此处不做限制。

s12:第一终端使用第一用户密钥对共享文件进行加密,得到加密文件。

在本发明实施例中,第一终端使用第一用户密钥对共享文件进行加密,得到加密文件的过程与上述步骤s1中描述的得到加密文件的实现方法相同,此处不再赘述。

s13:第一终端根据检索关键字,生成模糊关键词集。

在本发明实施例中,第一终端根据确定的检索关键字,生成模糊关键词集,模糊关键词集用于对共享文件进行模糊检索,模糊关键词集中包含基于检索关键字生成的一系列模糊关键词,使用模糊关键词集中的模糊关键词进行检索,能够满足更大范围内的检索需求。

进一步地,第一终端根据所述检索关键字,生成模糊关键词集的具体实现方式详述如下:

第一终端根据检索关键字,采用通配符的方式构造模糊关键词集。

具体地,采用通配符的方式对编辑距离为d的检索关键字w建立一个模糊关键词集sw,d,使用通配符来表示检索关键字中某个位置上的编辑操作。其中,编辑操作包括三种操作方式:

(1)插入操作:向检索关键字的单词中插入字符;

(2)删除操作:从检索关键字的单词中删除字符;

(3)修改操作:将检索关键字的单词中的字符修改为其他字符。

编辑距离为d的检索关键字w所构造的模糊关键词集表示为sw,d={s'w,0,s'w,1,...,s'w,d},其中s'w,n表示基于w具有n个通配符的一组单词,每个通配符表示在检索关键字w上的编辑操作。

例如,对于编辑距离d为1,检索关键字w为student,建立的模糊关键词集sstudent,1={student,*student,s*tudent,*tudent,s*udent,...,studen*,student*},该模糊关键词集中的单词数量为16个。通常情况下,对于检索关键字长度为l的检索关键字w,若其编辑距离d为1,则构造的模糊关键词集sw,1的大小为(2l+1)+1。随着编辑距离d的增大,其构造的模糊关键词集sw,d的大小也随之增加。当编辑距离d分别为2和3时,其构造的模糊关键词集即对于检索关键字长度为l并且编辑距离为d的关检索关键字,采用通配符的方式构造的模糊关键词词集的大小通过数据复杂度表示为o(ld)。

s14:第一终端使用第一索引密钥对模糊关键词集中的每个关键词进行加密,得到第一陷门集合,其中,第一索引密钥由第一用户密钥产生。

在本发明实施例中,第一终端使用第一用户密钥xi1生成第一索引密钥ki,ki=f(xi1),其中,f为哈希函数。

第一索引密钥用来对模糊关键词集中的每个关键词进行加密,得到第一陷门集合fuzzyenc1,其中,sw1,d1为编辑距离为d1,检索关键字为w1的模糊关键词集,并且t可以由公钥加密算法rsa实现。

s15:第一终端使用第一索引密钥对共享文件的标识信息进行加密,并将加密后的标识信息、第一陷门集合和第一索引密钥组成索引信息。

在本发明实施例中,第一终端使用步骤s14中生成的第一索引密钥ki,对共享文件的标识信息进行加密,得到加密后的标识信息f,f=enc(ki,fidw),其中,fidw为包含模糊关键词w的共享文件的标识信息,enc通过高级加密标准(advancedencryptionstandard,aes)或者数据加密标准(dataencryptionstandard,des)实现。

共享文件的标识信息用于唯一标识该共享文件,该标识信息可以是文件唯一编号,但并不限于此,具体可以根据应用的需要进行设置,此处不做限制。

第一终端将加密后的标识信息f、第一陷门集合fuzzyenc1和第一索引密钥ki组成索引信息index,index={ki,<fuzzyenc1,f>},即

s16:第一终端将加密文件和索引信息发送到服务端。

在本发明实施例中,第一终端将加密文件c(file)和索引信息index发送到服务端。

在图3对应的实施例中,第一终端使用第一用户密钥对共享文件进行加密,得到加密文件,并根据检索关键字,采用通配符的方式构造模糊关键词集,然后使用第一索引密钥对模糊关键词集中的每个关键词进行加密,得到第一陷门集合,并使用第一索引密钥对共享文件的标识信息进行加密,并将加密后的标识信息、第一陷门集合和第一索引密钥组成索引信息,将加密文件和索引信息共同发送到服务端,以便服务端进行检索,通过构造模糊关键词集的方式实现对检索关键字的模糊检索,能够有效提高检索成功率和准确率,并且采用通配符的方式构造的模糊关键词集更加完整,能够满足更大范围内的模糊检索需求。

在图3对应的实施例的基础之上,下面通过一个具体的实施例对步骤s2中所提及的第二终端获取目标关键字信息,并将该目标关键字信息发送到服务端的具体实现方法进行详细说明。

在本发明实施例中,第二终端获取的目标关键字信息包括目标陷门集合。

请参阅图4,图4示出了本发明实施例提供的步骤s2的具体实现流程,详述如下:

s21:第二终端获取待检索关键字。

在本发明实施例中,第二终端获取用户输入的待检索关键字。

s22:第二终端根据待检索关键字,生成目标模糊关键词集。

在本发明实施例中,第二终端根据待检索关键字,生成目标模糊关键词集的过程与步骤s13中第一终端根据检索关键字,生成模糊关键词集可以采用相同的方法,此处不再赘述。

具体地,待检索关键字为w2,编辑距离为d2,生成的目标模糊关键词集为sw2,d2。

s23:第二终端使用第二索引密钥对目标模糊关键词集中的每个关键词进行加密,得到目标陷门集合,其中,该第二索引密钥由第二用户密钥产生,该第二用户密钥由密钥管理中心根据根密钥生成。

在本发明实施例中,第二终端使用第二用户密钥xi2生成第二索引密钥kj,kj=f(xi2),其中,f为哈希函数。

第二索引密钥用来对目标模糊关键词集sw2,d2中的每个关键词进行加密,得到目标陷门集合fuzzyenc2,

s24:第二终端将目标陷门集合发送到服务端。

在本发明实施例中,第二终端将目标陷门集合fuzzyenc2作为目标关键字信息发送到服务端。

在图4对应的实施例中,当第二终端的授权用户需要使用待检索关键字检索相关的加密文件时,第二终端根据待检索关键字,生成目标模糊关键词集,该目标模糊关键词集的生成过程采用的方法与第一终端根据检索关键字生成模糊关键词集的生成方法相同,然后使用第二索引密钥对目标模糊关键词集中的每个关键词进行加密,得到目标陷门集合,将该目标陷门集合作为目标关键字信息发送到服务端,以便服务端进行检索,实现了通过构造模糊关键词集的方式进行模糊检索,能够有效提高检索成功率和准确率,并且采用通配符的方式构造的模糊关键词集更加完整,能够满足更大范围内的模糊检索需求。

在图4对应的实施例的基础之上,下面通过一个具体的实施例对步骤s4中所提及的服务端根据目标关键字信息,在索引信息中进行检索,获取与检索到的目标关键字信息相匹配的目标二重加密文件,并使用第二服务端密钥对该目标二重加密文件进行解密,得到目标加密文件的具体实现方法进行详细说明。

请参阅图5,图5示出了本发明实施例提供的步骤s4的具体实现流程,详述如下:

s41:若服务端在索引信息中检索到与目标陷门集合相匹配的目标加密索引,则根据该目标加密索引获取对应的目标索引密钥和加密后的目标共享文件的标识信息。

在本发明实施例中,服务端接收到第二终端发送的目标陷门集合后,根据该目标陷门集合,在索引信息中进行模糊检索,索引信息由第一终端发送给服务端,包含了加密后的共享文件的标识信息、第一陷门集合和第一索引密钥。若服务端检索到与该目标陷门集合相匹配的第一陷门集合,则将检索到的第一陷门集合所在的索引信息作为目标加密索引。

假设检索到的目标加密索引为则根据该目标加密索引index',获取该索引信息中包含的第一索引密钥ki作为目标索引密钥,以及该索引信息中包含的加密后的共享文件的标识信息enc(ki,fidw1)作为加密后的目标共享文件的标识信息。

需要说明的是,虽然第二终端发送的目标陷门集合是使用第二索引密钥加密得到,而服务端上保存的第一终端发送的索引信息中的第一陷门集合由第一索引密钥加密得到,即第一陷门集合和目标陷门集合的加密密钥不同,但由于第一索引密钥由第一用户密钥产生,第二索引密钥由第二用户密钥产生,而第一用户密钥和第二用户密钥均由密钥管理中心根据相同的根密钥生成,因此,服务端进行的模糊检索过程能够实现在索引信息中检索到与目标陷门集合相匹配的第一陷门集合。

s42:服务端使用目标索引密钥对目标共享文件的标识信息进行解密,并根据解密后的标识信息获取目标二重加密文件。

在本发明实施例中,服务端使用步骤s41得到的目标索引密钥,即第一索引密钥ki,对目标共享文件的标识信息enc(ki,fidw1)进行解密,得到解密后的标识信息fidw。

由于在步骤s2中服务端已经将索引信息和二重加密文件关联保存,因此,服务端根据解密后的标识信息fidw,能够获取到该标识信息对应的目标二重加密文件c*(file)。

s43:服务端使用第二服务端密钥对目标二重加密文件进行解密,得到目标加密文件。

在本发明实施例中,服务端使用第二服务端密钥对目标二重加密文件进行解密,得到目标加密文件的过程与上述步骤s4中描述的得到目标加密文件的实现方法相同,此处不再赘述。

在图5对应的实施例中,服务端根据第二终端发送的目标陷门集合,在索引信息中检索到与该目标陷门集合相匹配的目标加密索引,并根据该目标加密索引获取对应的目标索引密钥和加密后的目标共享文件的标识信息,进而使用该目标索引密钥对目标共享文件的标识信息进行解密,并根据解密后的标识信息获取目标二重加密文件,使用第二服务端密钥对对该目标二重加密文件进行解密,得到目标加密文件,使得第二终端能够使用自己的第二用户密钥对该目标加密文件进行解密,得到最终检索到的目标共享文件,从而实现了多个授权用户可以通过各自不同的密钥对共享文件进行检索,提高共享文件的数据安全性。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

对应于上文实施例所述的加密文件的检索方法,图6示出了本发明实施例提供的加密文件的检索系统的结构框图,为了便于说明,仅示出了与本发明实施例相关的部分。

请参阅图6,该加密文件的检索系统包括第一终端61、第二终端62、服务端63和密钥管理中心64,其中,第一终端和服务器之间,第二终端和服务器之间,以及密钥管理中心分别和第一终端、第二终端、服务端之间均通过网络进行连接。

密钥管理中心64,用于根据预设的根密钥生成第一用户密钥、第一服务端密钥、第二用户密钥和第二服务端密钥。

第一终端61包括加密模块611,第二终端62包括目标关键字模块621和解密模块622,服务端63包括二重加密模块631、检索模块632和发送模块633,各功能模块详细说明如下:

加密模块611,用于使用第一用户密钥对共享文件进行加密,得到加密文件,并将该加密文件和该共享文件对应的索引信息发送到服务端,其中,第一用户密钥由密钥管理中心根据预设的根密钥生成;

目标关键字模块621,用于获取目标关键字信息,并将目标关键字信息发送到服务端,其中,所述第二终端62为第一终端61的授权用户端;

解密模块622,用于使用第二用户密钥对目标加密文件进行解密,得到目标共享文件,其中,第二用户密钥由密钥管理中心根据根密钥生成,并与第二服务端密钥唯一对应;

二重加密模块631,用于使用第一服务端密钥对加密文件进行加密,得到二重加密文件,其中,第一服务端密钥由密钥管理中心根据预设的根密钥生成,并与第一用户密钥唯一对应;

检索模块632,用于根据目标关键字信息,在索引信息中进行检索,获取与检索到的目标关键字信息相匹配的目标二重加密文件,并使用第二服务端密钥对该目标二重加密文件进行解密,得到目标加密文件,其中,第二服务端密钥由密钥管理中心根据根密钥生成;

发送模块633,用于将目标加密文件发送给第二终端62。

进一步地,加密模块611包括:

第一获取子模块6111,用于获取共享文件和该共享文件对应的检索关键字;

文件加密子模块6112,用于使用第一用户密钥对共享文件进行加密,得到加密文件;

第一词集生成子模块6113,用于根据检索关键字,生成模糊关键词集;

关键词加密子模块6114,用于使用第一索引密钥对模糊关键词集中的每个关键词进行加密,得到第一陷门集合,其中,第一索引密钥由第一用户密钥产生;

标识加密子模块6115,用于使用第一索引密钥对共享文件的标识信息进行加密,并将加密后的标识信息、第一陷门集合和第一索引密钥组成索引信息;

第一发送子模块6116,用于将加密文件和索引信息发送到服务端63。

进一步地,第一词集生成子模块6113,还用于根据检索关键字,采用通配符的方式构造模糊关键词集。

进一步地,目标关键字信息包括目标陷门集合,目标关键字模块621包括:

第二获取子模块6211,用于获取待检索关键字;

第二词集生成子模块6212,用于根据待检索关键字,生成目标模糊关键词集;

第二加密子模块6213,用于使用第二索引密钥对目标模糊关键词集中的每个关键词进行加密,得到目标陷门集合,其中,第二索引密钥由第二用户密钥产生,第二用户密钥由密钥管理中心根据根密钥生成;

第二发送子模块6214,用于将目标陷门集合发送到服务端63。

进一步地,检索模块632包括:

匹配子模块6321,用于若在索引信息中检索到与目标陷门集合相匹配的目标加密索引,则根据该目标加密索引获取对应的目标索引密钥和加密后的目标共享文件的标识信息;

第一解密子模块6322,用于使用目标索引密钥对目标共享文件的标识信息进行解密,并根据解密后的标识信息获取目标二重加密文件;。

第二解密子模块6323,用于使用第二服务端密钥对目标二重加密文件进行解密,得到目标加密文件。

本发明实施例提供的一种加密文件的检索系统中各模块实现各自功能的过程,具体可参考前述方法实施例的描述,此处不再赘述。

本发明实施例提供一计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现前述方法实施例中的加密文件的检索方法,或者,该计算机程序被处理器执行时前述装置实施例中加密文件的检索系统中各模块/单元的功能,为避免重复,这里不再赘述。

请参阅图7,图7是本发明实施例提供的终端设备的示意图。如图7所示,该实施例的终端设备70包括:处理器71、存储器72以及存储在存储器72中并可在处理器71上运行的计算机程序73,例如加密文件的检索程序。处理器71执行计算机程序73时实现上述各个加密文件的检索方法实施例中的步骤,例如图1所示的步骤s1至步骤s6。或者,处理器71执行计算机程序73时实现上述各装置实施例中各模块/单元的功能,例如图6所示第一终端61、第二终端62、服务端63和密钥管理中心64中各模块/单元的功能。

示例性的,计算机程序73可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器72中,并由处理器71执行,以完成本发明。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序73在终端设备70中的执行过程。例如,计算机程序73可以被分割成第一终端上的加密模块,第二终端上的目标关键字模块和解密模块,服务端上的二重加密模块、检索模块和发送模块,密钥管理中心上的程序。各功能模块具体功能如下:

密钥管理中心,用于根据预设的根密钥生成第一用户密钥、第一服务端密钥、第二用户密钥和第二服务端密钥。

加密模块,用于使用第一用户密钥对共享文件进行加密,得到加密文件,并将该加密文件和该共享文件对应的索引信息发送到服务端,其中,第一用户密钥由密钥管理中心根据预设的根密钥生成;

目标关键字模块,用于获取目标关键字信息,并将目标关键字信息发送到服务端,其中,所述第二终端为第一终端的授权用户端;

解密模块,用于使用第二用户密钥对目标加密文件进行解密,得到目标共享文件,其中,第二用户密钥由密钥管理中心根据根密钥生成,并与第二服务端密钥唯一对应;

二重加密模块,用于使用第一服务端密钥对加密文件进行加密,得到二重加密文件,其中,第一服务端密钥由密钥管理中心根据预设的根密钥生成,并与第一用户密钥唯一对应;

检索模块,用于根据目标关键字信息,在索引信息中进行检索,获取与检索到的目标关键字信息相匹配的目标二重加密文件,并使用第二服务端密钥对该目标二重加密文件进行解密,得到目标加密文件,其中,第二服务端密钥由密钥管理中心根据根密钥生成;

发送模块,用于将目标加密文件发送给第二终端。

进一步地,加密模块包括:

第一获取子模块,用于获取共享文件和该共享文件对应的检索关键字;

文件加密子模块,用于使用第一用户密钥对共享文件进行加密,得到加密文件;

第一词集生成子模块,用于根据检索关键字,生成模糊关键词集;

关键词加密子模块,用于使用第一索引密钥对模糊关键词集中的每个关键词进行加密,得到第一陷门集合,其中,第一索引密钥由第一用户密钥产生;

标识加密子模块,用于使用第一索引密钥对共享文件的标识信息进行加密,并将加密后的标识信息、第一陷门集合和第一索引密钥组成索引信息;

第一发送子模块,用于将加密文件和索引信息发送到服务端。

进一步地,第一词集生成子模块,还用于根据检索关键字,采用通配符的方式构造模糊关键词集。

进一步地,目标关键字信息包括目标陷门集合,目标关键字模块包括:

第二获取子模块,用于获取待检索关键字;

第二词集生成子模块,用于根据待检索关键字,生成目标模糊关键词集;

第二加密子模块,用于使用第二索引密钥对目标模糊关键词集中的每个关键词进行加密,得到目标陷门集合,其中,第二索引密钥由第二用户密钥产生,第二用户密钥由密钥管理中心根据根密钥生成;

第二发送子模块,用于将目标陷门集合发送到服务端。

进一步地,检索模块包括:

匹配子模块,用于若在索引信息中检索到与目标陷门集合相匹配的目标加密索引,则根据该目标加密索引获取对应的目标索引密钥和加密后的目标共享文件的标识信息;

第一解密子模块,用于使用目标索引密钥对目标共享文件的标识信息进行解密,并根据解密后的标识信息获取目标二重加密文件;。

第二解密子模块,用于使用第二服务端密钥对目标二重加密文件进行解密,得到目标加密文件。

终端设备70可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。终端设备70可包括,但不仅限于,处理器71、存储器72。本领域技术人员可以理解,图7仅仅是终端设备70的示例,并不构成对终端设备70的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如终端设备70还可以包括输入输出设备、网络接入设备、总线等。

所称处理器71可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

存储器72可以是终端设备70的内部存储单元,例如终端设备60的硬盘或内存。存储器72也可以是终端设备70的外部存储设备,例如终端设备70上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,存储器72还可以既包括终端设备70的内部存储单元也包括外部存储设备。存储器72用于存储计算机程序以及终端设备70所需的其他程序和数据。存储器72还可以用于暂时地存储已经输出或者将要输出的数据。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。

以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

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