支持多用户协同编辑的云存储访问控制方法

史姣丽1,2 黄传河1 何 凯1 沈燮阳1 华 超1

1(武汉大学计算机学院 武汉 430072)2 (九江学院 江西九江 332005)

(shijiaoli@whu.edu.cn)

摘 要:以往的云存储属性基访问控制研究大多数是对外包数据的读权限进行控制,很少考虑多个用户协同编辑云端同一个外包数据时的写权限控制.多用户协同编辑控制存在挑战:1)资源有限的数据拥有者希望云辅助自己对外包数据的写权限进行控制,但不希望云获得数据内容,也不希望云感知匹配内容,甚至不希望云能够预测用户的写权限;2)布尔公式的访问结构无法表达写权限控制策略;3)双线性映射运算计算代价大,不适合多用户协同编辑控制.提出一个支持多用户协同编辑的云存储访问控制方法:数据拥有者采用表达能力更丰富的circuit定义写权限访问控制策略,委托半可信云采用矩阵运算快速判断用户提交的修改数据是否应该接受,并且云不可预测每个用户是否具有写权限.分析与实验表明:该方法具有多用户协同编辑的访问控制能力,并且在读权限控制时,利用云辅助解密方法使得用户端存储量和加解密计算量是较小的.

关键词:云存储;访问控制;属性加密;多用户协同编辑;云辅助写权限控制

云作为近年来发展较快的分布式架构,不仅具有存储数据的能力,而且能为大量用户提供随时随地的访问.但是,云服务器不能完全被用户信任,因而需要研究合适的云存储访问控制方法:1)控制合法用户能够访问授权数据;2)控制半可信的云服务器无法得知数据的内容.

属性加密(attribute-based encryption, ABE)访问控制方法减弱了数据拥有者和数据访问者之间的耦合性,因而比传统访问控制方法更适合上述云存储访问控制应用场景.ABE分为2类:密钥策略属性加密(key-policy attribute-based encryption, KP-ABE)和密文策略属性加密(ciphertext-policy attribute-based encryption, CP-ABE).前者适应于用户检索外包数据的应用场景;后者适应于用户读取外包数据的应用场景.后者(CP-ABE)采用Data-binding-policy方法(将访问策略绑定在数据上)保证外包数据可以被多个用户按需读取,因而企业无需建设数据基础设施.然而,大多数研究只关注用户对云端密文的读权限控制[1-2],很少有研究关注上述无基础设施的情况下如何实现密文协同编辑控制.

多个用户同时编辑同一个外包密文数据时,可能出现5种控制要求:

1) 多个用户的写权限级别不同,他们同时提交修改数据时,需要保留高权限用户提交的修改数据,忽略低权限用户提交的修改数据;

2) 恶意编辑者一直写数据,致使正常的其他编辑者无法写成功;

3) 云环境下多个用户提交的修改数据在传输时时延不同,会使得修改数据的发出时间顺序与到达服务器的时间顺序不同,数据在具体应用时需要确定保留修改数据版本的时间顺序;

4) 每个用户的多个访问状态之间存在偏序关系,例如用户A在某个状态提出访问数据请求时,要求该用户曾经经历过其他状态;

5) 多个用户之间在访问状态上存在约束关系,例如用户A在某个状态提出数据请求时,要求其他用户集合{uj}的状态满足指定的偏序关系.

以往的云存储访问控制在处理多用户协同编辑时,都是按照修改数据的到达时间(如文献[3]),如果直接使用以前研究所提出的任何一种云存储访问控制方法,都无法实现上述多用户协同编辑细粒度访问控制需求.

协同编辑访问控制与读权限访问控制存在不同:读访问时,决定是否可读的是用户端的属性私钥,即如果用户的属性私钥满足密文关联的访问策略,那么该用户就可以读取密文.协同编辑时,由于数据拥有者的终端设备在计算、存储和通信等方面能力有限,因而需要云辅助数据拥有者实现写权限控制.然而,在云辅助写权限控制时存在2种挑战:1)数据拥有者希望云辅助自己判断是否接受每个用户的修改数据;2)数据拥有者又不希望云获得数据内容,更不希望云能预测用户下一次提交的数据是否可写.

考虑以上安全控制需求,本文尝试在云存储环境下研究多用户协调编辑访问控制方法,主要贡献总结有3点:

1) 设计了云辅助解密方法,减轻了用户端的计算代价,并证明了该方法在离散对数困难问题假设下没有减弱安全性.

2) 提出了多用户协同编辑访问控制方法.该方法支持Collaborative-Edit:考虑到常用的布尔公式访问结构无法表达复杂的写权限控制策略,Owner采用表达能力更丰富的circuit定义复杂的写权限控制策略,将策略关联到密文数据,然后上传到云.多个用户提出编辑请求时,云根据Owner定义的策略确定最新数据版本,实现Data-binding-policy的细粒度写权限控制.

3) 设计了MOR(many-to-one recoding)原语,对TOR(two-to-one recoding)原语[4]进行维度扩展,基于LWE(learning with error)理论实例化所设计的MOR原语,实现了多用户协同编辑访问控制方法:考虑到基于双线性映射及其安全假设构建的ABE访问控制方法计算代价大,本文采用代价更小的矩阵运算实现写策略匹配,能够在半信任云上快速判断用户提交的修改数据是否应该接受,并且云不可预测每个用户是否具有写权限.

1 相关工作

支持协同编辑的云存储访问控制研究方面,Dong等人[3]基于HIBE(hierarchical identity-based encryption)设计了SECO方案,该方案是根据修改数据到达云服务器的时间来确定最终的数据版本;Ruj等人[5]只提出了使用Claim Policy控制单个用户写权限控制;Li等人[6]将时间划分为时间片,用Hash链和签名技术控制写权限,但只考虑Create-Writing情形,没有考虑Collaborative-Writing情形;范艳芳等人[7]考虑协作环境下的访问控制模型,在经典BLP模型上扩充主客体的安全标记,提高了传统访问控制模型的灵活性.

ABE方案的研究方面,Yang等人[1]考虑大数据访问控制时的动态策略更新问题,讨论了布尔公式、门限结构及LSSS结构的更新过程;Lai等人[8]使用半信任代理,在密文上修改访问策略,同时不泄漏任何信息给半信任代理;Chun等人[9]提出了支持动态组成员管理的ABE方案;Hur等人[2]在军用容断网络的应用环境中,设计的CP-ABE方案支持多个AA分发重复属性;Rouselakis等人[10]指出应该由Owner自己指定其数据的访问属性;王皓等人[11]给出了外包ABE的形式化定义,构造并证明了一个外包ABE的方案;Li等人[6]针对PHR(personal health records)系统的访问控制需求,将属性域分为个人属性域和公共属性域,个人属性域由每个Owner自己进行定义,而公共属性域由AA进行定义,ABE方案的格实现方面,研究者认为格可以抵御量子计算机的攻击;Boyen[12]提出了适合处理复杂访问策略的格操作框架:私钥用Ephemeral Lattices,论文利用Basis Splicing技术,允许接受者将Ephemeral Lattices基转换为任意其他格的基,可以处理规范或者非规范的访问策略;Liu等人[13]提出了基于格的门限层次ABE(t -HABE),在LWE困难问题假设下,降低了属性数量;ABE方案的高效性研究方面,Hohenberger等人[14]将ABE方案分成线上和线下2部分,减少了线上计算量.

在实现ABE方案时,访问策略的形式可以是布尔公式、circuit等.Garg等人[15]基于多线性映射构造了一个circuit ABE方案:只加密1位明文,密文长度只与输入集合中xi=1的个数有关,用户私钥与circuit的深度depth有关,公钥与input的数量n有关;Xu等人[16]在Garg等人[15]的基础上,设计了Complement circuit CP-ABE,实现了云辅助解密的结果验证,可以防止云服务器欺骗用户.

circuit ABE方案也可以基于LWE困难假设构造,其理论基础是Regev[17]证明的结论:解决LWE平均困难问题相当于最坏困难问题,因此,LWE困难假设可以作为密码学的一个Central Fixture;Gorbunov等人[4]设计了一个TOR原语,并基于LWE困难假设实例化了TOR原语,提出了一个circuit ABE方案:策略是以扇入度为2的Gates组成的逻辑电路,且私钥的长度与circuit的长度成正比.

2 MOR原语及实例化设计

2.1 MOR原语

存在1组伪随机函数Encode(·)和1个重编码密钥rk,使得转换可以实施:

(Encode(pk1,w),Encode(pk2,w),…,

Encode(pkN,w))|→Encode(pktgt,w),

转换密钥rk可以由任意公钥pkb对应的私钥skb生成,w是高斯种子随机数.

2.2 设计思路

在Gorbunov等人[4]基于LWE困难假设实例化的TOR原语中,有:

(1)其中,R2m×mqAn×mqsnqR是满足[A0‖A1]R=Atgt的一个低秩矩阵,映射为密钥rk;矩阵Abn×mq(A0或A1)映射为公钥pkb(pk0pk1),后门矩阵Tbm×mq(T0T1)映射为私钥skb(sk0映射为编码过程Encode(Ab,w).eb满足高斯分布Dm,σ,界为 σ.矩阵RT表示对矩阵R进行转置运算.

根据LWE困难假设[17],能够区分{A,ATs+e}和{A,u}两个分布的优势可以忽略,其中,umq.因而,式(1)可以扩展为

(2)

其中,RNm×mq.

2.3 实例化设计

根据式(2),对MOR原语进行详细的实例化设计.

Params(1λ,dmax):选择LWE的相关参数,输出全局公共参数PP=(n,X,q,m,w),其中,n=n(λ)是LWE的维度,是Error的分布,B=B(n)=O(n)是Error的界,dmax是Recode(·)算法运行次数的界,是LWE的模,m=m(n)=O(n log q)是抽样数量,是高斯参数.

Keygen(PP):调用后门函数,生成矩阵A及其后门矩阵T,分别作为公钥和私钥:pk=Ask=T,其中,An×mqTm×mq.

Encode(pk,w):选择Error向量eXmsnq,计算并输出φ=ATs+e.

ReKeygen(pk1,pk2,…,pkN,skb,pktgt):选择N-1个离散高斯矩阵Ri∈(D,σ)m×m,计算U=pktgt- ,其中,i≠b,计算Rb=SampleD(Ab,Tb,U),输出:

Nm×m.

Recode(rktgt,φ1,φ2,…,φN):计算‖…‖.

E(φ,μ):加密明文μ,计算μ(mod q).

D(φ′,Υ):解密密文Υ,计算,其中:

2.4 MOR原语的特性

MOR原语具有不可预测性和可重用性.

1) 不可预测性.对于N输入的门G:{0,1}×…×{0,1}→{0,1}和N个输入L1,L2,…,LN,已知转换表(rk,φ1,φ2,…,φN,φtgt)和φi=Encode(pki,w),容易计算Encode(G(L1,L2,…,LN),w),但Encode(1-G(L1,L2,…,LN),w)仍然保持隐藏.

2) 可重用性.s与转换过程完全独立,因而可以通过选择随机数s刷新转换表的方式达到可重用的目的.

3 建 模

3.1 系统模型

如图1所示,系统由4部分实体组成:属性授权中心(attribute authorities, AA)、云服务器(Cloud Server)、数据拥有者(Owner)、用户(User).

Fig. 1 System model
图1 系统模型

1) AA是可信属性授权中心.负责管理属性集合,为User分发代表读权限的私钥SKut和代表写权限的凭证nsutTokenut,nsi,其中,ut表示用户编号,nsut表示用户ut的当前状态,nsi表示所有用户的状态向量.

2) Owner是数据拥有者.Owner先用内容密钥运行对称密码算法加密,得到Cm;然后用本地指定的读权限访问策略对内容密钥进行CP-ABE加密,得到Cp;接着定义多用户协同编辑策略Ct;最后将CmCpCt上传云端.

3) User是数据的读者和编辑者.为降低解密计算代价,User向Server提交委托解密密钥Part_SKut,云辅助User解密之后,向User发送解密中间结果Part_Decrypt和密文CmCp,然后,User用自己的属性私钥与密文中的读权限访问策略Cp尝试匹配,如果匹配通过,就能读取明文数据.另外,User可以在本地修改数据明文,并使用加密时的内容密钥进行对称加密,得到编辑的结果m,然后将m和写权限凭证nsutTokenut,nsi上传到Server.

4) Server是多云存储环境下的半可信云服务器.Server永远在线,为User提供随时随地的数据访问服务,包括辅助Owner进行协同编辑权限匹配.当User上传nsutTokenut,nsim时,匹配nsutTokenut,nsiCt,若匹配成功,则意味着用户状态约束条件是满足的,即可接受User在状态nsut下提交的密文,将m覆盖Cm.

3.2 安全要求

1) 防止共谋.2个合法用户不能通过合并其属性私钥而提升原本单独不具备的读权限.另外,假设用户A为了避免责任,不会将代表了写权限的凭证Tokenut,nsi共享给用户B,即每个用户为了自身利益考虑,不会将代表了责任的Tokenut,nsi分享给他人.

2) 数据机密性.Owner提交的数据在服务器端加密存储,Server或非授权用户无法获知数据的内容.

Fig. 2 The proposed framework for collaborative edit access control
图2 多用户协同编辑访问控制框架

3) 不可预测性.假设Server是半可信的,即,Server会忠实地完成代理匹配写权限的任务,但是对匹配的内容敏感.同时,Server不可预测每个用户是否可写,除非该User提交了正确的凭证.

3.3 安全模型的定义

定义1. 如果在多项式时间内,敌手胜出下述安全游戏的最大优势是可忽略的,则所提出的方案是安全的.

初始化阶段. 挑战者运行Initial算法生成公共参数和主钥.公共参数公开给敌手,主钥秘密保存在AA上.

阶段1.敌手通过向挑战者提交属性集Iut,k查询属性私钥SKut,k.挑战者运行Setup算法为敌手生成属性私钥SKut,k.阶段1可以重复多次.

挑战阶段.敌手提交2个消息:m0和m1,并给出读权限控制树policyr,但该控制树不能被阶段1中所提交的Iut,k匹配.接着,挑战者抛硬币选择b∈{0,1},并运行EncryptData算法输入policyr加密mb,得到加密结果cb,然后将cb发送给敌手.

阶段2.过程与阶段1相同,只是添加了一条限制:policyr不能被所挑战的属性集匹配.敌手也可以询问SKut,k的解密委托密钥Part_SKut,如此,敌手就可从挑战者获得Part_SKut.

猜测阶段.敌手输出猜想结果b′∈{0,1},如果b′=b,则敌手胜出.

敌手胜出该游戏的优势Adv定义为

.

4 多用户协同编辑访问控制方法

4.1 基本思想

采用CP-ABE方法对外包数据进行访问控制时,Owner不希望永远在线,并且本地存储容量有限,所以Owner在指定读权限访问策略policyr并加密数据后,立即将密文上传云服务器进行存储,以便其他用户可以随时随地读取数据或者编辑数据.

多个用户从云端下载密文后,用自己的私钥解密并读取数据,接着,用户也可以编辑数据,并将修改数据提交给云,云有2种处理方法:1)Owner审核多个用户提交的数据编辑内容,并决定数据的最新版本.基于这种处理方法,设计的多用户协同控制方法详见前期研究成果[18].2)云根据Owner定义的协同编辑控制策略决定数据的最新版本.本文基于这种处理方法,设计多用户协同编辑访问控制方法,如图2所示.为研究方便,暂不考虑并发机制的实现.

为了控制云端同一个密文被多个用户进行协同编辑,Owner定义密文的写权限控制策略Ct,并将Ct连同密文一起上传云端,由云辅助Owner进行写权限策略匹配.密文数据的一致性由Owner定义的Ct来决定,即Owner可以通过任意定义Ct指定一致性规则.这种将数据与策略绑定并且策略决定数据访问权限的方法称为Data-binding-policy,适应于云存储等分布式系统的数据访问控制.

读权限控制要求云不能获知明文数据.以往的CP-ABE方案中,用户下载密文后在本地解密,因而可以满足“云不能获知明文数据”这一安全要求.为了减少用户端计算代价,将大部分解密工作委托给云服务器,并且仍然保证“云不能获知数据”.本文设计了用户委托解密密钥,能够让云使用该密钥完成大部分的解密工作,同时,该密钥又不能破坏数据的机密性.

与读权限控制不同,协同编辑权限控制要求:云不能获知数据内容,不能感知匹配内容,甚至也不能通过先前的匹配结果预测后续匹配的结果.同时,读策略policyr采用的布尔公式描述方法也不适应于协同编辑策略Ct,这是因为布尔公式比较适合描述属性是否配对,无法描述复杂的控制需求(见本文引言部分).

复杂的协同编辑控制策略涉及到数值大小的比较(例如时间的先后比较等),需要更丰富的表达能力(例如多用户之间的状态条件).相对于布尔公式,circuit具有复杂控制需求的描述能力,因而本文采用circuit描述协同编辑控制策略.

关于协同编辑控制策略的云辅助匹配,本文采用LWE理论的矩阵运算,而不是policyr匹配时的双线性映射运算.这是因为采用类似于policyr匹配时的双线性映射运算进行匹配时,需要将协同编辑策略映射为访问控制树,将用户权限映射为属性集,然后在云服务器上进行双线性映射匹配.这种方法存在2个问题:1)云在匹配运算之前就能预测下一个用户提交数据是否会被接受;2)匹配效率低.假设用户数量为N,用户状态的数量为M.极端情况下,需要对每个用户在每个状态下访问数据时指定一个控制树,每个树的属性数目是N×M,则每个数据的协同编辑策略需要NM2个属性来定义.假如用户用数量为K的属性集来表示,则需要KM2个属性来定义协同编辑策略.

考虑上述安全及效率问题,本文设计了基于LWE假设的MOR原语和新的协同编辑控制策略匹配方法,利用MOR原语的不可预测性和可重用性,使得本文提出的方法既能让云高效地完成写权限的辅助匹配,又能保证云在匹配运算之前无法预测用户提交的修改数据是否被接受(即云的不可预测性).

4.2 详细工作流程

各个阶段运行不同算法,如图3所示.

1) 初始化阶段(initialization phase).AA调用Initial算法,生成全局公共参数params和主钥MK=(MK1,MK2),将paramsMK2发送给申请注册的Owner.接着,AA调用Setup算法,为用户生成属性私钥SKut、云辅助解密密钥对(DPKut,DSKut),将SKutDPKutDSKut通过密钥交换协议发送给User.然后,AA调用SetupCollaborativeEdit算法生成协同编辑控制参数mpkimskipkout,并将mpkipkout广播给Owner,将mski通过密钥交换协议发送给User.值得注意的是,属性字符串在Setup算法中由AA任意指定,无需在Initial算法以枚举类型罗列出来,即属性域无需明确定义,这样设计灵活性更强.

Fig. 3 Phases and algorithms
图3 阶段与算法

2) 数据准备阶段(data preparing phase).Owner调用EncryptData算法,用对称密钥Kcontent对明文数据M运行对称密码算法进行加密得到Cm,Owner定义具有读权限的策略policyr,用policyr对对称密钥Kcontent进行CP-ABE加密得到Cp,将CmCp上传到服务器.

定义协同编辑条件(collaborative edit policy definition),Owner运行EncryptCollaborativeEdit算法,定义协同编辑条件Ct,上传到服务器,服务器将Ct附在CmCp后面,得到CmCpCt后存储.

3) 数据读取阶段(data read phase).当User向服务器申请数据时,User提交其Part_SKut,服务器使用用户提交的Part_SKut,运行DecryptNode算法计算出Part_Decrypt,然后将Part_Decrypt连同CmCp一起发送给用户,用户运行DecryptData算法使用SKutCp获得Kcontent,并使用KcontentCm运行对称解密算法,即可读取明文.

4) 数据编辑阶段(data edit phase).当User修改数据之后,提交nsutTokenut,nsi到服务器,服务器运行MatchCollaborativeEdit算法匹配Ct,若匹配成功,则接受修改,用覆盖Cm.

4.3 核心算法

GGT表示具有素数阶p的双线性群.g表示群G的生成元.e:G×GGT表示双线性映射.H:{0,1}*G表示二进制数到群元素映射的Hash函数,G→{0,1}n表示群元素到二进制数映射的Hash函数.

1) Initial算法

Initial算法运行在AA上.AA选择双线性群GGTgG的生成元,选择e:G×GGT为双线性映射,选择Hash函数生成公共参数param和主钥MK:

MK=(MK1=ga,MK2=e(g,g)b),

其中a,b*p.

2) Setup算法

Setup算法运行在AA上.AA接受用户的注册,并为每个合法的用户生成密钥.假设每个用户ut的属性集为Iut,AA对用户ut的每个属性选择随机数r1,r2,…,rj,…∈p,生成用户私钥SKut

D=MK1 grt=ga grt

Dj=grt H(λj)rj

.

为了完成云辅助解密,AA还要为User生成委托解密的密钥对:

选择随机数ru*p,计算DPKut=gru+bDSKut=gru+a.

AA通过密钥交换协议将SKutDSKutDPKut发送给用户.

3) SetupCollaborativeEdit算法

AA为每一个参与协同编辑的用户生成2个密钥向量:

mpki=(pki,1,pki,2,…,pki,M),

mski=(statuski,1,statuski,2,…,statuski,M),

pki,j=Ai,jn×mq

statuski,j=Ti,jm×mq,

其中,pki,jstatuski,j是通过运行后门生成算法TrapGen(1n,1m,q)生成的矩阵Ai,j和后门矩阵Ti,j.

最后,AA为协同编辑的用户集合生成一个状态控制公钥:pkout=Aoutn×mq.

AA将mpkipkout广播于Owner用户,并将mski通过密钥交换协议分发给用户.

4) EncryptData算法

EncryptData算法运行在Owner上.先用对称加密算法将明文M加密成Cm,然后加密密钥Kcontent用CP-ABE方法加密得到Cp,CP-ABE加密时,使用数据读策略policyr.接着Owner将CmCp上传到服务器.

Owner对数据进行读权限控制的CP-ABE加密过程如下:选择随机数sc*p,令qR(0)=sc,其中,R表示policyr的根节点,qR(x)表示根节点R的多项式.Owner以嵌套的方式设置每个节点x的多项式qx.每个节点x的门限为kxqx的度设为dx=kx-1.qx的常数项qx(0)设置为qparent(x)(index(x)),qx的其他项系数是随机选取的整数.Cp的构造如下:

MK2=Kcontent e(g,g)b·sc

Cr=gsc

Ci=gqi(0)

,

其中,ST是访问策略树policyr所有属性(即,叶子节点)的集合.

5) EncryptCollaborativeEdit算法

EncryptCollaborativeEdit算法运行在Owner上.Owner将每个用户作为circuit的一个input wire,并对于用户状态约束条件抽象化的合取范式抽象为circuit,将circuit编码为Ct

Ct=(φ1,φ2,…,φN,Γ),

φi=Encode(pki,nsi,w),

).

Owner将Ct上传,并附于CmCp之后,存储于云.

6) MatchCollaborativeEdit算法

MatchCollaborativeEdit算法运行在Cloud Server上.令Tokenut,nsi=statuskut,nsi,当User提交nsutTokenut,nsi时,云进行Ct匹配.具体过程如下:

rk=RekeyGen({pki,nsi},Tokenut,nsi,pkout),

φout=Recode(rk,φ1,φ2,…,φN),

,则匹配成功,Server接受用户提交的,用覆盖Cm.

为了确保Cloud对编辑请求的不可预测性,需要在每一次成功覆盖时重新刷新circuit.

重新刷新circuit的过程如下:选择随机数s′,令φi=φis′,Γ=Γs′.第i次刷新circuit时,选择随机数,令si代表第i次选取的s′,si=(1+(-1)(ti+1)(1i))i,详见本文5.1节.

7) DecryptData算法

DecryptData算法运行在User上,使用用户的私钥SKut解密密文中的Cp,如果用户的属性集Iut满足Cp中关联的访问策略,则解密成功,获得对称密钥Kcontent,继而通过对称解密算法解密Cm,获得明文M.

使用SKut解密Cp的过程如下:

用户将DSKut附到Dj后,得到Part_SKut

DSKut=grt H(λj)rj gru+a

.

用户将Part_SKut发送给服务器,请求其辅助解密,服务器收到用户请求后,从访问策略树policyr的根节点开始,以递归方式调用DecryptNode算法.假设用户私钥中的属性集为Iutpolicyr的叶子节点集合为ITreeλi为节点xi的属性.DecryptNode算法描述如下:

算法1. DecryptNode.

输入: Cp,Part_SKut,Iut

输出: Part_Decrypt

If xiITree Then

If λiIut Then

e(g,g)(rt+ru+a)qi(0)

End If

If λiIut Then

Part_Decrypt=⊥;

End If

End If

If xipolicyrand xiITree Then

Part_Decryptx= e(g,g)(rt+ru+aqx(0)

End If

If xi==root(policyr) Then

Return Part_Decrypt;

End If

其中,Part_Decryptz表示节点xi的孩子zDecryptNode算法的运算结果.i=index(z),sx={index(z),zIxi},Ixi表示节点xi的所有孩子节点组成的集合.如果policyr匹配成功,即可获得:Part_Decrypt=e(g,g)(rt+ru+asc.

服务器将Part_Decrypt连同CmCp一起发送给用户ut.用户从服务器获得Part_DecryptCmCp后,计算Kcontent

grt gru+b

.

用户得到内容密钥Kcontent后,解密Cm,读取明文M.

5 分 析

5.1 正确性

1) MOR原语的正确性分析

e服从Error分布(即eXm)时,根据界B的定义,得知B.又因为m上的截断离散高斯分布(truncated discrete Gaussian distribution)Dm,s要求 ,因而随机算法SampleD输出向量的无穷范式必须小于等于.又因为Recode算法的‖…‖ rktgt计算过程会使e部分增加,因而第j次运行Recode算法时,要求 (2m .

Recode算法在计算φtgt时,要保证e值足够小,即满足 (2m .分析如下:令φ1,φ2,…,φNN个输入编码,令φtgt为输出编码,则‖…‖ rktgt)T=sTAtgt+etgt,其中,‖…‖ rktgt,则 ,又因为rktgt作为SampleD的输出,因而,因而有 ).假设φ1的编码级别是j1φ2的编码级别是j2φN的编码级别是jNφtgt的编码级别为j,则有 (2m (2m (2m ,则 ,即.又因为j1,j2,…,jN<j,所以max(j1,j2,…,jN)+1≤j成立,因而 (2m ,符合要求.

另一方面,为了保证对称加密算法(ED)的正确性[4],2个编码φ0=ATs+e0和φ1=ATs+e1,必须满足 4,即 (2m 4.

分析完毕.

2) 多用户协同编辑控制方法的正确性分析

本文提出的多用户协同编辑控制方法是基于MOR原语设计的,因而其核心算法是正确的,但存在退化性:EncryptCollaborativeEdit算法中涉及到的Error参数均需满足 ,则MatchCollaborativeEdit算法运行时,刷新circuit时Error部分也必须要满足 .

下面分别阐述刷新circuit对φiΓ带来的影响,为方便表达,2个向量相乘的结果就是对应位上元素相乘得到的向量,向量与数字相乘就是向量的每一个元素都乘以该数字.

φiφi s′时, s′+e s′,由于s′为随机数,因而必须得满足e s′≈eB (2w .

ΓΓ s′时,

s′=

Encode(pkout,w) q s′(mod q)=

s′+e q s′(mod q),

必须得满足q q ).

如上所述,为了满足正确性和可重用性,避免退化性,令si代表第i次选取的s′,要求si在多次选取时满足:1)si随机选取;2)多次选取的si连乘后约等于1.为了仿真s′选取方法,令si.仿真Yi如图4所示:

Fig. 4 Reusable parameters
图4 可重用参数

5.2 安全性分析与证明

1) 抗共谋分析

即使半可信云与恶意用户之间共谋,也不能让恶意用户获得更多权限.云不能通过合并用户A和用户BPart_SKut,以便让用户A获得更多权限.

假设用户A的属性私钥为,用户B的属性私钥为,合并用户B的私钥到用户A上之后,用户A的私钥为

(ga grAt,{(grAt

{(grBt H(λj)rj,rBt)}},

其中,是AA为用户A和用户B分别选取的随机数.为了解密CpPart_Decrypt上运行得到e(g,g)(rAt+rAu+a)sc,A,在上运行得到:Part_Decrypt=e(g,g)(rBt+rBu+a)sc,B,由于加密时sc,Asc,B,所以无法通过合并用户私钥得到更多权限.

2) 数据机密性安全分析

明文通过对称加密算法加密成Cm存储于服务器,而对称加密时的密钥Kcontent也用policyr加密成Cp放在服务器.只有密钥携带的属性集与policyr匹配的用户才可以解密Cp,得到Kcontent,从而使用KcontentCm中恢复出明文.非授权用户和服务器即使获得CmCp,也不能够恢复明文M.

3) 不可预测性分析

Server不能通过多次输入(L1,L2,…,LN)记录Encode(G(L1,L2,…,LN),w)提升共谋用户的编辑权限.分析如下:MOR原语具有不可预测性,也就是说,Encode(G(L1,L2,…,LN),w)的计算结果不增加计算Encode(1-G(L1,L2,…,LN),w)的优势,即,当且仅当G(L1,L2,…,LN)=1成立时,才能获得正确的Encode(G(L1,L2,…,LN),w).多次记录G(L1,L2,…,LN)=0时的Encode(G(L1,L2,…,LN),w)结果是无用的,因而云对每一次提交的写请求结果具有不可预测性;又因为MOR原语具有可重用性,因而可以在每一次成功写之后实现转换表的刷新.综合上述2条原因,先验知识不能帮助敌手获得更多的优势.

4) 数据机密性安全证明

在Bethencourt等人[19]的基础上,本文构造了读权限访问控制方法:云辅助解密时,用户需要将Part_SKut发送给服务器.接下来,证明在离散对数困难问题假定下,Part_SKut暴露给敌手并不能增加其胜出安全游戏的优势.

首先,证明敌手不能从jj获得D:根据离散对数困难问题假定,敌手不能从j=grj中计算rj,因而根据grj无法计算H(λj)rj,继而敌手不能从paramsj中推导出H(λj)rj gru,所以敌手不能从 H(λj)rj gru+a推导出D=ga grt.

接下来,证明敌手不能从jj获得Dj:根据设计,PSKut=gru+a是从AA通过密钥交换协议分发给User的,不暴露给敌手,因而gru+a对于敌手是保密的,因而敌手无法从j=grt H(λj)rj gru+a推导出Dj=grt H(λj)rj.

结论:即使Adversary获得Part_SKut,也不能从获得DDj.

5) 用户编辑权限控制分析

授权用户可以得到写权限:根据构造后门应具有的安全特性(文献[20]中命题5.1),矩阵及其后门是一一对应的,拥有后门的用户可以获得正确的解密结果.本文方法中,SetupCollaborativeEdit算法运行后,每一个参与协同编辑的用户从AA获得mski,这个向量的每一和个分量对应了后门算法生成的后门矩阵Ti,j.另外,Owner运行EncryptCollaborativeEdit算法生成的Ct是以mpkipkout为参数构造的,mpki的每一个分量对应了后门算法的矩阵Ai,j,根据本文5.1节MOR原语和本文方法的正确性分析,拥有写权限的用户具有合适的凭证Tokenut,nsi,会得到成功的Ct匹配结果.

非授权用户不可得到写权限.用户提交的Tokenut,nsi代表了写权限的凭证,是与pki,j对应的后门矩阵.按照后门构造具体参数要求(文献[20]中命题5.3)和SampleD函数抽样要求(文献[20]中引理4.2),能够在格困难问题GapSVPγ,SIS,SIVPγ的假设下保证非授权用户得不到正确的写权限.同时,在困难问题假设下满足后门函数防碰撞要求.

5.3 读权限控制的代价分析

1) 存储代价分析

表1给出了已有方法[2,21]与本文方法之间存储开销方面的比较.

表1中,LG表示群G中一个元素的存储量;na,k表示授权机构AAk管理下的属性数量;na,k,ut表示授权机构AAk为用户ut生成的私钥中关联的属性数量;nut,k表示授权机构AAk管理的用户数量;tr表示Owner指定的policyr中的属性数量;NA表示密文中关联的AA数量;LS表示密文Ct中的存储量.与文献[2,21]已有方法相同,表1忽略随机整数的存储代价.

Table 1 Comparison of Storage Cost
表1 存储代价比较

MethodsOwnerUserCloudServerRef[2]2NA+∑NAk=1na,k()LG3NA+1+∑NAk=1na,k,ut()LG(3+3tr)LGRef[21]3NA+1+∑NAk=1na,k()LG1+2∑NAk=1na,k,ut()LG(3+3tr)LGOurMethod1+∑NAk=1na,k()LG2+2∑NAk=1na,k,ut()LG(2+2tr)LG+LS

由表1可知,本文方法在Owner上的存储代价都比较小,适合轻量级终端应用.但本文方法在服务器上的存储代价与密文中状态约束控制所用的Ct相关,这是因为本文方法考虑了多用户协同编辑控制,而其他2个方法只考虑了读权限控制.

2) 计算代价分析

表2比较了已有方法[2,21]与本文方法之间核心算法运行时的计算代价.表2中,EG表示群G上指数运算的计算量;PG表示群G上双线性映射运算的计算量;k表示用户属性私钥携带的属性数量;IAk表示密文中关联的授权机构AAk管理的属性数量.与文献[2,21]已有方法相同,表2忽略乘法与除法的计算代价.

Table 2 Comparison of Computation Cost
表2 计算代价比较

MethodsAlgorithmEncrypt(onOwner)AlgorithmDecrypt(onUser)AlgorithmDecrypt(onCloud∕Server)Ref[2](2+2tr)EG(k+logtr)EG+(2k+1)PG0Ref[21](3+6tr)EGEGNA×((∑IAkk=1(3PG+EG))+2PG)OurMethod(2+2tr)EGEG(k+logtr)EG+2kPG

由表2可知,本文方法的用户端(包括Owner和User)在加密解密时的计算量都比较小,适合轻量级终端应用.同时,文献[2,21]只考虑了单用户独立访问读取数据的情景.

6 仿 真

6.1 读权限访问控制方法的仿真实验

仿真实验运行平台为Ubuntu操作系统,双线性映射运算函数库采用PBC(pairing based cryptography library),大整数数据库采用GMP(GNU MP Bignum library).数据加密和解密过程中用户端的计算代价仿真如图5所示,椭圆曲线选择α,群的阶均为160 b,域的大小为512 b.policyr中的属性个数和用户属性私钥中所含属性的个数默认设置为20.为了使实验结果稳定,运行时间取20次运行的平均.

图5(a)是Owner端加密过程仿真结果,可以看到,3个方法的加密时间与policyr中的属性个数都成线性关系,同时,文献[21]的加密代价明显高于本文所提方法和文献[2],这是因为文献[21]中的加密是计算C,C′,C″,{Ci,D1,i,D2,i},计算C,C′,C″分别需要1次指数运算.计算Ci,D1,i,D2,i分别需要2次、1次和1次指数运算.

Fig. 5 Simulation of encryption and decryption costs on User
图5 用户端加解密计算代价的仿真

Fig. 6 Simulation of the core algorithms in the MOR primitive
图6 MOR核心算法的仿真

图5(b)(c)是User端解密过程仿真结果,可以看到,policyr中的属性个数变化对User端解密时间影响不大.文献[2]的User端解密时间明显高于本文所提方法和文献[21]的方法,这是因为本文所提方法和文献[21]方法都采用了解密外包的方法.另外,文献[2]中SKut中的属性数量与User端的解密时间成线性关系,而本文所提方法和文献[21]方法将解密运算外包之后,User端的解密时间与SKut中的属性数量无关.

6.2 MOR原语的仿真实验

为了仿真MOR原语,采用FLINT(fast library for number theory),MPFR(multiple precision floating point reliable library,MPIR(multiple precision integer and rational library)实现任意精度运算.其中,LWE维度参数的位数设为n设为512 b或1 024 b,高斯分布抽样数目的位数m设为关于n的多项式poly(n).算法SampleD使用Nearest-Plane方法(Gentry[20]和Ducas[22]).

图6(a)(c)中,以线性标尺显示MOR原语核心算法的计算代价,图6(b)(d)则以对数标尺显示.仿真实验结果表明,算法ED的运行时间与参数m的位数无关,而算法ReKeyGen和算法Encode的运行时间随着参数m位数的增加快速增加.

假设用户可接受的延迟时间临界值是103ms,那么,当参数n=512 b时,无论参数m设置多大,延迟时间都是用户可以接受的.如果参数n=1 024 b,则只有参数m的位数小于2 000 b,延迟时间才可以接受.

7 结束语

本文分析了云存储环境中多用户协同编辑访问控制产生的用户状态控制需求,在Multi-Read-Collaborative-Edit情景下,提出了一个支持多用户协同编辑的访问控制方法.该方法具有3个主要特性:

1) 实现了细粒度访问控制.使得合法用户能够读取编辑所授权的数据部分,实现了细粒度的访问控制,所设计的云辅助解密方法,减轻了用户端的计算代价,并且该方法在离散对数困难问题假设下被证明没有减弱安全性.

2) 实现了Data-binding-policy访问控制方法.Owner将指定的读权限策略和编辑权限策略绑定在数据上,只有User的私钥满足读权限策略时才能读取明文,只有在协同编辑策略匹配成功时才能更新数据.协同编辑控制的复杂性要求Owner采用表达能力更丰富的circuit定义协同编辑策略,云端根据该策略确定最终修改版本.

3) 实现了云辅助协同编辑策略匹配的不可预测性.本文设计的MOR原语具有可重用性和不可预测性,因而基于该原语设计的协同编辑策略匹配方法能够快速判断用户提交的修改数据是否应该接受,并且云不可预测每个用户是否具有写权限.

参考文献:

[1]Yang Kan, Jia Xiaohua, Ren Kui, et al. Enabling efficient access control with dynamic policy updating for big data in the cloud[C] Proc of IEEE INFOCOM 2014. Piscataway, NJ: IEEE, 2014: 2013-2021

[2]Hur J, Kang K. Secure data retrieval for decentralized disruption-tolerant military networks[J]. IEEEACM Trans on Networking, 2014, 22(1): 16-26

[3]Dong Xin, Yu Jiadi, Zhu Yanmin, et al. SECO: Secure and scalable data collaboration services in cloud computing[J]. Computers and Security, 2015, 50(1): 91-105

[4]Gorbunov S, Vaikuntanathan V, Wee H. Attribute-based encryption for circuits[C] Proc of the 45th Annual ACM Symp on Theory of Computing (STOC). New York: ACM, 2013: 545-554

[5]Ruj S, Stojmenovic M, Nayak A. Decentralized access control with anonymous authentication of data stored in clouds[J]. IEEE Trans on Parallel and Distributed Systems, 2014, 25(2): 384-394

[6]Li Ming, Yu Shucheng, Zheng Yao, et al. Scalable and secure sharing of personal health records in cloud computing using attribute-based encryption[J]. IEEE Trans on Parallel and Distributed Systems, 2013, 24(1): 131-143

[7]Fan Yanfang, Cai Ying. Collaboration supported mandatory access control model[J]. Journal of Computer Research and Development, 2015, 52 (10): 2411-2421 (in Chinese)(范艳芳, 蔡英. 支持协作的强制访问控制模型[J]. 计算机研究与发展, 2015, 52 (10): 2411-2421)

[8]Lai Junzuo, Deng R H, Yang Yanjiang, et al. Adaptable ciphertext-policy attribute-based encryption[G] LNCS 8365: Proc of the Pairing 2013. Berlin: Springer, 2013: 199-214

[9]Chun I F, Huang V S M, Ruan Heming. Arbitrary state attribute-based encryption with dynamic membership[J]. IEEE Trans on Computers, 2014, 63(8): 1951-1961

[10]Rouselakis Y, Waters B. New constructions and proof methods for large universe attribute-based encryption[EBOL]. 2012[2015-11-05]. http:eprint.iacr.org2012583.pdf

[11]Wang Hao, Zheng Zhihua, Wu Lei, et al. Adaptively secure outsourcing ciphertext-policy attribute-based encryption[J]. Journal of Computer Research and Development, 2015, 52 (10): 2270-2280 (in Chinese)(王皓, 郑志华, 吴磊, 等. 自适应安全的外包CP-ABE方案研究[J]. 计算机研究与发展, 2015, 52 (10): 2270-2280)

[12]Boyen X. Attribute-based functional encryption on lattices[G] LNCS 7785: Proc of TCC 2013. Berlin: Springer, 2013: 122-142

[13] Liu Ximeng, Ma Jianfeng, Xiong Jinbo, et al. Threshold attribute-based encryption with attribute hierarchy for lattices in the standard model[J]. IET Information Security. 2014, 8(4): 217-223

[14]Hohenberger S, Waters B. Onlineoffline attribute-based encryption[G] LNCS 8383: Proc of PKC 2014. Berlin: Springer, 2014: 293-310

[15] Garg S, Gentry C, Halevi S, et al. Attribute-based encryption for circuits from multilinear maps[G] LNCS 8043: Proc of CRYPTO 2013. Berlin: Springer, 2013: 479-499

[16] Xu Jie, Wen Qiaoyan, Li Wenmi, et al. Circuit ciphertext-policy attribute-based hybrid encryption with verifiable delegation in cloud computing[J]. IEEE Trans on Parallel and Distributed Systems, 2016, 27(1): 119-129

[17] Regev O. On lattices, learning with errors, random linear codes, and cryptography[J]. Journal of the ACM, 2009, 56(6): 34:1-34:40

[18]Shi Jiaoli, Huang Chuanghe, Wang Jing, et al. Multi-user collaborative access control scheme in cloud storage[J]. Journal on Communications, 2016, 37(1): 88-99 (in Chinese)(史姣丽, 黄传河, 王晶, 等. 云存储下多用户协同访问控制方案[J]. 通信学报, 2016, 37(1): 88-99)

[19] Bethencourt J, Sahai A, Waters B. Ciphertext-policy attribute-based encryption[C] Proc of IEEE Symp on Security and Privacy. Piscataway, NJ: IEEE, 2007: 321-334

[20]Gentry C, Peikert C, Vaikuntanathan V. Trapdoors for hard lattices and new cryptographic constructions[C] Proc of the 40th ACM Symp on Theory of Computing (STOC2008). New York: ACM, 2008: 197-206

[21]Yang Kan, Jia Xiaohua, Ren Kui, et al. DAC-MACS: Effective data access control for multi-authority cloud storage systems[C] Proc of IEEE INFOCOM 2013. Piscataway, NJ: IEEE, 2013: 2895-2903

[22]Ducas L, Lyubashevsky V, Prest T. Efficient identity-based encryption over NTRU lattices[G] LNCS 8874: Proc of ASIACRYPT 2014. Berlin: Springer, 2014: 22-41

Shi Jiaoli, born in 1979. PhD candidate, associate professor. Member of CCF. Her main research interests include network security and CDN.

Huang Chuanhe, born in 1963. PhD, professor, PhD supervisor. Senior member of CCF. His main research interests include network security, WDM networks, mobile ad hoc networks, CDN, and quantum computing.

He Kai, born in 1987. PhD. His main research interests include network security and cryptography.

Shen Xieyang, born in 1988. PhD candidate. His main research interests include network security and cryptography.

Hua Chao, born in 1992. Master. His main research interest is long distance wireless network.

An Access Control Method Supporting Multi-User Collaborative Edit in Cloud Storage

Shi Jiaoli1,2, Huang Chuanhe1, He Kai1, Shen Xieyang1, and Hua Chao1

1(School of Computer Science, Wuhan University, Wuhan 430072)2(Jiujiang University, Jiujiang, Jiangxi 332005)

Abstract:As for attribute-based access control in cloud storage, most of researches focus on reading permission control when multiple users read the same out-sourced data simultaneously. They dot’t consider writing permission control when multiple users modify the same data simultaneously. In multi-user collaborative edit scene, challenges have emerged: 1) A data owner with limited capabilities of computation, storage and communication, would like cloud to aid him with writing permission control, but would not like it to know the content of data, or get what is matched, or even predict the users’ writing permission either. 2) Boolean formula cannot describe writing permission policy. 3) Bilinear pairing operations bring great computational costs. In this work, a collaborative edit access control method is presented in cloud storage. That is, a data owner defines writing permission policy represented by a circuit, and semi-trusted cloud decides whether or not the writing succeeds by matching writing policy without the prediction of acceptability of the next edit request. Analyses and simulations show that our method is provided with the ability of multi-user collaborative access control for cloud storage, and the storage cost and the computation cost of encrypting and decrypting are both lesser at user end in reading permission control with cloud-aided decryption.

Key words:cloud storage; access control; attribute-based encryption (ABE); multi-user collaborative edit; cloud-aided writing permission control

收稿日期:2015-12-20;

修回日期:2016-10-10

基金项目:国家自然科学基金项目(61373040,61572370) This work was supported by the National Natural Science Foundation of China (61373040, 61572370).

通信作者:黄传河(huangch@whu.edu.cn)

中图法分类号:TP309.2; TP303