王思雨,邢玉杰,李超会,贾 萍,2,3,柳 欣,2,3*
(1.山东青年政治学院 信息工程学院,山东 济南 250103;2.山东省高等学校智能信息控制新技术研发中心,山东 济南 250103;3.山东省高等学校特色实验室(智慧康养大数据工程与泛在计算特色实验室),山东 济南 250103)
作为一种流行的计算范式,云计算帮助企业从基础设施维护和数据中心管理的繁重事务中脱困,并且为个人用户提供了随时随地访问各类资源的服务[1]。在云环境下,越来越多的机构和个人将对敏感数据的存储业务外包给云服务商。属性密码学可以为保护用户的数据安全和隐私提供很好的解决途径[2]。属性加密(Attribute-based Encryption,ABE)方案是属性密码学的重要分支。ABE方案要求根据用户的属性集为其产生解密私钥,根据属性定义访问控制策略,并且支持一对多的高效加密模式,因此满足云环境下对敏感数据实施访问控制的需要。
ABE方案通常分为两类,即CP-ABE(Ciphertext Policy ABE)方案和KP-ABE(Key Policy ABE)方案。在CP-ABE方案中,用户的解密条件是所拥有的属性列表满足密文中的访问策略。相对于KP-ABE方案,CP-ABE方案能更好地满足云环境下实施访问控制的需要。Sahai等[3]提出模糊的基于身份加密方案,该方案可视为第一个ABE方案。Bethencourt等[4]提出第一个CP-ABE方案,该方案支持树型访问结构且能抵抗合谋攻击。郭丽峰等[5]提出支持对非法泄露私钥的恶意用户进行身份追踪的CP-ABE方案。需要强调的是,标准的CP-ABE方案并不支持对访问策略进行隐藏,致使密文中的访问策略可能会泄露数据所有者的敏感信息[6]。此外,标准的CP-ABE方案并不支持授权用户与非授权用户间的相互协作。例如:在面向医疗云的数据访问控制系统中,患者的主治医生在休假或组织远程会诊的情况下,需要临时性地将解密权限授权给其他医生。然而,标准的CP-ABE方案并不支持此类操作。
本研究利用Liang等[7]的属性代理重加密技术对Nishide等[8]的CP-ABE方案进行扩展,得到一个改进的方案。新方案具有以下优点:(1)密文实现了对访问控制策略的部分隐藏,可以更好地保护数据所有者的隐私;(2)新方案允许授权用户临时性地将对特定密文的解密权限授权给非授权用户;(3)授权用户可以将解密权限授权过程中的大部分运算任务外包给代理服务器完成。此外,本研究展示了新方案的具体应用,即构造医疗云环境下的属性访问控制系统。
为了增强对用户的隐私保护,Nishide等[8]提出一个部分隐藏访问策略的CP-ABE方案。该方案的基本思想是用户需要向属性权威申请与属性列表L=[L1,…,Ln]对应的解密私钥SKL。密文中的访问策略可视为由子策略构成的列表,即W=[W1,…,Wn],其中子策略Wi是属性值Li取值范围集合Si={vi,1,…,vi,ni}的子集。给定含有W的密文CT,用户的解密条件是L中的每个属性值Li均属于Wi。
在文献[7]中,Liang等提出一种属性代理重加密技术。在标准的CP-ABE方案中,只有授权用户能对数据所有者共享的密文CT执行解密。有时,授权用户U1需要临时性地将自己对CT的解密权限授权给非授权用户U2。Liang等的技术可以较好地解决这个问题,其思想是U1在代理服务器的帮助下将CT转换为CT′,使得U2可以利用自己的私钥对CT′执行解密。
假设存在以下参与方,即属性权威(Attribute Authority,AA)、用户(User,U)和代理服务器(Proxy Server,PS)。其中,用户可以进一步划分为数据所有者(Data Owner,DO)和数据用户。新方案是通过对Nishide等[8]方案进行扩展得到的,即增加了重加密密钥,重加密和授权解密算法。假设用户Alice拥有属性列表LAlice以及解密私钥SKLAlice,用户Bob拥有属性列表LBob以及解密私钥SKLBob。假设原始密文CT1是根据访问策略W1产生,SKLAlice满足W1,但SKLBob不满足W1。假设Alice希望将自己对CT1的解密权限临时授权给Bob,她可以利用重加密密钥产生算法产生重加密密钥rkAlice→Bob。此后,PS利用rkAlice→Bob执行重加密算法,从而将CT1转换为重加密密文CT′1。现在,Bob可以利用SKLBob执行授权解密算法,进而从CT′1中恢复原始数据M。
系统建立。AA依次执行下列步骤:
密钥产生。给定U的属性列表L=[v1,t1,v2,t2,…,vn,tn],AA执行下列步骤:
(2)对于i=1,…,n,AA计算Di,0=si·G+ai,tibi,tiλi·Ai,ti,Di,1=ai,tiλi·G,Di,2=bi,tiλi·G,其中Li=vi,ti。
(3)AA输出SKL=(D0,{Di,0,Di,1,Di,2}1≤i≤n)。
加密。给定访问控制策略W1=[W1,…,Wn]和消息M∈GT,DO执行下列步骤:
解密。给定CT1,L,SKL,U执行下列步骤:
(1)U检查L是否满足W1,若否,U退出。
(2)对于i=1,…,n,U选择用于解密的密文元素,即(C′i,1,C′i,2)=(Ci,ti,1,Ci,ti,2),满足Li=vi,ti。
重加密密钥产生。假设Alice掌握LAlice,SKLAlice=(D0,{Di,0,Di,1,Di,2}1≤i≤n),Bob掌握LBob,SKLBob且LBob不满足W1。给定CT1,Alice执行下列步骤:
(3)Alice输出重加密密钥rkAlice→Bob=(W2,D′0,{D′i,0,D′i,1,D′i,2}1≤i≤n,CT1,CT2),并且保存随机数t。
重加密。PS与Alice共同执行以下步骤:
(1)Alice向PS发送rkAlice→Bob。
授权解密。给定CT′1,Bob执行下列步骤:
正确性。本研究证明等式(1)成立。
(1)
同样,本研究证明等式(2)成立。
(2)
本研究给出上一节方案(简称“新方案”)在面向医疗云的访问控制领域中的应用。在医疗云环境下,患者Carol通常仅允许主治医生Alice访问自己的电子医疗记录(Electronic Medical Record,EMR)。在外包阶段,Carol采用新方案的加密算法对EMR执行加密,并将密文CT1上传至云服务器。在特殊情况下,Alice需要将解密权限临时委托给医生Bob。此时,Alice利用新方案的重加密密钥产生算法产生重加密密钥rkAlice→Bob,并且将该密钥提供给代理服务器。后者利用该密钥执行重加密算法,将CT1转换为CT′1。在访问阶段,Bob利用自己的私钥对CT′1执行解密。作为总结,属性访问控制系统的执行过程可以分为4个阶段,其中,系统建立阶段和密钥产生阶段直接对应于新方案的系统建立算法和密钥产生算法。EMR数据外包阶段与访问阶段分别可以根据新方案的加密和解密算法实现。
针对标准CP-ABE方案并不支持对访问策略进行隐藏和临时对解密权限进行授权的问题,文章提出一个改进的CP-ABE方案。该方案可用于构造保护患者隐私的EMR属性访问控制系统。安全性分析表明,新方案不会向代理服务器泄露数据所有者的私钥和明文数据。文章将在医疗云场景下对现有系统进行功能扩展,如支持多属性权威,允许云服务器对患者上传的EMR数据进行批量认证等。