彭红艳,凌 娇,覃少华,邓剑锋
(广西师范大学计算机科学与信息工程学院,广西桂林 541004)
在云计算中,外包数据存储在基本可信的云服务平台上,脱离了数据所有者的物理控制,容易造成数据信息和用户隐私泄露[1]。传统加密方法是利用对称加密方式将数据加密后上传至云中心进行保存,但这给数据共享带来了一定的困难。一方面是大规模用户的数据共享需要大量密钥,生成、分发和保管这些密钥比较困难。另一方面是如何制定灵活可控的访问策略来实施细粒度的访问控制。针对上述问题,学者们提出属性加密(Attribute-Based Encryption,ABE)方案[2-4],其是一种灵活的一对多公钥加密方式,即一次加密、多人共享。传统ABE 方案基于单授权机构[5-7],一旦被敌手攻破,则会使整个系统崩溃。为解决单授权机构导致的单点瓶颈问题,文献[8]提出无中心授权机构的分布式多授权机构方案,其不要求任何授权机构提前建立信任关系,只需创建公共参数初始集,并且任何一方都可以成为授权机构。但该方案仍然要依赖GID 实现数据用户全网的唯一性,并且数据用户需要向所有授权机构公开GID,容易造成数据用户隐私的泄露。文献[9]在文献[8]的基础上,通过减少方案公共参数量,提高了计算效率。此外,文献[10]提出隐藏访问策略的多授权访问控制方案,将解密计算外包到云。文献[11]在个人健康记录系统中,提出一种具有动态策略更新的多授权属性加密方案。
在边缘计算[12]环境下,移动终端的计算和能量资源受限,而属性加密的密文解密阶段通常需要计算双线性配对,计算量巨大。为降低移动终端资源消耗,文献[13]提出解密计算外包的CP-ABE 方案,该方案在进行解密时将密文传送给解密外包服务器,然后解密外包服务器对密文进行预解密获得中间密文再传送给数据用户,达到降低本地计算量的目的。文献[14]提出混合云计算下的改进CP-ABE方案,该方案支持加密和解密外包,并提供数据验证机制,以确保外包数据的正确性。文献[15]提出外包加密和解密计算到雾节点的访问控制方案,其能有效更新系统属性。文献[16]针对雾节点比云服务器容易受攻击的特点,提出一种更安全的解密外包ABE 方案,其能抵抗选择密文攻击。然而,这些方案的访问策略在判定用户访问权限时,只依据年龄、职业等用户常规属性,而忽视了访问时间和位置的约束,因此不能较好满足边缘计算的实时性和移动性需求。
为共享对时间敏感的数据,文献[17]提出一种结合时间与属性约束的访问控制方案,如果一个属性有时间约束,则CA 生成一个时间令牌用于在云服务器中转换数据所有者生成的时间陷门状态,并在时间段开始时在线更新密文,但一旦CA 被恶意破坏,那么时间令牌和属性私钥都将被泄露,造成整个系统崩溃。文献[18]提出一种时域多授权访问控制(TAAC)方案,该方案将时间约束引入密文和密钥中,只有满足访问策略和访问时间段,才能对密文进行解密,但该方案在属性动态变化时需要维护更新列表,且需要实时更新属性私钥,效率较低。文献[19]提出基于时间和位置约束的访问控制方案,但其不能实现细粒度访问控制。文献[20]提出细粒度的基于位置约束的访问控制方案,但其基于KPABE 建立,数据所有者不能指定访问策略。文献[21]提出云存储中位置感知的属性加密访问控制(LABAC)方案,将位置信息作为陷门附加到访问结构树中,且引入位置服务器和传感器进行用户位置认证。解密时位置服务器先验证用户位置是否合法:若合法,则生成位置令牌且发送给用户进行解密。但该方案不能解决单授权机构带来的单点瓶颈和终端资源受限问题。以上方案在判定用户访问权限时,除了依据常规属性外,仅对时间或位置进行单一约束,无法同时满足时间和位置约束。因此,本文提出一种支持时间和位置约束的多授权外包属性加密方案TLMO-ABE。
设U={u1,u2,…,un}是所有属性的集合,如果存在访问结构A ⊆2U且对于任意集合B和C,存在B∈A、B⊆C、C∈A,那么A 为单调。如果集合A 是2U的一个非空子集,那么A 为访问结构。A 中包含的集合称为授权集合,而A 中不包含的集合称为非授权集合。
设G1、G2为以素数p为阶的乘法循环群,g为G1的生成元,双线性映射e:G1×G1→G2,满足如下性质:
1)双线性:对于任意u,v∈G1和a,b∈Zp,有e(ua,vb)=e(u,v)ab成立。
2)非退化性:e(g,g)≠1。
3)可计算性:对于任意x,y∈G1,有e(x,y)在多项式时间上是可计算的。
对于基于成员集合P的秘密共享方案Π,若符合下列所述条件,则将Π 称为Zp的线性秘密共享方案(LSSS):
2)秘密共享方案中存在l×n的共享矩阵M,M的第i(i=1,2,…,l)行表示集合中的第i个成员,通过函数ρ(i)可以找到此成员,其中ρ是从{1,2,…,l}映射到P的函数。设随机向量v=(s,y2,y3,…,yn),其中是共享的秘密消息,而是任意随机数,则(M·v)i依据共享方案Π 将秘密分享为l份,其中(M·v)i属于成员i。
3)如果Π 是访问结构A 上的一个线性秘密共享方案,则对于任意授权集合S∈A,I⊂{1,2,…,l},且I={i:ρ(i)∈S},在多项式时间范围内能够找到常量集合成立,其中ε=(1,0,…,0)。
本文方案系统模型如图1 所示。该模型具有用户(User)-边缘(Edge)-云(Cloud)3 层架构,包含云服务提供商(Cloud Server Provider,CSP)、中央授权机构(Central Authority,CA)、属性授权机构(Attribute Authority,AA)、边缘节点(Edge Node,EN)、数据所有者(Data Owner,DO)和数据用户(Data User,DU)6 种角色。
1)CSP 是一个数据存储机构,执行系统分配的任务,但其可能会主动泄露接收到的数据信息。
2)CA 是一个完全可信的中央授权机构,负责DO、DU 和AA的注册。当DO 在CA 上注册时,CA生成系统公共参数并在系统中公开该公共参数。
3)AA 为完全可信,负责管理自身域中的属性。AA 根据域中的属性生成AA 的公私钥对,其中将公钥发送给DO 用于加密,将私钥发送给DU 用于生成属性私钥。AA 通过比较DU 的请求时间和请求位置是否均在有效范围内,决定是否生成和分发相关属性私钥给DU。
4)EN 具有存储和计算能力,实时处理DU 的访问请求,必要时会从相邻节点或云服务器处检索密文,负责对DU 请求的密文进行预解密并将结果返回给DU。
5)DO 负责制定访问结构来计算密文并上传到CSP。
6)DU 从EN 端获取预解密结果并负责本地解密,得到明文数据。
图1 系统模型Fig.1 System model
设系统中有N个数据用户U={u1,u2,…,uN}和K个属性授权机构AA={AA1,AA2,…,AAK},且每个数据用户都有唯一的ID。TLMO-ABE 方案由初始化算法、加密算法、私钥生成算法和解密算法组成。
2.2.1 初始化算法
初始化算法的具体步骤如下:
1)CA 初始化。设G、GT都是阶为素数p的双线性群,双线性映射e:G×G→GT,g为G的生成元,安全参数λ决定群的大小。设F:{0,1}*→G是抗碰撞哈希函数,映射属性到G中的元素。CA 随机选取h∈G,输出系统公共参数GP=(g,h,G,GT,F)并将其全网公开。CA 生成签名和验证密钥对(skCA,vkCA),签名密钥用于加密数据用户的身份uuid,验证签名用于验证数据用户的身份。
2)数据用户注册。当数据用户加入系统时,其需要向CA 提交身份信息Infouid用于验证其身份的合法性。如果其身份合法,则CA 为所有需要注册的数据用户分配唯一的身份标识uid;否则,CA 拒绝该数据用户的注册。除此之外,首先CA 随机选取uuid∈Zp,并使用签名密钥skCA对其进行签名生成用户凭证Certuid,其次CA 生成用户身份密钥最后CA 将Certuid和Kuid通过安全通道发送给该用户。
3)AA 注册。当AA 加入系统时,其需要向CA提交身份信息InfoAID用于验证其身份的合法性。如果其身份合法,则CA 为所有需要注册的AA 分配唯一的身份标识AID,且CA 发送验证密钥vkCA给AA,用于恢复数据用户的身份uuid;否则,CA 拒绝该AA的注册。
4)AA 初始化。在系统建立之初,AA 随机选取αj,βj∈Zp,生成AA 的私钥和公钥并将全网公开。
2.2.2 加密算法
加密算法的具体步骤如下:
1)DO 利用加密算法E加密明文信息,得到数据密文CTdata=Ek(M)。
2)DO 为数据密文选择唯一的身份标识FID,如果数据密文FID 有访问时间限制,那么DO 应该首先生成时间参数对。设[Tbegin,Tend]表示有效时间范围,STj,FID表示数据密文FID 中属于AAj的时间属性。DO 随机选取tj∈Zp,输出TDOParamj,FID=(tj)用于加密对称密钥用于生成时间属性私钥。同理,如果数据密文FID有访问位置限制,那么在加密该对称密钥k之前,DO应该首先生成位置参数对。设[Lbegin,Lend]表示有效位置范围,SLj,FID表示密文FID 中属于AAj的位置属性。DO 随机选取lj∈Zp,输出LDOParamj,FID=(lj)用于加密对称密钥用于生成位置属性私钥。
3)DO 定义访问结构(A,ρ),其中,A表示一个m×n矩阵,m表示属性数量,函数ρ表示映射到矩阵A的每一行得到属性ρ(x),其中x∈[1,m]。DO 随机选取一个用于共享的秘密值s∈Zp和一个随机向量v=(s,y2,y3,…,yn)∈Zp,其中y2,y3,…,yn∈Zp用于分享秘密值s。对于∀x∈[1,m],设置λx=v·Ax,其中Ax是矩阵A的第x行。随机选取r1,r2,…,rm∈Zp,计算密钥密文:
由此得到:CTFID=(C0,C1,{C2,x,C3,x,C4,x})。
2.2.3 私钥生成算法
私钥生成算法的具体步骤如下:
1)生成常规属性私钥。当AA 收到数据用户的常规属性私钥请求时,使用vkCA解密Certuid得到uuid来验证数据用户身份:如果身份合法,则AA 为其生成属性私钥;否则,AA 拒绝该数据用户的请求。设Sj,uid表示数据用户uid 向AAj请求的常规属性集合。AAj随机选取zj∈Zp,计算常规属性私钥:
2)生成时间属性私钥。假设所有AA 都有一个表来存储密文的时间参数和位置参数(FID,TAAParamj,FID,LAAParamj,FID),以提高时间信息和位置信息的检验效率。如果密文有访问时间限制,那么DU 需要在有效时间范围内向相应的AA 请求时间属性私钥。AA 先验证数据用户的身份:如果身份合法,则AA 生成时间属性私钥;否则,AA 拒绝该数据用户的请求。设STj,uid表示数据用户uid 向AAj请求的时间属性集合,AAj随机选取uj∈Zp,计算时间属性私钥:
3)生成位置属性私钥。如果密文有访问位置限制,那么DU 需要在有效位置范围内向相应的AA 请求位置属性私钥。AA 先验证数据用户的身份:如果身份合法,则AA 生成位置属性私钥;否则,AA 拒绝该数据用户的请求。设SLj,uid表示数据用户uid 向AAj请求的位置属性集合,AAj随机选取vj∈Zp,计算位置属性私钥:
4)生成边缘密钥和恢复密钥。DU 利用获得的常规属性私钥{USKj,uid}、时间属性私钥{TSKj,uid,FID}和位置属性私钥{LSKj,uid,FID}生成边缘密钥和恢复密钥。DU 随机选取q∈Zp,那么恢复密钥RKuid,FID=q,计算边缘密钥:
2.2.4 解密算法
EN 收到DU 对FID 数据密文的访问请求时,先检索自身是否存储相应的数据密文和密钥密文,若没有存储,则由该EN 向其相邻的其他EN 节点或CSP 检索,将检索到的数据密文和密钥密文缓存在该EN 上。由于在边缘计算环境中DU 通常为资源受限的设备,因此为提高解密效率,本文将解密过程分为在EN 上的预解密和在DU 上的本地解密。
设SEatt表示边缘密钥中包含的属性集合,Iatt表示访问策略中行的集合,一行对应边缘密钥中的一个属性,即Iatt={x:ρ(x)∈SEatt}。若IAAj表示每个AAj中的行索引集合,则Iatt可被划分为假设在多项式时间范围内存在常量集合使得因此,预解密的操作具体如下:
1)Px=分为以下3 种情况:
(1)如果ρ(x)是常规属性,那么:
(2)如果ρ(x)是时间属性,那么:
(3)如果ρ(x)是位置属性,那么:
本地解密的操作具体为:DU 先得到中间密钥密文ICT,利用恢复密钥得到对称密钥再使用对称密钥k解密数据密文CTdata得到明文数据M=Deck(CTdata)。
通过挑战者和敌手之间的安全游戏描述TLMO-ABE 方案的选择明文攻击安全模型。设SAA表示属性授权机构的集合表示被破坏的属性授权机构集合。游戏过程具体如下:
1)建立阶段:挑战者运行CA 初始化算法,生成系统公共参数。敌手指定被破坏的AA 集合。每个AA 都执行AA 初始化算法,生成公钥和私钥。对于被破坏的AA,敌手获得公钥和私钥;对于正常的AA,敌手只获得公钥。
2)查询阶段1:敌手指定一个密文号FID*和访问策略(A*,ρ*),并且还要确定时间属性集合及其对应的时间范围、位置属性集合及其对应的位置范围。然后敌手进行如下查询:
(1)常规属性私钥查询:敌手提交uid、相应的身份凭证Certuid和常规属性集合Suid给挑战者,且所有的常规属性属于正常的AA。挑战者将常规属性私钥发送给敌手。
(2)时间属性私钥查询:与常规属性私钥查询相似,敌手提交uid、相应的身份凭证Certuid、密文号FID、时间属性集合STj,uid和访问时间time 给挑战者,且所有的时间属性属于正常的AAj。如果时间time是在有效时间范围内,那么挑战者将时间属性私钥发送给敌手。
(3)位置属性私钥查询:与时间属性私钥查询相似,敌手提交uid、相应的身份凭证Certuid、密文号FID、位置属性集合SLj,uid和访问位置location 给挑战者,且所有的位置属性属于正常的AAj。如果位置location 是在有效位置范围内,那么挑战者将位置属性私钥发送给敌手。
(4)转换密钥查询:敌手提交常规属性私钥USKuid={USKj,uid}、时间属性私钥TSKuid,FID={TSKj,uid,FID}和位置属性私钥LSKuid,FID={LSKj,uid,FID}给挑战者。挑战者得到边缘密钥EKuid,FID和恢复密钥RKuid,FID,并将其发送给敌手。
3)挑战阶段:敌手提交两个相等长度的对称密钥k0和k1给挑战者。假设Sco表示被破坏的AA 的常规属性、时间属性或位置属性私钥集合。对于每个uid,游戏要求USKuid∪TSKuid,FID∪LSKuid,FID∪Sco不能同时匹配访问策略(A*,ρ*)和密文号FID*。挑战者随机抛掷一枚硬币b∈{0,1},并使用访问策略(A*,ρ*)加密kb,然后将密文发送给敌手。
4)查询阶段2:敌手重复查询阶段1,但是新的USKuid∪TSKuid,FID∪LSKuid,FID仍然不能满足密文号FID*和访问策略中常规属性、时间属性和位置属性的要求。
5)猜测:敌手输出一个关于b的猜测b'∈{0,1}。如果b'=b,则称敌手赢了此游戏。敌手在游戏中的优势定义为ε=|Pr[b'=b]-1/2|。
3.2.1 多属性授权机构的安全性
在单授权机构中,由单一的中央授权机构生成数据用户私钥。如果该中央授权机构被破坏,则所有数据用户的私钥会被泄露,造成系统崩溃。本文方案中的数据用户私钥交由多属性授权机构联合生成和分发,数据用户使用来自多属性授权机构的私钥组件对密钥密文进行解密。如果其中某个属性授权机构被破坏,则非法用户只能获取该属性授权机构管理的所有属性私钥,但仍然无法解密密钥密文,并且合法用户对密钥密文的解密不受影响。因此,本文多属性授权机构相比单授权机构安全性更高。
3.2.2 抗合谋攻击
如果数据用户想要恢复出对称密钥k,则必须要计算得到的值。假设只有合并多个未经授权的数据用户的属性集合才能满足访问结构,但因为每个数据用户的uid 不同,生成属性私钥的组件也不同,所以无法计算出的值,从而无法恢复出k。因此,本文方案能够有效抵抗数据用户的合谋攻击。
定理1如果不存在一个敌手M可以在多项式时间内以不可忽略的优势ε>0 赢得安全游戏(矩阵A*的大小为m*×n*(n* 证明假设在3.1 节提出的安全游戏中,敌手M具有不可忽略的优势ε,且只能选择一个最大为q-1 列的访问矩阵A*。然而,M可以执行任意的常规属性私钥查询、时间属性私钥查询、位置属性私钥查询和转换密钥查询,但是所有获得的私钥(即使与被破坏的AA 中的私钥相结合)仍然不能满足访问策略中的属性要求。在此约束下,多属性授权机构方案的安全游戏证明等价于单授权机构方案的安全游戏证明。 定理2TLMO-ABE 方案在合谋攻击下仍具有安全性。 证明每个数据用户都有一个唯一的身份标识uid,将uuid嵌入到所有属性私钥中。不失一般性,假设有两个恶意数据用户合谋攻击,那么解密密钥应该包含两个不同的uuid。在此情形下,线性对运算在解密阶段将不能正确恢复出包含秘密值s的组件因此,当存在多个数据用户的私钥时,即使属性集合满足访问策略要求,仍然不能成功解密密钥密文。 由定理1 的证明可知,若敌手M在安全模型下能够以不可忽略的优势ε攻破TLMO-ABE 方案,则多项式时间模拟器也能以同样的优势打破q-parallel BDHE 假设,因此该方案在安全模型下可抵抗选择明文攻击。由定理2 的证明可知,即使多个数据用户合谋,也不能解密密钥密文,因此该方案能够抵抗合谋攻击。 本文将TLMO-ABE、TAAC[18]与LABAC[21]方案在特性、存储开销和计算开销3 个方面进行对比。表1 比较了TLMO-ABE、TAAC 与LABAC 方案的相关特性,TLMO-ABE 方案能同时实现用户时间和位置的访问控制及解密计算外包,而TAAC 和LABAC方案能分别实现位置和时间的访问控制,但无法实现解密计算外包。在表1 中,√表示属性加密方案具有该特性,×表示属性加密方案不具有该特性。 表1 3 种属性加密方案的特性比较Table 1 Characteristic comparison of three ABE schemes 存储开销是影响访问控制方案大规模部署的关键因素。密文和密钥是数据所有者、数据存储节点和数据用户之间进行频繁传输的数据。令k1表示访问策略中的属性数,k2表示用户私钥中的属性数,|G|和|GT|分别表示群G和GT中元素的长度,|F|表示哈希函数长度。由表2 可知,与TAAC 和LABAC 方案相比,TLMO-ABE 方案的密钥密文和用户私钥长度更短,存储开销更小。 表2 3 种属性加密方案的存储开销比较Table 2 Comparison of storage overhead of three ABE schemes 计算开销主要产生于加密阶段、预解密阶段和本地解密阶段。由于TLMO-ABE 方案使用ABE 方法对对称密钥进行加密,因此没有考虑明文数据加密。令te表示一次指数运算消耗的时间,tb表示一次双线性对运算消耗的时间。由表3 可知,虽然TLMO-ABE 方案在加密开销上没有明显优势,但是其将大部分解密计算外包至边缘节点,大幅减小了本地解密开销,相比LABAC 和TAAC 方案更具优势。 表3 3 种属性加密方案的计算开销比较Table 3 Comparison of computational overhead of three ABE schemes 本文提出一种面向边缘计算的支持时间和位置约束的属性加密方案。该方案将时间域信息和位置域信息相结合引入属性加密算法,实现更细粒度的访问控制。采用多授权机构,使属性私钥由多个授权中心联合分发,解决了单授权机构的单点瓶颈问题,并且满足用户跨域访问需求。针对边缘计算环境的特点,通过将大部分解密计算外包至边缘节点,减轻了移动终端设备的负担。分析结果表明,该方案在边缘计算环境下具有较低的时间开销与计算开销。但由于本文方案仅在随机预言模型下可证安全,因此下一步将设计在标准模型下满足时间与位置约束且安全的属性加密方案。4 性能分析
5 结束语