赖霖汉,缪祥华,2*
(1.昆明理工大学 信息工程与自动化学院,云南 昆明 650500; 2.云南省计算机技术应用重点实验室,云南 昆明 650500)
随着云计算、云存储技术的发展,越来越多的资源和信息需要多方位地进行细粒度的共享,这需要数据拥有者能维护一对多关系的能力,并向多个未知用户提供安全的服务。因此,2005年,SAHAI和WATERS[1]等人提出了基于属性的密码体制(Attribute-Based Encryption,ABE),将用户属性合并为其密码原语作为输入。基于属性的密码体制分为两种,一种是2006年GOYAL[2]等人提出的KP-ABE(Key Policy Attribute-Based Encryption)密码体制,策略与密钥相关联,适用于审计日记;另一种是2007年BETHENCOURT[3]等人提出的CPABE(Ciphertext Policy Attribute-Based Encryption)密码体制,策略与密文相关联,更适用于云存储中进行细粒度的共享。2011年WATERS[4]等人提出了完备的基于密文策略的属性密码体制。然而,基于密文策略的属性密码体制被提出后,仍存在访问结构不够灵活、计算效率不高以及单一属性授权中心易失效的问题。
针对访问结构的问题,现提出的几种访问结构类型包括阈值门、LSSS矩阵、分布矩阵以及有序二叉决策图(Ordered Binary Decision Diagram,OBDD)等。尽管这些访问结构都可以成功地表示访问策略,但是效率和灵活性并不理想。因此,需要更加灵活和高效的访问结构。对此,加入权重属性的设计。在权重属性密码体制的研究中,文献[5]首次在CP-ABE中引入了属性权重的概念,打破了属性的二进制模式。文献[6]提出了另一种密文策略的权重属性密码体制,该方案支持门限访问结构,更适用于云计算环境。然而,增加权重属性必然会增加一定的存储空间,因此需要进一步优化访 问结构。
文献[7]利用线性秘密共享方案中的矩阵理论,缩减矩阵,从而进行了属性约简,以达到提高整体效率的目的。文献[8]则是在访问树的结构上解决了需要同时分享多个数据时,这些数据存在共享子策略,导致共享子策略所对应的密文重复计算的问题。2017年,LI等人[9]提出将OBDD作为一种访问结构来构建一个高效的、有表现力的CP-ABE方案。文献[10]提供了一种基于OBDD的外包CPABE方案,具有高效的用户撤销能力,将高计算负载外包给云服务提供商,不泄露文件内容和密钥。文献[11]基于OBDD访问结构,利用椭圆曲线的点乘计算代替双线性映射。但是用户的本地计算都无法与计算能力强大的雾节点相比。
因此,为了降低用户端的计算开销,将计算迁移到靠近用户端的雾节点。雾节点在用户和云端之间起到承上启下、提高效率的作用,有效节省了用户端的网络开销,同时还避免了云平台的网络性能瓶颈。文献[12]提出一种安全性更高的基于属性的密码体制,但由于该方案为多认证中心方案,认证交互次数过多,并不适合雾计算环境。文献[13]提出了基于属性加密的雾协同云数据共享方案,利用云雾协同的方式充分地体现了雾节点的灵活性,但该密码体制并未考虑在标准模型下的安全性。文献[14]的方案利用了轻量级的雾计算的帮助,层次化的外包方案大大地提高了计算的效率,但是其方案存在不够灵活的问题。文献[15]提出了雾计算中支持计算外包的访问控制方案,利用线性结构有效地证明了计算外包的可行性,但是仍然存在单一属性授权中心的威胁。
在单一属性授权的ABE方案[16]中,属性授权机构要为所有用户生成属性密钥,很容易受到集中攻击并且存在性能瓶颈。为了解决这一问题,文献[17]设计了基于区块链的多授权访问控制方案,成功解决传统CP-ABE单一授权机构存在的问题。
综合以上研究,本文提出基于雾计算的权重OBDD访问结构属性密码体制。该方案有效地利用雾计算的特点降低了用户端的计算量,还利用权重OBDD的访问结构提高访问策略的灵活性,采用多属性授权中心方式解决了单一授权中心面临的威胁。
二叉决策图(Binary Decision Diagram,BDD)是一个仅有一个根节点的有向无环图,可用于高效地表示布尔函数。假设访问结构中出现的所有属性编号为i,0≤i≤n-1,n为属性总数,U为整个属性的集合。以预设定的顺序编号为Xi,0≤i≤n-1。转换为布尔函数为f(x0, x1,…, xn-1),而所有的布尔函数都可以转换为变量之间基本逻辑关系,如AND、OR、NOT等组合。在此二叉决策图中,若存在一条有效路径π以规定次序出现,即x0, x1,…, xn-1,则称为该BDD为布尔函数f(x0, x1,…,xn-1)的有序二叉决策 图(Ordered Binary Decision Diagram,OBDD)。对于OBDD访问结构的实现,用于表示布尔函数的对象描述的构造是通过一个简单的递归过程完成的。利用香农展开定理,在构造之后,包含在OBDD中的所有节点应该被编号以获得最终表达式:
式中:ID是包含所有非终端节点的序列号的集合,U是由出现在访问结构中的所有属性形成的集合;Nodeiid是一个元组
图1 布尔函数为f(x0, x1, x2, x3)=x0+x1x2+x1x3+x2x3的OBDD表示
基于雾计算的权重OBDD访问结构属性密码体制系统模型主要由中央属性授权中心、属性授权中心、雾节点、云存储平台、数据拥有者以及数据使用者组成,系统模型如图2所示。中央属性授权中心的主要工作是创建系统的公共参数和主密钥,管理权重分配、数据拥有者及数据使用者。属性授权中心主要分担中央属性授权中心的风险并为其服务,生成属性密钥。雾节点具有存储和计算能力,填补用户和云端之间的空白。它实时处理数据拥有者的访问请求,负责对数据拥有者的请求进行外包加解密,并将结果返回。云存储平台由各大云平台提供,能存储海量信息,为数据共享提供交互场所。数据拥有者是拥有资源且有分享需求的用户。数据使用者是从云平台合法获取数据的用户。
图2 基于雾计算的权重OBDD访问结构属性密码体制的系统模型
所提出的基于雾计算的权重OBDD访问结构属性密码体制方案包括4个步骤,分别是系统初始化算法(Setup)、密钥生成算法(Key Gen)、数据加密算法(Encrypt)以及数据解密算法(Decrypt),各个算法的具体描述如下。
2.2.1 系统初始化算法(Setup)
系统初始化算法包含中央属性授权中心初始化(CA setup),设置公共参数、权重及主密钥,然后由属性授权中心(AA setup)设置属性的正负值及其对应的属性密钥。
(1)中 央 属 性 授 权 中 心 阶 段CASetup(1γ, A)→(MK,PP,ai(w))。该算法由中央属性授权中心执行,输入安全参数1γ,设有n个属性,属性授权
2.2.3 数据加密阶段(Encrypt)
2.2.4 数据解密算法(Decrypt)
雾节点解密阶段FogDecrypt(CT,SKuser)→ (Ek(M)):由雾节点执行该算法数据使用者拥有的属性集Auser必须满足数据拥有者制定的访问策略。具体的解密阶段可以通过以下递归算法实现。
Step 1:寻找编号为2的节点,即根节点,并将其定义为当前节点。
Step 2:提取当前节点中包含的信息即Nodeiid,i(w),如 果i∈A∩i(bi)≥i(w)令i为—t, 为正值,即跳转到Step3继续执行。如果i∈ A∩i(bi)≤i(w)∪i∉A,令i为负值。跳转到Step 4继续执行。
Step 3:搜索当前节点的1分支节点。
(1)如果1分支节点是终端节点0,则终止递归算法并返回解密失败。
(2)如果1分支节点是终端节点1,则算法转到Step 5继续执行。
(3)如果1分支节点是非终端节点,则将其定义为当前节点,算法转到Step 2继续执行。
Step 4:搜索当前节点的0分支节点。
(1)如果0分支节点是终端节点0,则终止递归算法并返回解密失败。
(2)如果0分支节点是终端节点1,则算法转到Step 5继续执行。
(3)如果0分支节点是非终端节点,则将其定义为当前节点,算法转到Step 2继续执行。
Step 5:如若数据使用者拥有的属性集满足某一条有效路径Ri,那么为了恢复出明文M可以计算:
命题:若存在一个算法Z可以调用S来解决DBDH问题,以不可忽略的优势Y来攻破该系统。存在则为真,不存在则为假。
证明:用一个攻击者和挑战者之间的安全游戏来描述本方案的安全性,过程描述如下。
(2)询问阶段1。攻击者可以不限次数地向挑战者询问属性集合A1,A2…私钥,本文采用中央属性授权机构和属性授权机构两方随机选择秘数r∈ZP
*计算生成用户私钥
挑战者以整体形式回复攻击者的私钥请求,并公开发给攻击者。
(3)挑战阶段。攻击者随机选择两个长度相等的明文组合{M0, M0}和{M1, M1}发送给挑战者。另外,攻击者给出对应的挑战访问控制结构{T,T*}。且一定不能与询问阶段1中所查询的属性集合均相同。同时将{T,T*}也发送给挑战者。挑战者随机抛掷一枚硬币利用{T,T*},分别加密挑战明文{M0,M0},并计算密文
(4)询问阶段2。攻击者可以向挑战者再次询问其他属性集合的私钥,但同样地,不能与之前所询问的访问结构相同。
(5)估测。攻击者给出一个关于b的猜测b'∈{0,1},如果b'∈{0,1}则称攻击者赢得了此游戏。攻击者在上述游戏中的优势定义为
结论:不存在一个算法Z可以调用S来解决DBDH问题,以一个不可忽略的优势赢得上述游戏。命题为真,本部分所提出的方案在选择明文攻击下是安全的。
将该方案与现有方案进行对比,包括功能分析、存储成本及计算成本。分析过程中所用到的符号定义如表1所示。
表1 符号定义表
方案所具有的功能分析如表2所示。本文考虑了是否是单一授权中心、加解密外包、访问结构类型及是否设计权重几个方面。可以看到,文献[11]和文献[17]是没有将加解密操作外包出去的,其他方案都将加解密操作部分外包出去。而文献[11]和[14]的方案均不具备抗单一授权中心易失效的能力。其他方案均是多属性授权中心。在权重设计方面,除了本方案实现了权重的设计,其他方案均不具备属性权重的功能。并且本文方案和文献[11]均采用了OBDD访问结构。其他对比文献的方案均没有实现OBDD访问策略。
表2 功能分析对比表
将本文方案与另外文献方案进行了存储成本上的对比,对比结果如表3所示。本文方案的中央属性授权中心CA的存储空间主要是增加了权重值和主密钥,而属性授权中心AA的存储空间主要来自于属性密钥。本方案相对于单一属性授权机构的文献[11]和文献[14]减少了CA的存储成本。但相对于都是多属性授权机构的文献[15]和文献[17]增加了CA属性权重的存储空间。表中各方案的密文长度都会随着相关属性的增加呈现线性关系。但是,随着相关属性的增加,本文方案与文献[11]方案所采用的OBDD访问策略所生成的密文存储成本是少于其他方案的。雾节点Fog的存储空间主要来自于OBDD访问结构和公钥,本方案的数据拥有者的存储空间主要是对称加密的密钥|k|。文献[11]和文献[17]都没有使用雾节点进行加密外包,不考虑雾节点的存储成本;其他方案和本文方案都利用了雾节点进行加解密外包,雾节点存储公钥以加密数据,这样数据拥有者端的存储成本大大降低,明显少于文献[11]和文献[17]。数据访问者DU的存储空间依赖于其本身拥有的属性个数线性正相关的私钥。
表3 各方案存储成本比较
将本文方案与其他文献进行了计算成本的比较,结果如表4所示。由于文献[11]和文献[17]并未采用外包计算的方式,所以计算效率远不如其他三个方案,在这里就不予比较。文献[14]和文献[15]均采用访问树的结构进行加解密,由于文献[14]是单授权机构,所以需要属性中心计算所有属性的密钥。在加密过程中,所有方案的加密计算消耗都会随与密文相关属性数量的增加而线性增加。但由于本方案采用了权重属性,在密钥生成和加解密上会多为每一个属性增加一次计算量。但相对于本方案的OBDD访问结构,在数据用户属性数量较高的情况下,本文方案的增加幅度更小。
表4 计算成本比较
本文提出了基于雾计算的权重OBDD访问结构属性密码体制研究。本文所提的方案首先考虑了计算效率的问题,通过将计算外包给雾节点从而大大减少了用户端的计算量。其次,本方案采用了权重的设计,在OBDD访问结构的基础上提高了细粒度的表达能力。属性存储空间更加节约,同时采用多属性授权中心的方式降低了被集中攻击的风险。最后证明了所提方案基于DBDH假设在明文攻击下的安全性。通过功能分析、存储成本和计算成本3个方面证明方案具有较高的系统效率和使用 价值。