1. 引言
云计算 [1] 是一种新的计算范式,为用户提供随需部署、动态优化与恢复、随需计费以及随时随地在互联网上可获得的海量存储和计算资源等服务 [2]。云计算的快速发展和用户数据的爆炸式增长使云存储成为云环境中不可或缺的一部分 [3]。在通过云存储实现数据存储与共享的过程中,数据拥有者一旦将数据上传至云端,将会失去对数据存储与访问的物理控制和直接控制 [4]。因此,云存储中最重要的安全问题是云向未授权用户泄露敏感数据和未授权的用户非法访问数据。
由于安全和隐私方面存在的挑战,需要加密来保护敏感信息并且只允许授权用户访问数据。2005年,Sahai和Waters首次提出属性基加密(Attribute-Based Encryption, ABE)机制 [5]。ABE是一种将属性与访问控制策略、用户和数据相互关联的加密方案,用户如果想要访问云数据,必须拥有访问控制策略所定义的属性。
ABE根据访问策略嵌入位置的不同,可以分为密钥策略属性基加密(Key-Policy Attribute-Based Encryption, KP-ABE) [6] 和密文策略属性基加密(Ciphertext-Policy Attribute-Based Encryption, CP-ABE) [7]。在KP-ABE中,只有当与密文关联的属性集满足与用户解密密钥相关联的访问策略时,才能解密密文。而CP-ABE允许数据拥有者使用有效的访问结构或策略加密数据并将其存储到云中,用户只有在其属性满足密文的访问结构时才能访问数据。由于CP-ABE具有可扩展性、灵活性、支持细粒度访问等特点,成为云计算中一种有效的数据访问控制解决方案 [8]。
在复杂多变的云计算环境中,信任管理可用于用户身份安全管理中的可信访问控制以及对非授权用户的身份认证,确保云存储数据服务的安全,在提高云计算的可靠性、可用性和安全性方面发挥着至关重要的作用 [9] [10]。而访问控制技术又是解决云安全问题的核心,所以如何将信任与CP-ABE结合,实现对云存储数据进行安全高效、灵活和细粒度的访问控制成为云安全问题的重中之重。
2. 相关工作
传统情况下,直接将CP-ABE方案应用于云环境中,通常会在访问控制过程中产生较大的计算、存储通信开销问题以及安全性问题。大多数CP-ABE方案在解密阶段往往会涉及到双线性配对运算,该运算计算量大、耗时较长导致用户解密效率的低下。为了减少用户的计算开销,文献 [11] [12] 提出将密钥分发与解密阶段过程中涉及到的所有与访问策略和属性相关的操作分别外包给密钥生成服务器和代理服务器,来降低用户端的计算开销问题。
由于存在单个属性授权机构(Attribute Authority, AA)与用户通过合谋攻击造成密钥泄露的问题,且无法满足大规模分布式应用对不同机构协作的需求。文献 [13] [14] 依赖于一个中央授权机构(Central Authority, CA)来生成相关的系统参数和用户密钥,并使用CA管理和分发密钥。但CA在该方案中能够拥有足够的权限去解密密文,当CA不可信或遭受恶意攻击的情况下可能会造成密钥泄露,大大地降低了云存储数据的安全性和保密性。
为了解决此问题,Chase等人最早在文献 [15] 中提出了多授权机构CP-ABE方案,防止用户之间进行合谋攻击,降低单个授权中心的负担和提高系统的效率。但该方案只支持门限算法,加密算法缺乏灵活性。文献 [16] [17] [18] [19] 通过使用多个属性授权机构对用户属性进行分组来共同生成密钥,从而避免授权中心被恶意攻破或合谋攻击问题的发生。文献 [20] 通过在访问结构和用户密钥中依赖一个基本属性来解决密钥分发的问题,利用用户全局标识符来抵抗属性授权机构间的合谋攻击,但该方案没有考虑计算量的转移,用户存在较大的计算开销问题。
针对上述问题,本文提出一种云存储中基于多授权中心的CP-ABE访问控制方案,利用多个属性授权机构分别管理不同的属性,AA通过用户所拥有的属性计算用户的信任值并对用户进行身份认证,实现用户密钥的生成与分发。为防止用户、代理服务器与属性授权机构之间的合谋攻击,解密密钥由全局密钥和属性密钥两部分组成,以此增强用户密钥的安全性。同时将属性密钥存储在代理服务器中并将其用于执行外包解密操作,减少用户的计算和存储开销。
3. 预备知识
3.1. 双线性映射
定义1. 双线性映射 [21]:设
和
都是阶为素数p的循环群,g为
的一个生成元,
是一个满足以下性质的双线性映射:
1) 双线性:对任意的
,有
;
2) 非退化性:
,其中1为
中的单位元;
3) 可计算性:对任意的
,存在有效的算法计算
。
3.2. 访问结构
定义2. 访问结构 [22]:设属性集
,某个用户的属性集
是集合S的一个非空子集,则n个属性最多可以定义
个不同属性集的用户。访问结构T是集合
的非空子集,当
时,T作为属性判断条件。对于任意集合A,有
,那么A称为授权集合,否则称为A非授权集合。令T表示一棵访问树,在ABE结构中,每个叶子节点表示一个属性,非叶子节点用门限表示,当且仅当用户的属性集完全符合访问策略T才能解密数据。
3.3. 线性秘密共享方案
定义3. 线性秘密共享方案(LSSS) [23]:参与者集合P上的一个密钥共享方案
,如果满足以下2个条件,则被称为
上的线性秘密共享方案。
1) 每个实体的秘密份额构成
上的一个向量;
2) 对于每个秘密共享方案
,存在一个生成矩阵
,对于矩阵M中的每一行
,映射
把M的每一行映射到参与者
,
为单射函数。考虑向量
,
是共享密钥,
随机选择用来隐藏s,Mv是l个秘密份额形成的向量,其中
表示参与者
所持有的秘密份额。
LSSS方案具有线性重构性,假设
是访问策略T的一个线性秘密共享,设
是一个访问授权集合,定义为
,如果
是对秘密s的有效共享份额,那么可以在多项式时间内找到一组常数
,使等式
成立。
3.4. 判定双线性问题
定义4. 判定双线性问题(DBDH问题) [24]:设
和
是两个阶为素数p的乘法循环群。设g是
的一个生成元,双线性对
。挑战者随机选择
和
,并计算
。已知
判断给定的一个元组是一个有效元组
还是一个随机元组
。
4. 系统模型
本文提出的系统模型由云服务器(Cloud Server, CS)、代理服务器(Proxy Server, PS)、属性授权机构(Attribute Authorities, AAs)、数据拥有者(Data Owner, DO)、用户(Data Users, DU)5个实体组成。如图1所示。
云服务器是半可信的,能够为数据所有者和代理服务器分别提供数据存储服务与密文访问请求服务。
代理服务器也是半可信的,用来存储用户的属性密钥并利用该密钥执行外包解密操作后得到部分解密密文,并将其部分解密密文返回给用户。
属性授权机构负责管理用户的属性、用户信任值的计算、属性密钥与全局密钥的生成及分发、系统公钥和主密钥等公共参数的生成。
数据所有者可以通过构造访问树定义自己的访问策略,并对明文数据进行加密后上传至云服务器存储。
用户发出资源访问请求时可以向代理服务器发送部分外包解密请求,只有用户所拥有的属性满足数据所有者定义的访问策略,通过对代理服务器返回的部分解密密文使用全局密钥进行解密得到明文。
方案算法实现
方案主要分为初始化阶段、加密阶段、信任计算、密钥生成阶段和解密阶段五个阶段。
1) 初始化阶段
:初始化算法由AA执行,以安全参数λ作为输入,输出系统公钥PK和主密钥MSK。
选取两个阶为p的乘法群,设g为GS群的一个随机生成元,让
表示双线性映射,并定义公开映射
。AA随机选择
,生成系统公钥PK和主密钥MSK:
(1)
(2)
2) 加密阶段
:加密算法由DO执行,以系统公钥PK、明文M和访问树T作为输入,输出密文CT。
设R为访问树T的根节点,首先从根节点R开始,自上而下为访问树T的每个节点x (包括叶子节点)选择一个多项式
,针对多项式
定义阶数
和门限值
的关系为
。随机选择根节点R的多
项式
中的常数项
,则有
。计算
。若
,对于每个子节点,其常数项的值由函数
生成,其他
个点同样是随机生成的。对于叶子节点,令Y为访问树T中的所有叶子节点集合,计算每个叶子节点
对应的
。
计算密文:
(3)
3) 信任计算
AA根据用户所拥有的属性进行信任计算,用户信任值Tt可使用一个三元组
来表示,且
。对每个AA所管理的属性进行分类,即分为正面属性集PA、负面属性集NA和中性属性集MA三类,通过用户所拥有的属性集UA与每个AA所管理的各类属性的交集分别得到用户各类属性的数量。即正面属性数量n'、负面属性数量m'、中性属性数量l'。具体计算如下:
(4)
(5)
(6)
其中在三元组
表达式中,C、I、D分别表示可信、怀疑、不可信的信任程度。具体计算如下:
(7)
(8)
(9)
其中
、
、
分别表示每个AA管理的每个正面属性、负面属性以及中性属性的初始权重,满足
。
由于信任具有时间相关性,不仅依赖于当前时刻计算的信任值,还要考虑之前某个特定时刻由AA计算的信任值。假设当前时刻的信任值为
,tx时刻的信任值为
,故用户信任值计算如下:
(10)
其中
表示权重因子,且满足
。
4) 密钥生成阶段
AA根据步骤(3)中计算的信任值对用户进行身份认证,若信任值
中的C、I、D满足
,则为可信用户,执行以下算法。否则,不执行。
:密钥生成算法由AA执行,以全局身份标识Uid、系统公钥PK、用户属性集S和秘密值φ作为输入,输出用户的全局密钥UGSK和属性密钥AA_Key。
用户列表UL用来记录每一个可信用户,对于每一个需要注册的合法用户U,AA为其分配一个全局身份标识Uid,其中
,对于每一个
,随机选择
,生成用户的全局密钥UGSK以及秘密值
:
(11)
(12)
N个属性授权机构
选择生成的秘密值φ,并对所管理的属性
,随机选择一个数
,生成用户的属性密钥AA_Key:
(13)
并通过安全信道发送给PS存储,AA_Key用于PS执行部分解密操作,以减少用户的存储开销与计算开销。而用户密钥SK由全局密钥UGSK和属性密钥AA_Key组成。
(14)
5) 解密阶段
① 外包解密
或⊥:外包解密算法由PS执行,以系统公钥PK、属性密钥AA_Key、密文CT作为输入,输出部分解密密文PCT。
为降低用户的开销,当DU想要访问数据时,向PS请求部分解密,PS从CS中接收密文CT和用户列表UL对用户进行认证。若用户
,PS使用存储的属性密钥AA_Key执行外包解密计算,承担大量的解密运算,并将部分解密密文PCT发送给DU。否则,返回⊥。具体步骤如下:
为定义的递归函数运算,令
,若节点x是访问树T的叶子节点且
,计算如下:
(15)
如果
,则有:
。当节点x是访问树T的非叶子节点,则对x的所有子节点z调用递归函数
,其函数输出值集合为Fz,令子节点z中的所有kx大小的集合为Sx,当且仅当
时,计算如下:
(16)
其中
。
若属性集合S满足访问树T,PS执行部分解密操作并将部分解密密文PCT发送给DU。计算部分解密密文:
(17)
② 用户解密
:用户解密算法由DU执行,以系统公钥PK和部分解密密文PCT,全局密钥UGSK为输入,输出明文数据M。计算明文:
(18)
(19)
5. 安全性分析
5.1. 安全性证明
假设:如果敌手A在任意多项式时间内对求解DBDH问题具有不可忽略的优势,则说明本方案是选择明文攻击安全的。
证明:假设存在一个敌手A能够以不可忽略的优势ε赢得游戏,构造一个模拟器
利用敌手A的能力
并以不可忽略的优势
解决DBDH假设。
1) 初始化:敌手A控制一组受攻击的属性授权机构
,且
中至少有两个AA不受控制,其余的
由模拟器
控制。敌手A选取挑战的访问策略T,其中一些属性由模拟器
控制的
负责管理,而一些属性由不受控制的AA管理。模拟器
设置
,
,
,其中随机选取
,
,
。同时模拟器
设置公共参数
,并
且将公共参数发送给敌手A。
2) 查询阶段1:敌手A想要查询尽可能多的属性密钥
,而对应的属性集
被多个
负责管理,其中没有一个满足访问策略T。模拟器
接收到密钥查询请求后,计算密钥组件来响应
敌手A的请求。对于所有属性
,模拟器
随机选取
,计算
。
然后模拟器
将生成的属性密钥发送给敌手A。
3) 挑战:敌手A提交两条挑战消息
和
给模拟器
,模拟器
随机抛出一枚硬币
,生成密文
并将密文发送给敌手A。
如果
,
,则有
和
,因此
是消息
的有效密文,
是密钥的有效组件。否则,如果
,
,则
。由
于
是一个随机元素,所以从敌手A的角度来看,
是
中的一个随机元素,因此
是无效密文,不包含关于
的信息。
4) 查询阶段2:自适应地重复查询阶段1的操作。
5) 猜测:敌手A提交一个
的猜测
。如果
,模拟器
输出
,表明是一个有效的DBDH元组
。如果
,模拟器
输出
,表明得到一个随机元组
。当
,敌手A得到一个有效密文
。根据定义,敌手A在这种情况下成功的概率为:
。当
时,敌手A不知道
的任何消息,则成功的概率为:
。因此,模拟器
在与挑战者之间的游戏中成功的概率为:
由上述证明可知,在DBDH假设中,如果敌手A的优势在多项式时间内为不可忽略的
,那么模拟
器
的优势
也是不可忽略的。由于本方案在任意多项式时间内可以解决DBDH问题,因此本方案对于
选择明文攻击是安全的。
5.2. 抵抗合谋攻击
在本方案中,用户密钥SK由属性密钥AA_Key和全局密钥UGSK组成。AA将生成的全局密钥
通过安全信道发送给用户,当非法用户获取该密钥时,并不能直接对密文进行解密
操作,而全局密钥UGSK通过随机选择α,β,r,γ来防止用户之间的合谋攻击,非法用户不能通过合谋得到解密密钥。代理服务器利用属性密钥AA_Key执行部分解密工作,若代理服务器试图通过解密操作获取明文,则需要获得存储在用户端的全局密钥UGSK。AA_Key通过随机选择rj,γ来防止AA之间的合谋攻击,同时秘密值
被用来防止用户与AA之间的合谋攻击。因此,本方案能有效地抵抗非法用户、代理服务器以及属性授权机构之间的合谋攻击。
6. 性能分析
6.1. 理论分析
为了说明本方案的特点,将所提出的方案与现有方案进行性能对比分析,包括综合性能分析和计算开销对比分析。具体从多授权中心、外包解密、抗合谋攻击、信任机制、加密阶段与解密阶段的开销等几个方面进行分析。如表1、表2所示。
相关符号表示如下:Cm表示在群GS下的一次乘法操作,Ce表示在群GS下的指数运算,Cp表示在群GT下的双线性配对运算,l表示访问策略中属性的个数,m表示用户满足解密需求的属性个数。
从表1可以得知,与其它方案相比,由于支持多授权中心、抗合谋攻击和信任机制,并通过外包解密减少用户的开销,本方案更适用于云存储环境下实现安全高效和细粒度的访问控制。
![](Images/Table_Tmp.jpg)
Table 1. Comprehensive comparative analysis of each scheme
表1. 各方案综合比较分析
![](Images/Table_Tmp.jpg)
Table 2. The comparison of computation cost
表2. 计算开销对比
为了分析本方案的计算开销,将所提出的方案与现有方案进行对比,如表2所示。算法执行时间主要花费在指数运算、点乘运算以及双线性配对操作上面,其中双线性配对运算代价最高。而系统整体运算过程中的效率主要由数据拥有者加密和用户解密过程中的运算量决定。
由上述表格表明,本方案与文献 [13] 中用户在解密阶段中的运算量为
,但本方案使用多授权中心提高密钥分发的效率和抗合谋攻击的能力。文献 [20] 中加密阶段与解密阶段的运算量分别为
和
。而本方案在加密和解密过程中的运算量要比文献 [20] 小,效率更高。
6.2. 实验分析
为了进一步对本方案的效率进行评估,本方案的实验环境为Inter(R) Core(TM) i5-4210U CPU @1.70GHz,主频2.4 GHz,内存8.00 GB,基于Windows 7操作系统安装的IntelliJ IDEA环境下进行仿真实验。实验结果如图2和图3所示,分别从加密时间和解密时间随属性个数的增加而变化的情况,将本方案与文献 [20] 进行对比分析。
![](//html.hanspub.org/file/7-2690430x205_hanspub.png)
Figure 2. The Comparison of encryption time cost of different number of attributes
图2. 不同属性个数的加密时间开销比较
![](//html.hanspub.org/file/7-2690430x206_hanspub.png)
Figure 3. The Comparison of decryption time cost of different number of attributes
图3. 不同属性个数的解密时间开销比较
7. 结论
本文提出一种云存储中基于多授权中心的CP-ABE访问控制方案。该方案中的密钥由属性密钥和全局密钥组成,增强用户密钥的安全性,有利于抵抗合谋攻击。同时结合信任机制,多授权中心根据用户的信任值进行密钥的生成与分发,使用代理服务器执行部分解密操作并存储用户的属性密钥,减少用户的计算开销和存储开销。通过安全性和性能分析证明了方案的安全性和高效性,能够在云计算环境下实现安全、高效和细粒度的访问控制。
基金项目
本文得到广东省重点领域研发计划项目(2019B010139002),广州市科技计划项目(201902020006、201902020007、201902010034)的资助。