计算机应用   2017, Vol. 37 Issue (6): 1587-1592, 1615  DOI: 10.11772/j.issn.1001-9081.2017.06.1587
0

引用本文 

陈丹伟, 杨晟. 基于动态信用等级的密文访问控制方案[J]. 计算机应用, 2017, 37(6): 1587-1592, 1615.DOI: 10.11772/j.issn.1001-9081.2017.06.1587.
CHEN Danwei, YANG Sheng. Dynamic trust level based ciphertext access control scheme[J]. Journal of Computer Applications, 2017, 37(6): 1587-1592, 1615. DOI: 10.11772/j.issn.1001-9081.2017.06.1587.

基金项目

国家242信息安全计划项目(2015A051,2012A138);国家十一五科技支撑计划项目(2007BAK34B06);国家十五科技攻关计划项目(2004BA811B04)

通信作者

杨晟, ysheng12051@163.com

作者简介

陈丹伟(1970-), 男, 陕西商洛人, 教授, 博士, 主要研究方向:计算机通信网与安全、云计算、大数据、嵌入式系统;
杨晟(1992-), 男, 江苏南京人, 硕士研究生, 主要研究方向:信息安全、云计算、大数据

文章历史

收稿日期:2016-11-16
修回日期:2017-01-13
基于动态信用等级的密文访问控制方案
陈丹伟, 杨晟    
南京邮电大学 计算机学院, 南京 210003
摘要: 针对属性基加密机制(ABE)在移动互联网环境中计算开销较大且不够灵活的问题,提出了一种基于动态信用等级的密文策略属性基加密(CP-ABE)方案。首先,该方案引入"信用等级"属性用来标识用户的"信用"并以此划分用户等级,高"信用等级"用户仅需常数级的计算开销即可解密;同时,中央授权中心(CA)在设定的时间阈值评估用户的访问行为并动态更新用户的"信用等级",更新算法避免私钥的完全重新生成。理论分析和实验结果表明,随着高"信用等级"用户占比升高,所提方案系统总时间开销不断减少,最终达到稳定并优于传统方案。该方案在保证安全性的前提下,总体上提高了移动互联网环境中访问控制的效率。
关键词: 访问控制    属性基加密    信用等级    行为评估    属性更新    
Dynamic trust level based ciphertext access control scheme
CHEN Danwei, YANG Sheng     
College of Computer Science, Nanjing University of Posts and Telecommunications, Nanjing Jiangsu 210003, China
Abstract: Concerning the problems of Attribute-Based Encryption (ABE) such as high computational consumption and lack of flexibility in mobile Internet, a dynamic trust level based Ciphertext-Policy ABE (CP-ABE) scheme was proposed. Firstly, the "trust level" attribute was defined to indicate user's trusted level and divide users into different classes. User with high "trust level" was be able to decrypt the message in a constant computational overhead. Meanwhile, Central Authority (CA) was allowed to evaluate user's access behavior within the certain time threshold. Only the user's "trust level" was updated dynamically by the updating algorithm instead of complete re-generating of secret key. Theoretical analysis and experimental results show that, with the growing proportion of high "trust level" user, the total time consumption of the proposed scheme was decreased until being stable and finally was superior to the traditional scheme. The proposed scheme can improve the access control efficiency in mobile Internet on the premise of keeping the security standard.
Key words: access control    Attribute-Based Encryption (ABE)    trust level    behavior evaluating    attribute updating    
0 引言

大数据时代,云计算成了解决大数据分析的有效方案,云有着足够的数据存储和处理的能力。然而,数据存储在云端之后,安全性成了一个必须要解决的问题。以基于身份的加密机制(Identity-Based Encryption, IBE)[1-3]为基础,基于属性的加密机制(Attribute-Based Encryption, ABE)[4-7]的出现一定程度上解决了端到端的数据安全问题。ABE允许数据拥有者制定访问策略并基于该策略加密数据,而用户只有在自身属性满足访问控制策略的情况下才能解密数据。最初的ABE算法仅支持门限操作,无法达到细粒度的访问控制需求。Bethencourt等[5]改进了最初的ABE算法,提出了密文策略的ABE(Ciphertext-Policy ABE, CP-ABE)方案,将密文与一个访问控制树绑定在一起,而用户则与一系列属性绑定在一起。当用户属性集合满足密文的访问控制树时,可以解密数据。更接近人们对于访问控制的思维习惯。而其他访问控制策略[8-12]也增强了访问控制的灵活性。然而,在大数据发展的过程中,个人计算机已趋于饱和,移动互联网正迎来井喷式的发展。尽管ABE在云环境下使用广泛,但着眼于当前发展更为迅速的移动互联网,ABE的使用还存在一些缺陷。

将传统的CP-ABE方案应用在移动互联网环境中时,很有可能存在恶意用户,他们频繁地请求本身属性无法解密的数据,或越权使用数据,给系统造成很大的性能开销。而CP-ABE的解密算法计算开销较大,尤其在移动设备的计算能力和存储能力有限的情况下,会造成系统可用性问题。同时,现有方案缺少对用户的分类,控制粒度不够细。

基于上述问题,本文提出了一种基于动态信用等级的密文策略属性基加密方案,在该方案中,引入了“信用等级”属性用来标识用户的“信用”。根据用户不同的“信用等级”,系统作出不同的处理。

同时,系统会对用户的过往行为作出评估,动态地更新用户的“信用等级”属性。在属性更新时,本文方案避免了用户重新提交全部属性证明而完全重新生成密钥,可以直接做到仅更新需要更新的属性值,在不影响安全性的前提下,提高了系统的效率。

1 背景知识

本章给出本文系统相关的定义、框架及安全模型,并介绍双线性对相关的背景知识。

1.1 信用等级分类

系统在传统CP-ABE方案的基础上,为每个用户额外引入一个“信用等级”属性,该属性有三种状态,由高到低分别为:“受信用户”“一般用户”“非法用户”。

其中:“受信用户”可凭借这一属性,无需额外解密步骤,即可获取解密密钥,进而根据解密密钥直接解密获取数据明文;相反,被证实为“非法用户”的用户将被拒绝进一步访问;其余的“一般用户”将按照CP-ABE解密算法,根据自身属性解密得到数据。

1.2 系统角色分类

本文系统角色分为四类:

1) 数据所有者。数据所有者实际拥有数据,并对数据有操作权利,初始状态下设置用户“信用等级”属性,可以制定相关的数据访问策略。数据所有者同时也可能是数据的访问用户。

2) 用户。用户具有某些指定的属性,需要通过云服务器获取密文数据,然后使用自身的属性密钥进行解密。

3) 云服务器。云服务器提供数据的物理存储服务,负责响应数据所有者和用户的请求,提供数据的读写和传输工作。但是云服务器对数据没有解密的权利。

4) 中央授权中心(Central Authority, CA)。CA负责为用户分发解密密钥,同时根据用户的行为评估结果更新用户相应的“信用等级”属性。

1.3 系统框架

基于动态信用等级的密文访问控制方案系统模型如图 1所示。

图 1 系统模型 Figure 1 System model

该模型由三个模块共七个算法构成:

1) 初始化属性设置模块。该模块包含一个算法:用户“信用等级”属性初始化。由数据所有者和CA产生。在系统初始阶段或当有新用户加入系统时,CA为每个用户设置初始的“信用等级”属性值。

2) 改进的CP-ABE加解密模块。该模块包含如下四个算法:

a)系统初始化。由CA产生。初始化算法主要是用于为后续步骤产生公共的数据,包括了群的选择、产生公共的变量,以及选取一个将每个用户的“信用等级”属性转化到整数群的单项映射;同时生成一个系统主密钥,作用是用于生成属性私钥。

b)属性密钥生成。由CA产生。通过系统的主密钥,对系统中的每个用户进行认证,并为每个用户分配属于他的属性私钥,在本文系统中,还要求将每个用户的“信用等级”属性转化到整数群。属性私钥用于解密密文数据。

c)信息加密。由数据所有者和CA产生。加密算法主要是生成访问结构树,根据系统的公共数据,对信息进行加密,并将“受信用户”和“非法用户”所对应的信息置于密文之中,最终生成密文信息。

d)密文解密。由用户和CA产生。解密算法包含了2个步骤:首先判断用户的“信用等级”属性信息是否和密文包含的“受信用户”或“非法用户”信息相符合,若用户的“信用等级”属性信息满足密文所包含的“受信用户”信息的话,用户直接获取解密密钥,进而根据解密密钥直接解密获取数据明文;相反,若用户的“信用等级”属性信息满足密文所包含的“非法用户”信息,则系统直接拒绝用户的访问请求。其次,在一般状态下,用户的“信用等级”不足以直接获取解密密钥,只能根据自身的属性私钥按照传统CP-ABE的解密算法进行密文的解密,若属性私钥满足访问控制树,则解密成功;否则,解密失败。

3) 用户行为评估及属性更新模块。该模块包含如下两个算法:

a)用户行为评估。由CA产生。CA根据用户一段时间阈值内的访问行为对用户作出评价,若此期间用户无非法访问行为,表明该用户行为良好;若出现非法访问,则表明其行为异常。

b)属性更新。由CA产生。CA根据用户一段时间阈值内的访问行为动态地更新相应用户的“信用等级”属性。

1.4 安全模型

定义模型的交互步骤如下:

1) 系统建立阶段。挑战者运行系统初始化算法,生成系统公共参数。挑战者随机选择一个安全参数,运行密钥生成算法,生成公钥和私钥。挑战者秘密保存私钥,并将公共参数和公钥发送给攻击者。

2) 阶段一。攻击者查询属性集合 S1, S2, …, Sq1要求构造私钥。

3) 挑战阶段:攻击者选择两个长度相同的明文消息M0M1,发送给挑战者。同时,攻击者宣布一个想要挑战的访问结构Γ,要求阶段一中任意属性集S1, S2, …, Sq1均不满足该访问结构。挑战者抛掷一枚公平硬币b∈{0, 1},对其中一个消息Mb进行加密,并将密文CT发送给攻击者。

4) 阶段二。重复阶段一并继续限制任意属性集Sq1+1, Sq1+2, …, Sq均不满足挑战阶段的访问结构。

5) 输出阶段。攻击者根据密文CTb进行猜测,得到预测b′。如果b′=b,则认为攻击者赢得了游戏。

攻击者赢得上述游戏的概率为:|Pr[b′=b]-1/2|。 对于一个加密方案,如果任意概率多项式时间的攻击者在上述游戏中的优势是可忽略的,即其赢得游戏的概率都趋近于0,则称该加密方案是选择明文攻击下的不可区分性(INDistinguishability Chosen-Plaintext Attack, IND-CPA)安全。我们注意到若阶段一及阶段二中允许解密询问,该模型可得以扩展以解决选择密文攻击。

1.5 双线性映射

G0G1是两个阶为素数p的乘法循环群,设gG0生成元,e为双线性映射:G0×G0G1。双线性映射e有如下属性:

1) 双线性性:对于所有的uvG0abZp,有e(ua, vb)=e(u, v)ab

2) 非退化性:e(g, g)≠1。

2 系统实现

本文系统的实现细分为三个模块:初始化用户“信用等级”属性设置模块、改进的CP-ABE加解密模块以及用户行为评估及属性更新模块。

初始化用户“信用等级”属性设置模块由数据所有者和CA为用户设定初始化“信用等级”属性。

改进的CP-ABE加解密模块在传统CP-ABE方案的基础上,增加了“信用等级”属性的校验功能,针对不同用户的不同“信用等级”属性,算法的执行上稍有不同。

用户行为评估及属性更新模块会收集统计每个用户一段时间阈值内的访问行为,并对用户的访问行为作出评估。根据评估结果,更新用户“信用等级”属性。

2.1 初始化属性设置模块

在系统初始阶段或当有新用户加入系统时,CA会向数据所有者发起询问,询问目前系统中用户的信任信息,数据所有者将每个用户的“信用等级”属性 TrustLeveluser 与用户ID相关联,并将自己对用户的信任情况反馈给CA。CA根据数据所有者的反馈信息,根据用户ID为每个用户设置初始的“信用等级”属性值。数据所有者所信任的用户被设置为“受信用户”,即其 TrustLeveluser="trusted";数据所有者不完全信任的用户被设置为“一般用户”,即其TrustLeveluser="ordinary"。 初始状态下,不存在“非法用户”。

2.2 改进的CP-ABE加解密模块

1) 系统初始化(Setup)。

选择一个阶为素数 p 的双线性GDH群(间隙Diffie-Hellman群, Gap Diffie-Hellman Group) G0,生成元为g,随机选择两个元素α, βZp*。选择一个单向映射函数f将用户的“信用等级”属性映射到Zp*,即f

TrustLeveluserruser; ruserZp*

系统主密钥MK为(β, gα),系统公钥PK为:

(G0, g, h=gβ, e(g, g)α)

2) 加密算法(Encrypt( PK, M, Γ))。

生成访问控制树Γ,访问控制树的定义与文献[5]中访问控制树的定义相同。

加密消息M,得到的密文中包含了访问控制树Γ以及“信用等级”属性TrustLevel的两个临界值“受信用户”和“非法用户”。

利用系统初始化中选择的单向映射函数f将“信用等级”属性的两个临界值“受信用户”和“非法用户”分别映射到整数群中的某一元素。

r0=f(TrustLevel=("trusted"))∈Zp*

r0=f(TrustLevel=("untrusted"))∈Zp*

随机选取$ \bar s$Zp*,令s= $\bar s $*r0s′= $ \bar s$*r0′。

通过上一步骤中数据所有者构造的访问控制树Γ,为访问控制树中的每个节点x设计一个多项式qxqx满足dx=kx-1,其中:dx是多项式的度,kx是节点的门限值。从根节点递归生成每个节点的多项式qx

对于根节点,本文方案有特殊的考虑,目的在于将“信用等级”属性体现在其中,并且满足“一般用户”的正常解密流程。具体做法是分别计算TrustLevel="trusted"对应的构件qr(0)1=s= $\bar s $*r0以及TrustLevel="untrusted"对应的构件qr(0)2=s′= $ \bar s$*r0′。由于当用户的“信用等级”属性TrustLevel="untrusted"时,系统直接拒绝用户的访问请求,也无需后续解密过程,所以访问控制树中其他节点的多项式递归生成与TrustLevel="untrusted"对应的构件qr(0)2=s′= $\bar s $*r0′无关,仅与TrustLevel="trusted"对应的构件qr(0)1=s= $ \bar s$*r0有关,因此,最终生成qr(0)=qr(0)1=s=$\bar s $*r0。对于访问控制树中其他节点,取qr(0)=qr(0)1=s= $\bar s $*r0用于递归生成每个节点对应的多项式:

qx(0)=qparent(x)(index(x))

Ac为访问控制树Γ中叶节点的集合,最终生成的密文为:

$ \begin{array}{l} CT = \left( {\mathit{\Gamma}, \widetilde C = Me{{\left( {g, g} \right)}^{\alpha s}}, C = {h^s}, } \right.\\ \;\;\;\;\;\;\;\;\forall i \in {A_c}:{C_i} = {g^{{q_i}\left( 0 \right)}}, C_i^* = H{\left( {att\left( i \right)} \right)^{{q_i}\left( 0 \right)}}, \\ \left. {\;\;\;\;\;\;\;\;g, {g^{\overline s }}, {g^{{r_0}}}, {g^{{r_0}^\prime }}} \right) \end{array} $

3) 密钥生成算法(KeyGen( MK, Au))。

随机选择rZp*,对于用户所拥有的属性集AU中的每个属性j,选择一个rjZp*,计算用户的属性私钥为:

SK=(D=g(α+r)/β, ∀ jAU:Dj=gr·H(j)rj, Dj*=grj)

CA生成一份secret.txt 文件,将sZp*Dgs放入该文件中。最后,向用户返回SK 和加密后的secret.txt文件。

4) 解密算法(Decrypt( CT, SK))。

解密算法首先验证用户“信用等级”属性,若满足TrustLevel="trusted",则直接利用用户“信用等级”属性获取解密密钥,进而根据解密密钥直接解密得到明文;相反,若满足TrustLevel="untrusted",则系统直接拒绝用户的访问请求;若上述两种情况均不满足,利用用户属性密钥,对数据解密得到明文。

具体解密过程为:利用系统初始化中选择的单向映射函数f将用户的“信用等级”属性映射到整数群中的某一元素:ruser=f(TrustLeveluser)∈Zp*。从密文CT中获取四元组(g, $ {g^{\bar s}}$, gr0, gr0′),计算 $ {g^{{r_{{\rm{user}}}}*\overline s }}$得到五元组(g, $ {g^{\bar s}}$, gr0, gr0′, ${g^{{r_{{\rm{user}}}}*\overline s }} $),进而可以判断 ${g^{{r_{{\rm{user}}}}*\overline s }} \equiv {g^{{r_0}*\overline s }}{\rm{mod}}\left( p \right) $是否成立。若成立,则说明用户的“信用等级”属性TrustLevel="trusted",即用户为“受信用户”,可直接计算获取明文:

$ \widetilde C/e{\left( {g, g} \right)^{\alpha s}} = \widetilde C/e{\left( {g, g} \right)^{\alpha \overline s *{r_0}}} = \widetilde C/e{\left( {g, g} \right)^{a\overline s *{r_{{\rm{user}}}}}} = M $

${g^{{r_{{\rm{user}}}}*\overline s }} \equiv {g^{{r_0}*\overline s }}{\rm{mod}}\left( p \right) $不成立,则说明用户不是“受信用户”,还需进一步判断用户是否为“非法用户”。与上述过程类似,判断$ {g^{{r_{{\rm{user}}}}*\overline s }} \equiv {g^{{r_0}*\overline s }}{\rm{mod}}\left( p \right)$是否成立。若成立,则说明用户的“信用等级”属性TrustLevel="untrusted",即用户为“非法用户”,此时系统直接拒绝用户的一步解密请求。

若用户既不是“受信用户”,也不是“非法用户”,则需要根据其自身拥有的属性递归计算解密数据。

x表示访问控制树Γ中的一个节点,令k=att(x), kAU,则递归计算:

DecryptNode(CT, D, x)=e(Dk, Cx)/e(Dk*, Cx*)=e(g, g)rqx(0)

最终,如果用户的属性私钥满足访问控制树,可以得到:

DecryptNode(CT, D, r)=e(g, g)rqr(0)=e(g, g)rs

最终的明文M可通过计算获得:

$ M = \frac{{\widetilde C}}{{e\left( {C, DK} \right)/e{{\left( {g, g} \right)}^{rs}}}} $
2.3 用户行为评估及属性更新模块

CA会设定一个时间阈值,收集该时间阈值内各类用户的访问记录,评估其访问行为是否合理,并根据评估的结果更新相应用户的“信用等级”属性。因此,用户“信用等级”属性更新的频率由时间阈值所限定。

2.3.1 用户行为评估

要想评估访问行为的合理性,首先需要给出“合理”的访问行为的一系列标准。系统规定“合理”的访问行为的标准为:正常地访问并尝试解密数据,若成功解密,则按照权限的允许范围操作数据;若解密不成功,则一段时间内不再重复请求访问该数据;成功解密的数据不随意传播给其他用户。相反,违反上述任何一条规定的访问行为都被定义为“不合理”的访问。例如:成功解密数据后,一个只有“读”权限的用户尝试“写”或“删除”云服务器中的数据;解密不成功之后重复多次请求相同数据,给系统造成不必要的负担;任意将解密成功的数据传播给其他用户。

下面根据用户当前“信用等级”属性的分类,详细说明该过程:

若用户当前的“信用等级”属性 TrustLevel="ordinary",即用户当前为“一般用户”,按照系统模型的设计,该用户具有正常的访问权限,但无法根据“信用等级”属性直接获取明文,需要根据自身属性对应的SK解密密文。最终是否能成功解密,主要看该用户拥有的属性是否满足访问控制结构。在当前时间阈值内,若该用户未出现“不合理”的访问记录,CA在时间阈值到期后动态地将该用户的“信用等级”属性由TrustLevel="ordinary"更新为TrustLevel="trusted",即该用户由“一般用户”升级为“受信用户”。相反,在当前时间阈值内,若该用户出现了“不合理”的访问记录,CA在时间阈值到期后动态地将该用户的“信用等级”属性由TrustLevel="ordinary"更新为TrustLevel="untrusted",即该用户由“一般用户”降级为“非法用户”,在下一时间阈值内,该用户将被剥夺系统的访问权限。下一时间阈值结束后,该用户需要重新向CA申请访问权限,即将该用户的“信用等级”属性由TrustLevel="untrusted"更新为TrustLevel="ordinary",用户重新变为“一般用户”。

若用户当前的“信用等级”属性TrustLevel="trusted",即用户当前为“受信用户”,按照系统模型的设计,该用户具有正常的访问权限,且可以根据“信用等级”属性直接获取解密密钥,进而根据解密密钥直接解密获取数据明文。在当前时间阈值内,若该用户未出现“不合理”的访问记录,CA在时间阈值到期后保持该用户的“信用等级”属性为TrustLevel="trusted",即该用户继续为“受信用户”。相反,若在当前时间阈值内,若该用户出现了“不合理”的访问记录,CA在时间阈值到期后动态地将该用户的“信用等级”属性由TrustLevel="trusted"更新为TrustLevel="untrusted",即该用户由“受信用户”降级为“非法用户”,在下一时间阈值内,该用户将被剥夺系统的访问权限。下一时间阈值结束后,该用户需要重新向CA申请访问权限,即将该用户的“信用等级”属性由TrustLevel="untrusted"更新为TrustLevel="ordinary",用户变为“一般用户”。

需要说明的是,当某一用户两次由于“不合理”的访问记录被降级为“非法用户”后,其“信用等级”属性将不再更新,该用户永远被系统设为“非法用户”,系统将永久剥夺其访问权限。

若用户当前的“信用等级”属性TrustLevel="untrusted",即用户当前为“非法用户”,按照系统模型的设计,该用户无系统的访问权限。对于首次由于“不合理”的访问记录被降级为“非法用户”的一类用户,在当前时间阈值内,若该用户未出现“不合理”的访问记录,CA在时间阈值到期后动态地将该用户的“信用等级”属性由TrustLevel="untrusted"更新为TrustLevel="ordinary",即该用户由“非法用户”升级为“一般用户”。相反,若在当前时间阈值内,若该用户又出现了“不合理”的访问记录,CA在时间阈值到期后动态地将该用户的“信用等级”属性保持为TrustLevel="untrusted",即该用户仍然是“非法用户”,并且,其“信用等级”属性将不再更新,该用户永远被系统设为“非法用户”,系统将永久剥夺其访问权限。

2.3.2 属性动态更新

在设定的时间阈值到期后,CA会根据上述的用户行为评估结果更新相应用户的“信用等级”属性。本文系统仅考虑用户的“信用等级”属性的更新。在传统的属性更新算法中,用户被要求提供自身所有属性相关的证明,CA会验证所有相关证明,验证完成后再更新相应属性字段,完全重新生成新的 SK 并发送给用户。当用户关联的属性集很大时,传统的做法很明显会大量增加CA的计算开销,造成很大的负担。而在本文方案中,用户无需提供旧属性的相关证明,本文系统可根据用户提供的 SK ,收集用户的“信用等级”属性的旧的属性值,并根据评估结果将该属性字段更新为新的值,减小了用户操作的复杂度也降低了系统网络开销。同时,CA在更新用户属性时,会设置一个标志位,标识用户旧的 SK 无效,防止用户使用旧的 SK 去解密数据。

具体的属性更新算法步骤如下:

1) 用户提供自己旧的 SK和系统主密钥MK

2) CA解密secret.txt文件,获取用户秘钥生成算法中随机选择的rZp*Dgr。此时CA也可以选择生成新的rZp*Dgr

3) CA检查SK中用户的“信用等级”属性对应的属性,设为i,将该属性对应的属性值更新,并计算得到相应的DiDi*。将更新后的“信用等级”属性对应的密钥构件取代其原有构件,组成新的SK。

4) 向用户返回新的SK,若步骤2) 中重新生成了新的rZp*Dgr,则更新secret.txt文件,加密后发送给用户。

3 安全性分析

本章对系统设计与实现的安全性进行理论分析,在选择明文攻击游戏的基础上,针对改进的CP-ABE加解密模块、用户行为评估,以及属性更新模块的特有属性,分别讨论系统的安全性。

3.1 改进的CP-ABE加解密模块

文献[5]中传统的CP-ABE方案已经被证明是安全的,在此基础上,如果本文能够证明本文方案的存在并不能够攻破文献[5]中方案的安全性,那么本文方案也是安全的。

定理1  如果攻击者不能在多项式时间里以不可忽略的优势攻破CP-ABE方案,则不存在攻击者以不可忽略的优势攻破本文方案。

证明  这场游戏中定义了三个角色。攻击者 A、模拟器B和挑战者C,其中:挑战者C是传统CP-ABE方案的模拟器,模拟器B是本文方案的模拟器,它对挑战者C生成的参数进行改造,从而生成攻击者A所需要的参数。本文采用反证法,先假设攻击者A在多项式时间内能够以不可忽略的优势ε赢得游戏。

攻击者A要想攻破本文方案,可以按照其“信用等级”属性分为三类:

1) 当攻击者A为“受信用户”时,按照本文系统的设计,该用户具有正常的访问权限,且可以根据“信用等级”属性直接获取解密密钥,进而根据解密密钥直接解密获取数据明文。因此“受信用户”总能遵循本文方案的设计,解密得到明文,不存在进一步危害系统安全的行为。

2) 当攻击者A为“非法用户”时,按照本文系统的设计,将直接拒绝“非法用户”对数据的进一步访问,因此“非法用户”也总能遵循本文方案的设计,不存在进一步危害系统安全的行为。

3) 当攻击者A为“一般用户”。此时,攻击者A若要获胜,必须大概率获得密文CT与明文Mb的对应关系。这里获取明文有两种方法:一种是通过自身“信用等级”属性信息直接获得;另一种是通过属性私钥解密获得。

第一种情况,攻击者A伪造成“受信用户”,根据“信用等级”属性直接获取解密密钥,进而根据解密密钥直接解密获取数据明文。已知$\widetilde C = Me{\left( {g, g} \right)^{\alpha \overline s *{r_0}}}, g, {g^{\overline s }}, {g^{{r_0}}}$和“信用等级”属性的映射ra=f(TrustLevela)。针对“一般用户”,其TrustLevela≠"trusted",攻击者知道$\left( {g, {g^{\overline s }}, {g^{{r_0}}}} \right)$,根据计算性Diffie-Hellman(Computational Diffie-Hellman, CDH)问题的困难性,攻击者不能得到${g^{\overline s *{r_0}}} $,并且${g^{\overline s *{r_0}}} \ne {g^{\overline s *{r_a}}}$,所以攻击者无法通过解密算法得到明文Mb

接下来讨论攻击者通过自身属性私钥解密获得明文信息的这一类情况:此时本文方案与文献[5]中传统的CP-AB方案类似,即模拟器B与挑战者C相同。按照反证法,假设攻击者A在多项式时间内能够以不可忽略的优势ε赢得游戏,而模拟器B赢得该游戏的优势可定义为:AdvB=|Pr[b′=b]-1/2|=AdvA,即相对于AB 没有任何优势赢得这场游戏,与假设矛盾。

即证明本文方案是安全的,证明完毕。

3.2 用户行为评估及属性更新模块

用户行为评估主要根据CA设定的时间阈值,在该时间阈值收集该时间阈值内各类用户的访问记录,按照2.3.1节的过程评估其访问行为是否合理。由于本文系统实现的大前提满足CA能忠实地执行本文的访问控制策略以及用户的各种请求操作,因此在行为评估模块中,始终认为CA是可信的,能够公正地作出判断。所以可认为,用户行为评估模块始终是安全的。

而针对属性更新模块,假设用户初始的属性集为 AU,其“信用等级”对应的属性为i。“信用等级”属性仅决定用户是否能够不经过后续解密操作直接获取数据明文或系统直接拒绝其访问,当递归解密数据前验证完该属性后,后续的解密操作即与该属性无关。即用户“信用等级”属性仅作解密之前的验证工作,实际的解密算法使用Au′=AU-{i}属性集。因此,若Au′=AU-{i}属性集不满足访问控制树Γ时, 用户依然无法解密得到明文。

由于本文系统仅考虑用户的“信用等级”属性的相关更新操作,未涉及参与实际解密操作的属性集,因此对于系统的安全性没有影响。

改进的CP-ABE加解密模块主要以传统的CP-ABE的安全性为基础,增加的“信用等级”属性并未增加安全性风险,而用户行为评估和属性更新模块以传统的属性更新算法的安全性为基础,因此本文系统总体与传统的CP-ABE方案相比,具有相同的安全等级。

4 方案分析

表 1所示,将本文方案与传统的CP-ABE方案进行比较。传统的CP-ABE方案中提供了细粒度的访问控制功能,但用户的各级别都相同;而在移动互联网现实场景下,用户往往是分级的,本文方案利用“信用等级”将用户分级,在“受信用户”和“非法用户”两级提供更有效率的访问控制。

表 1 不同方案特征比较 Table 1 Feature comparison of different schemes

在属性更新方面,传统的CP-ABE方案需要完全重新生成私钥,在计算能力和存储能力都有限的移动动设备上,往往效率很低。本文方案只更新需要更新的字段,计算开销更小,更适用于移动互联网环境下使用。

在性能方面,包含信用等级的CP-ABE方案的访问控制中,系统主要计算开销为用户私钥生成算法、加密算法和解密算法。上述三个算法的运行效率直接影响系统的执行效率,下面给出各算法的相应测试结果。

在用户属性信息不更新的情况下,根据用户属性个数的不同,测试表明其属性私钥生成算法所需的时间与用户属性个数存在线性关系,如图 2(a)所示。

图 2 CP-ABE算法时间 Figure 2 CP-ABE algorithm time

在用户属性个数固定的情况下,选取服务器端访问控制树中的不同的属性个数,测试表明,其加密所需的时间与策略树中的叶子节点个数(即属性个数)存在线性关系,如图 2(b)所示。

在解密算法中,用户属性个数不变的情况下,选取访问控制树中节点个数不同,测试表明用户解密所需的时间与策略树中的节点个数存在线性关系,而当用户的“信用等级”属性与密文所包含“信用等级”临界值相匹配的时候,解密的时间为恒定的,且会小于利用属性解密所需的时间, 如图 2(c)所示。

最后,在用户“信用等级”属性更新时,涉及到相关属性私钥的重新生成,也有着一定的计算开销。不过由于本文方案无需验证用户所有属性对应的证明,可以根据用户提供的 SK 中收集得到。而在更新时,也无需重新生成密钥,只需更新相应字段,因此效率上有很大提高。选取用户属性私钥中属性个数不同,测试表明一般方案中用户属性私钥生成的时间与属性个数存在线性关系,而本文方案中,更新的时间与属性个数无关,如图 3所示。

图 3 属性更新算法时间比较 Figure 3 Time comparison of key update algorithm

进一步与传统CP-ABE方案相比较,在系统初始阶段,“受信用户”的人数所占比值比较小,而在解密算法中,用户需要判定自身“信用等级”属性与密文携带的“信用等级”属性的两个临界值是否相符,此时增加了一次${g^{{r_{{\rm{user}}}}*\overline s }} \equiv {g^{{r_0} * \overline s }}{\rm{mod}}\left( p \right) $的判定算法,而当$ {g^{{r_{{\rm{user}}}}*\overline s }} \equiv {g^{{r_0} * \overline s }}{\rm{mod}}\left( p \right)$不满足时,只能说明用户不是“受信用户”,还需要进一步计算${g^{{r_{{\rm{user}}}}*\overline s }} \equiv {g^{{r_0} * \overline s }}{\rm{mod}}\left( p \right) $来判断用户是否为“非法用户”。 之后才能按正常解密算法递归解密。而用户在判定“信用等级”属性和通过访问控制树进行判定时,要进行双线性对的运算。由于双线性对的计算复杂度较高,因此,在系统初步运行阶段,本文方案的计算复杂度较传统的CP-ABE方案相比稍显复杂。

但因为大部分“非法用户”都会在用户行为评估模块中被标记出来,而访问行为“合理”的“一般用户”也会按照系统定义的时间阈值更新其“信用等级”属性从而升级为“受信用户”。在通过“信用等级”属性判定用户是“受信用户”或“非法用户”后,可以跳过后续对访问控制树的解密操作,这将大幅降低算法的计算复杂度。在用户基数较大的移动互联网场景下,随着时间的迁移,“受信用户”或“非法用户”所占的比例将逐渐上升,系统总时间开销成下降趋势。最终,“受信用户”所占的比例将维持平稳。

实验选择的样本容量为1 000人,采用40个属性用于解密,设定初始阶段“受信用户”人数占比少于5%,经过一段时间,“受信用户”人数占比趋于稳定,具体内容如图 4所示。

图 4 解密总时间对比 Figure 4 Comparison of total decryption time

图 4可知,初始阶段,本方案总体上的时间开销更大,但随着系统的运行,按照本文方案的设计,“受信用户”所占的比例会稍有上升,总时间开销也会持续下降,直至趋于稳定。因此,在系统稳定运行之后,本文方案绝大部分计算开销即可避免,更适用于移动互联网环境的使用。

综上所述,本文方案在访问控制树的构造过程和加密算法中计算开销略高于传统CP-ABE方案。解密算法中,由于首先要验证“信用等级”属性与密文所包含“信用等级”临界值是否相匹配,尤其在“受信用户”和“非法用户”两个临界值都不匹配的时候会稍微提高解密的整体复杂度,但由于现实场景下,用户的“信用等级”属性会随着时间的推移不断刷新,按照本文方案的设计,“受信用户”或“非法用户”所占的比例会有所上升,因而就总体来看,总时间开销成下降趋势,最终会低于传统的CP-ABE方案并趋于平稳。

5 结语

本文提出了一种基于动态信用等级的密文访问控制方案,通过“信用等级”属性划分不同用户,进而针对不同用户作不同处理。在复杂的移动互联网环境下,本文方案能够提高系统的性能。同时,本文系统根据用户过往行为的评估动态地更新“信用等级”属性,在更新算法中,只更新指定字段,减少了系统负担。目前本文仅考虑单CA的情况,在复杂的云环境下单CA可能成为性能瓶颈,未来可以结合多CA的情形提高本文方案的适用性。

参考文献
[1] SAHAI A, WATERS B. Fuzzy identity-based encryption[C]//EUROCRYPT'05:Proceedings of the 24th Annual International Conference on Theory and Applications of Cryptographic Techniques, LNCS 3494. Berlin:Springer, 2005:457-473.
[2] SHAMIR A. Identity-based cryptosystems and signature schemes[C]//CRYPTO 1984:Proceedings of the 1984 Workshop on the Theory and Application of Cryptographic Techniques, LNCS 196. Berlin:Springer, 1984:47-53.
[3] BONEH D, FRANKLIN M K. Identity-based encryption from the Weil pairing[C]//CRYPTO'01:Proceedings of the 21st Annual International Cryptology Conference on Advances in Cryptology, LNCS 2139. Berlin:Springer, 2001:213-229.
[4] GOYAL V, PANDEY O, SAHAI A, et al. Attribute-based encryption for fine-grained access control of encrypted data[C]//CCS 2006:Proceedings of the 13th ACM conference on Computer and Communications Security. New York:ACM, 2006:89-98.
[5] BETHENCOURT J, SAHAI A, WATERS B. Ciphertext-policy attribute-based encryption[C]//SP'07:Proceedings of the 2007 IEEE Symposium on Security and Privacy. Washington, DC:IEEE Computer Society, 2007:321-334.
[6] WANG G J, LIU Q, WU J. Hierarchical attribute-based encryption for fine-grained access control in cloud storage services[C]//CCS'10:Proceedings of the 17th ACM Conference on Computer and Communications Security. New York:ACM, 2010:735-737.
[7] LEWKO A, OKAMOTO T, SAHAI A, et al. Fully secure functional encryption:attribute-based encryption and (hierarchical) inner product encryption[C]//EUROCRYPT'10:Proceedings of the 29th Annual International Conference on Theory and Applications of Cryptographic Techniques, LNCS 6110. Berlin:Springer, 2010:62-91.
[8] RUJ S, NAYAK A, STOJMENOVIC I. DACC:distributed access control in clouds[C]//Proceedings of the 2011 IEEE 10th International Conference on Trust, Security and Privacy in Computing and Communications. Washington, DC:IEEE Computer Society, 2011:91-98.
[9] HUR J, NOH D K. Attribute-based access control with efficient revocation in data outsourcing systems[J]. IEEE Transactions on Parallel and Distributed Systems, 2011, 22(7): 1214-1221. doi: 10.1109/TPDS.2010.203
[10] 陈克非, 翁健. 云计算环境下数据安全与隐私保护[J]. 杭州师范大学学报(自然科学版), 2014, 13(6): 561-570. ( CHEN K F, WENG J. Data security and privacy protection in cloud computing[J]. Journal of Hangzhou Normal University (Natural Science Edition), 2014, 13(6): 561-570. )
[11] 刘团奇, 张浩军, 赵志鹏. 一种云环境下基于身份的统一身份认证方案研究[J]. 中原工学院学报, 2015, 26(4): 55-58. ( LIU T Q, ZHANG H J, ZHAO Z P. A unified identity authentication in cloud with ID-based cryptography[J]. Journal of Zhongyuan University of Technology, 2015, 26(4): 55-58. )
[12] WAN Z G, LIU J, DENG R H. HASBE:a hierarchical attribute-based solution for flexible and scalable access control in cloud computing[J]. IEEE Transactions on Information Forensics and Security, 2012, 7(2): 743-754. doi: 10.1109/TIFS.2011.2172209