具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
现有的ABE(Attribute-Based Encryption,基于属性的加密)算法中的密钥撤销方式主要分为三类,第一类为基于树结构的密钥管理撤销方式、第二类为基于代理解密的权限撤销方式、第三类为基于密文-密钥更新的密钥撤销方式;其中,基于树结构的密钥管理撤销方式需要更大的存储开销,属性权威服务器需要为每个属性都管理一棵树,并标识用户是否被撤销;基于代理解密的权限撤销方式需要相关服务器参与用户的数据解密过程,不适用于分布式场景;而基于密文-密钥更新的密钥撤销方式相比于前两类方式虽然无需更大的存储开销以及可以适用于分布式场景,但是却存在计算开销大,安全性差等问题,诸如,属性权威服务器所需计算的密钥更新消息都与用户数量相关,计算开销很大,而且还存在其它用户或者属性权威服务器协助被撤销权限的用户更新密钥的可能性,也即,当属性权威服务器A撤销了用户U的密钥,则可能存在其它用户或者其它属性权威服务器协助用户U更新密钥,致使用户U仍旧具有访问数据的权限,具有一定的安全隐患。
本公开实施例主要针对上述基于密文-密钥更新的密钥撤销方式存在的问题进行改进,尤其适用于多属性权威场景下,可以有效降低密钥撤销所需的计算开销,并保障密钥撤销的安全性和可靠性。为便于理解,以下首先对相关技术进行介绍说明。
CP-ABE(Ciphertext-Policy Attribute-Based Encryption,密文策略基于属性加密)实现了数据加密保护与访问控制的有机结合。在CP-ABE中,密文与指定的访问策略树绑定,且用户密钥与其对应属性绑定;只有用户属性满足密文所包含的访问策略时,用户才能够成功解密得到明文。为便于理解,参见图1所示的解密示意图,将患者的医疗记录进行加密,并设置密文的访问控制策略为“医生或者名字为Alice的护士才可以访问”。用户1是一个医生,存储医疗记录密文的云服务器从属性权威处获得用户1的属性为医生,判断用户1的属性符合密文中的访问控制策略,确认用户1可以解密;用户2是一个护士,名字为Alice,云服务器从属性权威处获得用户2的属性为护士和Alice,判断用户2的属性符合访问控制策略,确认用户2可以解密;用户3是一个护士,名字为Mary,云服务器从属性权威处获得用户3的属性为护士和Mary,判断用户3不满足密文中的访问策略,不能够解密该密文。
MA-CP-ABE(Multi-Authority CP-ABE,多属性权威的密文策略基于属性加密)则是CP-ABE更通用的形式,在很多应用场景中,属性权威(Attribute Authority,AA)往往有多个,例如,对于用户U而言,人社局管理用户U的社保相关属性,公安局管理用户U的户口相关属性;又诸如,即便在一个组织机构中,也可能存在多个属性权威(可分别对应多个部门)管理员工的不同属性,因此MA-CP-ABE可以在保证加解密安全性的基础上,支持多个属性权威共同为一个用户设置密钥。
在密钥撤销阶段采用密文-密钥更新的模式更符合分布式的加解密场景,相关技术中虽然有支持多属性权威场景的密钥撤销技术,但是在更新其它合法用户的密钥时,属性权威需要基于每个合法用户的身份信息,为每个合法用户分别计算不同的更新密钥消息,计算开销较大。另外,在仅支持单属性权威的密钥撤销技术中,需要通过所有合法用户的私钥来构造多项式,以此来生成密钥更新消息,多项式计算也与用户数量直接相关,计算开销依然很大。此外,上述密钥撤销方式也存在其它用户或者其它属性权威协助被撤销权限的用户更新密钥的可能性,安全性较差。
基于以上描述,本公开实施例提供了一种密钥更新方法、装置、多属性权威管理系统、设备及介质,可以较好适用于多属性权威的基于属性加密算法,在密钥撤销阶段中,密钥更新消息的计算方式与合法用户无关,可以直接统一为所有合法用户广播相同的密钥更新消息,所需的计算开销较小。另外,还可以通过目标属性权威(管理用户被撤销权限的目标属性)把控关键信息(诸如,密钥更新消息以及解密私钥中均需包含的随机密钥),其它目标属性权威均不知道该关键信息;并且设置各用户针对该目标属性的解密私钥中都包含有各用户的身份信息,因此可有效避免其它用户或者其它属性权威协助被撤销权限的用户更新密钥的情况发生,也即防止了用户之间共谋、用户与属性权威之间共谋的情况发生,充分提升了密钥撤销的安全性和可靠性。为便于理解,以下进行详细说明。
密钥更新方法通常需要属性权威与用户两方共同配合实现,基于此,本公开实施例首先以属性权威侧以及用户侧分别对密钥更新方法进行阐述。
首先,本公开实施例提供了一种密钥更新方法,该方法应用于多属性权威管理系统中的目标属性权威服务器,其中,多属性权威管理系统包括多个属性权威服务器,多个属性权威服务器用于共同管理用户的多个属性,也即,多属性权威管理系统中的多个属性权威服务器共同控制用户所拥有的多种属性的访问权限,每个属性权威服务器分别管理用户的至少一个属性,都对应有各自管理的属性集合。目标属性权威服务器为多个属性权威服务器之一,且目标属性权威服务器管理的属性集合中包含有目标属性,目标属性为目标用户待撤销权限的属性;参见图2所示的一种密钥更新方法流程图,该方法主要包括如下步骤S202~步骤S206:
步骤S202,在接收到属性权限撤销消息时,针对属性权限撤销消息中携带的目标属性生成新随机密钥,以替换目标属性的原有随机密钥。其中,属性权限撤销消息用于指示将目标用户的目标属性的权限撤销。在本公开实施例中,每个属性都对应一个随机密钥,该随机密钥由管理该属性的属性权威服务器生成,在通常情况下,随机密钥保持不变,但在密钥撤销场景中,如果有任一用户关于该属性的权限被撤销,则管理该属性的属性权威服务器需要更新该随机密钥,也即针对该属性生成新的随机密钥来替换原有的随机密钥。
在本公开实施例中,一个属性权威服务器可以管理一个或多个属性,不同属性对应不一样的随机密钥。随机密钥与用户无关,每个用户在同一个属性下的随机密钥相同。
步骤S204,基于新随机密钥、原有随机密钥以及目标用户的身份信息,获取多属性权威管理系统中的属性权威服务器各自对应的当前密钥更新消息。
本公开实施例提及的密钥更新方法可适用于多属性权威场景,当目标用户的目标属性被撤销时,合法用户更新该目标属性对应的密钥时,多属性权威管理系统中的所有的属性权威服务器(无论是否与该目标属性相关)都需要参与,每个属性权威服务器都对应有密钥更新消息。但是仅有目标属性权威服务器才知晓新随机密钥以及原有随机密钥,因而本公开实施例通过目标属性权威服务器基于新随机密钥、原有随机密钥以及目标用户的身份信息,获取每个属性权威服务器各自对应的当前密钥更新消息。
在一些实施方式中,目标属性权威服务器可以基于新随机密钥、原有随机密钥以及目标用户的身份信息,生成目标属性权威服务器自身对应的当前密钥更新消息;然后获取多属性权威管理系统中的其它属性权威服务器(也即,除目标属性权威服务器之外的其它属性权威服务器)分别基于目标用户的身份信息生成的原始密钥更新消息;对于每个其它属性权威服务器,基于新随机密钥、原有随机密钥和该其它属性权威服务器的原始密钥更新消息,生成该其它属性权威服务器对应的当前密钥更新消息。也即,目标属性权威服务器可以对其它属性权威服务器的原始密钥更新消息进一步处理,加入新随机密钥与原有随机密钥的相关信息,从而得到每个属性权威服务器对应的当前密钥更新消息。这种方式使目标属性权威服务器完全独立把控随机密钥,避免其它属性权威服务器获知随机密钥后协助目标用户非法更新密钥,充分保障了安全性。
另外,上述密钥更新消息均是基于新随机密钥、原有随机密钥以及目标用户的身份信息生成的,与各个合法用户(也即,非目标用户)的相关信息无关,因此无需单独为每个合法用户计算不同的密钥更新消息,而且计算的密钥更新消息也与合法用户数量无关,因此相比于现有技术,本公开实施例极大降低了生成密钥更新消息所需的计算开销。
步骤S206,广播获取到的当前密钥更新消息,当前密钥更新消息用于指示多属性权威管理系统中的其它用户终端更新各自存储的目标属性的解密私钥。其中,其它用户终端是指目标用户的终端之外的用户终端,也即为非目标用户的终端。目标属性权威服务器通过广播获取到的所有属性权威服务器对应的当前密钥更新消息,可以使除目标用户之外的其余合法用户分别基于每个属性权威服务器对应的当前密钥更新消息以及辅助密钥更新各自存储的目标属性的解密私钥。
其中,每个合法用户(也即,前述用户终端)更新后的解密私钥都包含有该合法用户的身份信息(也即,前述用户终端对应的用户身份信息)以及新随机密钥;每个合法用户的辅助密钥是目标属性权威服务器预先颁发给该合法用户的,且包含有该合法用户的身份信息,其中,辅助密钥也可称为更新密钥。
具体而言,针对每个用户终端,每个属性权威服务器都对应有该用户终端的辅助密钥,辅助密钥中包含有该用户终端的身份信息,而每个属性权威服务器对应的该用户终端的辅助密钥是由目标属性权威服务器生成的。在一些实施方式中,对于每个用户终端,目标属性权威服务器获取每个属性权威服务器分别为该用户终端计算的目标属性的辅助密钥中间值,并基于辅助密钥中间值和目标属性权威服务器的指定随机数生成每个属性权威服务器对应的该用户终端的辅助密钥;其中,辅助密钥中间值包含有该用户终端的身份信息;将每个属性权威服务器对应的该用户终端的辅助密钥颁发给该用户终端。也即,每个属性权威服务器都会为该用户终端计算目标属性的辅助密钥中间值,然后将辅助密钥中间值发送给目标属性权威服务器,目标属性权威服务器再在辅助密钥中间值的基础上融入指定随机数,生成该属性权威服务器对应的该用户终端的辅助密钥。这种方式也进一步保障了信息安全性,防止属性权威服务器采用辅助密钥协助被撤销权限的目标用户进行密钥更新。
与现有技术中需要分别为每个合法用户发生相应的密钥更新消息相比,本公开实施例中的目标属性权威服务器只需向所有用户统一广播密钥更新消息即可,较好节约了通信成本。另外,每个合法用户是基于每个所述属性权威服务器对应的密钥更新消息以及辅助密钥更新解密私钥,更新后的解密私钥都包含有该合法用户的身份信息以及所述新随机密钥,且用于生成解密私钥的辅助密钥也包含该合法用户的身份信息,由于不同用户的身份信息不同,因此被撤销属性权限的目标用户无法利用他人的解密私钥,也无法利用他人的辅助密钥实现密钥更新,另外,由于仅有目标属性权威服务器才知晓新随机密钥,其余用户以及属性权威服务器都不知晓新随机密钥,因此也都无法协助被撤销属性权限的目标用户生成具有新随机密钥的解密私钥,上述方式充分避免了其它用户或者其它属性权威协助被撤销权限的用户更新密钥的可能性,有效保障了密钥撤销的安全性和可靠性。
进一步,目标属性权威服务器还可以执行如下步骤:基于新随机密钥和原有随机密钥生成密文更新消息;将密文更新消息发送给用于存储密文的云服务器,以使云服务器根据密文更新消息对与目标属性相关的密文进行更新。其中,云服务器又可称为云存储服务器(Cloud Server,CS),主要负责存储用户上传的密文。可以理解的是,每个密文对应一个访问策略,访问策略里包含了指定的一种或多种属性,将访问策略中包含目标属性的密文即为与目标属性相关的密文。
上述方式只需要生成一条密文更新消息,云服务器即可利用该密文更新消息更新所有与该目标属性相关的密文,同样较好的节省了计算开销以及通信压力。
对应于前述由目标属性权威服务器执行的密钥更新方法,本公开实施例还提供了由用户侧执行的一种密钥更新方法,具体而言,该方法应用于用户终端(手机、计算机等),该用户终端可以是合法用户的终端,合法用户也即除待撤销权限的目标用户之外的其余用户,在撤销目标用户针对目标属性的权限(也即撤销目标用户关于目标属性的解密私钥)时,其他用户均可通过各自的终端执行该密钥更新方法,如图3所示的一种密钥更新方法流程图,该方法主要包括如下步骤S302~步骤S306:
步骤S302,接收多属性权威管理系统中的属性权威服务器分别对应的当前密钥更新消息;在一些实施方式中,多属性权威管理系统中的每个属性权威服务器各自对应的当前密钥更新消息均是由目标属性权威服务器统一获取并广播的,具体而言,各个当前密钥更新消息均是由目标属性权威服务器基于目标属性的新随机密钥、原有随机密钥以及目标用户的身份信息得到并广播给用户终端的,目标属性为目标用户待撤销权限的属性,且目标属性位于目标属性权威服务器管理的属性集合中。其中,目标属性权威服务器为多属性权威管理系统中的多个属性权威服务器之一,多属性权威管理系统中的多个属性权威服务器共同控制用户所拥有的多种属性的访问权限。每个属性权威服务器分别管理用户的至少一个属性,且目标属性权威服务器管理的属性集合中包含有目标属性。
在实际应用中,目标属性权威服务器基于新随机密钥、原有随机密钥以及目标用户的身份信息,获取每个属性权威服务器各自对应的当前密钥更新消息,并将当前密钥更新消息统一广播给所有用户,每个合法用户(用户终端)接收到的当前密钥更新消息均相同,无需单独为每个合法用户计算不同的密钥更新消息,而且计算的密钥更新消息也与合法用户数量无关,因此相比于现有技术,本公开实施例极大降低了生成密钥更新消息所需的计算开销,而且由目标属性权威服务器基于自身生成的随机密钥统一获取并广播每个属性权威服务器各自对应的当前密钥更新消息的方式,可以充分避免其它属性权威服务器获知随机密钥后协助目标用户非法更新密钥,充分保障了安全性。
目标属性权威服务器获取当前密钥更新消息的具体方式可参照前述相关内容,在此不再赘述。
步骤S304,通过目标属性权威服务器获取每个属性权威服务器对应的辅助密钥;辅助密钥中包含有用户终端的用户身份信息。
针对每个合法用户,每个属性权威服务器都对应有该合法用户的辅助密钥,用于与该属性权威服务器对应的当前密钥更新消息结合生成该合法用户的目标属性的解密私钥,而每个属性权威服务器对应的该合法用户的辅助密钥是由目标属性权威服务器生成的,具体生成方式可参照前述相关内容,在此不再赘述。在一些实施方式中,合法用户的终端可以主动向目标属性权威服务器请求获取每个属性权威服务器对应的该合法用户的辅助密钥,在另一些实施方式中,目标属性权威服务器可以直接将获取到的每个属性权威服务器对应的该合法用户的辅助密钥下发给该合法用户的终端。
由于辅助密钥中包含有用户的身份信息,不同用户的身份信息不同,因此被撤销权限的用户无法借助他人的辅助密钥生成自己的解密私钥,从而确保密钥撤销的安全性。
步骤S306,基于每个属性权威服务器对应的当前密钥更新消息以及辅助密钥更新原存储的目标属性的解密私钥;其中,更新后的解密私钥包含有用户终端的用户身份信息以及新随机密钥。
由于不同用户的身份信息不同,因此被撤销属性权限的目标用户无法利用他人的解密私钥,而且由于仅有目标属性权威服务器才知晓新随机密钥,其余用户以及属性权威服务器都不知晓新随机密钥,因此也都无法协助被撤销属性权限的目标用户生成具有新随机密钥的解密私钥,上述方式充分避免了其他用户或者其它属性权威协助被撤销权限的用户更新密钥的可能性,有效保障了密钥撤销的安全性和可靠性。
在一些实施方式中,用户终端可以参照如下步骤(1)~(3)实现上述步骤S306:
(1)对于每个属性权威服务器,基于该属性权威服务器对应的当前密钥更新消息以及辅助密钥,计算该属性权威服务器的部分密钥更新值。
(2)基于各个属性权威服务器的部分密钥更新值确定目标属性的密钥更新值。
每个属性权威服务器都对应有部分密钥更新值,目标属性权威服务器可以基于所有属性权威服务器对应的部分密钥更新值共同生成该合法用户的目标属性的密钥更新值。
在一种具体的实施方式中,可以首先基于各个属性权威服务器的部分密钥更新值以及当前密钥更新消息,得到各个属性权威服务器的解密私钥中间值;然后再将各个属性权威服务器的解密私钥中间值进行累乘,将累乘结果作为目标属性的密钥更新值。
(3)采用密钥更新值对原存储的目标属性的解密私钥进行更新,得到目标属性更新后的解密私钥。
在一种具体的实施方式中,可以采用密钥更新值与原存储的目标属性的解密私钥进行乘积运算,将乘积运算结果作为目标属性更新后的解密私钥。
为便于理解,本公开实施例给出如下当前密钥更新消息、辅助密钥、解密私钥的具体示例:
当前密钥更新消息为:
Kmsgj=(Kmsgj,1,Kmsgj,2,Kmsgj,3)
其中,
其中,Kmsgj是第j个属性权威服务器对应的当前密钥更新消息,且1≤j≤N,N为指定的多个属性权威服务器的总数量;Kmsgj,1是第j个属性权威服务器对应的当前密钥更新消息Kmsgj的第一部分,Kmsgj,2是第j个属性权威服务器对应的当前密钥更新消息Kmsgj的第二部分,Kmsgj,3是第j个属性权威服务器对应的当前密钥更新消息Kmsgj的第三部分;g2是公共参数,βk和∈k均为目标属性权威服务器选取的随机数;∈j为第j个属性权威服务器选取的随机数;v′x是目标属性的新随机密钥,vx是目标属性的原有随机密钥;tj,x是第j个属性权威服务器为目标属性x挑选的随机数;idr是目标用户的身份信息;φj是第j个属性权威服务器的隐私伪随机函数;
辅助密钥为:
Xx,j=(Xx,j,1,Xx,j,2)
其中,
其中,Xx,j是第j个属性权威服务器对应的目标属性x的辅助密钥;Xx,j,1是第j个属性权威服务器对应的目标属性x的辅助密钥的第一部分;Xx,j,2是第j个属性权威服务器对应的目标属性x的辅助密钥的第二部分;uid为合法用户的身份信息(也即,前述用户终端的用户身份信息)。
目标属性x更新后的解密私钥为:
其中,
其中,K
x’为目标属性更新后的解密私钥,K
x为目标属性更新之前的解密私钥;T是身份信息为uid的合法用户的目标属性x的密钥更新值;T
j是第j个属性权威服务器对应的部分密钥更新值;
是各个属性权威服务器的解密私钥中间值。
基于以上内容,为便于理解,本公开实施例进一步给出了支持高效密钥撤销的多属性权威的属性基加密算法的整个示例性流程,主要包括如下(一)初始化阶段;(二)密钥颁发阶段;(三)密钥撤销阶段,以下分别进行阐述说明:
(一)初始化阶段:
初始化的目的在于生成系统公共参数、系统公钥,以及每个AA(AttributeAuthority,属性权威)的初始化密钥。
其中,系统就是整个方案运行的环境,包括所有的AA、用户与CS。在实际应用中,系统公共参数可以是所有的属性权威服务器初始共同约定的,也可以是某个更权威的部门要求设定的,可以根据具体情况的不同而灵活设置,只需AA、用户和CS都认可这些参数即可。
每个AA k选取一个随机数α
k,并将
公开,其中g
1,g
2是分别循环群G
1和G
2的生产元,e:G
1×G
2→G
T是双线性对映射,用于将循环群G
1和G
2的两个值映射到椭圆曲线G
T上。g
1,g
2,e,G
1,G
2均为公共参数。AAk即为属性权威服务器。
其中,Yk是一个公开的密钥,用于在密钥颁发阶段做一个正确性的校验。公开方式可以灵活设置,可以在最初就直接发送给所有的参与者,也可以在之后每次收到请求时再发送。
每个AA k选择随机数a
k,然后公开
记a=∑a
k。每个AAk选取的随机数α
k,a
k,β
k,∈
k等均是私钥的一部分。
其中,
是用来在密钥颁发阶段计算的,也是公钥的一部分。a是所有AAk的随机数a
k之和,这只是一个记号,方便下文表示。
其中,本公开实施例采用αk和ak限定密钥只能由AAk生成,因为密文的加密也会出现αk和ak,需要让密文和密钥的随机数αk和ak能消去才可以解密。βk和∈k的引入主要是为了保证每个AA只能控制自己的属性权限,而不能越权管理其他AA的属性权限,例如AA1不能替代AA2为用户颁发某个属性的密钥。
每个AA k公开自己管理的属性集合S
k,对每个属性x选取随机密钥v
x,同时公开对应属性的公钥
应当注意的是,每个AAk管理的属性是与用户数量无关的,例如AA管理属性“性别=男”,“性别=女”,那属性集合就是这两个属性。pkx是指随机密钥vx的公钥,也可简称为属性公钥。
每个AA k为所有AA属性全集的每个属性选取一个随机数
其中S
i表示第i个AA拥有的属性集合,Z
p表示模质数p的数域。
其中,所有AA属性全集可理解如下:假设共2个AA,分别是AA1和AA2,其中,AA1管理“性别=男”,“性别=女”。AA2管理“学校=A”,“学校=B”。那属性全集就是4个属性。
综上,每个AAk具有如下主密钥:
tk,x表示AAk为属性x挑选的一个随机数,tk,x和tk,y两者含义是一样的,y只是用来区分与x不同的属性。
(二)密钥颁发阶段
1)颁发数据密钥。也即,根据用户的属性,为用户颁发合法的数据解密密钥。具体而言,颁发的是当前最新的初始密钥,因为颁发的密钥已经关联了AA的属性私钥vx,只要vx是最新的,那颁发的密钥也最新。该阶段与现有技术相比,主要有以下三个区别:一是引入了多AA共同颁发密钥的过程,二是将AA的属性私钥vx嵌入到颁发的用户密钥中,三是增加了一个辅助密钥。
当用户向AAk索要密钥时,AA k首先获取用户的统一标识符uid(用户的身份信息),uid需要在各个AA处都一样。
AA k将uid发送到其它AA j,AA j计算
发送给AA k,AA k计算得到
其中,φ
i(uid)是AA i的一个隐私伪随机函数;在实际应用中,一个AA对应一个服务器,AA之间的数据应该是不互通的,只能通过在需要时互相通信实现相关信息的交互。
然后AA k将
发送给其它的AA j,AA j收到消息后,计算/>
发送给AA k。
只是一个计算的中间数值,也可称之为uid的部分映射。它是AAj为用户uid计算的一个数值,主要是用来生成/>
相当于系统的一个将uid映射到数域G
2的函数,用于保证用户uid在系统中总对应一个唯一且确定的/>
这可以保证用户无论向哪个AA发起密钥颁发请求,总是得到与/>
一致的密钥。
AA k可以进一步计算
以此验证消息的正确性,其中Y
j是上述AA j公开的公钥,具体为:/>
上述消息是指
针对每个AAi,都会进行相应的验证。验证消息是否正确的方式为:判断公式的左右两边是否相等。因为g
1,/>
Y
j对于AAk都是已知的信息。
然后AA k生成密钥:
当从多个AA处获取密钥后,用户u的密钥为:
其中,Kx是属性x的解密私钥,L可以称为用户身份密钥。
在实际应用中,用户的密钥K和L只有一个,原因在于无论是哪个AA,为一个用户生成的K和L都是相同的。每个AA可能管理用户的一个或多个属性,因此相应地,每个AA可能为用户生成一个或多个属性密钥Kx
2)生成辅助密钥(也可称为更新密钥)X。具体而言,AA可以根据用户的属性,为用户颁发合法的辅助密钥,用于在用户撤销阶段,为合法用户提供密钥更新的功能。
每个AA j为一个属性密钥Kx计算辅助密钥中间值并发送给AAk,其中,辅助密钥中间值为:
AA k为AAj生成一个对应的辅助密钥:
Xx,j=(Xx,j,1,Xx,j,2)
其中,
其中,Xx,j,1,Xx,j,2是辅助密钥的两个部分,与密钥更新消息Kmsgj,1,Kmsgj,2这两个部分是对应的。
加密的密文为:
其中,T是密文的访问策略。CT是密文。C是密文第一部分。C’是密文第二部分。Cx,Dx,Ex分别是属性密文的第一、二、三部分。rx指的是本次加密为属性x随机选择的一个随机数。Yi是AAi的公钥。s是加密者随机选择的数。qx(0)可以称为s关于属性x的秘密分享值,因为访问策略T可以表示为一个树形结构,将s作为树根节点的秘密值,可以根据策略的逻辑关系,在每一层使用“秘密分享”技术生成秘密值的分享值。最终,每个属性x都会对应一个秘密分享值qx(0)。另外,前述随机密钥vx在加密时也会出现在密文上,需要密钥符合密文的访问策略才能解密。
密文是数据拥有者上传的。例如数据拥有者想要上传数据“1234”,策略为“性别=女且学校=A”,那就可以使用这个加密算法生成密文CT,并上传到CS。之后符合策略的用户可以用密钥解密得到“1234”。
密文和辅助密钥X无关,与数据密钥也无关。在加密过程中,数据拥有者除了使用到自己的数据、加密策略外,还需要使用相关AA的公钥、属性公钥。如上例,若AA1管理属性“性别=男”、“性别=女”,AA2管理属性“学校=A”、“学校=B”。那数据拥有者需要同时使用AA1和AA2的公钥、属性公钥来生成密文。
解密的密文为:
其中,解密与辅助密钥无关,和数据密钥相关。加密是数据拥有者(客户端)执行的,解密是数据使用者(也是客户端)执行的。具体应用场景是数据拥有者设定一个策略来分享自己的数据,然后数据使用者可以根据自己的密钥来尝试解密数据。
(三)密钥撤销阶段
具体而言,AAk撤销某用户关于属性x的密钥,并广播密钥更新消息,令云服务器更新相关的密文,以及令合法用户相应更新属性x的密钥。
设撤销的用户是idr,关联属性attrx,管理该属性的AA是AA k,具体按照如下3.1)~3.3)分别阐述:
3.1)密文更新:
AA k发送给云服务器密文更新消息CUK=∈
kβ
k(v′
x-v
x),然后云服务器更新密文
C
x指的是CT的属性密文部分。其中,/>
表示新的属性公钥。应当注意的是,上述第二个等式仅表示相等,而不是使用pk′进行计算。
3.2)密钥更新:
对于AAj(1≤j≤N)计算如下原始密钥更新消息Kmsg′j=(Kmsg′j,1,Kmsg′j,2,Kmsg′j,3)并发送给AAk。其中,
AA k随后计算AAj对应的当前密钥更新消息并将其广播给所有用户,其中,当前密钥更新消息为:
Kmsgj=(Kmsgj,1,Kmsgj,2,Kmsgj,3)
∈k即为AA k在原始密钥更新消息的基础上融入的AAk的指定随机数。
其中,Kmsgj,1,Kmsgj,2分别和密钥更新消息的两个部分对应;Kmsgj,3包含了属性密钥的变化值信息v′x-vx。
3.3)用户更新:
用户uid可以通过下式计算属性x的部分密钥更新值:
得到解密私钥中间值:
再累乘上述结果,得到密钥更新值
基于密钥更新值更新密钥:
用户更新的相关内容均是在用户终端计算。值得一提的是,不合法的被撤销用户(也即目标用户)无法根据辅助密钥X和密钥更新消息Kmsg生成密钥更新值T,因为密钥更新消息Kmsg中含有目标用户的身份信息,可以使得后续计算过程中会出现分母为0的情况,从而无法正常得到密钥更新值T。
在实际应用中,假设目标用户待撤销权限的属性有多个且该多个属性归属不同的属性权威服务器管理,则可能需要多个目标属性权威服务器(AAk),每个AAk都可参照前述流程执行,在此不再赘述。
综上所述,本公开实施例提供的上述密钥更新方法,可以达到至少如下效果:
(1)对所有的用户密钥更新时,每个AA只需要生成一条密钥更新消息并广播,每个合法用户都可以利用更新消息独立地更新自己的密钥。
具体而言,在现有技术中MA场景下的AA需要为每个合法用户计算不同的密钥更新消息,不同用户基于各自的密钥更新消息对密钥进行更新,彼此更新的密钥不同。而在本公开实施例中,AA只需要生成一条更新密钥消息即可,不同合法用户根据该广播的同一个更新密钥消息,也可以达到自身更新所得的密钥彼此不同的效果,达到该效果的关键原因在于,用户虽然接收到的更新密钥消息相同,但是用户彼此之间拥有的辅助密钥不同(辅助密钥与用户自身的身份信息相关),所以基于更新密钥消息和辅助密钥,最终更新得到的解密私钥也是彼此不同的。
(2)对存储在云存储服务器(CS)的密文更新时,AA只需要生成一条密文更新消息并发送给CS,CS可以利用密文更新消息更新所有与目标属性相关的密文。
(3)合法的用户不能根据接收的以及密钥更新过程的中间结果,为其他被撤销的用户更新密钥,可有效防止用户共谋。
具体而言,其它用户无法协助被撤销用户获得更新密钥的主要原因是:每个合法用户的辅助密钥和解密私钥都是不同的,而且都与自身的身份信息相关,即便把自己的辅助密钥和解密私钥分享给待撤销权限的目标用户,但由于与待撤销权限的目标用户的身份信息不匹配,所以待撤销权限的目标用户也无法使用。另外,生成的解密私钥中需要属性的随机密钥,而随机密钥仅由用于管理该属性的AA把控,用户无法知晓随机密钥,因此也无法协助被撤销用户生成该属性的解密私钥,也即无法辅助更新被撤销用户的密钥。
(4)其它AA不能提供信息为其他被撤销的用户更新密钥,可有效防止AA与用户共谋。
具体而言,本公开实施例所提及的防止AA与用户共谋,指的是防止与用户待撤销属性不相关的AA和待撤销用户共谋。例如,AA1管理属性1,AA2管理属性2。当被撤销用户含有属性1时,则避免AA2协助用户获知属性1的解密私钥。在本公开实施例中,属性1的解密私钥需要AA1生成的随机密钥v′x,而随机密钥v′x仅由AA1把控,AA2无法知晓随机密钥v′x,因此也无法辅助更新被撤销用户的密钥。
综上所述,在本公开实施例中,任意AA之间,任意AA与用户之间,任意用户之间均不能解密无权限的数据,也不能更新已经被撤销用户的密钥,具体原因概述如下:
对于任意AA之间和任意AA与用户之间这两种情况,仍然是由属性密钥vx保证的。由于密文包含的某个属性,例如属性1,是由特定AA(例如AA1)颁发的。其他AA与用户无法知道vx的值,因此AA之间合谋,或者AA与用户合谋均无法生成合法的属性1密钥,也就无法成功解密了,不能更新密钥也是相同的原理,也即无法获取新的属性密钥v′x。也即,AA可以对每个管理的属性通过随机密钥来控制用户是否具有该属性的权限。
对于任意用户之间的这种情况,比如想要解密的密文同时需要属性1和属性2。如果用户A拥有属性1的属性密钥,用户B拥有属性2的属性密钥。他们不能通过交换属性密钥Kx来解密数据,因为Kx包含了用户个人的身份信息,即φ(uid)。不同用户的身份信息不同,无法共同使用。同样地,对于密钥更新操作,由于不同用户的更新密钥也包含身份信息,得到的密钥更新值不同,因此也不能交换使用。
综上所述,本公开实施例提供的密钥更新方法可以支持MA场景下的密钥撤销,优势为安全性强、效率高,具体表现为:
1.可以支持多属性权威场景下正常的ABE加解密功能,同时增加了密钥撤销的功能。
2.具备如下特点:
A、高安全性:任意AA之间,任意AA与用户之间,任意用户之间均不能解密无权限的数据,也不能更新已经被撤销用户的密钥。
B、低开销:
a)对每个撤销的属性,AA端的计算、通信开销为O(1),即AA只需要计算一条更新消息并广播该消息。而现有技术中AA的计算开销、通信开销均与系统中用户数量相关(O(M)),AA需要为每个用户都单独计算一条更新消息并发送。其中,M是用户数量。
b)对每个撤销的属性,每个合法用户更新密钥的计算开销也是O(1),也即仅需计算一次,相比于其它密钥撤销方案,本公开实施例也是计算开销最少的。
c)对每个撤销的属性,云存储服务器更新每个密文的计算开销也是O(1)。
3.可以支持灵活的密钥撤销,包括同时撤销多个用户的同一属性、连续多次撤销不同用户的不同属性、连续撤销同一用户的多个属性等等,这些撤销流程所采用的逻辑均相同,均为本公开实施例提供的密钥更新方法的逻辑。在本公开实施例的基础上,可以实现密钥更新与密文更新均保持相同的密钥和密文形式,也即,本公开实施例提供的上述方式可重复执行多次执行,每次执行时所涉及到的公式形式均不变,只需每次执行时重新生成新随机密钥来替换原有随机密钥即可。因此在撤销多个用户,或者多次撤销用户时,只需在原来的结果之上,继续执行基于本公开实施例的密钥、密文更新算法,就可以多次更新密钥和密文。
本公开实施例进一步提供了一种密钥更新装置,该装置可应用于多属性权威管理系统中的目标属性权威服务器,该装置可由软件和/或硬件实现,一般可集成在目标属性权威服务器中,如图4所示的一种密钥更新装置的结构示意图,主要包括:
随机密钥替换模块402,用于在接收到属性权限撤销消息时,针对属性权限撤销消息中携带的目标属性生成新随机密钥,以替换目标属性的原有随机密钥;其中,属性权限撤销消息用于指示将目标用户的所述目标属性的权限撤销;
更新消息获取模块404,用于基于新随机密钥、原有随机密钥以及目标用户的身份信息,获取多属性权威管理系统中的属性权威服务器各自对应的当前密钥更新消息;
密钥更新模块406,用于广播获取到的当前密钥更新消息,当前密钥更新消息用于指示多属性权威管理系统中的其它用户终端更新各自存储的所述目标属性的解密私钥。
在一些实施方式中,更新消息获取模块404进一步用于:基于新随机密钥、原有随机密钥以及目标用户的身份信息,生成目标属性权威服务器自身对应的当前密钥更新消息;获取多属性权威管理系统中的其它属性权威服务器分别基于目标用户的身份信息生成的原始密钥更新消息;对于每个其它属性权威服务器,基于新随机密钥、原有随机密钥和该其它属性权威服务器的原始密钥更新消息,生成该其它属性权威服务器对应的当前密钥更新消息。
在一些实施方式中,上述装置还包括辅助密钥颁发模块,用于:对于每个用户终端,获取每个属性权威服务器分别为该用户终端计算的目标属性的辅助密钥中间值,并基于辅助密钥中间值和目标属性权威服务器的指定随机数生成每个属性权威服务器对应的该用户终端的辅助密钥;其中,辅助密钥中间值包含有该用户终端的用户身份信息;将每个属性权威服务器对应的该用户终端的辅助密钥颁发给该用户终端。
在一些实施方式中,上述装置还包括密文更新模块,用于:基于新随机密钥和原有随机密钥生成密文更新消息;将密文更新消息发送给用于存储密文的云服务器,以使云服务器根据密文更新消息对与目标属性相关的密文进行更新。
本公开实施例进一步提供了一种密钥更新装置,该装置可应用于用户终端,该装置可由软件和/或硬件实现,一般可集成在用户终端中,如图5所示的一种密钥更新装置的结构示意图,主要包括:
更新消息接收模块502,用于接收多属性权威管理系统中的属性权威服务器分别对应的当前密钥更新消息;其中,当前密钥更新消息是多属性权威管理系统中的目标属性权威服务器基于目标属性的新随机密钥、原有随机密钥以及目标用户的身份信息得到并广播给用户终端的;目标属性为目标用户待撤销权限的属性,且目标属性位于目标属性权威服务器管理的属性集合中。
辅助密钥获取模块504,用于通过目标属性权威服务器获取每个属性权威服务器对应的辅助密钥;辅助密钥中包含有用户终端的用户身份信息;
解密私钥更新模块506,用于基于每个属性权威服务器对应的当前密钥更新消息以及辅助密钥更新原存储的目标属性的解密私钥;其中,更新后的解密私钥包含有用户终端的用户身份信息以及新随机密钥。
在一些实施方式中,解密私钥更新模块506具体用于:对于每个属性权威服务器,基于该属性权威服务器对应的当前密钥更新消息以及辅助密钥,计算该属性权威服务器的部分密钥更新值;基于各个属性权威服务器的部分密钥更新值确定目标属性的密钥更新值;采用密钥更新值对原存储的目标属性的解密私钥进行更新,得到目标属性更新后的解密私钥。
在一些实施方式中,解密私钥更新模块506具体用于:基于各个属性权威服务器的部分密钥更新值以及当前密钥更新消息,得到各个属性权威服务器的解密私钥中间值;将各个属性权威服务器的解密私钥中间值进行累乘,将累乘结果作为目标属性的密钥更新值。
在一些实施方式中,解密私钥更新模块506具体用于:采用密钥更新值与原存储的目标属性的解密私钥进行乘积运算,将乘积运算结果作为目标属性更新后的解密私钥。
对于前述图4或图5所示的密钥更新装置,当前密钥更新消息为:
Kmsgj=(Kmsgj,1,Kmsgj,2,Kmsgj,3)
其中,Kmsgj是第j个属性权威服务器对应的当前密钥更新消息,且1≤j≤N,N为指定的多个属性权威服务器的总数量;Kmsgj,1是第j个属性权威服务器对应的当前密钥更新消息Kmsgj的第一部分,Kmsgj,2是第j个属性权威服务器对应的当前密钥更新消息Kmsgj的第二部分,Kmsgj,3是第j个属性权威服务器对应的当前密钥更新消息Kmsgj的第三部分;g2是公共参数,βk和∈k均为目标属性权威服务器选取的随机数;∈j为第j个属性权威服务器选取的随机数;v′x是目标属性的新随机密钥,vx是目标属性的原有随机密钥;tj,x是第j个属性权威服务器为目标属性x挑选的随机数;idr是目标用户的身份信息;φj是第j个属性权威服务器的隐私伪随机函数;
辅助密钥为:
Xx,j=(Xx,j,1,Xx,j,2)
其中,
其中,Xx,j是第j个属性权威服务器对应的目标属性x的辅助密钥;Xx,j,1是第j个属性权威服务器对应的目标属性x的辅助密钥的第一部分;Xx,j,2是第j个属性权威服务器对应的目标属性x的辅助密钥的第二部分;uid为合法用户的身份信息。
目标属性更新后的解密私钥为:
其中,
其中,K
x’为目标属性更新后的解密私钥,K
x为目标属性更新之前的解密私钥;T是身份信息为uid的合法用户的目标属性的密钥更新值;T
j是第j个属性权威服务器对应的部分密钥更新值;
是各个属性权威服务器的解密私钥中间值。
综上所述,本公开实施例提供的上述如图4或图5的密钥更新装置,在撤销目标用户的目标属性的权限时,用于管理该目标属性的目标属性权威服务器能够针对目标属性生成新随机密钥,以替换所述目标属性的原有随机密钥,并基于新随机密钥、原有随机密钥以及目标用户的身份信息,获取每个属性权威服务器各自对应的当前密钥更新消息并进行统一广播,无需再分别针对每个合法用户计算不同的密钥更新消息,且密钥更新消息的生成方式无需用到合法用户的相关信息,也即本公开实施例在密钥撤销阶段生成的密钥更新消息与合法用户无关,为所有合法用户统一生成的密钥更新消息所需的计算开销很小。另外,本公开实施例提供的密钥更新装置中,每个合法用户是基于每个所述属性权威服务器对应的密钥更新消息以及辅助密钥更新解密私钥,更新后的解密私钥都包含有该合法用户的身份信息以及所述新随机密钥,且用于生成解密私钥的辅助密钥也包含该合法用户的身份信息,由于不同用户的身份信息不同,因此被撤销属性权限的目标用户无法利用他人的解密私钥,也无法利用他人的辅助密钥实现密钥更新,另外,由于仅有目标属性权威服务器才知晓新随机密钥,其余用户以及属性权威服务器都不知晓新随机密钥,因此也都无法协助被撤销属性权限的目标用户生成具有新随机密钥的解密私钥,上述方式充分避免了其它用户或者其它属性权威协助被撤销权限的用户更新密钥的可能性,有效保障了密钥撤销的安全性和可靠性。综上,本公开实施例提供的上述装置可以有效降低密钥撤销所需的计算开销,并能够较好保障密钥撤销的安全性和可靠性。
本公开实施例所提供的密钥更新装置可执行本公开任意实施例所提供的相应侧(属性权威服务器侧或者用户的终端侧)的密钥更新方法,具备执行方法相应的功能模块和有益效果。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置实施例的具体工作过程,可以参考方法实施例中的对应过程,在此不再赘述。
本公开实施例还提供了一种多属性权威管理系统,包括多个属性权威服务器以及多个用户终端;属性权威服务器以及用户终端之间彼此都通信连接。其中,属性权威服务器用于在接收到属性权限撤销消息时执行如前述服务器侧的密钥更新方法,用户终端用于在接收到当前密钥更新消息时执行用户侧的密钥更新方法。
多属性权威管理系统包括多个属性权威服务器,多个属性权威管理服务器共同控制用户所拥有的多种属性的访问权限,每个属性权威服务器分别管理用户的至少一个属性。在确定有目标用户待撤销权限的属性(目标属性)时,用于管理该目标属性的属性权威管理服务器即为目标属性权威服务器,换言之,接收到属性权限撤销消息(用于指示将其管理的目标用户的目标属性的权限撤销)的属性权威服务器即为目标属性权威服务器。可以理解的是,多属性权威管理系统中的任何一个属性权威服务器都有可能成为目标属性权威服务器,在接收到属性权限撤销消息时,通过执行上述密钥更新方法来撤销目标用户的目标属性的权限。本公开实施例还提供了一种电子设备,所述电子设备包括:处理器;用于存储所述处理器可执行指令的存储器;所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述属性权威服务器侧的密钥更新方法,或者实现上述合法用户的终端侧的密钥更新方法。也即,本公开实施例的电子设备可以被实现为属性权威服务器,也可以被实现为用户终端(客户端)。
图6为本公开实施例提供的一种电子设备的结构示意图。如图6所示,电子设备600包括一个或多个处理器601和存储器602。
处理器601可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备600中的其他组件以执行期望的功能。
存储器602可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器601可以运行所述程序指令,以实现上文所述的本公开的实施例的密钥更新方法以及/或者其他期望的功能。在所述计算机可读存储介质中还可以存储诸如输入信号、信号分量、噪声分量等各种内容。
在一个示例中,电子设备600还可以包括:输入装置603和输出装置604,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
此外,该输入装置603还可以包括例如键盘、鼠标等等。
该输出装置604可以向外部输出各种信息,包括确定出的距离信息、方向信息等。该输出装置604可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
当然,为了简化,图6中仅示出了该电子设备600中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备600还可以包括任何其他适当的组件。
除了上述方法和设备以外,本公开的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本公开实施例所提供的密钥更新方法。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本公开实施例所提供的密钥更新方法。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
本公开实施例还提供了一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现本公开实施例中的密钥更新方法。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。