软件学报  2018, Vol. 29 Issue (7): 2006-2017   PDF    
高效且可验证的多授权机构属性基加密方案
仲红, 崔杰, 朱文龙, 许艳     
安徽大学 计算机科学与技术学院, 安徽 合肥 230601
摘要: 移动云计算对于移动应用程序来说是一种革命性的计算模式,其原理是把数据存储及计算能力从移动终端设备转移到资源丰富及计算能力强的云服务器.但是这种转移也引起了一些安全问题,例如,数据的安全存储、细粒度访问控制及用户的匿名性.虽然已有的多授权机构属性基加密云存储数据的访问控制方案,可以实现云存储数据的保密性及细粒度访问控制;但其在加密和解密阶段要花费很大的计算开销,不适合直接应用于电力资源有限的移动设备.另外,虽然可以通过外包解密的方式减少解密计算的开销,但其通常是把解密外包给不完全可信的第三方,其并不能完全保证解密的正确性.针对以上挑战,提出了一种高效的可验证的多授权机构属性基加密方案,该方案不仅可以降低加密解密的计算开销,还可以验证外包解密的正确性并且保护用户隐私.最后,安全分析和仿真实验结果表明了方案的安全性和高效性.
关键词: 属性基加密     多授权机构     在线/离线     隐私保护     可验证    
Efficient and Verifiable Muti-Authority Attribute Based Encryption Scheme
ZHONG Hong, CUI Jie, ZHU Wen-Long, XU Yan     
School of Computer Science and Technology, Anhui University, Hefei 230601, China
Foundation item: National Natural Science Foundation of China (61572001, 61502008); Natural Science Foundation of Anhui Province, China (1508085QF132, 1708085QF136)
Abstract: Mobile cloud computing is a revolutionary computing paradigm for mobile applications, which enables storage and computation migration from mobile users to resource-rich and powerful cloud server. This migration causes some privacy issues in providing secure data storage, fine-grained access control and anonymity of users. The existing multi-authority ciphertext policy attribute based encryption (CP-ABE) access control scheme guarantees the confidentiality of sensitive data in the cloud server and provides fine-grained access control using defined policies. However it costs too much computation time on encryption and decryption and consumes enormous power resources, making it unsuitable for the mobile devices which are usually equipped with a limited power support. To cope with these challenging concerns, this paper proposes a new data access control scheme for cloud computing by using a new cryptographic primitive known as online/offline multi-authority ABE and the transform key technique. This scheme implements fine-grained access of data and reduces online computation cost of the encryption and decryption on the user side. The proposed scheme acquires user's secret key received from different authorities. That results in protecting privacy of each user against single authority. At last, the security and performance analysis demonstrate that this scheme has high security in terms of data confidentiality and high efficiency in terms of online computation cost.
Key words: attribute-based encryption     multi-authority     online/offline     privacy preservation     verifiable    

随着移动终端的普及, 使用移动设备访问云存储数据变得非常流行, 而且云存储服务提供商也鼓励用户使用移动终端来访问数据[1-3].另外, 随着云存储系统的大规模部署, 大量敏感数据被外包到云存储服务器[4, 5], 用户失去了对数据的完全控制, 能否保证云存储数据的安全成为了用户关注的焦点.为了解决以上挑战, 虽然可以采用传统的对称加密技术和非对称加密技术实现数据的安全访问, 但是这样会带来计算代价高、数据冗余和密钥管理等问题.例如, 同一份文件为了保证不同的用户可以访问, 需要使用不同用户的密钥进行加密, 大大增加了用户的计算代价, 同时也会导致云存储服务器数据的冗余.因此, 如何设计一个高效的移动云存储数据访问控制方案仍然是一个挑战[6-8].

在属性基加密(attribute-based encryption, 简称ABE)方案中, 其密钥构成与属性集合相关, 密文构成与访问结构相关; 如果属性集合能够满足密文中的访问结构, 便可以获取明文.ABE不仅具有一对多的特点, 而且可以实现不确定用户数的解密, 因此被广泛应用于云存储数据的细粒度访问控制[9-11].但其加密计算代价大, 并且计算开销随着访问结构中属性个数的增加而线性增加, 不适合直接应用于电力资源有限的移动终端.虽然在线-离线(online-offline)[12, 13]和转换密钥技术[14]可以通过预处理及外包解密的方式来降低用户端加密和解密的计算开销, 但前者需要在离线加密阶段确定访问结构, 实际上不同数据的访问结构并不相同, 不便于提前确定; 后者通过把解密外包到不完全可信的第三方, 不能保证解密的正确性.尽管Shao等人[15]提出的方案可以不用提前确定访问结构, 但是用户的属性集合只受到一个属性授权机构的管理, 不利于系统规模的扩充; 而且其没有验证外包解密的正确性.面对以上挑战, 本文提出了一个在线-离线的多授权机构属性基加密(online/offline multi- authority attribute based encryption, 简称OO-MA-ABE)方案, 其主要思想是把用户端在线计算代价转移到离线阶段或者云服务器上.本文的主要贡献如下:

1) 本文利用在线-离线和外包解密技术, 构造了一个高效的移动云存储数据访问控制方案.在加密阶段, 把大量的配对操作提前预处理; 在解密阶段, 把配对操作外包到云存储服务器; 用户端只需要运行简单的运算操作就可以完成加密和解密, 从而大大降低了用户端的在线计算开销.

2) 本文提出了一种验证外包解密正确性的方法.在加密阶段, 用户利用加密密钥和明文生成哈希值作为数据的验证令牌; 在解密阶段, 用户用验证令牌验证解密结果的正确性, 进而检验云存储服务器解密是否正确.同时, 本文方案可以抵抗单个授权机构获取用户的身份信息, 保证了用户身份的隐私性.

3) 本文对方案进行了安全分析和仿真实验, 结果表明了方案的安全性和高效性.

本文首先对云存储数据访问存在的问题进行概括, 并给出本文的主要贡献.第1节对云存储数据访问采用的属性基加密机制的研究现状进行总结, 并分析它们的优缺点.第2节主要对本文所采用的理论知识进行总结, 并给出本文的系统模型、方案定义及安全模型.第3节具体概述本文提出的方案.第4节从安全性及性能上对本文方案进行分析.最后对本文方案进行总结.

1 相关工作

Sahai和Waters[16]首次提出了属性基加密方案, 其只支持简单的门限访问策略.为了丰富方案的访问策略, 大量的密文策略属性基加密(ciphertext policy attribute based encryption, 简称CP-ABE)和密钥策略属性基加密(key policy attribute based encryption, 简称KP-ABE)的方案也随之提出, 其中, CP-ABE[17-19]方案中用户的密钥与属性集合相关, 密文和访问结构相关; 其能够很好地用于云存储的密文访问控制.另外, 也有些ABE研究主要集中于计算效率[20, 21]、访问策略隐藏[22]和匿名身份验证[23].由于单授权机构存在不利于系统规模扩充及可以获取用户信息等问题, Chase[24]首次提出多授权机构属性基加密(multi-authority attribute based encryption, 简称MA-ABE)方案; Lewko和Waters[25]提出非中心的属性基加密(decentralized ABE)方案, 并采用双重加密的安全证明方法证明了方案的安全性, 而且摆脱了Chase方案的中心机构的瓶颈问题.为了进一步提高ABE方案的加密解密计算效率, Guo等人[26]受Even等人[27]提出的在线-离线签名算法的启发, 首次提出了基于身份的Online- Offline加密方案.Hohenberger和Waters[28]利用Rouselakis和Waters[29]的属性基加密方案, 首次提出了Online-Offline属性基加密方案.该方案把所有的配对操作移交到离线阶段去处理, 大大减少了在线阶段的计算开销.另外, 该方案通过借助Green等人[30]提出的外包计算来减少解密阶段的计算开销.Shao等人[15]利用转换密钥技术和在线/离线属性加密原语的技术, 构造了一个应用于移动云计算数据的共享方案, 大大减少了用户加密解密的计算开销.但其受限于一个授权机构, 不利于系统大规模的扩充.于是, Yang等人[31]提出基于外包令牌的非中心属性基加密方案, 虽然很大程度地减轻了解密阶段的开销, 但并没有考虑如何改善加密阶段的开销问题. De等人[32]提出了一种快速加密多授权机构加密机制, 但该方案不能保证用户隐私且不支持外包验证.

2 准备知识 2.1 基础知识

A.双线性映射

假设存在两个素数阶$p$的循环乘法群${G_1}$${G_T}, $$g$${G_1}$的生成元, ${G_1}$${G_2}$之间的一个双线性映射$e:{G_1} \times {G_1} \to {G_T}.$这个映射必须满足以下条件.

(1) 双线性:$e\left( {{u^a}, {v^b}} \right) = e{\left( {u, v} \right)^{ab}}$, 其中, $u, v \in {G_1}, \forall a, b \in Z_p^*.$

(2) 非退化性:配对操作e并不能将${G_1}$中所有配对都映射到${G_T}$中的单位元, 即$e(u, v) \ne 1.$其中, $u, v \in {G_1}.$

(3) 可计算性:对于任意的$u, v \in {G_1}, $e可以有效地计算出来.

B.访问结构

定义1(访问结构).  假设$P = \left\{ {{P_1}, {P_2}, ..., {P_n}} \right\}$表示包含n个参与者的集合, $\mathbb{S}$是集合P的子集集合, 即可表示为$\left\{ {\mathbb{S}|\mathbb{S} \subseteq \left\{ {{P_1}, {P_2}, ..., {P_n}} \right\}} \right\}.$对于一个集合A是单调的, 如果$B \in A, $并且$B \subseteq C, $那么, $C \in A, $其中, 任意子集B, CP.假设AP的非空子集集合, 即$A \subseteq {2^{\left\{ {{p_1}, {p_2}, ..., {p_n}} \right\}}}\backslash \left\{ \emptyset \right\}, $A为一个(单调)访问结构.其中, 对于集合$Q \in A, $则称Q为授权集合, 而对于集合$Q \notin A, $则称Q为非授权集合.

C.困难假设

定义2.  给定两个素数阶$p > {2^\lambda }$的循环乘法群${G_1}$${G_T}$及一个双线性映射$e:{G_1} \times {G_1} \to {G_T}, $其中, λ为安全参数.随机选择群元素$g \in {G_1}$$q + 2$个随机指数$a, s, {b_1}, {b_2}, ..., {b_q} \in {Z_q}, $假设q-type假设(q-type assumption)问题是给

定多元组:

$ \begin{gathered} g,{g^s}, \hfill \\ {g^{{a^i}}},{g^{{b_j}}},{g^{s{b_j}}},{g^{{a^i}{b_j}}},{g^{{a^i}/b_j^2}}\forall (i,j) \in \left[ {q,q} \right], \hfill \\ {g^{{a^i}{b_j}/b_{j'}^2}}\forall (i,j),j' \in \left[ {2q,q,q} \right]{\text{ with }}j \ne j', \hfill \\ {g^{{a^i}/b_j^2}}\forall (i,j),j' \in \left[ {2q,q} \right]{\text{ with }}j \ne j', \hfill \\ {g^{s{a^i}{b_j}/{b_{j'}}}},{g^{s{a^i}{b_j}/b_{j'}^2}}\forall (i,j) \in \left[ {q,q,q} \right]{\text{ with }}j \ne j'. \hfill \\ \end{gathered} $

如果不存在一种算法能够在多项式时间内以不可忽略的概率区分$e{(g, g)^{s{a^{q + 1}}}}$$R \in {G_T}, $则判定q-type假设成立.

2.2 问题定义

A.系统模型

本文提出的高效可验证的移动云存储数据访问控制方案包含4个实体:数据拥有者(data owner)、云存储服务器(cloud storage server, 简称CS)、N个属性授权机构(attribute authorities, 简称AAs)及数据使用者(data user), 如图 1所示.

Fig. 1 System model of OO-MA-ABE scheme 图 1 OO-MA-ABE方案系统模型

(1) 数据拥有者:数据拥有者使用移动终端与云存储服务器通信, 并外包密文到云存储服务器.假定, 移动设备的电力资源和计算能力有限, 并拥有足够的存储空间.同时, 数据拥有者为每个密文生成验证令牌.

(2) 云存储服务器:云存储服务器存储数据拥有者共享的密文和验证令牌, 提供数据访问控制服务, 并帮助用户产生转换后密文.假定云存储服务器是诚实且好奇的, 即不完全可信的.

(3) 数据使用者:数据使用者通过移动终端与云存储服务器通信, 并外包自己的转换密钥给云存储服务器用于获取转换后的密文.同时, 数据使用者使用验证令牌和自己的私钥验证云存储服务器的解密是否正确.

(4) 属性授权机构:属性授权机构是完全可信的, 独立地管理着每类属性; 多个授权机构共同为合法的用户生成私钥.另外, 单个授权机构不能提取用户的私钥和用户身份信息.

B. OO-MA-ABE方案定义

在这一部分, 我们定义了OO-MA-ABE方案的多项式时间算法, 具体如下.

(1) $GlobalSetup({1^\kappa }) \to Params:$初始化算法, 输入参数为安全参数1k, 输出系统公开参数为Params.另外, Params作为每个算法的输入参数, 以下算法将不再累述.假定, 方案中有N个属性授权机构$\left\{ {{{\hat A}_1}, {{\hat A}_2}, ..., {{\hat A}_N}} \right\}, $每个授权机构${\hat A_i}$管理一类属性集合${\tilde A_i}.$另外, 每个用户有一个全局唯一标识符ID, 并拥有一个属性集合SID.

(2) $AASetup({1^k}) \to \left\{ {P{K_i}, S{K_i}} \right\}:$属性授权机构初始化算法, 输入参数为安全参数1k; 输出每个授权机构${\hat A_i}$的公私钥对$\left\{ {P{K_i}, S{K_i}} \right\}.$

(3) $KeyGen(ID, {S_{ID}} \cap {\tilde A_i}, S{K_i}) \to SK_{ID}^i:$用户密钥产生算法, 输入用户标识符ID、用户属性集合${S_{ID}} \cap {\tilde A_i}$及授权机构的私钥$S{K_i};$输出每个用户的私钥$SK_{ID}^i.$

(4) $Encrypt.OffL\left( {P{K_i}} \right) \to IT:$离线加密算法, 输入属性授权机构的公钥$P{K_i};$输出临时密文IT.

(5) $Encrypt.OnL(IT, MSG, (M, \rho )) \to (CT, Token):$在线加密算法, 输入临时密文IT、加密明文MSG及访问结构$(M, \rho );$输出密文CT和验证令牌Token.

(6) $GenToken\left( {SK_{ID}^i, {S_{ID}}} \right) \to TK_{ID}^i:$转换密钥算法, 输入用户私钥$SK_{ID}^i$及用户属性集合SID; 输出转换密钥$TK_{ID}^i.$

(7) $PDecrypt\left( {ID, TK_{ID}^i, CT} \right) \to TD:$转换密文算法, 输入用户ID、转换密钥$TK_{ID}^i$及密文CT; 输出转换数据TD.

(8) $Decrypt\left( {TD, SK_{ID}^i} \right) \to MSG/ \bot :$解密算法, 输入转换数据TD及用户私钥$SK_{ID}^i;$输出明文MSG或⊥.

C.安全模型

我们利用敌手$\mathbb{A}$和挑战者$\mathbb{C}$之间的游戏, 定义了高效可验证的多授权机构属性基加密移动云存储数据访问控制的选择访问结构模型, 其中, 敌手和挑战者之间的游戏如下.

初始化阶段:敌手$\mathbb{A}$提交恶意的属性授权机构集合$\mathfrak{R} = {\left( {{{\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{A} }_i}} \right)_{i \in I}}$和访问结构${\left( {M_i^*, \rho _i^*} \right)_{i \in {I^*}}}$给挑战者$\mathbb{C}, $其中, $I \subseteq \left\{ {1, 2, ..., N} \right\}$${I^*} \subseteq \left\{ {1, 2, ..., N} \right\}.$挑战者$\mathbb{C}$首先执行GlobalSetup算法产生公开参数Params, 然后把公开参数响应给敌手.挑战者$\mathbb{C}$根据不同的授权机构产生不同的公私钥对, 具体如下.

(1) 对于每个授权机构${\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{A} _i} \subseteq \mathfrak{R}, $挑战者$\mathbb{C}$运行$AASetup$算法产生公私钥对$\left( {S{K_i}, P{K_i}} \right), $并把$\left( {S{K_i}, P{K_i}} \right)$发送给敌手.

(2) 对于每个授权机构${\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{A} _i} \not\subset \mathfrak{R}, $挑战者$\mathbb{C}$运行AASetup算法产生公私钥对$\left( {S{K_i}, P{K_i}} \right), $并把公钥参数$P{K_i}$发送给敌手.

查询阶段1:敌手$\mathbb{A}$可以选择不同数量的用户$\left\{ {I{D_1}, I{D_2}, ..., I{D_q}} \right\}$及用户属性集合${S_{I{D_1}}}, {S_{I{D_2}}}, ..., {S_{I{D_q}}}, $然后向挑战者$\mathbb{C}$进行多次(即q次)的密钥询问; 其中, 敌手$\mathbb{A}$每次进行密钥询问时, 提交的属性集合${S_{I{D_i}}}$不仅不能满足访问结构$({M^*}, {\rho ^*}), $而且不能来自于恶意的属性授权机构$\mathfrak{R} .$挑战者$\mathbb{C}$运行KeyGen产生密钥SKID, 并把其响应给敌手$\mathbb{A}.$

挑战阶段:敌手$\mathbb{A}$提交两个长度相同内容不同的明文${M_0}$${M_1}$给挑战者$\mathbb{C};$挑战者$\mathbb{C}$首先随机选择一个位数$b \in \left\{ {0, 1} \right\}, $然后运行离线加密算法$Encrypt.OffL\left( {Params, P{K_i}} \right)$和线上加密算法$Encrypt.OnL\left( {Params, IT, } \right.$ $\left. {ck, \left( {{M^*}, {\rho ^*}} \right)} \right), $产生挑战密文$C{T^*}, $最后把挑战密文$C{T^*}$发送给敌手$\mathbb{A}.$

查询阶段2:重复查询阶段1.

敌手$\mathbb{A}$的优势被定义为$\Pr \left[{\beta ' = \beta } \right] - {1 {\left/ { {1 2}} \right. } 2}, $其中, $\Pr \left[{\beta ' = \beta } \right]$表示$\beta ' = \beta $的概率.

猜测阶段:敌手$\mathbb{A}$输出一个作为$\beta '$$\beta $的猜测.如果$\beta = \beta ', $则敌手$\mathbb{A}$赢得游戏.

定义3.  如果敌手$\mathbb{A}$在多项式时间内赢得以上游戏的概率是可以忽略的, 那么高效可验证的多授权机构属性基加密移动云存储数据访问控制是选择明文安全的(selective CPA-secure).

3 高效可验证的MA-ABE访问控制方案

在这一部分, 本文具体构造了高效可验证的多授权机构属性基加密方案.假定该方案中LSSS访问矩阵最大的行数为Pmax.本文方案包括如下几个阶段.

1) 系统初始化

通过执行GlobalSetup算法, 产生系统公开参数Params.首先利用$\partial \partial ({1^\kappa }) \to (e, p, G, {G_T})$构造一个双线性群满足$e:G \times G \to {G_T};$其中, gG的生成元.然后随机选择$h, u, v, w \in G, $并构建抗碰撞的哈希函数$H\left( \cdot \right):{\left\{ {0, 1} \right\}^*} \to {Z_p}, $ ${H_0}( \cdot ):{G_T} \to {\left\{ {0, 1} \right\}^{{\ell _{{H_0}}}}}$${H_1}( \cdot ):{\left\{ {0, 1} \right\}^*} \to {\left\{ {0, 1} \right\}^{{\ell _{{H_1}}}}}$以及安全的密钥提取函数H’.其中, p为一个素数, ${Z_p}$为模p构成的有限域.另外, 假设方案中有N个属性授权机构$\left\{ {{{\hat A}_1}, {{\hat A}_2}, ..., {{\hat A}_N}} \right\}, $每个属性授权机构管理一类属性集合${\tilde A_i} = \left\{ {{A_{i, 1}}, } \right.$ $\left. {{A_{i, 2}}, ..., {A_{i, {q_i}}}} \right\}.$其中, ${A_{i, j}} \in {Z_p}, i = 1, 2, ..., N$$j = 1, 2, ..., {q_i}.$方案中的数据传递在安全的信道中进行.因此, 系统的公开参数为

$Params = \left( {g, h, u, v, w, e, p, H, {H_0}, {H_1}, G, {G_T}, H'} \right)$ (1)

2) 授权机构建立

授权机构运行AASetup进行初始化操作, 具体过程分为如下两步.

(1) 所有授权机构随机选择${\alpha _i} \in {Z_p}, $并计算${Y_i} = e{(g, g)^{{\alpha _i}}}, $然后将Yi发送给其他授权机构, 最后, 每个授权机构独立计算$Y = \prod\nolimits_N^{i = 1} {{Y_i}} = e{\left( {g, g} \right)^{\sum\nolimits_N^{i = 1} {{\alpha _i}} }}.$

(2) 对于每个授权机构${\hat A_i}$来说, 具体操作如下.

(a) 随机选择N-1个整数${s_{ik}} \in {Z_p}\left( {k \in \{ 1, ..., N\} /\{ i\} } \right), $计算${g^{{s_{ik}}}}$, 然后把其发送给其他授权机构${\hat A_i}(i \in ${1, …, N}/ {i}).

(b) 当收到来自其他授权机构${\hat A_i}\left( {i \in \{ 1, ..., N\} /\{ i\} } \right)$N-1个组件${g^{{s_{ki}}}}$时, 通过如下公式计算主要私钥$M{K_i}.$

$M{K_i} =\\ \left( {\prod\limits_{k \in \left\{ {1,...,N} \right\}/\left\{ i \right\}} {{g^{{s_{ik}}}}} } \right){\text{ }}/\left( {\prod\limits_{k \in \left\{ {1,...,N} \right\}/\left\{ i \right\}} {{g^{{s_{ki}}}}} } \right) = {g^{\left( {\sum\limits_{k \in \left\{ {1,...,N} \right\}/\left\{ i \right\}} {{s_{ik}}} - \sum\limits_{k \in \left\{ {1,...,N} \right\}/\left\{ i \right\}} {{s_{ki}}} } \right)}}$ (2)

其中, $\prod\limits_{i \in \left\{ {1, ..., N} \right\}} {M{K_i}} = 1\bmod p.$

(c) 为每个属性${A_{i, j}} \in {\tilde A_i}, $计算组件${u^{{A_{i, j}}}}h.$

每个授权机构发布自己的公钥$P{K_i} = (Y), $并保留自己的私钥$S{K_i} = \left( {{\alpha _i}, {{({u^{{A_j}}}h)}_{{A_j} \in {{\tilde A}_i}}}, M{K_i}} \right).$

3) 密钥产生

当新的用户访问系统时, 需要从属性授权机构请求私钥, 授权机构通过执行密钥产生KeyGen算法为用户发布私钥.KeyGen的具体过程分为如下两步.

(1) 每个授权机构${\hat A_i}.$

(a) 随机选择一个数${\gamma _i} \in {Z_p}, $计算组件$M{K_i} \cdot {g^{{\gamma _i}}}, M{K_i} \cdot {v^{ - {\gamma _i}}}$$M{K_i} \cdot {g^{{\alpha _i}}}.{w^{{\gamma _i}}}, $并将其共享给其他授权机构${\hat A_i}$(i∈{1, …, N}/{i}).

(b) 当收到来自其他授权机构的组件$M{K_i} \cdot {g^{{\gamma _i}}}, M{K_i} \cdot {v^{ - {\gamma _i}}}$$M{K_i} \cdot {g^{{\alpha _i}}}.{w^{{\gamma _i}}}$时, 通过如下公式计算密钥组件D0D1Dv.

$\left. \begin{gathered} {D_0} = \prod\nolimits_N^{i = 1} {M{K_i}.{g^{{\gamma _i}}}} = {g^{\sum\nolimits_N^{i = 1} {{\gamma _i}} }} = {g^r}, \\ {D_1} = \prod\nolimits_N^{i = 1} {M{K_i}.{g^{{\alpha _i}}}.{w^{{\gamma _i}}}} = {g^{\sum\nolimits_N^{i = 1} {{\alpha _i}} }}{w^r}, \\ {D_v} = \prod\nolimits_N^{i = 1} {M{K_i}.{v^{ - {\gamma _i}}}} = {v^{ - r}} \\ \end{gathered} \right\}$ (3)

其中, $r = \sum\nolimits_N^{i = 1} {{\gamma _i}} .$

(2) 授权机构首先为每个属性$\tau \in \left[{\left| {{S_{ID}} \cap {{\tilde A}_i}} \right|} \right]$随机选择${r_\tau } \in {Z_p}, $然后计算${D_{j, 2}} = {g^{{r_j}}}, $${D_{j, 3}} = {\left( {{u^{{A_j}}}h} \right)^{{r_j}H\left( {ID} \right)}} \cdot $${D_v} = $ ${\left( {{u^{{A_j}}}h} \right)^{{r_j}H\left( {ID} \right)}}{v^{ - r}}.$

用户从授权机构获得的私钥为$SK_{ID}^i = \left( {{D_0}, {D_1}, {{\left\{ {{D_{j, 2}}, {D_{_{j, 3}}}} \right\}}_{j = 1...\tau }}, {S_{ID}} \cap {{\tilde A}_i}} \right).$

4) 离线加密

当数据拥有者的移动设备重新启动时, 执行Encrypt.OffL算法产生临时密文, 并将临时密文存储在移动设备中; Encrypt.OffL算法的具体过程如下.

(a) 随机选择参数$s \in {Z_p}, $并计算$key = {Y^s}, {C_0} = {g^s}.$

(b) 为访问矩阵的每一行随机选择${z_j}, {x_j}, {t_j} \in {Z_p}, $其中, $j = 1, 2, ..., {P_{\max }}.$

计算${C_{j, 1}} = {w^{{z_j}}}{v^{{t_j}}}, {C_{j, 2}} = {({u^{{x_j}}}h)^{ - {t_j}}}, {C_{j, 3}} = {g^{{t_j}}}.$

方案临时密文为$IT = \left( {s, key, {C_0}, {{\left\{ {{z_j}, {x_j}, {t_j}, {C_{j, 1}}, {C_{j, 2}}, {C_{j, 3}}} \right\}}_{j = 1...{P_{\max }}}}} \right).$

5) 在线加密

当数据拥有者外包数据到云存储服务器时, 需要运行Encrypt.OnL加密数据MSG, 然后把密文外包到云存储服务器.Encrypt.OnL算法的具体过程如下.

(1) 数据拥有者随机选择$ck \in {G_T}, $计算对称密钥$sk = H'(ck), $使用对称密钥sk加密数据MSG生成数据密文CT ’.另外, 计算验证令牌$Token = {H_1}({H_0}(ck)||CT').$

(2) 数据拥有者执行如下操作加密对称密钥ck, 具体过程如下.

(a) 定义访问控制结构$({M_{\ell \times n}}, \rho ), $其中, $\ell \leqslant {P_{\max }}.$

(b) 选择随机向量$\vec y = (s, {y_2}, {y_3}, ..., {y_n}), $其中, ${y_2}, {y_3}, ..., {y_n} \in {Z_p}.$

(c) 计算${z'_j} = {M_j}\vec y$$C = key \cdot ck, $其中, ${M_j}$是访问矩阵M的行向量.

计算${C_{j, 4}} = {z'_j} - {z_j}\bmod p, {C_{j, 5}} = {t_j}({x_j} - \rho (j))\bmod p.$

外包密文为$CT = \left( {CT', C, {C_0}, {{\left\{ {{C_{j, 1}}, {C_{j, 2}}, {C_{j, 3}}, {C_{j, 4}}, {C_{j, 5}}} \right\}}_{j = 1...\ell }}, (M, \rho ), Token} \right).$

6) 密文转换

数据使用者在移动设备重启时, 执行GenToken算法产生转换密钥, 并将其存储到移动设备上.GenToken算法的具体过程如下, 首先随机选择$\mu \in {Z_p}, $并计算$TK_{ID}^i = {\left( {SK_{ID}^i} \right)^\mu }$获得转换密钥.当数据使用者访问云存储数据时, 把转换密钥外包到云存储服务器, 云服务器运行PDecrypt算法产生转换密文TD.PDecrypt算法的具体过程如下.

首先通过下式计算$ke{y_\mu }.$

$ke{y_\mu } = \frac{{e\left( {{C_0}, {{({D_0})}^\mu }} \right)}}{{e\left( {{w^{\sum\nolimits_{j \in \ell } {{C_{j, 4}}.{\omega _j}} }}, {{({D_1})}^\mu }} \right) \cdot \prod\nolimits_{j \in \ell } {{{\left( {e\left( {{C_{j, 1}}, {{({D_1})}^\mu }} \right) \cdot e{{\left( {{C_{j, 2}}.{u^{{C_{j, 5}}}}, {{({D_{j, 2}})}^\mu }} \right)}^{H\left( {ID} \right)}}.e\left( {{C_{j, 3}}, {{({D_{j, 3}})}^\mu }} \right)} \right)}^{{\omega _j}}}} }}$ (4)

其中, $\sum\nolimits_{j = 1}^\ell {{\omega _j}{{z'}_j} = s} .$最后, 云存储服务器把转换密文$TD = \left( {CT', C, ke{y_\mu }, Token} \right)$发送给数据使用者.

7) 解密

数据使用者收到云存储服务器发送的转换密文后, 执行Decrypt算法进行解密, 具体过程如下:首先计算对称密钥$ck = {{C {\left/ { {C {\left( {ke{y_\mu }} \right)}}} \right. } {\left( {ke{y_\mu }} \right)}}^{{1 {\left/ { {1 \mu }} \right. } \mu }}}, $然后验证等式$Token \ne {H_1}({H_0}(ck)||CT')$是否成立.若等式成立, 则云存储服务器解密不正确, 返回;若等式不成立, 则表示云存储服务器解密正确, 使用对称密钥ck解密密文CT ’, 返回明文MSG.

4 OO-MA-ABE方案的安全性和其他性能分析 4.1 正确性分析

正确性:如果下面的等式成立, 则本文的方案是正确的.从公式(4)中, 可以得到如下计算组件:

$\left. \begin{gathered} {\prod\nolimits_{j \in \ell } {\left( {e\left( {{C_{j, 1}}, {{\left( {{D_1}} \right)}^\mu }} \right) \cdot e{{\left( {{C_{j, 2}} \cdot {u^{{C_{j, 5}}}}, {{\left( {{D_{j, 2}}} \right)}^\mu }} \right)}^{H\left( {ID} \right)}} \cdot e\left( {{C_{j, 3}}, {{\left( {{D_{j, 3}}} \right)}^\mu }} \right)} \right)} ^{{\omega _j}}} \hfill \\ = \prod\nolimits_{j \in \ell } {{{\left( {e\left( {{w^{{z_j}}}{v^{{t_j}}}, {g^{\mu r}}} \right) \cdot e{{\left( {{{\left( {{u^{{x_j}}}h} \right)}^{ - {t_j}}}.{u^{{t_j}\left( {{x_j} - \rho (j)} \right)}}, {g^{\mu {r_i}}}} \right)}^{H\left( {ID} \right)}}.e\left( {{g^{{t_j}}}, {{\left( {{u^{{A_j}}}h} \right)}^{\mu {r_j}H\left( {ID} \right)}}{v^{ - r\mu }}} \right)} \right)}^{{\omega _j}}}} \hfill \\ = \prod\nolimits_{j \in \ell } {{{\left( {e\left( {{w^{{z_j}}}{v^{{t_j}}}, {g^{\mu r}}} \right) \cdot e{{\left( {{h^{ - {t_j}}}.{u^{ - \rho (j){t_j}}}, {g^{\mu {r_i}}}} \right)}^{H\left( {ID} \right)}}.e\left( {{g^{{t_j}}}, {{\left( {{u^{{A_j}}}h} \right)}^{\mu {r_j}H\left( {ID} \right)}}{v^{ - r\mu }}} \right)} \right)}^{{\omega _j}}}} \hfill \\ = \prod\nolimits_{j \in \ell } {{{\left( {e\left( {{w^{{z_j}}}{v^{{t_j}}}, {g^{\mu r}}} \right).e\left( {{g^{{t_j}}}, {v^{ - r\mu }}} \right)} \right)}^{{\omega _i}}} = \prod\limits_{j \in \ell } {e{{\left( {{w^{{z_j}}}, {g^{\mu r}}} \right)}^{{\omega _i}}} = e} \left( {{w^{\sum\nolimits_{j \in \ell } {{z_j}.{\omega _j}} }}, {g^{\mu r}}} \right)} \hfill \\ \end{gathered} \right\}$ (5)
$\prod\nolimits_{i \in {I_c}} {e({C_0}, {{({D_0})}^\mu })} = \\ \prod\nolimits_{i \in {I_c}} {e\left( {{g^s}, {g^{\mu \sum\nolimits_N^{i = 1} {{\alpha _i}} }}{w^{\mu r}}} \right)} = {\prod\nolimits_{i \in {I_c}} {e(g, g)} ^{\mu \sum\nolimits_N^{i = 1} {{\alpha _i}} s}}e{(w, g)^{\mu rs}}$ (6)
$e\left( {{w^{\sum\nolimits_{j \in \ell } {{C_{j, 4}}.{\omega _j}} }}, {{\left( {{D_1}} \right)}^\mu }} \right) =\\ e\left( {{w^{\sum\nolimits_{j \in \ell } {\left( {{{z'}_j} - {z_j}} \right).{\omega _j}} }}, {g^{\mu r}}} \right) = e\left( {{w^{\sum\nolimits_{j \in \ell } {{{z'}_j}.{\omega _j} - \sum\nolimits_{j \in \ell } {{z_j}.{\omega _j}} } }}, {g^{\mu r}}} \right)$ (7)

最后, 通过计算式(5)~式(7), 可以得到

$ke{y_\mu } =\\ \frac{{\prod\nolimits_{i \in {I_c}} {e\left( {{C_0}, {{\left( {{D_0}} \right)}^\mu }} \right)} }}{{e\left( {{w^{\sum\nolimits_{j \in \ell } {{C_{j, 4}}.{\omega _j}} }}, {{\left( {{D_1}} \right)}^\mu }} \right) \cdot \prod\nolimits_{j \in \ell } {{{\left( {e\left( {{C_{j, 1}}, {{\left( {{D_1}} \right)}^\mu }} \right) \cdot e{{\left( {{C_{j, 2}}.{u^{{C_{j, 5}}}}, {{\left( {{D_{j, 2}}} \right)}^\mu }} \right)}^{H\left( {ID} \right)}}.e\left( {{C_{j, 3}}, {{\left( {{D_{j, 3}}} \right)}^\mu }} \right)} \right)}^{{\omega _j}}}} }}\\ {\text{ = }}e{\left( {g, g} \right)^{\mu \sum\nolimits_N^{i = 1} {{\alpha _i}} s}}$ (8)
4.2 安全性分析

理论1.本文方案在离散对数的假设下抵抗N-1个属性授权机构合谋攻击.

证明:每个属性授权机构随机产生N-1个随机整数${s_{ik}}, $并把${g^{{s_{ik}}}}$共享给其他属性授权机构; 每个授权机构根据收到的共享参数产生自己的主密钥$M{K_i}.$根据离散对数的假设可以知道, 敌手很难从${g^{{s_{ik}}}}$中推断出${s_{ik}}.$因此, 即使有N-2个属性授权机构与敌手合谋, 敌手仍然有一个参数不能确定, 其不可能猜测到有效的${g^r}, $所以说, 敌手不可能构建出一个有效的私钥.因此, 本文方案可以在离散对数的假设下抵抗N-1个属性授权机构的合谋攻击.

理论2.在q-type假设(q-type assumption)成立的情况下, 没有多项式时间敌手可以选择性攻破我们的方案.

证明:假定在选择安全性的情况下有多项式时间敌手$\mathbb{A}$可以有不可忽略的优势打破我们的方案, 那么敌手$\mathbb{A}$可以构建出一个仿真者$\mathbb{C}$以不可忽略的优势解决q-type问题.具体过程如下.

初始化:敌手$\mathbb{A}$提交挑战的访问结构$({M^*}, {\rho ^*})$和妥协的属性授权机构$\mathfrak{R}= {\left( {{{\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{A} }_i}} \right)_{i \in I}}$的索引集合I, 其中, M*是一个$\ell \times n$的二维数组, 且$\ell, n \leqslant p.$假定$({M^*}, {\rho ^*})$不可能满足每次敌手$\mathbb{A}$用于密钥询问的属性集合.另外, 访问结构中的属性不能来自于妥协的属性授权机构.

建立阶段:仿真者$\mathbb{C}$运行AASetup算法和GlobalSetup算法, 对于每个授权${\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{A} _i} \subseteq \mathfrak{R} $直接运行算法产生公开参数; 对于每一个授权机构${\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{A} _i} \not\subset \mathfrak{R}, $仿真者$\mathbb{C}$首先随机选择$\tilde \alpha \in {Z_p}$$a \in {Z_p}, $然后计算设置$\alpha = {a^{q + 1}} + \tilde \alpha $保证$e{\left( {g, g} \right)^\alpha } = e\left( {{g^a}, {g^{{a^q}}}} \right) \cdot e{\left( {g, g} \right)^{\tilde \alpha }};$最后仿真者$\mathbb{C}$随机选择$\tilde u, \tilde h, \tilde v \in {Z_p}, $并通过下式计算$u, h, w, v.$

$\left. \begin{gathered} u = {g^{\tilde u}}\prod\nolimits_{\left( {j,k} \right) \in [\ell ,n]} {{{\left( {{g^{{a^k}/b_j^2}}} \right)}^{M_{j,k}^*}}} , \hfill \\ h = {g^{\tilde h}}\prod\nolimits_{\left( {j,k} \right) \in [\ell ,n]} {{{\left( {{g^{{a^k}/b_j^2}}} \right)}^{ - {\rho ^*}\left( j \right)M_{j,k}^*}}} , \hfill \\ w = {g^a}, \hfill \\ v = {g^{\tilde v}}\prod\nolimits_{\left( {j,k} \right) \in [\ell ,n]} {{{\left( {{g^{{a^k}/{b_j}}}} \right)}^{M_{j,k}^*}}} \hfill \\ \end{gathered} \right\}$ (9)

仿真者生成的公钥为$P{K_i} = \left\{ {e{{\left( {g, g} \right)}^\alpha } = e\left( {{g^a}, {g^{{a^q}}}} \right) \cdot e{{\left( {g, g} \right)}^{\tilde \alpha }}} \right\}.$

查询阶段1:在这一阶段, 敌手$\mathbb{A}$可以选择不同数量的用户$\left\{ {I{D_1}, I{D_2}, ..., I{D_q}} \right\}$及用户属性集合${S_{I{D_1}}}, {S_{I{D_2}}}, $ $..., {S_{I{D_q}}}, $然后向仿真者$\mathbb{C}$进行多次(即q次)的密钥询问.其中, 敌手$\mathbb{A}$提交的属性集合来自于未妥协的属性授权机构且不满足挑战访问结构$({M^*}, {\rho ^*}).$仿真者$\mathbb{C}$先随机选择一个$\tilde r \leftarrow {Z_p}, $并挑选向量$\vec \omega = {({\omega _1} = - 1, {\omega _2}, ..., {\omega _n})^{\rm T}} \in $ $Z_p^n$使其满足$\vec M_i^*.\vec \omega = 0.$其中, $i \in \left\{ {i|i \in \left[{\ell \wedge {\rho ^*}\left( i \right) \in {S_{I{D_q}}}} \right]} \right\}.$从LSSS的定义可以知道, 由于${S_{I{D_q}}}$不满足矩阵M*, 因此, 向量$\vec \omega $一定存在.然后定义$r = \tilde r + H(ID)({\omega _1}{a^q} + {\omega _2}{a^{q - 1}} + ... + {\omega _n}{a^{q + 1 - n}}) = \tilde r + H(ID)\sum\limits_{i \in \left[n \right]} {{\omega _i}{a^{q + 1 - i}}}, $随后构建密钥组件D0D1如下:

$\left. \begin{gathered} {D_0} = {g^{\tilde \alpha /\beta }}{\left( {{g^{a/\beta }}} \right)^{\tilde r}}\prod\limits_{i = 2}^n {{{\left( {{g^{{a^{q + 2 - i}}/\beta }}} \right)}^{H\left( {ID} \right){\omega _i}}}} , \hfill \\ {D_1} = {g^{\tilde r}}\prod\limits_{i \in [n]}^n {{{\left( {{g^{{a^{q + 1 - i}}}}} \right)}^{ID{\omega _i}}}} \hfill \\ \end{gathered} \right\}$ (10)

另外, 对于每个属性${A_\tau } \in {S_{I{D_q}}}, $其中, $\tau \in \left[{\left| S \right|} \right];$仿真者$\mathbb{C}$设置${r_\tau }$, 具体如下:

${r_\tau } = {\tilde r_\tau } + \tilde r.\sum\limits_{\begin{array}{*{20}{c}} {i' \in \left[ \ell \right]} \\ {{\rho ^{*\left( {i'} \right)S}}} \end{array}} {\frac{{{b_{i'}}}}{{{A_\tau } - {\rho ^*}(i')}}} + \sum\limits_{_{\begin{array}{*{20}{c}} {i' \in \left[ {n,\ell } \right]} \\ {{\rho ^{*\left( {i'} \right)S}}} \end{array}}} {\frac{{{\omega _i}{b_{i'}}{a^{q + 1 - i}}}}{{{A_\tau } - {\rho ^*}(i')}}}$ (11)

最后, 为每个属性计算如下密钥组件, 其中, ${A_\tau } \in {S_{I{D_q}}}.$

${D_{\tau, 2}} = {g^{{r_\tau }}}$ (12)
$ \left. \begin{gathered} {D_{\tau, 3}} = {v^{- \tilde r}}\prod\limits_{i \in \left[n \right]} {{{\left( {{g^{{a^{q + 1 - i}}}}} \right)}^{ - H\left( {ID} \right)\tilde v\omega i}}} \cdot \prod\limits_{\left( {i, j, k} \right) \in \left[{n, \ell, n} \right], i \ne k} {{{\left( {{g^{\frac{{{a^{q + k + 1 - i}}}}{{{b_j}}}}}} \right)}^{ - H\left( {ID} \right){\omega _i}M_{j, k}^*}}} \cdot \hfill \\ {\left( {{u^{{A_t}}}h} \right)^{H\left( {ID} \right){{\tilde r}_\tau }}} \cdot {\left( {{K_{\tau, 2}}/{g^{{{\tilde r}_\tau }}}} \right)^{H\left( {ID} \right)\left( {\tilde u{A_\tau } + \tilde h} \right)}} \cdot\\ \prod\limits_{\left( {i, j, k} \right) \in \left[{\ell, \ell, n} \right], {\rho ^*}\left( {i'} \right) \notin S} {{g^{H\left( {ID} \right)\tilde r}}\left( {{A_\tau } - {\rho ^*}\left( j \right)} \right)M_{j, k}^*b_{i'}^{{a^k}}/\left( {{A_\tau } - {\rho ^*}\left( {i'} \right)} \right)b_j^2 \cdot } \hfill \\ \prod\limits_{\left( {i, i', j, k} \right) \in \left[{n, \ell, \ell, n} \right], {\rho ^*}\left( {i'} \right) \notin S} {{g^{H\left( {ID} \right)}}\left( {{A_\tau } -{\rho ^*}\left( j \right)} \right){\omega _i}M_{j, k}^*b_{i'}^{{a^{q + 1 + k -i}}}/\left( {{A_\tau } -{\rho ^*}\left( {i'} \right)} \right)b_j^2} \hfill \\ = {\left( {{u^{{A_\tau }}}h} \right)^{{r_\tau }H\left( {ID} \right)}}{v^{ - r}} \hfill \\ \end{gathered} \right\} $ (13)

仿真者响应私钥$S{K^*} = \left( {{D_0}, {D_1}, {{\left\{ {{D_{\tau, 2}}, {D_{\tau, 3}}} \right\}}_{\tau \in \left[{\left| {{S_{I{D_q}}}} \right|} \right]}}, {S_{I{D_q}}}} \right)$给敌手$\mathbb{A}.$

挑战阶段:敌手$\mathbb{A}$提交两个长度相同内容不同的信息${M_0}$${M_1}$给仿真者.首先仿真者$\mathbb{C}$随机选择一个数$\theta \in \left\{ {0, 1} \right\};$其次产生密文组件$C = {m_\theta } \cdot T \cdot e{(g, {g^s})^{\tilde \alpha }}$${C_0} = {g^s}.$然后仿真者$\mathbb{C}$随机选择$({z_1}, ..., {z_\ell }, {z'_1}, ..., {z'_\ell }, {\tilde y_2}, ..., $ ${\tilde y_\ell }) \in {Z_p}, $并使用向量$\vec y = {\left( {s, sa + {{\tilde y}_2}, s{a^2} + {{\tilde y}_3}, ..., s{a^{n - 1}} + {{\tilde y}_n}} \right)^{T}}$共享秘密值s.另外, 为$\tau \in \left[\ell \right]$设置${\lambda _\tau } = \sum\limits_{i \in [n]} {M_{\tau, i}^*s{a^{i - 1}}} + $ $\sum\limits_{i = 2} {M_{\tau, i}^*{{\tilde y}_i}} = \sum\limits_{i \in [n]} {M_{\tau, i}^*s{a^{i - 1}}} + {\tilde \lambda _\tau }_\tau $${t_\tau } = - s{b_\tau };$然后通过下式设置密文组件${C_{\tau, 1}}, {C_{\tau, 2}}, {C_{\tau, 3}}, {C_{\tau, 4}}, {C_{\tau, 5}}.$

$\left. \begin{gathered} {C_{\tau, 1}} = {w^{{{\tilde \lambda }_\tau }}} \cdot {\left( {{g^{s{b_\tau }}}} \right)^{ - \tilde v}}.{\prod\limits_{\begin{array}{*{20}{c}} {\left( {j, k} \right) \in \left[{\ell, n} \right]} \\ {j \ne \tau} \end{array}} {\left( {{g^{{{s{a^k}{b_\tau }} {\left/ \right. } {{b_j}}}}}} \right)} ^{ - M_{j, k}^*}}.{w^{ - {z_j}}}, \\ {C_{\tau, 2}} = {\left( {{g^{s{b_\tau }}}} \right)^{ - \left( {\tilde u{\rho ^*}\left( \tau \right) + \tilde h} \right)}}.{\prod\limits_{\begin{array}{*{20}{c}} {\left( {j, k} \right) \in \left[{\ell, n} \right]}\\ {j \ne \tau} \end{array}} {\left( {{g^{{{s{a^k}{b_\tau }} {\left/ \right. } {b_{_j}^2}}}}} \right)} ^{ - \left( {{\rho ^*}\left( \tau \right) - {\rho ^*}\left( j \right)} \right)M_{j, k}^*}}.{u^{{{z'}_j}}}, \\ {C_{\tau, 3}} = {\left( {{g^{s{b_\tau }}}} \right)^{ - 1}}, \\ {C_{\tau, 4}} = {z_j}, \\ {C_{\tau, 5}} = {{z'}_j} \\ \end{gathered} \right\}$ (14)

最后, 仿真者$\mathbb{C}$把挑战密文$C{T^*} = \left( {{M^*}, C, {C_0}, {{\left\{ {{C_{\tau, 1}}, {C_{\tau, 2}}, {C_{\tau, 3}}, {C_{\tau, 4}}, {C_{\tau, 5}}} \right\}}_{\tau = 1...\ell }}} \right)$发送给敌手$\mathbb{A}.$

查询阶段2:重复查询阶段1.

猜测阶段:敌手$\mathbb{A}$输出一个作为$\beta '$$\beta $的猜测.如果$\beta = \beta ', $则仿真者$\mathbb{C}$输出0, 即$T = e{\left( {g, g} \right)^{{a^{q + 1}}s}};$否则, 仿真者$\mathbb{C}$输出1, 即T是一个随机数.如果$T = e{\left( {g, g} \right)^{{a^{q + 1}}s}}, $则仿真者$\mathbb{C}$进行真实的仿真, 因为$C = {m_b} \cdot T \cdot e{(g, {g^s})^{\tilde \alpha }} = $ ${m_b} \cdot e{(g, g)^{\alpha s}};$如果为随机数, 则敌手$\mathbb{A}$的优势为0.因此, 敌手$\mathbb{A}$以不可忽略的优势打破以上游戏, 仿真者$\mathbb{C}$能以不可忽略的优势打破q-type假设.

4.3 性能分析

表 1中, 本文方案从访问结构的类型、是否离线加密、外包解密、外包可验证及授权机构数量方面, 与以前的ABE方案进行了对比.从对比中可以看出, 本文方案同时实现了多授权机构ABE模型下的离线加密、外包解密以及外包结果可验证的功能, 文献[15]中的方案、文献[31, 32]中的方案仅实现了其中部分功能.相比而言, 本文方案支持的功能更加丰富, 实用性更强.

Table 1 Comparison of flexibility of OO-MA-ABE scheme 表 1 OO-MA-ABE方案功能对比

我们对本文提出的方案、文献[31]中的方案及文献[32]中的方案进行了仿真实验, 并对3个不同方案的离线加密、线上加密和用户端解密的时间进行了对比分析.所有实验程序均采用Java语言编写, 并在Eclipse下运行, 微机环境为Windows操作系统Intel(R) Core(TM) i3 CPU 2.0GHz和2GB RAM内存.同时, 本文方案采用了JPBC中提出的基于椭圆曲线y2=x3+x构造的160位椭圆曲线群.另外, 为降低实验中随机因素的影响, 我们针对不同程序的每一种情况都独立运行20次实验, 实验结果如图 2所示.

Fig. 2 Computation time analysis of OO-MA-ABE scheme 图 2 OO-MA-ABE方案计算时间分析

图 2(a)中, 我们首先给出了数据拥有者的离线加密时间对比.从图中可以看出, 随着系统中属性数量的不断增加, 本文方案中数据拥有者在离线阶段所花费的加密时间要明显少于文献[31]和文献[32]的方案.这对系统的整体效率来说是一个非常大的提升.然后, 我们对数据拥有者的线上加密时间进行了对比分析, 如图 2(b)所示.在移动云计算环境下, 提高移动设备的线上运行效率, 降低能耗, 延长设备使用时间是非常重要的.从图中可以看出, 我们的方案在数据拥有者端加密耗费的时间要远远少于文献[32]的方案, 这说明, 相较其他方案, 本文方案在移动云环境下具有更强的实用性.最后, 我们对用户端的解密代价进行了分析, 如图 2(c)所示.在用户解密阶段, 本文方案和文献[31]的方案用户端均只需进行一次指数运算(除法运算花费时间很少, 可忽略不计), 解密花费时间相同.而在文献[32]所提方案中, 用户在解密阶段需要进行两次指数运算, 所消耗时间远远超过本文方案需要的解密时间.所以, 本文方案中用户所花费的代价相较而言是最低的.综上所述, 本文的方案在性能和功能上均优于其他方案.

5 结论

本文为了处理多授权机构属性基加密访问控制方案中加密和解密计算代价问题, 提出了高效可验证的多授权机构属性基加密云存储数据访问控制方案.该方案通过把加密过程分为两部分, 即离线加密和线上加密; 把加密阶段所有的配对操作在离线阶段预处理, 来减少线上加密阶段的计算开销.另外, 本文方案通过外包解密的方式减少用户端解密计算的代价, 同时对外包的计算进行了验证, 保证了云存储服务器解密的正确性.本文方案可以抵抗单个授权机构获取用户的所有属性, 一定程度上保护了用户的身份隐私.最后, 对本文提出的方案进行了安全性分析和仿真实验, 结果表明了方案的高效性及安全性, 可用于部署到移动云存储平台.

参考文献
[1]
Yao X, Han X, Du X. A lightweight access control mechanism for mobile cloud computing. In: Proc. of the 2014 IEEE Conf. on Computer Communications Workshops (INFOCOM WKSHPS). IEEE, 2014. 380-385.http://ieeexplore.ieee.org/document/6849262/
[2]
Ren W, Zeng L, Liu R, Cheng C. F2AC:A lightweight, fine-grained, and flexible access control scheme for file storage in mobile cloud computing. Mobile Information Systems, 2016.
[3]
Xie Y, Wen H, Wu B, Jiang Y, Meng J. A modified hierarchical attribute-based encryption access control method for mobile cloud computing. In: Proc. of the Cloud Computing. 2016.http://ieeexplore.ieee.org/document/7368903/
[4]
Nag A, Choudhary S, Dawn S, Basu S. Secure data outsourcing in the cloud using multi-secret sharing scheme (MSSS). In: Proc. of the 1st Int'l Conf. on Intelligent Computing and Communication. Singapore: Springer-Verlag, 2017. 337-343.https://link.springer.com/chapter/10.1007/978-981-10-2035-3_34
[5]
Chattopadhyay AK, Nag A, Majumder K. Secure data outsourcing on cloud using secret sharing scheme. IJ Network Security, 2017, 19(6): 912–921.
[6]
Wang S, Zhou J, Liu JK, Yu J, Cheng J, Xie W. An efficient file hierarchy attribute-based encryption scheme in cloud computing. IEEE Trans. on Information Forensics and Security, 2016, 11(6): 1265-1277.http://ieeexplore.ieee.org/document/7401059/
[7]
Xu J, Wen Q, Li W, Jin Z. Circuit ciphertext-policy attribute-based hybrid encryption with verifiable delegation in cloud computing. IEEE Trans. on Parallel and Distributed Systems, 2016, 27(1): 119-129.http://ieeexplore.ieee.org/document/7010954/
[8]
Lei L, Cai QW, Jing JW, Wang Z, Chen B. Enforcing access controls on encrypted cloud storage with policy hiding. Ruan Jian Xue Bao/Journal of Software, 2016, 27(6):1432-1450(in Chinese with English abstract). http://www.jos.org.cn/1000-9825/5003.htm[doi:10.13328/j.cnki.jos.005003]http://www.jos.org.cn/jos/ch/reader/view_abstract.aspx?flag=1&file_no=5003&journal_id=jos
[9]
Wang Z, Huang D, Zhu Y, Li B, Chung CJ. Efficient attribute-based comparable data access control. IEEE Trans. on Computers, 2015, 64(12): 3430-3443.
[10]
Wang H, Zheng Z, Wu L, He D. New large-universe multi-authority ciphertext-policy ABE scheme and its application in cloud storage systems. Journal of High Speed Networks, 2016, 22(2): 153–167. [doi:10.3233/JHS-160536]
[11]
Jung T, Li X, Wan Z, Wang M. Control cloud data access privilege and anonymity with fully anonymous attribute-based encryption. IEEE Trans. on Information Forensics and Security, 2015, 10(1): 190-199.http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=6951492
[12]
Hohenberger S, Waters B. Online/Offline attribute-based encryption. In: Public-Key Cryptography-PKC 2014. Berlin, Heidelberg: Springer-Verlag, 2014. 293-310.
[13]
Shao J, Zhu Y, Ji Q. Privacy-Preserving online/offline and outsourced multi-authority attribute-based encryption. In: Proc. of the 16th IEEE/ACIS Int'l Conf. on Computer and Information Science (ICIS). IEEE, 2017. 285-291.
[14]
Qin B, Deng RH, Liu S, Ma S. Attribute-Based encryption with efficient verifiable outsourced decryption. IEEE Trans on Information Forensics and Security, 2015, 10(7): 1384–1393. [doi:10.1109/TIFS.2015.2410137]
[15]
Shao J, Lu R, Lin X. Fine-Grained data sharing in cloud computing for mobile devices. In: Proc. of the 2015 IEEE Conf. on Computer Communications (INFOCOM). IEEE, 2015. 2677-2685.
[16]
Sahai A, Waters B. Fuzzy identity-based encryption. Eurocrypt, 2005, 3494: 457–473.
[17]
Han J, Susilo W, Mu Y, Zhou J, Au MHA. Improving privacy and security in decentralized ciphertext-policy attribute-based encryption. IEEE Trans. on Information Forensics and Security, 2015, 10(3): 665-678.http://ieeexplore.ieee.org/document/6987293/
[18]
Tang H, Cui Y, Guan C, Wu J, Weng J, Ren K. Enabling ciphertext deduplication for secure cloud storage and access control. In: Proc. of the 11th ACM on Asia Conf. on Computer and Communications Security. ACM, 2016. 59-70.https://www.semanticscholar.org/paper/Enabling-Ciphertext-Deduplication-for-Secure-Cloud-Tang-Cui/9912658cb16bb8ddcf10c03414dbf3e7a5c4e5eb/figure/1
[19]
Li J, Yao W, Zhang Y, Qian H, Han J. Flexible and fine-grained attribute-based data storage in cloud computing. IEEE Trans. on Services Computing, 2016.
[20]
Zhou Z, Huang D, Wang Z. Efficient privacy-preserving ciphertext-policy attribute based-encryption and broadcast encryption. IEEE Trans. on Computers, 2015, 64(1): 126-138.http://ieeexplore.ieee.org/abstract/document/6624107/
[21]
Yanli C, Lingling S, Geng Y. Attribute-Based access control for multi-authority systems with constant size ciphertext in cloud computing. China Communications, 2016, 13(2): 146–162. http://ieeexplore.ieee.org/xpl/abstractAuthors.jsp?reload=true&arnumber=7405733&
[22]
Phuong TVX, Yang G, Susilo W. Hidden ciphertext policy attribute-based encryption under standard assumptions. IEEE Trans. on Information Forensics and Security, 2016, 11(1): 35-45.http://ieeexplore.ieee.org/document/7236899/
[23]
Ruj S, Stojmenovic M, Nayak A. Decentralized access control with anonymous authentication of data stored in clouds. IEEE Trans. on Parallel and Distributed Systems, 2014, 25(2): 384-394.http://ieeexplore.ieee.org/document/6463404/
[24]
Chase M. Multi-Authority attribute based encryption. In: Proc. of the Conf. on Theory of Cryptography. LNCS 4392, Berlin, Heidelberg: Springer-Verlag, 2007. 515-534.
[25]
Lewko A, Waters B. Decentralizing attribute-based encryption. In: Advances in Cryptology-EUROCRYPT 2011. Berlin, Heidelberg: Springer-Verlag, 2011. 568-588.
[26]
Guo F, Mu Y, Chen Z. Identity-Based online/offline encryption. In: Proc. of the Int'l Conf. on Financial Cryptography and Data Security. Berlin, Heidelberg: Springer-Verlag, 2008. 247-261.
[27]
Even S, Goldreich O, Micali S. On-Line/Off-Line digital signatures. In: Proc. of the Conf. on the Theory and Application of Cryptology. New York: Springer-Verlag, 1989. 263-275.
[28]
Hohenberger S, Waters B. Online/Offline attribute-based encryption. In: Proc. of the Int'l Workshop on Public Key Cryptography. Berlin, Heidelberg: Springer-Verlag, 2014. 293-310.
[29]
Rouselakis Y, Waters B. Practical constructions and new proof methods for large universe attribute-based encryption. In: Proc. of the 2013 ACM SIGSAC Conf. on Computer & Communications Security. ACM, 2013. 463-474.https://www.semanticscholar.org/paper/Practical-constructions-and-new-proof-methods-for-Rouselakis-Waters/592745ac8339a0330f13baac973c1f998704ad43/figure/0
[30]
Green M, Hohenberger S, Waters B. Outsourcing the decryption of ABE ciphertexts. In: Proc. of the USENIX Security Symp. 2011. 34.
[31]
Yang K, Jia X. DAC-MACS: Effective data access control for multi-authority cloud storage systems. In: Security for Cloud Storage Systems. New York: Springer-Verlag, 2014. 59-83.
[32]
De SJ, Ruj S. Decentralized access control on data in the cloud with fast encryption and outsourced decryption. In: Proc. of the 2015 IEEE Global Communications Conf. (GLOBECOM). IEEE, 2015. 1-6.http://ieeexplore.ieee.org/lpdocs/epic03/wrapper.htm?arnumber=7417639
[8]
雷蕾, 蔡权伟, 荆继武, 林璟锵, 王展, 陈波.支持策略隐藏的加密云存储访问控制机制.软件学报, 2016, 27(6):1432-1450. http://www.jos.org.cn/1000-9825/5003.html[doi:10.13328/j.cnki.jos.005003]