一种动态数据共享方法、终端设备及代理服务器与流程

文档序号:16887565发布日期:2019-02-15 22:46阅读:262来源:国知局
一种动态数据共享方法、终端设备及代理服务器与流程

本发明属于互联网信息技术领域,尤其涉及一种动态数据共享方法、终端设备及代理服务器。



背景技术:

为保证存储于云服务器的动态数据的安全,需要对动态数据进行加密,只有拥有正确解密密钥的用户才能从云服务器获取动态数据。现有技术中,对云服务器中的动态数据的加密大都采用对称加密算法,即加密密钥与解密密钥相同。

采用这种算法可以保证动态数据的安全,但无法满足云存储环境下多用户共享动态数据的需求。这是因为如果存在多个授权用户都可以获取动态数据,那么各个授权用户只能使用相同的解密密钥,才能保证每个授权用户都能从云服务器中获取动态数据,这显然无法满足各授权用户的私密要求;而如果为每一位授权用户分配独立的解密密钥,云服务器又需要对相同的动态数据采用不同的加密密钥进行加密,得到分别与各授权用户相对应的动态数据密文,以保证各授权用户可以使用自己的解密密钥获取动态数据,但这种处理方式又会造成云服务器中存储有大量的冗余数据,增加云服务器的负担。



技术实现要素:

有鉴于此,本发明的目的在于提供一种动态数据共享方法、终端设备及代理服务器,满足云存储环境下对动态数据的多用户共享需求,使每一授权用户可以使用自己的解密密钥获取云服务器中共享的动态数据,具体方案如下:

第一方面,本发明提供一种动态数据共享方法,应用于授权用户,包括:

获取搜索关键字;

使用私钥生成与所述搜索关键字对应的陷门,并将所述陷门发送至代理服务器;其中,所述代理服务器用于发送关键字标签值至云服务器,所述云服务器用于根据所述关键字标签值确定与所述搜索关键字对应的动态数据密文,并在利用重加密密钥对所述动态数据密文进行加密得到动态数据重加密密文后,向所述授权用户反馈所述动态数据重加密密文;所述关键字标签值由所述代理服务器使用所述陷门以及与所述授权用户对应的所述重加密密钥生成;所述重加密密钥根据数据拥有者的私钥及所述授权用户的私钥基于双线性映射原理生成,且一授权用户对应一重加密密钥;所述动态数据密文根据所述数据拥有者的公钥加密得到;

接收所述动态数据重加密密文,并利用所述授权用户的私钥对所述动态数据重加密密文进行解密,得到动态数据明文。

可选的,所述利用所述私钥对所述动态数据重加密密文进行解密,包括:

将所述动态数据重加密密文及所述私钥输入预设解密算法,得到所述动态数据明文。

可选的,所述云服务器用于根据所述关键字标签值确定与所述搜索关键字对应的动态数据密文,包括:

根据所述关键字标签值及预设关联信息元组确定与所述关键字标签值对应的关键字索引向量;

根据所述关键字索引向量确定与所述搜索关键字对应的动态数据密文,其中,所述预设关联信息元组中存储有关键字标签值与所述关键字索引向量的对应关系;所述关键字索引向量记录有关键字与动态数据密文的对应关系。

可选的,所述使用私钥生成与所述搜索关键字对应的陷门,包括:

将所述私钥及所述搜索关键字输入陷门生成算法,生成与所述搜索关键字对应的陷门。

可选的,所述接收所述动态数据重加密密文,并利用私钥对所述动态数据重加密密文进行解密,得到动态数据明文,包括:

接收所述动态数据重加密密文及完整性验证证据密文,其中,所述完整性验证证据密文由所述云服务器生成并发送至所述授权用户;

根据所述完整性验证证据密文,验证所述动态数据重加密密文的完整性;

若所述动态数据重加密密文完整,利用所述私钥对所述动态数据重加密密文进行解密,得到动态数据明文。

可选的,本发明第一方面提供的任一项动态数据共享方法,还包括:

获取修改后的动态数据明文;

利用自身的公钥对修改后的动态数据明文进行加密,得到修改后的动态数据密文;

上传所述修改后的动态数据密文至所述云服务器,以使所述云服务器替换对应的动态数据密文。

第二方面,本发明提供一种动态数据共享方法,应用于代理服务器,包括:

获取与授权用户的搜索关键字对应的陷门;

确定与所述授权用户对应的重加密密钥;

使用所述陷门及所述重加密密钥,生成与所述授权用户的搜索关键字对应的关键字标签值;

发送所述关键字标签值至云服务器;其中,所述云服务器用于根据所述关键字标签值确定与所述搜索关键字对应的动态数据密文,并在利用重加密密钥对所述动态数据密文进行加密以得到动态数据重加密密文后,向所述授权用户反馈所述动态数据重加密密文,所述授权用户使用私钥解密所述动态数据重加密密文,得到动态数据明文;所述重加密密钥根据数据拥有者的私钥及授权用户的私钥基于双线性映射原理生成,且一授权用户对应一重加密密钥,所述动态数据密文根据数据拥有者的公钥加密得到。

第三方面,本发明提供一种终端设备,包括:存储器和处理器;所述存储器存储有适于所述处理器执行的程序,以实现上述第一方面任一项所述的动态数据共享方法的步骤。

第四方面,本发明提供一种代理服务器,包括:存储器和处理器;所述存储器存储有适于所述处理器执行的程序,以实现上述第二方面所述的动态数据共享方法的步骤。

基于上述技术方案,本发明提供的动态数据共享方法、终端设备及代理服务器,基于非对称加密算法的相关特性,数据拥有者使用自己的公钥对动态数据进行加密,之后将动态数据密文上传至云服务器进行存储,代理服务器基于双线性映射原理为每一授权用户生成包含数据拥有者及授权用户私钥的重加密密钥。授权用户获取搜索关键字后,为保证搜索关键字的安全,首先为搜索关键字生成陷门,然后将陷门发送至代理服务器,代理服务器结合收到的陷门以及与该授权用户对应的重加密密钥生成关键字标签值,并发送至云服务器,云服务器根据关键字标签值确定与搜索关键字对应的动态数据密文。最后,云服务器使用重加密密钥对动态数据密文进行加密,反馈给授权用户。

由于重加密密钥是基于双线性映射原理生成得到的,授权用户的私钥及数据拥有者的私钥均作为指数存在于重加密密钥中,同时,动态数据密文由数据拥有者的公钥加密,重加密过程中使用的重加密密钥包含数据拥有者及授权用户的私钥,因此,利用对应的解密算法,每一授权用户都可结合自己的私钥对动态数据进行解密,得到对应的动态数据明文,从而满足云存储环境下对动态数据的多用户共享需求,使每一授权用户可以使用自己的私钥获取云服务器中共享的动态数据。

同时,对于云服务器而言,仅存储动态数据密文,对于不同的授权用户,云服务器会收到基于与授权用户对应的重加密密钥及陷门生成的关键字标签值,通过该关键字标签值即可确定并反馈授权用户希望得到的动态数据密文,并进一步利用重加密密钥对动态数据密文进行重加密,而重加密的过程是基于包含授权用户私钥信息的重加密密钥完成的,重加密后的动态数据密文的解密过程即可由授权用户使用自己的私钥进行,从而可以避免现有技术中,云服务器针对不同的授权用户的不同私钥,生成不同的密文,不会造成云服务器中存在冗余数据。

附图说明

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

图1是本发明实施例提供的一种动态数据共享系统的结构框图;

图2是本发明实施例提供的一种动态数据共享方法的流程图;

图3是本发明实施例提供的一种动态数据共享装置的结构框图;

图4是本发明实施例提供的另一种动态数据共享装置的结构框图;

图5是本发明实施例提供的又一种动态数据共享装置的结构框图;

图6是本发明实施例提供的一种终端设备的结构框图;

图7是本发明实施例提供的一种代理服务器的结构框图。

具体实施方式

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

图1为本发明实施例提供的动态数据共享系统的结构框图,参见图1,本发明实施例提供的动态数据共享系统包括数据拥有者1(可以存在多个,本实施例仅示例性的给出一个)、代理服务器2、云服务器3以及授权用户4(可以存在多个,本实施例仅示例性的给出一个),其中,

系统中的每一个数据拥有者1及授权用户4都具备自己的密钥对,即公钥和私钥。数据拥有者1利用自己的公钥对动态数据进行加密,得到动态数据密文,并将动态数据密文上传至云服务器中。

授权用户4根据获取的搜索关键字,生成对应的陷门,并将该陷门发送至代理服务器2。

代理服务器2针对每一授权用户,基于双线性映射原理,使用数据拥有者的私钥及授权用户的私钥生成重加密密钥。在接收到授权用户生成的陷门之后,使用陷门及重加密密钥生成关键字标签值,并将得到的关键字标签值上传至云服务器3。

云服务器3中存储有动态数据密文,在收到代理服务器2上传的关键字标签值后,根据关键字标签值确定与授权用户4的搜索关键字对应的动态数据密文。之后,利用重加密密钥对动态数据密文进行重加密,得到动态数据重加密密文,并将该动态数据重加密密文发送给授权用户4。

基于双线性映射原理,授权用户4使用自己的私钥即可对获取到的动态数据重加密密文进行解密,得到动态数据明文。

基于上述内容,参见图2,本发明申请实施例提供的动态数据共享方法的流程,该流程可以包括:

步骤s100,授权用户获取搜索关键字。

授权用户对动态数据的搜索、查询都是通过关键字进行的,通过搜索关键字,确定与搜索关键字对应的动态数据文件。因此,授权用户在获取动态数据文件之前,首先要确定搜索关键字。

授权用户可以通过键盘、触控屏幕、语音识别装置等输入设备获取搜索关键字,且关键字的形式应满足系统的格式要求,以保证搜索操作的有效执行。

步骤s110,授权用户使用私钥生成与搜索关键字对应的陷门,并将陷门发送至代理服务器。

在授权用户确定搜索关键字之后,会结合确定的搜索关键字生成对应的陷门,并将对应的陷门发送至代理服务器。以陷门的形式传输关键字,不仅可以有效保证关键字在传输过程中的安全,同时,即使对于代理服务器而言,关键字也是以密文的形式存在的,代理服务器没有机会接触关键字的真实内容,使得关键字即使在代理服务器侧被截获,黑客也不能获得关键字的真实内容。

可选的,授权用户可以选用trapcompute(sk,wa)→twa算法生成与搜索关键字对应的陷门,在这个算法中,它使用授权用户的私钥sk及用户希望查询的相关关键字wa,即搜索关键字,作为输入参数,并在最后返回一个与搜索关键字wa相关的陷门twa。

可选的,可以选用keygen(1k)→(pk,sk)算法生成授权使用者的密钥对,即公钥和私钥。在这个算法中,选定一个安全参数1k作为输入参数,利用这个安全参数生成使用用户对应的公钥与私钥。

步骤s120,代理服务器获取与授权用户的搜索关键字对应的陷门。

代理服务器获取授权用户发来的陷门,并在获取后执行步骤s130。

步骤s130,代理服务器确定与授权用户对应的重加密密钥。

代理服务器在接收到授权用户上传的陷门之后,确定与该授权用户对应的重加密密钥。

重加密密钥的生成是基于双线性映射原理生成得到的,授权用户的私钥及数据拥有者的私钥均作为指数存在于重加密密钥中。可选的,可以选用算法生成重加密密钥,在这个算法中,选定两个用户的私钥(即sk1和sk2)作为输入参数,并在最后会返回一个与这两个私钥相关的双向的重加密密钥

可选的,在生成重加密密钥之前,数据拥有者还可以对不同的用户进行授权,指定特定的用户才有权限对动态数据进行访问。数据拥有者首先选择非零整数r*,然后使用该整数计算得到新值:sk1×r*modq,其中,sk1表示数据拥有者的私钥。数据拥有者将计算得到的新值sk1×r*modq作为访问权限,只有收到该值的用户才能成为授权用户。数据拥有者将这个值发送给每一位授权用户,同时将用于计算重加密密码的整数r*发送给代理服务器。当授权用户获取新值sk1×r*modq后,授权用户利用这个新值以及自己的私钥sk2计算值:并将该值发送给代理服务器。当代理服务器收到与之前的非零整数r*之后,代理服务器就利用这两个接收到的值来计算用于重加密的重加密密钥:

可以想到的是,对于代理服务器而言,可以选择针对所有授权用户生成对应的重加密密钥,然后对得到的重加密密钥进行保存,当任一授权用户向代理服务器发送包含关键字信息的陷门时,从存储的多个重加密密钥中选择与该授权用户对应的重加密密钥。或者,只有在接收到某一个授权用户发送的陷门之后,才针对该授权用户生成重加密密钥,以保证此次生成关键字标签值的过程顺利进行。

需要说明的是,代理服务器拥有相应的权限,可以针对每一个授权用户,结合数据拥有者的私钥以及授权用户的私钥生成一对应的重加密密钥,使得每一授权用户在代理服务器处均保存有一重加密密钥。

步骤s140,使用陷门及重加密密钥,生成并发送与搜索关键字对应的关键字标签值。

可选的,重加密密钥以表示,则关键字标签值的计算式,可以如下表示:

其中,是作为密文组中的一部分返回给用户的,通过变形可得到授权用户的公钥;

r表示任意非零整数;

h1对应的函数为哈希函数(hashfunction),是一个确定型函数,它将任意长度的比特串压缩到某一固定长度。具体来说一个哈希函数h:{0,1}*→{0,1}n,必须满足有效性、单向性、抗碰撞性、随机语言性以及散列性等特性。

步骤s150,云服务器接收代理服务器发送的关键字标签值。

步骤s160,云服务器根据关键字标签值确定与授权用户的搜索关键字对应的动态数据密文。

可选的,存储于云服务器的动态数据以及与动态数据相对应的关键字都是以密文的形式存在的,数据拥有者在将动态数据及关键字上传至云服务器前,会对动态数据及关键字进行加密。在发明提供的动态数据共享方法中,所有的数据拥有者及授权用户,都具有属于自己的密钥对,即公钥和私钥。数据拥有者在进行动态数据共享前,首先会使用自己的公钥对动态数据明文进行加密,得到动态数据密文,之后才会将动态数据密文上传至云服务器。因此,云服务器不会接触到动态数据明文,在一定程度上可以保证动态数据的安全。

可以想到的是,在云服务器中存储的是动态数据密文而非动态数据明文,云服务器无法获知动态数据的具体内容,因此,如果希望通过关键字标签值确定动态数据密文,就需要提前建立关键字标签值与动态数据密文之间的对应关系。

可选的,本发明提供的动态数据共享方法中,数据拥有者在对动态数据进行加密并上传至云服务器之前,还会结合动态数据明文与相应的关键字的对应关系,建立预设关联信息元组,用于存储动态数据密文与关键字的对应关系。具体的,数据拥有者首先会构建一个二进制的关键字与动态数据文件相关的二维索引矩阵,该矩阵的构建规则是:

该二维索引矩阵的横坐标是关键字或者关键字序号,纵坐标则是动态数据文件标识号,当动态数据文件dj(由动态数据组成的文件)中包含关键字wi时,就在该位置(i,j)处设值为1,如果该动态数据文件dj中不包含该关键字wi时则设值为0,如下式所示:

构建完二维索引矩阵后,就可以开始对关键字和动态数据文件进行加密。具体的,可以选用enc(pk,w,f)→(k,i)算法,这个算法的主要作用是对文件、关键字进行加密,它以使用该算法的数据拥有者的公钥、所有需要加密的文件以及所有关键字作为输入参数,该算法将会对所有的关键字及所有的文件进行加密。最后,它会返回记录有所有关键字,文件及可验证证据的密文的元组。

使用该算法的过程为:首先,输入要对动态数据文件进行加密的用户的公钥,所有的关键字wi∈w(w表示所有的关键字),以及所有待加密动态数据文件dj∈gt(gt表示所有待加密动态数据文件)。之后,选取两个随机整数r,r'∈zq(zq表示所有整数),同时,构造两个一次性签名密钥对(svk1,ssk1)。令a=svk1,并计算下列值:

cj=e(g,h2(a))r×dj

labeli=(e(g,h1([prfkn(wi)]1…128)r))

padi=(e(g,h1([prfkn(wi)]1…n)r))

上述各式中,b是对公钥的变形,变形后得到的参量通过重加密密钥可以获得对应的公钥;cj表示经过加密后得到的密文。

除了上述值之外,还需要计算用于验证文件完整性和正确性的可验证证据:两个rsa累加器值ac与ai,具体如下:

从而,可以生成动态数据文件的密文分别以如下形式呈现:

kj=(a,b,cj)

以及密文与关键字的预设关联信息元组:

在将动态数据文件以及所有的关键字加密之后,数据拥有者即将得到的对应的密文以及预设关联信息元组上传至云服务器,以使授权用户可以搜索、查询。因此,对于授权用户而言,云服务器中存储的是动态数据密文及预设关联信息元组对应的文件。

云服务器根据接收到的两个关键字标签值,即可根据关键字标签值确定与授权用户的搜索关键字对应的动态数据文件的密文。

可选的,云服务器选用kwtest(pk,twi,k)→(k(wi),πc,πiorreject)算法确定是否存在与获取得到的两个关键字标签值对应的动态数据密文,在这个算法中,它以一个用户的公钥pk,一个陷门twi,和一个密文k作为输入参数,最后云服务器端会对陷门进行检测,查询与该陷门相关的密文文件,并返回这些相关的密文集以及用于验证文件完整性的证据给查询用户。如果云服务器端没有与关键字相关的密文,则返回reject,查询结束。

具体的,云服务器使用kwtest(pk,twi,k)→(k(wi),πc,πiorreject)算法的查询过程为:当云服务器端接收到来自于代理服务器的两个关键字标签值labela与pada后,首先,云服务器利用labela,查询该标签值对应的索引向量:其中i表示关键字的序号,找到与该搜索关键字相匹配的索引向量后,利用其中的变量及异或还原特性得到搜索关键字wa的索引值:

最后,利用indexa以及之前建立的二维索引矩阵,找到与关键字wa相关的密文集:k(wa)={(i,ki)|ea,i=1}。

进一步的,为保证动态数据密文的完整性,云服务器还会计算用于验证文件完整性的完整性验证证据:

步骤s170,云服务器利用重加密密钥对动态数据密文进行重加密,得到动态数据重加密密文。

在确定与授权用户的搜索关键字对应的动态数据密文并完成相应的计算后,云服务器利用reenc重加密算法将密文与完整性验证证据进行重加密,并将这些数据一并返回给授权用户。

具体地,首先云服务器根据reenc算法,计算下列信息:

然后利用b2对将要返回的文件密文进行重加密,得到动态数据重加密密文,并使密文成为如下形式的元组:

k2(wa)=(a,b2,c)

需要说明的是,云服务器中的重加密密钥同样是由代理服务器提供的,提供的过程可以在发送关键字标签值时一并发送,当然也可以在代理服务器生成重加密密钥之后的任意时刻发送至云服务器,只要保证云服务器在对动态数据密文进行重加密时能够获得相应的重加密密钥即可。

步骤s180,云服务器发送动态数据重加密密文至授权用户。

云服务器生成动态数据重加密密文后,将动态数据重加密密文返回给授权用户。如果一并生成的还有完整性验证证据密文,将该密文也一并反馈给授权用户。

步骤s190,授权用户接收动态数据重加密密文,解密得到动态数据明文。

重加密密钥是基于双线性映射原理生成得到的,授权用户的私钥及数据拥有者的私钥均作为指数存在于重加密密钥中,动态数据重加密密文中含有数据拥有者的私钥,而动态数据是通过数据拥有者的公钥加密的,并经过重加密密钥重加密的,因此,授权用户在拥有自己的私钥的前提下,就可以实现对动态数据重加密密文的解密,得到动态数据明文。相应的,如果动态数据重加密密文被其他授权用户或非授权用户截获,由于其不具备发起搜索操作的授权用户的私钥,因而是不能对截获的动态数据重加密密文进行解密的,也就无从获得动态数据明文。

可选的,授权用户接收到云服务器返回的经过重加密的动态数据文件密文及完整性验证证据后,为防止数据在传输过程中遭到篡改,因此,首先需要对接收到的动态数据重加密密文进行验证,并在验证通过之后对其进行解密,获得动态数据明文。

可选的,授权用户可以选择与kwtest(pk,twi,k)→(k(wi),πc,πiorreject)算法相对应的accverifydec(sk,k)→(forreject)算法,并根据获取得到的完整性验证证据对获得的动态数据重加密密文进行验证,该算法的触发条件是建立在kwtest算法执行后,云服务器返回给授权用户查询的密文,才会执行的验证操作。它利用授权用户的私钥,从云服务器返回的授权用户所需动态数据文件的密文k作为输入参数,如果通过该验证算法,那么用户即可使用自己的密钥对密文进行解密,否则该算法会输出提示信息:reject,同时会将该拒绝信息发送到云服务器。

首先,授权用户利用返回的文件密文计算下列值:

xi=prime(h(i,h(ci)))(i,ci)∈k‘(wa)

其中,πc表示不包含关键字的密文集的验证证据,xi表示包含关键字的密文集的验证证据;label,index都是和关键字相关的密文以及索引的信息。

并利用所得计算结果做如下验证:

如果a‘c验证通过,说明云端整体的数据是完整的,云端没有受到攻击,如果a‘i验证成功,说明返回的密文确实是包含关键字的密文且索引正确,授权用户索要的密文没有被篡改或者删除。当这两个值全部验证通过后,即可以判定存储于云服务器的文件完整,没有被破坏,且返回的文件是与关键字wa相关的也是正确的,授权用户就可以对返回的所有密文文件进行解密。

公知的,符合双线性映射规则的对称双线性群组具有可计算性,利用该特性,可以计算得到与授权用户的搜索关键字相对应的动态数据文件明文,该计算过程可以为:

其中,dj为动态数据文件明文,cj动态数据文件密文,sk2为授权用户的私钥,其余参量的含义,前文已经述及,此处不再赘述。

通过本发明申请实施例提供的动态数据共享方法,每一授权用户都可结合自己的私钥对动态数据进行解密,得到对应的动态数据明文,从而满足云存储环境下对动态数据的多用户共享需求,使每一授权用户可以使用自己的私钥获取云服务器中共享的动态数据。

同时,对于云服务器而言,仅存储动态数据密文,对于不同的授权用户,云服务器会收到基于与授权用户对应的重加密密钥及陷门生成的关键字标签值,通过该关键字标签值即可确定并反馈授权用户希望得到的动态数据密文,并进一步利用重加密密钥对动态数据密文进行重加密,而重加密的过程是基于包含授权用户私钥信息的重加密密钥完成的,重加密后的动态数据密文的解密过程即可由授权用户使用自己的私钥进行,从而可以避免现有技术中,云服务器针对不同的授权用户的不同私钥,生成不同的密文,不会造成云服务器中存在冗余数据。

进一步的,本发明提供的动态数据共享方法,不仅可以满足授权用户对于存储于云服务器的动态数据文件的查询需求,授权用户还可以对查询得到的动态数据文件进行修改,并将修改后的动态数据文件上传至云服务器,对存储于云服务器中的原文件进行覆盖。

授权用户在完成对动态数据的修改后,即可得到修改后的动态数据的明文,利用自身的公钥对修改后的动态数据的明文进行加密,得到修改后的动态数据的密文,之后上传修改后的动态数据的密文至云服务器。

云服务器在收到修改后的动态数据密文后,仍然会生成完整性验证证据πi,并将该完整性验证证据发送给授权用户。

授权用户首先利用数据拥有者的公钥来验证存储于云服务器的对应的修改前的文件是否完整,具体的,授权用户计算下值:

xi=prime(h(i,h(ci)))

并进一步根据所得xi计算如果所得值与根据搜索关键字查询动态数据文件时计算的验证证据ac′相同,说明验证通过,存储于云服务器的部分文件未被篡改,可以用修改后的动态数据替换存储于云服务器中的相应的部分。相反的,如果验证失败,则返回错误信息,说明存储于云服务器的部分文件已经被篡改过,云服务器端文件不完整或者不正确,因此修改密文文件的过程失败,返回reject信息。

如果验证通过,授权用户进行下列计算,以更新完整性验证证据,最新的完整性验证证据用a'c'表示,具体如下:

x'i=prime(h(i,h(c'i)))

d=x'i/ximod(p-1)(q-1)

a”c=(a‘c)d

最后,云服务器存储授权用户修改后的密文,替换原存储的对应的密文。

本发明提供的动态数据共享方法,不仅数据拥有者可以对存储于云端服务器的动态数据文件进行修改,替换,具有修改权限的授权用户同样可以对动态数据文件进行修改,并在修改后替换存储于云服务器中对应的动态数据文件,使得其他授权用户可以通过本申请提供的数据共享方法共享最新的动态数据,满足实际使用中多用户的共享需求。

下面对本发明实施例提供的动态数据共享装置进行介绍,下文描述的动态数据共享装置可以认为是为实现本发明实施例提供的动态数据共享方法,在中央设备中需设置的功能模块架构;下文描述内容可与上文相互参照。

参见图3,图3是本发明实施例提供的一种动态数据共享装置的结构框图,该装置可以包括:

关键字获取单元10,用于获取搜索关键字;

陷门生成单元20,用于使用私钥生成与所述搜索关键字对应的陷门,并将所述陷门发送至代理服务器;其中,所述代理服务器用于发送关键字标签值至云服务器,所述云服务器用于根据所述关键字标签值确定与所述搜索关键字对应的动态数据密文,并在利用重加密密钥对所述动态数据密文进行加密得到动态数据重加密密文后,向所述授权用户反馈所述动态数据重加密密文;所述关键字标签值由所述代理服务器使用所述陷门以及与所述授权用户对应的所述重加密密钥生成;所述重加密密钥根据数据拥有者的私钥及所述授权用户的私钥基于双线性映射原理生成,且一授权用户对应一重加密密钥;所述动态数据密文根据所述数据拥有者的公钥加密得到;

解密单元30,用于接收所述动态数据重加密密文,并利用所述授权用户的私钥对所述动态数据重加密密文进行解密,得到动态数据明文。

可选的,所述解密单元30,用于利用所述私钥对所述动态数据重加密密文进行解密时,具体包括:

将所述动态数据重加密密文及所述私钥输入预设解密算法,得到所述动态数据明文。

可选的,所述陷门生成单元20,用于使用私钥生成与所述搜索关键字对应的陷门时,具体包括:

将所述私钥及所述搜索关键字输入陷门生成算法,生成与所述搜索关键字对应的陷门。

可选的,所述解密单元30,用于接收所述动态数据重加密密文,并利用私钥对所述动态数据重加密密文进行解密,得到动态数据明文时,具体包括:

接收所述动态数据重加密密文及完整性验证证据密文,其中,所述完整性验证证据密文由所述云服务器生成并发送至所述授权用户;

根据所述完整性验证证据密文,验证所述动态数据重加密密文的完整性;

若所述动态数据重加密密文完整,利用所述私钥对所述动态数据重加密密文进行解密,得到动态数据明文。

参见图4,本发明实施例提供的另一种动态数据共享装置的结构框图,在图3所示实施例基础上,该装置还包括:

明文获取单元40,用于获取修改后的动态数据明文;

明文加密单元50,用于利用自身的公钥对修改后的动态数据明文进行加密,得到修改后的动态数据密文;

密文上传单元60,用于上传所述修改后的动态数据密文至所述云服务器,以使所述云服务器替换对应的动态数据密文。

参见图5,本发明实施例提供的又一种动态数据共享装置的结构框图,该装置包括:

陷门获取单元70,用于获取与授权用户的搜索关键字对应的陷门;

确定单元80,用于确定与所述授权用户对应的重加密密钥;

关键字标签值生成单元90,用于使用所述陷门及所述重加密密钥,生成与所述授权用户的搜索关键字对应的关键字标签值;

发送单元100,用于发送所述关键字标签值至云服务器;其中,所述云服务器用于根据所述关键字标签值确定与所述搜索关键字对应的动态数据密文,并在利用重加密密钥对所述动态数据密文进行加密以得到动态数据重加密密文后,向所述授权用户反馈所述动态数据重加密密文,所述授权用户使用私钥解密所述动态数据重加密密文,得到动态数据明文;所述重加密密钥根据数据拥有者的私钥及授权用户的私钥基于双线性映射原理生成,且一授权用户对应一重加密密钥,所述动态数据密文根据数据拥有者的公钥加密得到。

参见图6,图6为本发明实施例提供的终端设备的结构框图,参见图6所示,可以包括:至少一个处理器100,至少一个通信接口200,至少一个存储器300和至少一个通信总线400;

在本发明实施例中,处理器100、通信接口200、存储器300、通信总线400的数量为至少一个,且处理器100、通信接口200、存储器300通过通信总线400完成相互间的通信;显然,图6所示的处理器100、通信接口200、存储器300和通信总线400所示的通信连接示意仅是可选的;

可选的,通信接口200可以为通信模块的接口,如gsm模块的接口;

处理器100可能是一个中央处理器cpu,或者是特定集成电路asic(applicationspecificintegratedcircuit),或者是被配置成实施本发明实施例的一个或多个集成电路。

存储器300,存储有应用程序,可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。

其中,处理器100具体用于执行存储器内的应用程序,以实现上述所述的动态数据共享方法的任一实施例。

参见图7,图7为本发明实施例提供的代理服务器的结构框图,参见图7所示,可以包括:至少一个处理器500,至少一个通信接口600,至少一个存储器700和至少一个通信总线800;

在本发明实施例中,处理器500、通信接口600、存储器700、通信总线800的数量为至少一个,且处理器500、通信接口600、存储器700通过通信总线800完成相互间的通信;显然,图7所示的处理器500、通信接口600、存储器700和通信总线800所示的通信连接示意仅是可选的;

可选的,通信接口600可以为通信模块的接口,如gsm模块的接口;

处理器500可能是一个中央处理器cpu,或者是特定集成电路asic(applicationspecificintegratedcircuit),或者是被配置成实施本发明实施例的一个或多个集成电路。

存储器700,存储有应用程序,可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。

其中,处理器500具体用于执行存储器内的应用程序,以实现上述所述的动态数据共享方法的任一实施例。

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

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

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

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的核心思想或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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