云存储环境下可撤销属性加密

王光波 1 刘海涛 1 王晨露 1 王鹏程 1 练 琳 2 惠文涛 3

1 (31008部队 北京 100036) 2 (61660部队 北京 100036) 3 (61046部队 北京 100094) (691759571@qq.com)

随着大数据时代的到来,出现越来越多的用户数据,为了实现数据共享的同时降低成本,使用第三方的云存储提供商(cloud storage provider, CSP)成为优先选择.云存储作为云计算的延伸与发展,其最大特点是存储即服务,用户可以在任何地点、任何时间,通过任何可连网设备方便地存取数据,因此得到了越来越广泛的应用.但是,云存储中用户数据存储在云端服务器上,脱离了用户的实际控制,因此如何保证用户隐私和数据安全的同时尽可能地提高服务质量已经成为安全云存储的关键问题.

Sahai等人 [1] 在2005年提出了属性加密(attribute-based encryption, ABE)的概念,将密文和密钥与一系列的属性相关联,通过定义访问结构,指定能够解密数据的属性集合,实现细粒度的访问控制,属性加密方案凭借其灵活的访问结构在云存储中得到了广泛的应用.最初的ABE只能实现门限操作,策略表达不够丰富.因此,有学者提出了基于密文策略 [2-4] (ciphertext-policy, CP)和密钥策略 [5-6] (key-policy, KP)的ABE机制,实现丰富的属性操作,因此能够支持更加灵活的访问策略.

然而,在云存储中应用ABE也带来了严重的安全挑战.因为云存储中存在大量的用户,而在ABE的应用中不同的用户可能共享相同的属性.如果用户的某个属性被撤销,如何保证在不影响其他用户正常访问的前提下,实现对该用户相应访问权限的撤销,而且不能造成系统的过载与安全强度的降低,成为亟待解决的问题.本文主要针对这一问题进行研究.

近年来,在ABE的实际应用中,用户撤销的重要性引起了人们的重视,Ostrovsky等人 [7] 提出了一种实现用户级撤销的ABE方案.该方案通过对撤销用户的身份进行AND的“非”操作来实现撤销,但是性能太差.随后,Staddon等人 [8] 提出了一种实现用户可撤销的KP-ABE方案,但是该方案只能在满足密文相关属性正好为整个属性集的一半时才能被使用,限制太高,不符合实际应用.Liang等人 [9] 提出了一种利用二叉树结构来实现用户撤销的CP-ABE方案,由属性授权生成更新密钥实现撤销,但是性能较差,而且增加了属性授权的负担.可以发现,这几种方案都只能实现系统级的用户撤销,即一旦用户的某个属性被撤销,就失去了系统中所有其他属性对应的访问权限.

在属性级用户撤销方面,文献[10-12]通过为每个属性设置有效期来实现属性撤销,但是这种方式不能实现实时撤销.Hur等人 [13] 提出了一种通过使用密钥加密密钥树来实现属性撤销的CP-ABE方案,该方案能够实现属性级的用户撤销.若某个用户的属性被撤销,CSP将生成新的密钥加密密钥,并重新加密所有的密文.但是,在该方案中,用户需要额外存储lb( n user+1)长度的密钥加密密钥,其中 n user表示系统内的所有用户,而且该方案仅仅实现了通用群模型下的安全性,通用群模型为启发式的安全,不是可证明安全,很多通用群模型下安全的方案在实际应用中发现并不安全.随后,Yang等人 [14] 提出了一个适用于云存储环境的CP-ABE方案,该方案为每个属性生成2个对应的公开参数.当需要进行属性撤销时,由属性授权生成更新密钥,并建立安全通道,将其发送给所有未被撤销的用户进行密钥更新,同时发送给CSP进行密文更新.另外,属性授权需要更新该属性对应的2个公钥参数,并将其发送给所有的用户,因此加重了属性授权的计算负载和通信负载.而且,对于每次撤销,用户必须保持在线进行密钥更新和公钥更新.

本文针对这一问题展开研究,提出了一个标准模型下可证明安全的支持属性级用户撤销的CP-ABE方案,在该方案中,一旦用户的某个属性被撤销,CSP将随机选择撤销属性对应的指数,对密文进行更新.然后,本文设计了一个广播属性加密方案对随机指数进行加密,且广播属性加密方案使用与加密算法相同的访问策略.因此,本方案可以实现只有属性集合满足密文访问策略且未被撤销的用户才能进行密钥更新.而且对于每次属性撤销,本文方案的用户不需要进行实时的密钥更新,只有用户解密时才需要进行密钥更新,进而解密密文.而且,用户进行密钥更新前,可以先确认其拥有的属性集合是否满足访问策略,若不满足,则不必进行密钥更新.

1 相关技术

在方案提出前,首先对本文将用到的相关技术进行简单介绍,包括双线性群、线性秘密分享方案及确定性 q -parallel BDHE( q -parallel bilinear Diffie-Hellman exponent)假设.

1 . 1 双线性群

定义1 . 双线性群.双线性群提出后被广泛应用到各种密码系统中.令 ψ 是一个群生成算法,以安全参数 λ 为输入,输出( p , , T , e ).其中 p 为素数,由安全参数 λ 决定, T 是2个阶为 p 的循环群, e : × T 是一个满足3个条件的映射:

1) 双线性.∀ u , v , a , b p , e ( u a , v b )= e ( u , v ) ab .

2) 非退化性.∃ g 使得 e ( g , g )在 T 中的阶是 p .

3) 计算性.存在有效的对运算算法.

1 . 2 线性密钥分享方案

定义2 . 线性秘密分享方案(linear secret-sharing scheme, LSSS) [15] .参与者集合 P 上的一个秘密共享方案Ⅱ如果满足2个条件,则称为 p 上的线性秘密共享方案:

1) 每个实体的秘密份额构成 p 上的一个向量.

2) 对于每个秘密分享方案Ⅱ,存在一个生成矩阵 A ( l × n ),对于矩阵 A 中的每一行 i =1,2,…, l ,映射 ρ :{1,2,…, l }→ P A 的每一行映射到参与者 ρ ( i ).考虑向量 v =( s , r 2 , r 3 ,…, r n ), s p 是共享密钥, r 2 ,…, r n 随机选择用来隐藏 s Av l 个秘密份额形成的向量,其中 λ i =( Av ) i 表示参与者 ρ ( i )所持有的秘密份额.

1 . 3 确定性 q - parallel BDHE假设

定义3 . q -Parallel BDHE假设 [16] .令 表示阶为 p 的双线性群, a , s , b 1 , b 2 ,…, b q p 内随机选择的参数, g 的生成元.若攻击者给定参数

y =( g , g s , g a , g a 2 ,…, g aq , g aq +2 , g aq +3 ,…, g a 2 q

其中,1≤ k , j q ,对攻击者来说,要区别 e ( g , g ) aq +1 s 与群 T 中的随机元素 R 来说是困难的.算法B通过输出 z ∈{0,1}来进行猜测,定义其拥有优势 ε 来解决群 下的 q -Parallel BDHE假设,如果:

| Pr [B( y , T = e ( g , g ) aq +1 s )=0]-
Pr [B( y , T = R )=0]|≥ ε

若无多项式时间算法以不可忽略的优势来解决 q -Parallel BDHE问题,那么我们就说假设 q -Parallel BDHE在群 T 中是成立的.

2 属性加密

本节首先定义了一个标准语义安全的(semantic security)的选择性安全模型,即选择明文攻击下的密文不可区分性(ciphertext indistinguishability under chosen plaintext attacks, IND-CPA) [17] ;接着对本文提出的属性加密方案进行构造.

2 . 1 选择性安全模型

在该选择性安全模型中,我们将使用Tu等人 [18] 提出的技术,其具体定义如下:

1) 选择阶段.攻击者A选择将要攻击的访问结构 A * 与属性 x * 的撤销列表 RL x * .

2) 参数设置阶段.挑战者B运行初始化 Setup 算法,并把产生的系统公开密钥参数 PK 发送给攻击者A.

3) 查询阶段1. 攻击者A适应性地向挑战者提交一系列的身份-属性对集合,( ID 1 , S 1 ),( ID 2 , S 2),…, ID i RL x * ,则 否则

对于查询阶段的限制为:任何属性集 都不能满足访问结构 A * .

4) 挑战阶段.攻击者A提交长度相等的2个消息 M 0 M 1 给挑战者B.然后B随机选择 β ∈{0,1},并在访问结构 A * 下加密 M β ,产生密文 CT * ,并将其发送给攻击者A.

5) 查询阶段2. 如查询阶段1,攻击者适应性地向挑战者提交一系列的身份-属性对集合 其限制与查询阶段1相同.

6) 猜测阶段.攻击者A输出一个值 β ′∈{0,1}作为对 β 的猜测.如果 β ′= β ,我们称攻击者A赢得了该游戏.攻击者A在该游戏中的优势定义为

Adv A =| Pr [ β ′= β ]-1 2|.

若无多项式时间算法以不可忽略的优势来攻破以上安全模型,那么我们就说本文提出可撤销属性加密方案是安全的.

2 . 2 方案构造

本节对提出的可撤销属性加密方案进行了具体构造.

2.2.1 系统初始化

系统初始化阶段,属性授权生成系统的相关参数,包括公开密钥与主密钥.

初始化算法: Setup ( λ , U , n )→( PK , MSK ).

属性授权以安全参数 λ 、属性集合 U 与用户数量 n 作为输入,运行群生成函数 ψ 获得系统参数( p , , T , e ),其中 p 为素数, T p 阶循环群, e 是一个双线性映射. g 为群 的生成元.算法随机选择 α , β p ,并且设置 g i = g ( αi ) ,其中 i =1,2,…, n , n +2, n +3,…,2 n .接着算法随机选择 γ p ,设置 v = g γ .对于每一个属性 i U ,算法随机选择参数 h 1 , h 2 ,…, h U .系统公开密钥参数 PK 设置为

PK =( p , g , g 1 , g 2 ,…, g n , g n +2 , g n +3 ,…,
g 2 n , v , e ( g , g ) β , h 1 , h 2 ,…, h U ),

主密钥 MSK 设置为

MSK =( α , γ , g β ).

2.2.2 数据加密

当用户想要将数据 M 放到CSP时,他首先定义访问控制策略( A , ρ ),其中 A 是一个 l × n 矩阵,映射函数 ρ A 的每行 A i 映射到一个属性 ρ ( i ).如文献[19]要求 ρ 不会把2个不同的行映射到同一个属性.然后运行算法 Encrypt ( PK , M ,( A , ρ ))对 M 进行加密.

加密算法: Encrypt ( PK , M ,( A , ρ ))→ CT .

算法以系统公开密钥 PK 、明文消息 M 和访问控制策略( A , ρ )为输入,然后算法随机选择 s , v 2 , v 3 ,…, v n p ,并定义向量 v =( s , v 2 , v 3 ,…, v n ),对 A 的每一行 A i ,计算内积 λ i = A i · v ,并随机选择 r i p ,算法输出密文:

CT =(( A , ρ ), C = M × e ( g , g ) β s , C 0 = g s ,

2.2.3 数据重加密

当用户集 RL x 的属性 x 被撤销时,为了撤销该属性对应的访问权限,但不影响该用户集其他属性以及其他用户的正常访问,使用广播属性加密对密文进行更新.

重加密算法: Re_encrypt ( PK , CT , RL x )→ CT ″.

算法以系统公开密钥 PK 、密文 和撤销用户集 RL x 为输入,算法随机选择 v x * p ,并输出重加密密文:

然后算法随机选择 p 并使用与2.2.2节中相同的访问控制策略( A , ρ ),随机选择参数 p ,并定义向量 A 的每一行 A i ,计算内积 接下来随机选择 p ,并定义广播用户集 N = n\ { RL x },最终对 v x 进行加密生成密文头:

因此最后输出密文为 CT ″=( CT ′, Hdr x ).

2.2.4 密钥生成

为了实现外包解密、提高性能,生成密钥:

密钥生成算法: KeyGen out ( PK , MSK , ID , S )→ SK .

算法以系统公开密钥 PK 、主密钥 MSK 、用户身份 ID 和用户属性集合 S 为输入,然后算法随机选择参数 r ′∈ p ,并生成相应的用户密钥 其中:

密钥生成后,算法随机选择参数 z * p ,并计算:

K =( K ′) 1 z =( g αIDγ ) 1 z ( g α r ) 1 z

L =( L ′) 1 z =( g r ) 1 z

r = r z ,得到密钥为

并设置外包密钥 密钥 SK =( z , TK ).

2.2.5 部分解密

为了实现用户的外包解密,用户需要将外包密钥 TK 发送给CSP,然后CSP代为进行部分解密如下:

部分解密算法: Transform out ( TK , CT ″)→ TCT .

算法以外包密钥 与密文 CT ″=( CT ′, Hdr x )为输入.

1) 无属性被撤销,即 Hdr x =∅.此时, 若用户属性集合 S 满足访问策略( A , ρ ),则CSP能在多项式时间计算{ w i p } i I 使等式成立: 然后计算:


E = D B = e ( g , g ) β s z e ( g , g ) α rs e ( g , g ) α rs = e ( g , g ) β s z .

部分解密完成后,CSP将 TCT =( C , E )发送给用户进行最后解密.

2) 用户集 RL x 的属性 x 被撤销,即 Hdr x ≠∅.此时 若用户属性集合 S 满足访问策略( A , ρ ),且 ID RL x 时,那么CSP对 Hdr x 进行部分解密.同样计算 使等式成立: 接着计算:


E x = D x

因此设置部分解密后的密文头为 然后CSP对 CT ′进行部分解密对于属性 ρ ( i )≠ x

对于属性 保持不变.

因此设置部分解密后的密文为

部分解密完成后,CSP将 发送给用户进行最后解密.

2.2.6 解密

用户得到部分解密密文后,进行最后解密.

解密算法: Decrypt ( TCT , SK )→ M .

算法以部分解密密文 TCT 与用户密钥 SK 为输入.

1) 无属性被撤销,即 TCT =( C , E ).此时用户计算:

C E z = M × e ( g , g ) β s ( e ( g , g ) β s z ) z = M .

2) 用户集 RL x 的属性 x 被撤销时,即 此时 因此用户计算:

若用户属性集合 S 满足访问策略( A , ρ ),则CSP能在多项式时间计算{ w i p } i I 使 成立,然后计算:


E = D B = e ( g , g ) β s z e ( g , g ) α rs e ( g , g ) α rs = e ( g , g ) β s z
C E z = M × e ( g , g ) β s ( e ( g , g ) β s z ) z = M .

2 . 3 安全证明

引理1 . 若确定性的 q -parallel BDHE假设在群 T 中成立,那么没有多项式时间的攻击者能选择性地攻破我们的方案,其中挑战矩阵为 A * ( l * × n * ),且 l * , n * q .

证明. 假设攻击者A能以不可忽略的优势 ε = Adv A 选择性地攻破我们的方案,而且假设其挑战矩阵为 A * ( l * × n * ),且 l * , n * q .接下来,我们将构造仿真器B来攻破确定性的 q -parallel BDHE假设.

1) 选择阶段.仿真器B以确定性的 q -parallel BDHE挑战 y , T 为输入.并且攻击者A给定访问控制( A * , ρ * )与属性 x * 的撤销列表 RL x * ,其中 A * n * 列.

2) 参数设置阶段.仿真器B随机选择 β ′∈ p ,并通过计算 e ( g , g ) β = e ( g , g ) β × e ( g α , g αq )来隐含地设置 β = β ′+ α q +1 .另外算法设置广播集:

然后选择 u p ,并设置

设置群元素 h 1 , h 2 ,…, h U ,对于每个 x (1≤ x U ),随机选择参数 z x p .令 X 表示 ρ * ( i )= x 的索引 i 的集合,因此 h x 被设置为

需要注意的是,若 X =∅,那么 另外由于 z x 是随机的,因此参数 h x 是随机分布的.

最后仿真者B发送给攻击者A公开密钥为

PK =( g , g 1 , g 2 ,…, g q , g q +2 , g q +3 ,…,
g 2 q , v , e ( g , g ) β , h 1 , h 2 ,…, h U ).

3) 查询阶段1. A向B进行密钥生成查询O kg 与密文重加密查询O ree .

① A向B进行用户身份 ID j 和用户属性集合 S j 的密钥生成查询O kg .若 ID j RL x * ,则设置 ID j RL x * ,则设置 另外根据规则,若 满足访问控制( A * , ρ * ),输出⊥.否则生成用户密钥如下:

仿真器B计算向量 w =( w 1 , w 2 ,…, w n * )∈ n p

其中 w 1 =-1,且对于所有的 满足 通过LSSS的定义,这样的向量能在多项式时间内计算得到.

仿真器随机选择 t p ,并定义 r

r = t + w 1 α q + w 2 α q -1 +…+ w q α .

计算 L ′为

通过 r 的定义及 w 1 =-1, g α r 包含了 g - αq +1 项,而 g - αq +1 在假设中并没有给出,但是在生成密钥 时,由于隐含地设置 β = β ′+ α q +1 ,因此, g - aq +1 能通过与 g β = g β g αq +1 相乘而被取消:

仿真器将计算密钥 对于所有的属性 若访问控制矩阵中不存在行 k 满足 ρ * ( k )= i ,则设置 否则,若访问控制矩阵中存在行 k 满足 ρ * ( k )= i ,令 X 表示所有满足 ρ * ( k )= i 的行 k 的集合,且设置

仿真器B需要为用户 ID j RL x * 设置密钥 K ′.同样, g α r 包含了 g - αq +1 项,而 g - αq +1 在假设中并没有给出,但是 v 被设置为 且由于 ID j RL x * ID j N ,因此, g αIDγ 包含 g αq +1 g α r 中的 g - αq +1 项能与 g αIDγ 中的 g αq +1 项相乘而被取消:

密钥生成后,B随机选择参数 z * p ,并且设置外包密钥:

私钥 SK =( z , TK ),最后将 TK 发送给A.

② A向B进行属性 x * 的撤销列表 RL x * 与密文 的重加密查询O ree .算法生成重加密密文如下:

仿真器随机 v x * * p ,并输出重加密密文:

算法随机选择参数 p ,并定义向量 A * 的每一行 计算内积 接下来随机选择 p ,并定义广播用户集 N = q\ { RL x * },最终对 v x 进行加密生成密文头:

其中, 为正确分布的密文:

因此,最终生成重加密密文为

CT ″=( CT ′, Hdr x * ).

4) 挑战阶段.攻击者A向B提交相同长度的密文 M 0 M 1 .B随机选择参数 μ ∈{0,1},生成挑战密文为: 然后B随机选择 p ,并隐含地通过向量 n * p 来共享密钥 s .另外,B随机选择参数 p .对于 i =1,2,…, n * ,定义 R i 为所有满足 ρ * ( i )= ρ * ( k )的 k i 的集合.因此挑战密文 生成为

5) 查询阶段2. 如查询阶段1,A向B进行密钥生成查询O kg 与密文重加密查询O ree .

6) 猜测阶段.攻击者A最终输出对 μ 的猜测 μ ′.若 μ = μ ′,A输出0表示猜测 T = e ( g , g ) αq +1 s ;否则输出1表示猜测 T 为群 T 中的随机元素.

T = e ( g , g ) αq +1 s ,那么 CT ′为有效密文,因此得出:

而当 T 为群 T 中的随机元素时, M μ 对于攻击者来说是完全随机的,得出:

因此,B能以不可忽略的优势模拟确定性的 q -parallel BDHE假设.

证毕.

3 方案分析与实验验证

现将本文提出的方案与已有3种撤销方案进行对比,包括功能性、存储成本、通信成本与计算性能.其中所使用的描述符如下:| C 1 |表示 中数据元素的长度;| C T |表示 T 中数据元素的长度;| C p |表示 * p 中数据元素的长度; C T 表示密文中访问结构的元素个数;| C k |表示Hur方案中使用的密钥KEK的长度; t 表示与密文有关的属性个数; k 表示用户密钥中属性的个数; n attr表示整个系统中属性的总个数; n user表示整个系统中用户的总个数; n ra表示系统中撤销属性的个数; n ru表示撤销用户的个数; n max 表示Liang方案中密文访问结构的最大列向量.

3 . 1 功能说明

从表1可以看出,Liang方案实现了系统级的用户撤销,一旦用户的某个属性被撤销,该用户就失去了系统内所有其他合法属性的访问权限,这不符合实际的环境应用.而本文方案、Hur方案和Yang方案都实现了属性级的用户撤销,即若用户的某个属性被撤销,不会影响该用户其他合法属性的正常访问.但是,Hur方案只实现了一般群模型下的可证明安全性,Yang方案则只实现了随机预言模型下的可证明安全性,而很多一般群模型和随机预言模型下可证明安全的方案在实际应用中被发现并不安全.相对于Hur方案和Yang方案,本文在标准模型下基于 q -parallel BDHE假设对方案的安全性进行了完整的证明,实现了更高的安全性.

Table 1 Comparison of Function
表1 功能对比

SchemeAccess Control GranularityModelAssumptionLiangsystem level user revocationstandardDBDHHurattribute level user revocationgeneric groupYangattribute level user revocationrandom oracleq-parallel BDHEOursattribute level user revocation standardq-parallel BDHE

3 . 2 存储成本

表2将本文方案与其他相关方案进行了存储成本的对比.属性授权AA的存储成本主要来自于主密钥,我们的方案与Hur方案使用了较少的主密钥.而Liang方案中,主密钥随着用户总数 n user呈线性增长,Yang方案则随着属性总数 n attr呈线性增长.数据拥有者O的存储成本主要来自于公钥.Hur方案使用了最少的公钥,Yang方案公钥随着属性总数 n attr呈线性增长,Liang方案公钥随着属性总数 n attr与访问矩阵列向量 C T t 呈互为斜率的线性增长,而本文方案中,公钥随着属性总数 n attr与用户总数 n user呈斜率为常数的线性增长.云存储提供商CSP的存储成本主要来自于密文与密文头.因为Liang方案只实现了用户撤销,在该方案中,利用子集覆盖进行密钥更新,不需要对密文进行更新,但其密文长度随着访问结构 C T 呈线性增长.Yang方案通过属性授权与用户交互为用户进行密钥更新,并对被撤销属性对应的密文进行更新,因此,密文长度只与密文相关属性个数 t 呈线性增长.Hur方案中,数据拥有者将密文发送给CSP后,CSP为每个属性组生成相应的密文头,因此其存储包括密文及密文头,其密文长度与密文相关属性个数 t 呈斜率为常数的线性增长,而密文头长度与密文相关属性个数 t 及用户总数 n user呈互为斜率的线性增长.本文方案中,若发生属性改变,CSP为该属性对应的密文重新选择指数进行密文更新,并将指数进行加密,生成相应的密文头.因此其存储也包括密文及密文头,且密文随着密文相关属性个数 t 呈线性增长,密文头则随着密文相关属性个数 t 及撤销属性个数 n ra呈互为斜率的线性增长.数据访问者的存储成本主要来自于其拥有的密钥.本文方案与Yang方案中,密钥长度较短,只与用户拥有的属性个数 k 呈线性增长;Liang方案利用二叉树来生成用户密钥,其密钥长度与密钥属性个数 k 、密文访问结构最大列向量 n max 与用户个数 n user都相关.而属性撤销时,使用子集覆盖进行密钥更新,其更新密钥长度与最小覆盖集呈正增长.而Hur方案中,每个用户都要存储一定的KEK来解密相应的指数进行密钥更新,因此其密钥长度不仅与用户拥有的属性个数 k 呈线性增长,而且与整个系统中用户的总个数 n user呈对数增长.

Table 2 Comparison of Storage Cost
表2 存储成本对比

EntityLiangs SchemeHurs SchemeYangs SchemeOursAA|C1|+(2(lbnuser+1)+1)|Cp||Cp|+|C1|(4+nattr)|Cp|2|Cp|+|C1|OCTtnattr+6 |C1|+|CT|+|Cp|2|C1|+|CT|(2nattr+4)|C1|+|CT|(2nattr+nuser+1)|C1|+|CT|CSP(CT+3)|C1|+|CT|(2t+1)|C1|+|CT|+t×nuser2|Cp|(3t+1)|C1|+|CT|(2t+1)|C1|+|CT|+nra((2t+2)|C1|+|CT|)U(k+3+nmax)(lbnuser+1)|C1|+2(nuser-nru)lbnusernuser-nru|C1|(2k+1)|C1|+(lbnuser+1)Ck(k+2)|C1|(k+3)|C1|+|Cp|

3 . 3 通信成本

表3将本文方案与其他相关方案进行了通信成本的对比.通信成本主要是由密钥与密文产生的.AA与U间的通信成本主要是由密钥产生的,而对于Liang方案来说,对于每次撤销,AA都要生成更新密钥发送给U,因此额外产生了 的通信成本.而Yang方案中,对于每个撤销的属性,AA都需要与数据访问者进行交互,对其密钥进行更新,因此额外产生了2| C 1 |的通信成本.AA与O间的通信成本主要是由公钥产生的,而Yang方案中,AA对于每个撤销的属性都需要对其相应的公钥进行更新,然后发送给O,因此同样额外产生了2| C 1 |的通信成本.CSP与U的通信成本主要是由密文产生的.而Hur方案中,CSP不仅要发送密文,还要生成用户的KEK密钥而产生(lb n user+1)| C k |的通信成本,另外还要发送相应 的密文头.本文提出的方案中,对于每个撤销的属性,CSP都需要重新选择指数进行密文更新,并将指数进行加密,生成相应的密文头,因此额外产生(2 t +2)| C 1 |+| C T |的通信.而对于本文方案,由于使用了外包解密,因此需要U将其( k +3)| C 1 |长度的外包密钥发送给CSP,由CSP代为解密,若无属性撤销,那么CSP仅生成2个 T 中的元素,若存在属性被撤销,那么CSP生成 t +1个密文对应的 T 中的元素与2个密文对应的 中的元素,并生成3个密文头对应的 T 中的元素.CSP与O间的通信主要是由O生成的密文生成的.

Table 3 Comparison of Communication Cost
表3 通信成本对比

EntityLiangs SchemeHurs SchemeYangs SchemeOursAA & Uk+3+CTt (lbnuser+1)|C1|+2(nuser-nru)lbnusernuser-nru|C1|(2k+1)|C1|(k+2)|C1|+2nra|C1|(k+3)|C1|+|Cp|AA & OCTt·nattr+6 |C1|+|CT|+|Cp|2|C1|+|CT|(2nattr+4)|C1|+|CT|+2nra|C1|(2nattr+nuser+1)|C1|+|CT|CSP & U(CT+3)|C1|+|CT|(2t+1)|C1|+|CT|+t×nuser2|Cp|+(lbnuser+1)|Ck|(3t+1)|C1|+|CT|(k+3)|C1|+2|CT| or(k+5)|C1|+(3nra+t+1)|CT|CSP & O(CT+3)|C1|+|CT|(2t+1)|C1|+|CT|(3t+1)|C1|+|CT|(2t+1)|C1|+|CT|

3 . 4 计算性能

实验环境为64 b Ubuntu 14.04操作系统、Intel ® Core TM i7-3770CPU(3.4 GHz)、内存4 GB,实验基于Pairing-based Cryptography Library(PBC-0.5.14) [20] 与cpabe-0.11 [21] 进行修改与编写,并且使用基于512 b有限域上的超奇异曲线 y 2 = x 3 + x 中的160 b椭圆曲线群.实验数据取运行20次所得的平均值.在实验中,PBC库计算对运算的时间大约为5.3 ms, 1与 T的运算时间大约为6.2 ms 与0.6 ms .另外,通过使用 Ubuntu 14.04操作系统中的 dev urandom 来选择 1与 T 中随机元素的时间大约为14 ms与1.4 ms.

本文对4种方案在密钥生成时间、加密时间、解密时间与重加密时间方面进行了比较,并且取 n max =6, n user=10.

如图1所示,密钥生成时间与用户属性个数呈线性增长,本文方案密钥生成时间略高于Yang方案,但优于Hur方案与Liang方案.特别是Liang方案,其密钥生成时间不仅与用户属性个数有关,而且与密文访问结构最大列向量 n max 与用户个数 n user相关,因此其密钥生成时间远远大于其他3种方案.

Fig. 1 Key generation time
图1 密钥生成时间

如图2所示,加密时间与访问结构中的属性呈线性增长.本文方案加密时间略高于Hur方案,但优于Yang方案与Liang方案.需要注意的是,Hur方案加密过程中,中间节点的多项式操作涉及了适当数量的乘法,但是运行时间很短;而Liang方案其加密生成时间不仅与访问结构中的属性个数有关,而且同样与访问结构最大列向量 n max 相关,因此加密时间远远大于其他3种方案.进行解密实验时,使用所用的属性进行解密,并且对Hur方案进行解密时使用最简单的二叉结构,所有中间节点均为( n , n )门限.而本文提出的方案分别在无属性撤销与50%的属性被撤销2种情况下进行了解密实验.

Fig. 2 Encryption time
图2 加密时间

如图3所示,Liang方案、Hur方案、Yang方案与本文50%属性被撤销方案的解密时间都随着解密属性数量而增长,而本文无属性撤销方案由于采用了外包解密,其用户只需要进行1个 T 的指数操作.另外,由于本文属性撤销方案的解密时间为解密属性的二次函数,但是本文采用了外包解密,大大降低了用户的解密时间.图3可以看出,当属性在某个范围内时,本文撤销方案的解密时间小于其他方案,随着属性个数的增加,其解密时间逐次超过Yang方案与Hur方案,但在可接受的范围.为了进行重加密时间对比,不失一般性,本文考虑了用户数量为10的情况下重加密时间与属性数量的关系和属性数量为10的情况下重加密时间与用户数量的关系.

Fig. 3 Decryption time
图3 解密时间

如图4所示为用户数量为10的情况下重加密时间与属性数量的关系,当属性被撤销时,需要对密钥或密文进行更新.Yang方案与Liang方案主要对密钥进行更新,而Hur方案与本文方案主要对密文进行更新.因此从图4中可以发现,Hur方案与本文方案需要的计算时间较长,且随着属性数量逐渐增长,但是所需计算完全是由CSP实施的,实际应用中CSP拥有大量的计算资源;而Yang方案与Liang方案虽然需要的计算时间较少,但是需要AA实施密钥更新,而AA的计算资源是有限的,容易造成系统瓶颈.

Fig. 4 Re-encryption time
图4 重加密时间

如图5所示为属性数量为10的情况下重加密时间与用户数量的关系.从图5中可以发现,Liang方案、Hur方案和本文方案的重加密时间与用户个数无关;而在Yang方案中,一旦发生属性撤销,AA需要为所有未被撤销的用户进行解密密钥更新,加重了AA的计算负载.

Fig. 5 Re-encryption time
图5 重加密时间

4

本文提出了一个密文策略的属性加密方案,该方案能够实现属性级的用户撤销.在该方案中,若用户的属性被撤销,那么对该属性对应的密文进行更新,只有属性满足访问策略且没有被撤销的用户才能够成功地进行密钥更新,而成功解密密文.本文基于 q -parallel BDHE假设在标准模型下对方案进行了选择访问结构明文攻击的安全性证明.最后对方案进行了性能分析与实验验证,实验结果表明,与已有相关方案相比,虽然为了实现属性撤销,增加了存储中心的计算负载,但是不需要属性授权的参与,因此降低了属性授权的计算负载,而且用户除了密钥外不需要其他额外参数来实现属性撤销,因此大大节省了存储空间.另外本文基于 q -parallel BDHE假设,在标准模型下对方案进行了选择访问结构明文攻击下的安全性证明,该方案可以通过文献[22]中提出的通用技术转换为选择访问结构密文攻击下可证明安全的方案,以适用于云存储环境下用户数据多以密文形式存储的情形.

参考文献

[1]Sahai A, Waters B. Fuzzy Identity-Based Encryption[M]. Berlin: Springer, 2005: 457-473

[2]Yadav U C. Ciphertext-policy attribute-based encryption with hiding access structure[C] Proc of the 5th IEEE Int Advance Computing Conf (IACC). Piscataway, NJ: IEEE, 2015: 6-10

[3]Naruse T, Mohri M, Shiraishi Y. Provably secure attribute-based encryption with attribute revocation and grant function using proxy re-encryption and attribute key for updating[J]. Human-centric Computing and Information Sciences, 2015, 5(1): 8

[4]Wang Hao, Yang Bo, Wang Yilei. Server aided ciphertext-policy attribute-based encryption[C] Proc of the 29th IEEE Int Conf on Advanced Information Networking & Applications Workshops. Piscataway, NJ: IEEE, 2015: 440-444

[5]Li Qi, Ma Jiangfeng, Li Rui, et al. Large universe decentralized key-policy attribute-based encryption[J]. Security & Communication Networks, 2015, 8(3): 501-509

[6]Wang Xinlei, Zhang Jianqing, Schooler E M, et al. Performance evaluation of attribute-based encryption: Toward data privacy in the IoT[C] Proc of the 26th Int Conf on Communications (ICC). Piscataway, NJ: IEEE, 2014: 725-730

[7]Ostrovsky R, Sahai A, Waters B. Attribute-based encryption with non-monotonic access structures[C] Proc of the 14th ACM Conf on Computer & Communications Security (CCS). New York: ACM, 2007: 195-203

[8]Staddon J, Golle P, Gagn M, et al. A content-driven access control system[C] Proc of the 7th Symp on Identity and Trust on the Internet. New York: ACM, 2008: 26-35

[9]Liang Xiaohui, Lu Rongxing, Lin Xiaodong. Ciphertext policy attribute based encryption with efficient revocation[J]. IEEE Symp on Security & Privacy, 2008, 6(3): 321-334

[10]Bethencourt J, Sahai A, Waters B. Ciphertext-policy attribute-based encryption[C] Proc of the 28th Symp on Security and Privacy. Los Alamitos, CA: IEEE Computer Society, 2007: 321-334

[11]Boldyreva A, Goyal V, Kumar V. Identity-based encryption with efficient revocation[C] Proc of the 15th ACM Conf on Computer and Communications Security(CCS). New York: ACM, 2008: 417-426

[12]Pirretti M, Traynor P, Mcdaniel P, et al. Secure attribute-based systems[C] Proc of the 13th ACM Conf on Computer and Communications Security(CCS). New York: ACM, 2006: 799-837

[13]Hur J, Noh D K. Attribute-based access control with efficient revocation in data outsourcing systems[J]. IEEE Trans on Parallel & Distributed Systems, 2011, 22(7): 1214-1221

[14]Yang Kan, Jia Xiaohua, Ren Kui. Attribute-based fine-grained access control with efficient revocation in cloud storage systems[C] Proc of the 8th ACM SIGSAC Symp on Information, Computer and Communications Security. New York: ACM, 2013: 523-528

[15]Zavattoni E, Perez L J D, Mitsunari S, et al. Software implementation of an attribute-based encryption scheme[J]. IEEE Trans on Computers, 2015, 64(5): 1429-1441

[16]Waters B. Ciphertext-policy attribute-based encryption: An expressive, efficient, and provably secure realization[C] Proc of the 14th Int Workshop on Public Key Cryptography. Berlin: Springer, 2011: 53-70

[17]Cheung L, Newport C. Provably secure ciphertext policy ABE[C] Proc of the 14th ACM Conf on Computer and Communications Security. New York: ACM, 2007: 456-465

[18]Tu Shanshan, Niu Shaozhang, Li Hui. A fine-grained access control and revocation scheme on clouds[J]. Concurrency & Computation Practice & Experience, 2012, 28(6): 1697-1714

[19]Lewko A, Okamoto T, Sahai A, et al. Fully Secure Functional Encryption: Attribute-based Encryption and (Hierarchical) Inner Product Encryption[M]. Berlin: Springer, 2010: 62-91

[20]Lynn B. The pairing-based cryptography (PBC) library[OL]. 2006 [2015-06-06]. http: crypto.stanford.edu pbc

[21]Bethencourt J, Sahai A, Waters B. Advanced crypto software collection: The cpabetoolkit[OL]. 2011 [2015-06-06]. http: acsc.cs.utexas.edu cpabe

[22]Yamada S, Attrapadung N, Hanaoka G, et al. Generic constructions for chosen-ciphertext secure attribute based encryption[C] Proc of the 14th Int Conf on Practice and Theory in Public Key Cryptography. Berlin: Springer, 2011: 71-89

Wang Guangbo , born in 1987. PhD. Engineer. His main research interests include cryptograph theory especially attribute-based encryption.

Liu Haitao , born in 1980. Master. Engineer. His main research interests include computer software and theory.

Wang Chenlu , born in 1990. Graduate. Assistant Engineer. Her main research interests include network security.

Wang Pengcheng , born in 1990. Graduate. Assistant Engineer. His main research interests include network security.

Lian Lin , born in 1990. Master. Engineer. Her main research interests include information security.

Hui Wentao , born in 1990. Master. Engineer. His main research interests include network security.

Revocable Attribute Based Encryption in Cloud Storage

Wang Guangbo 1 , Liu Haitao 1 , Wang Chenlu 1 , Wang Pengcheng 1 , Lian Lin 2 , and Hui Wentao 3

1 (31008 Force , Beijing 100036) 2 (61660 Force , Beijing 100036) 3 (61046 Force , Beijing 100094)

Abstract Attribute-based encryption (ABE) scheme which can achieve fine-grained access control is more and more widely used in cloud storage. However, it is an important challenge to solve dynamic user and attribute revocation in the original scheme. In order to solve this problem, this paper proposes a ciphertext-policy ABE (CP-ABE) scheme which can achieve attribute level user attribution, namely if an attribute of some user is revoked, it cannot influence the common access of other legitimate attributes. If an attribute is revoked, the ciphertext corresponding to this attribute should be updated based on the designed broadcast attribute-based encryption scheme so that only the persons whose attributes meet the access strategy and have not been revoked will be able to carry out the key updating and decrypt the ciphertext successfully. Our scheme is proved secure based on the q -Parallel Bilinear Diffie-Hellman Exponent assumption in the standard model, therefore, it has stronger security. In addition, the relative operations associated with the attributes revocation are migrated to the cloud storage provider (CSP) to implement, which reduces the computational load of attribute authority (AA) greatly. Finally, the performance analysis and experimental verification are carried out in this paper, and the experimental results show that, compared with the existing revocation schemes, although our scheme increases the computational load of CSP for achieving the attribute revocation, it does not need the participation of AA, which reduces the computational load of AA. In addition, the user does not need any additional parameters to achieve the attribute revocation except of the private key, thus saving the storage space greatly.

Key words attribute-based encryption (ABE); data outsourcing; ciphertext policy; revocation; access control

属性加密方案在云存储中得到了越来越广泛的应用,它能够实现细粒度的访问控制.但是在原始的属性加密方案中,解决动态的用户与属性撤销,是当前面临的重要挑战.为了解决这一问题,提出了一个密文策略的属性加密方案,该方案能够实现属性级的用户撤销,即若用户的某个属性被撤销,不会影响该用户其他合法属性的正常访问.在该方案中,若用户的某个属性被撤销,那么将基于设计的广播属性加密方案对被撤销属性对应的密文进行更新,只有属性集合满足密文访问策略且未被撤销的用户才能够成功地进行密钥更新而解密密文.该方案基于 q -Parallel Bilinear Diffie-Hellman Exponent假设实现了标准模型下的可证明安全性,安全性较高.另外,该方案将属性撤销的相关操作托管给云存储中心执行,大大减轻了属性授权的计算负载.最后对方案进行了性能分析与实验验证,实验结果表明:与已有相关方案相比,虽然为了实现属性撤销,增加了云存储中心的计算负载,但是不需要属性授权的参与,因此降低了属性授权的计算负载,而且用户除了密钥外不需要其他额外参数来实现属性撤销,因此大大节省了存储空间.

关键词 属性加密;数据外包;密文策略;撤销;访问控制

中图法分类号 TP391

收稿日期 2017-02-14;

修回日期: 2018-01-04

基金项目 国家重点研发计划项目(2016YFB0501900)

This work was supported by the National Key Research and Development Program of China (2016YFB0501900).