云环境中的多授权机构访问控制方案*

2020-11-15 11:10郑良汉
计算机与生活 2020年11期
关键词:私钥密文密钥

郑良汉,何 亨+,童 潜,杨 湘,陈 享

1.武汉科技大学 计算机科学与技术学院,武汉 430065

2.武汉科技大学 湖北省智能信息处理与实时工业系统重点实验室,武汉 430065

1 引言

云计算技术为用户在第三方服务器上存储数据提供了一种低成本的解决方案,近年来发展迅速。随着云计算技术的日益普及,许多传统领域都利用云计算技术来解决实际问题[1-3],而存储在云服务器上的敏感数据被攻击与泄露的新闻屡见不鲜[4-6],因此在云环境中,建立访问控制策略来保护用户数据就显得尤为重要。基于属性的加密(attribute-based encryption,ABE)[7]是一种同时提供访问控制和加密功能的加密概念,是解决云计算中安全问题的有效方案。与传统的一对一的公钥加密方案不同,ABE是一种一对多的加密算法,这为实现一对多数据共享,细粒度、非交互式的访问控制方案提供了基础。为了提高ABE 方案的灵活性与安全性,Bethencourt与Sahai等人提出了密文与访问控制策略相关联的密文策略ABE(ciphertext-policy attribute-based encryption,CP-ABE)[8],用户密钥与用户的属性集相关联,同时文件的访问控制策略(即访问结构)由数据拥有者来制定,密文基于访问结构来加密。如图1 所示,数据拥有者制定树形结构的访问控制策略,即访问树,其叶节点为用户的属性,非叶节点为门限值(and,or,of);只有User 1 和User 4 可以使用密钥解密密文,因为它们的属性满足访问树。Waters 于2011 年提出了基于LSSS(linear secret sharing scheme)的CP-ABE[9],进一步地提高了安全性与效率。

在实际运用中,被加密的数据文件通常具有层次关系,这种关系通常出现在军事与医疗领域。以个人电子病历为例,一份病历通常可以分为两个文件:含敏感信息的个人信息,如姓名、地址、联系方式等;不含敏感信息的诊断与医治记录,这部分可用作医学研究。用户在分享这两个文件时,希望其主治医生能访问到所有文件,而医学研究者只能访问到诊断与医治记录文件。现有的CP-ABE 算法没有考虑多个文件的访问结构具有层次关系,需要对每个文件分别加密实现其访问控制需求,这将产生较大的计算与存储开销。

现有的大多数CP-ABE 只有一个授权机构,这在用户数量很大时给单一授权机构带来的私钥分发与维护的工作压力极大,短时间内大量用户发起获取私钥请求可能会直接导致系统崩溃,也不满足当前大规模的分布式计算环境。同时单授权机构还存在安全问题,一旦授权机构被攻击或叛变将导致所有用户私钥被泄露。区块链是以比特币为代表的数字加密货币体系的核心支撑技术[10]。区块链技术的核心优势是去中心化,能够通过运用数据加密、时间戳、分布式共识等手段,在分布式系统中实现各节点之间协调与协作,从而为解决中心化机构普遍存在的高成本、低效率和数据存储不安全等问题提供了解决方案。区块链的这些特性使其极其适合解决传统CP-ABE 单一授权机构存在的问题。

Fig.1 Example of data access process in CP-ABE图1 CP-ABE 数据访问过程示例

针对上述问题,本文提出了一种云环境中基于区块链的多授权机构访问控制方案(cloud data access control scheme based on blockchain with multi-authority,BMAC)。本文的主要工作与贡献如下:

(1)设计了一种层次化的CP-ABE(BMAC-CPABE)算法。如图2 所示,两个文件m1、m2的访问结构为访问树T1、T2,T1、T2具有层次关系,BMACCP-ABE 将它们整合成一个完整的访问树T,对于m1、m2,仅需进行一次加密操作。如图3 所示,User 3的属性满足T中与m2相关的部分,可解密得到m2,User 1 的属性满足整个T,可解密得到m1、m2,而User 2 不满足T中任何部分,无法解密。这种特性显著降低了CP-ABE 算法的计算与存储开销,从而通过BMAC-CP-ABE 可以高效地实现云环境中对大量数据文件的细粒度密文访问控制。

(2)结合BMAC-CP-ABE,实现了一种基于区块链的多授权机构密钥管理方法。通过区块链技术,该方法无需中央授权机构(central authority,CA),并使得所有授权机构能够诚实、并行和去中心化地进行私钥分发,在授权机构分发私钥出错时,还能进行责任追究,从而解决了在云环境中进行密文访问控制时,单一授权机构导致的安全性与可靠性问题。

2 相关工作

Fig.2 Example of integrated access structure图2 整合访问结构示例

Fig.3 Example of data access process in BMAC-CP-ABE图3 BMAC-CP-ABE 数据访问过程示例

Sahai 与Waters 于2005 年提出的混杂身份基加密[7]是属性基加密的原型,用户的私钥中包含其拥有的属性集合A′,消息发送者选择一组属性集合A来加密消息,若A与A′相交元素的个数大于消息发送者预先设置的门限值t,则用户能够成功解密密文。但这种门限结构的访问结构灵活度十分有限,且门限参数由授权机构设置,访问控制策略并不能由发送方决定。为实现更灵活的访问策略,Bethencourt等人于2007 年提出了CP-ABE,使用了树形访问结构来支持属性的AND、OF 和OR 操作,只有用户私钥中的属性集合满足消息发送方制定的树形访问结构时,才能够解密出密文,但是此文中的方案只在标准模型下是安全的。2008 年,Goyal 等人提出的一种新的CP-ABE 方 案[11],其 在DBDH(decisional bilinear Diffie-Hellman)假设下证明是安全的,但是方案的效率很低,私钥与密文的长度和加解密的时间在最坏的情况下成n3.42次方增长(n为访问树中节点的数量)。2011 年,Waters提出了一种基于LSSS 矩阵访问结构的CP-ABE[9],在达到d-Parallel BDHE(decisional parallel bilinear Diffie-Hellman exponent)安 全 的 同时,私钥与密文长度和加解密时间随属性数量线性增长。2014年,He等人提出了ACPC-CP-ABE(access control mechanism for P2P storage cloud CP-ABE)方案,相对于以往方案具有较高的效率[12]。

对于数据文件之间的层次关系,传统CP-ABE 方案[13-15]需要对各文件分别进行加密,不同文件对应着不同的访问结构,并没有考虑到文件间的层次关系。

对于多授权机构问题,2007 年,Chase 首次给出了一个多授权机构的ABE 方案[16],方案中CA 与多个属性授权机构相互协作来完成系统初始化与私钥的分发。但方案仅支持基本的ABE 方案,不够灵活,且CA 存在风险。2008 年,Lin 等人采用密钥分发和联合的零秘密共享技术提出了一种无CA 的多授权机构的ABE 方案[17],但是方案最多只能防止k个用户共谋,且方案中的访问控制策略无法由数据拥有者来制定,不符合数据共享场景。2013 年,Jung 等人提出了隐私保护的多授权机构CP-ABE(AC-CP-ABE)方案[18],方案中事先将系统属性进行分组,使用户属性在每一组中只会出现一次,AA(attribute authority)以属性组为单位为用户分发私钥构件,最后一个AA在得到全部私钥构件后合成最终私钥并分发给用户。方案中的最后一个AA 存在较大安全隐患且方案中的访问结构是基于树形的,效率较低。2015 年,Wang 等人提出了轻量级的多授权机构CP-ABE 方案[19],方案中授权机构私钥生成的时间复杂度仅与AA 数量相关,效率较高。然而方案采用了CA 且CA承担了较大部分的隐私工作,安全性较低。

近几年已有学者将CP-ABE 与区块链技术相结合,2017 年Yuan 等人提出了一种可追究责任的CPABE 方案[20],数据的存储与更改都记录在区块链上,任意第三方可验证持有解密密钥者的身份。Zhang等人于2018 年提出了一种物联网中的基于CP-ABE和区块链技术的数据共享方案[21],方案中的所有数据共享(或访问)请求都通过区块链中的事务(类似于比特币网络中的交易)与智能合约交互,数据分享者可通过事务十分方便地更改访问控制表,灵活性较高。同年Wang 等人提出了一种基于属性密码体制和区块链技术的安全电子健康记录系统[22],实现了细粒度访问控制的同时保证了医疗数据的完整性和可追溯性。以上方案均将区块链技术用于存储密文,目前尚未有方案将区块链技术与授权机构的私钥分发工作相结合。

3 预备知识

3.1 LSSS

Beimel 最先给出了LSSS 的定义[23]:一个拥有p个属性(p∈Zp)秘密的共享方案Π,如果它满足下面的条件,就称它是线性的。

(1)每个属性都可以用Zp中的一个向量来表示。

(2)秘密共享方案Π中存在一个l×n的矩阵M,该矩阵被称为共享生成矩阵。对所有的行i=1,2,…,l,令函数ρ(i)表示矩阵M的第i行所对应的属性。选取向量v=(s,r2,r3,…,rn),其中s∈Zp是需要共享的主秘密,r2,r3,…,rd∈Zp随机选取。由Π可知,λi=(Mv)i是s的l个子秘密。

另外Beimel 证明了当满足LSSS 分享条件时,就一定可以恢复出秘密s。

对于任意线性秘密共享方案若满足上面的定义,则其能够同时满足下面介绍的线性重构性质。令Π是一个访问结构为T的LSSS 方案,S∈T是一个授权集合,同时令I={i:ρ(i)∈S},其中I⊂{1,2,…,l}。可以在生成矩阵M大小的多项式时间内找到常数∑i∈I ωiλi=s满足:使得如果{λi}是方案Π中秘密s的有效分享,则有∑i∈I ωiλi=s。

如果随机选取的向量v=(s1,s2,…,sj,…,sn),其中sj∈Zp是需要共享的n个秘密中的第j个,其对应着同策略树形结构中的某个非叶节点。在恢复秘密时如果拥有的属性集合能满足此非叶节点,则可以在多项式时间内找到{ωi∈Zp}i∈I满足:

其中,εj为第j个元素值是1,其余元素值是0 的长度为n的行向量。然后计算得sj=∑i∈I ωi,jλi,从而实现满足部分策略得到部分秘密的结果。

3.2 D-Parallel BDHE 假设

D-Parallel BDHE 假设[9]定义如下:用生成器g选择素数阶p的双线性群G,并随机选择β,s,b1,b2,…,bq∈Zp。如果敌手仅知晓:

那么其无法得到e(g,g)βq+1s∈GT。

3.3 区块链的区块结构

如图4 所示,每个数据区块一般包含区块头Header和区块体Body 两部分。区块头封装了当前版本号、前一区块地址、当前区块的目标哈希值、解随机数、Merkle根以及时间戳等信息。

Merkle 树是一个基于哈希算法的数据结构,它的特点是每一个非叶子节点都是其叶子节点的哈希值。在点对点的网络中,可以使用Merkle 树来验证数据是否被篡改或接收到的数据是否损坏。在区块链中生成的所有记录通过Merkle 树的哈希过程生成唯一的Merkle根,存在区块链的头部。

每次记账权的节点将当前区块链接到前一区块,形成最新的区块主链。各个区块依次环环相接,形成从创世区块到当前区块的一条最长主链,从而记录了区块链数据的完整历史。此特性能够提供区块链数据的溯源和定位功能,任意数据都可以通过此链式结构顺藤摸瓜、追本溯源。

3.4 区块链的共识机制

如何在分布式系统中高效地达成共识是分布式计算领域的重要研究问题,区块链技术的核心优势之一就是能够在决策权高度分散的去中心化系统中使得各节点高效地针对区块数据的有效性达成共识。通俗地来说就是区块链技术可以在海量的节点中选取出拥有合法记账权的节点,并对此节点生成的区块进行校验,以保证网络分布式记账的一致性。

早期的比特币区块链采用高度依赖节点算力的工作量证明(proof of work,PoW)机制来实现比特币网络的共识。其核心思想是通过引入分布式节点的算力竞争来保证数据一致性和共识的安全性[24]。PoW 共识机制很明显的缺点是强大的算力会导致大量的资源浪费(如电力)。随着区块链技术的发展和各种竞争币的相继涌现,研究者提出多种不依赖算力而能够达成共识的机制,例如点点币首创的权益证明(proof of stake,PoS)共识[25],PoS 共识本质上是采用权益证明来代替PoW 中的基于哈希算力的工作量证明,是由系统中具有最高权益而非最高算力的节点获得区块记账权。

Fig.4 Block structure of blockchain图4 区块链的区块结构

比特股首创了授权股份证明(delegated proof of stake,DPoS)共识机制[26],其基本思路类似于“董事会决策”,即系统中每个股东节点可以将其持有的股份权益作为选票授予一个代表,获得票数最多且愿意成为代表的前n个节点将进入“董事会”,按照既定的时间表轮流对交易进行打包结算并且签署(即生产)一个新区块。每个区块被签署之前,必须先验证前一个区块已经被受信任的代表节点所签署。“董事会”的授权代表节点可以从每笔交易的手续费中获得收入,授权代表节点必须对其他股东节点负责,如果其错过签署相对应的区块,则股东将会收回选票从而将该节点“投出”董事会。DPoS 共识机制中每个节点都能够自主决定其信任的授权节点且由这些节点轮流记账生成新区块,因而大幅减少了参与验证和记账的节点数量,可以实现快速共识验证。

本文中区块链技术所使用的共识机制借鉴于DPoS 机制但有所不同。系统中所有节点(属性授权机构AA)自动进入“董事会”并维护一个积分表,按照既定的时间表轮流对私钥生成操作进行记录并生成新区块。根据系统的负载情况,每一时间轮中拥有记账权的节点(即需要进行私钥分发工作的节点,当值节点)可能会有多个,而其他节点成为监督节点,验证当值节点产生的数据块的有效性。在一个时间轮结束后,所有合法数据块被整合到一个区块中并链接至上一区块,对生成过错误数据块的当值节点进行扣分,正确完成任务的当值节点进行加分,之后开始下一时间轮的工作。

4 BMAC

4.1 方案概述

BMAC 概述如下:首先,属性授权机构(AA)群执行系统初始化操作并生成系统属性与相关密钥;之后,当有用户想要分享数据文件时,他先选择n个对称密钥{ck1,ck2,…,ckn}用以对称加密这n个数据文件{f1,f2,…,fn},然后使用BMAC-CP-ABE 算法加密{ck1,ck2,…,ckn},并将生成的密文上传至云服务商(cloud server,CS);当有数据访问者(data visitor,DV)想要访问数据文件时,他先从AA 群处获取与其属性相关的私钥,然后从CS 处下载密文并尝试解密,若DV 的属性满足数据拥有者制定的部分访问控制策略时,他能解密得到部分对称密钥,满足全部访问控制策略时能得到全部的对称密钥,之后DV 使用他得到的对称密钥去解密密文,得到原始的数据文件。

4.2 安全性假设

本文认为在BMAC 中CS 是诚实且好奇的,即与相关工作[24]为相同的安全性假设,CS 将会诚实地执行用户所请求的操作,但它也试图获取存储在其中的机密数据文件和对称密钥。此外,CS 一直在线,提供稳定的服务。AA 被划分为当值AA 与监督AA,当值AA 会按照算法规则产生系统公钥、主密钥与用户私钥,但可能给用户分发与其属性不相符的私钥;监督AA 会对当值AA 的私钥分发工作进行监督。AA 一直在线,不会主动泄露系统主密钥和用户私钥,且有一种将私钥安全传输给用户的方法。用户可以随时获得系统的服务。此外,任何数量的未经授权的用户都可能发起串谋攻击并试图获取机密数据。

4.3 基于区块链的多授权机构密钥管理

在BMAC 中设计基于区块链的多授权机构密钥管理方法,首先描述了用作区块链共识与系统负载均衡的滑动窗口工作模式,之后描述了存储私钥的区块结构与AA 间的协作过程,最后描述了用户获取到错误私钥时的责任追究。

4.3.1 滑动窗口工作模式

基于DPoS 共识机制[26],设计滑动窗口工作模式确定系统中每个属性授权机构AA 的身份,保证AA轮流成为当值AA 或监督AA,不存在拥有特殊权利的AA,达到去中心化的目的,同时用于实现区块链的共识与系统的负载均衡。

系统建立时由首个AA 产生系统公钥、主密钥与区块链中加密数据的对称密钥,然后分发给其他AA共同维护。AA 群协商出一个时间轮表并维护一个积分表,每轮开始时,根据私钥分发的工作压力大小选择一个或多个AA 成为当值AA,其他AA 成为监督AA。当值时间结束时,工作窗口向右滑动。如图5所示,初始时工作量较小,工作窗口大小为1,AA1成为当值AA,其余成为监督AA。首个当值时间结束后向AA 群发起私钥申请的数量增多,工作窗口随之增大为3,因此第二个当值时间AA2、AA3、AA4成为当值AA,其余成为监督AA。第三个当值时间AA5、AA6、AA7成为当值AA,其余成为监督AA。第三个当值时间结束时工作压力有所减小,因此工作窗口减为2,第四个当值时间AA8、AA1成为当值AA,其余成为监督AA。

Fig.5 Slide work window图5 滑动工作窗口

4.3.2 区块结构与协作过程

每当用户向AA 群发起私钥申请工作,则全体AA 记录其用户编号UID与其拥有的属性集合Attrset。当值AA 为其分发私钥,并在完成时将数据写到Item 中,每个Item 可存10 条数据,每个Item block 拥有10 个Item 与一个header,Item 与Item block 的存储层级结构如图6 所示。其中header 中的IbID为此Item block 的 标 识 符,UIDs为 此Item block 中 所 有Item 中的UID合集,AID为完成此Item block 的AA的标识符。Item 中每条数据包含被分发私钥的用户的标识符UID、分发私钥时的时间戳Time、用户的属性集合Attr set、分发私钥过程中的随机数t、分发的私钥SK。在AA 完成了此Item block 之后,将其广播给其他AA,由监督AA 对其进行审计。每个监督AA会对此Item block 100 条数据随机抽取一到两条,首先用自己的UID与Attr set表审计此条数据中的Attr set是否错误,然后用Attr set、t、PK、MSK计算出SK,审计SK是否存在错误。若审计不通过,则广播此Item block 的IbID与出问题的UID,收到广播的所有AA 对此条可能出错的数据进行审计,若的确出错,则在系统积分表上对负责此数据的AA 执行扣分,负责此数据的AA 对此条数据进行重写并广播修改后的Item block。若审计通过,则广播通过。若所有监督AA 对此Item block 的审计均通过,则判定此Item block 合 法,对 负 责 此Item block 的AA 进 行 加分。在当值时间结束时,每个AA 对所有合法的Item block 进行哈希操作并生成存储私钥分发信息的Merkle 树,最后生成此当值轮的区块。为保证用户私钥的安全性,区块中的所有Item block 会被对称加密,然后此区块将其链到上一区块之后。所有AA 共同维护一条不可篡改的区块链。加密之前的每一区块的结构如图7 所示。

Fig.6 Structure of item block图6 Item block 结构

Fig.7 Structure of blockchain图7 区块链结构

4.3.3 责任追究

当用户私钥发现自己的私钥存在问题(自己的属性集满足访问结构却不能完成解密,或不满足访问结构却能解密)时,可以向AA 群提出申诉。

所有AA 根据申诉用户的私钥的时间戳来找到相应区块,然后根据每个Item block 的header 中的UIDs 找到此用户的私钥分发记录,重新对其进行私钥生成计算,若不存在错误,则驳回申诉;若的确存在错误,则对负责此用户私钥分发的AA 进行扣分,当值节点对此用户重新进行私钥分发工作。

每次产生扣分操作时,若某AA 的信用积分已低于0,则AA 群在此轮当值结束时将其踢出,并重新进行系统初始化。

4.4 BMAC-CP-ABE

BMAC-CP-ABE 算法包含4 个函数:系统建立、私钥生成、加密和解密,具体如下:

(1)系统建立

如函数1 所示,系统建立函数输入系统中的属性集合U和安全参数k,输出系统主密钥MK和系统公钥PK。

函数1系统建立

(2)私钥生成

如函数2 所示,私钥生成函数输入PK、MK、用户属性集合S,输出一个与S相关的用户私钥SK。

函数2私钥生成

(3)加密

如函数3 所示,加密函数以明文集{mj,j∈(1,n)},PK和LSSS 矩阵结构(M,ρ)为输出,输出密文CT。M的维度为l×n,Mi表示M的第i行,ρ(i)是将Mi映射到其代表的属性的函数。

函数3加密

(4)解密

如函数4 所示,解密函数以CT与SK为输入,输出明文集{mj,j∈(1,n)}。MA是由m中的一组行向量组成的矩阵,它对应于与SK相关联的属性集S。εj是长度为n的行向量,其第j个元素是1,其他的元素是0。I={i:ρ(i)∈S}。

函数4解密

4.5 BMAC 实现步骤

BMAC 包括6 个操作:系统初始化、数据文件加密、对称密钥加密、用户授权、对称密钥解密和数据文件解密。其实现步骤图如图8 所示。

(1)系统初始化

AA 群指定一个系统属性集U并调用函数1 生成主密钥MK和系统公钥PK。PK与MK由所有AA 共同维护。

(2)数据文件加密

数据拥有者(data owner,DO)选择n个对称密钥{ck1,ck2,…,ckn},并通过对称加密算法加密他的数据文件{f1,f2,…,fn}。数据文件密文表示为EF={Eck1(f1),Eck2(f2),…,Eckn(fn)}。此操作对应于步骤图中的步骤①②。

(3)对称密钥加密

DO 分别为他的数据文件{f1,f2,…,fn}定义访问树{T1,T2,…,Tn},并将它们集成到单个访问树T中。然后他使用标记法[27]将访问树T转换为访问控制矩阵(M,ρ)。之后他调用函数3 去加密他的对称密钥{ck1,ck2,…,ckn}并生成对称密钥密文CT,最后他将CT与EF发送至云服务商CS,并由CS 去存储它们。此操作对应于步骤图中的步骤③④⑤。

(4)用户授权

当任意DV 想要访问数据文件时,此DV 向AA群发起申请,AA 群中由滑动窗口工作模式选取出来的当值AA 调用函数2 以输出私钥SK,通过监督AA审计并确认合法后存储到区块链中,之后将SK通过安全通道传输给DV。此操作对应于步骤图中的步骤⑥。

(5)对称密钥解密

DV 从CS 处下载对称密钥密文CT,之后此用户调用函数4 去获得对称密钥。当他的属性能满足部分访问结构时,他能获取与这部分结合的对称密钥{ck1,ck2,…,ckn}。当且仅当他的属性满足整个访问结构时,他能获取到全部的对称密钥。此操作对应于步骤图中的步骤⑦⑧。

(6)数据文件解密

数据访问者从CS 中下载{Eck1(f1),Eck2(f2),…,Eckn(fn)},并使用对称密钥{ck1,ck2,…,ckn} 去解密数据文件{f1,f2,…,fn}。

Fig.8 Implementation steps of BMAC图8 BMAC 实现步骤图

为了进一步提高效率,进行了如下转换:

{ck1,ck2,…,ckn}为n个对称密钥。此外,调用函数3去加密{ck1′,ck2′,…,ckn′}并生成对称密钥CT。解密时,调用函数4 来获取对称密钥。在函数4 中,一旦成功获取到了ckj′,就能立马停止解密过程,因为凭借ckj′就能获取到其中包含的其他对称密钥。此操作对应于步骤图中的步骤⑨⑩。

5 安全性分析与性能评估

5.1 安全性分析

在4.2 节给出的安全性假设下,BMAC 具有数据机密性、串谋抵抗、细粒度访问控制和授权机构安全等安全特性。

(1)数据机密性

本文在Waters 的算法[9]的基础上设计了BMACCP-ABE,两者存在着一个主要的区别:在BMACCP-ABE 中,使用了秘密向量v中的所有元素来允许在一个访问控制策略中携带多个秘密,在该策略下,允许多个明文被加密。也就是说,BMAC-CP-ABE 利用了向量v中的所有元素,使用它们中的每一个元素分别加密明文,如函数3 所示;而在Waters 的算法中,向量中只有一个元素用于加密明文,对于多个明文,它们的算法需要多次执行。在文献[9]中,Waters 的CP-ABE 算法在d-Parallel BDHE 假设下是选择性安全的。因此,在相同的安全假设下,BMAC-CP-ABE具有相同的安全性。

(2)串谋抵抗

任何数量的未经授权的用户都可能为了访问机密数据文件而发起串通攻击。在BMAC-CP-ABE中,AA 群为每个用户随机选择一个元素t,并使用t为每个用户生成一个私钥。当用户解密密文时,首先要进行计算,这就要求其私钥的组成部分包含相同的t,也就是说,不同的数据访问者不能将其私钥进行集成以增强其解密能力,因为他们在私钥中的t值不同。因此,BMAC-CP-ABE能够有效地抵抗合谋攻击。

(3)细粒度访问控制

在BMAC-CP-ABE 中,LSSS 矩阵访问结构由支持“and”“or”与“of”阈值操作的访问树转换而来,它可以表示任何复杂的访问控制策略。只有拥有与访问结构匹配的属性的数据访问者才能成功获取明文。因此,BMAC 实现了细粒度的访问控制。细粒度访问控制可灵活地制定访问策略。基于CP-ABE的方案将制定访问策略的权利交给用户,更加符合数据共享场景。

(4)授权机构安全性

单授权机构系统存在着安全隐患,一旦授权机构被攻击者所控制或者发生变节,其可能隐晦地为一些非法用户分发超出他们访问权限的私钥,这导致整个系统不会立即崩溃,而非法用户能持续地获取任意数据文件,从而带来严重的安全威胁。区块链采用纯数学方法而不是中心机构来建立分布式节点间的信任关系,从而形成去中心化的可信任的分布式系统。在BMAC 中所有AA 会按照事先共同商定的规则轮流成为当值AA 或监督AA,不存在拥有特殊权利的AA,当值AA 进行的用户私钥分发工作会被监督AA 所监督,这些措施避免了单授权机构系统中CA 带来的安全问题。BMAC 中,当值AA 会将数据块对称加密之后再存储到区块中,区块与区块成链式结构,所有AA 共同维护这一条不可篡改的区块链,此方法保证了区块链数据不可篡改和不可伪造,因而具有较高的安全性。区块链采用带有时间戳的链式区块结构存储数据,从而为数据增加了时间维度,具有极强的可验证性和可追溯性,使得用户进行私钥出错申诉时可有效追究AA 的责任。

5.2 性能评估

方案的性能评估分两部分:一是在单授权机构场景下对BMAC-CP-ABE 的性能评估;二是在多授权机构场景下对AA 群的性能评估。

实验平台的配置为Windows 7 操作系统,Intel Pentium G4560 3.50 GHz 处理器,8.00 GB RAM 的个人PC,使用的语言为Java,算法的实现均基于JPBC(Java pairing-based cryptography library)[28]。该实现使用的双线性对为512 位有限域上,基于超奇异曲线y2=x3+x的160 阶A 型椭圆曲线组。最终的实验结果均为10 次实验的平均值。

5.2.1 单授权机构

单授权机构场景下,对BMAC-CP-ABE 的性能评估从两方面着手:一是算法的时间开销;二是私钥与密文的存储开销。均与AC-CP-ABE[18]、基于LSSS的CP-ABE(LS-CP-ABE)[9]、ACPC-CP-ABE[12]进行比较。

此外,还制定了以下访问策略:假设明文为M=(m1,m2,…,mn),对于AC-CP-ABE、LS-CP-ABE 与ACPCCP-ABE,加密m1,m2,…,mn需要分别制定n个策略:

BMAC-CP-ABE 对于这种n层的访问结构只需制定1 个策略:

时间开销的实验结果如图9 所示,存储开销如图10 所示。系统属性数量变化时,4种算法的私钥生成时间开销如图9(a)所示,私钥存储开销如图10(a)所示。而在文件访问结构层次变化时,4种算法的私钥生成时间与存储开销均不会发生变化。图9(b)和图9(c)显示了随着属性数量的增加,文件访问结构固定为两层时4种算法加密和解密的时间开销。在这种情况下,4种算法的密文存储开销如图10(b)所示。图9(d)和图9(e)分别显示了在系统属性数量n=30时,在不同的文件访问结构层次下4种算法的加密和解密时间开销。图10(c)是这种情况下4种算法的密文存储开销。

如图9(a)与图10(a)所示,随着系统属性数的增长,LS-CP-ABE、ACPC-CP-ABE 与BMAC-CP-ABE的私钥生成时间始终为AC-CP-ABE 的25%左右,LSCP-ABE 与BMAC-CP-ABE 略优于ACPC-CPABE,对于私钥存储开销,其他3种算法约为ACPC-CP-ABE的50%。如图9(b)、图9(c)、图10(b)所示,BMACCP-ABE 的加密时间优于AC-CP-ABE 与LS-CPABE,次于ACPC-CP-ABE,解密时间和密文存储开销均优于其他3种算法。如图9(d)、图9(e)与图10(c)中得到,在系统属性数不变,文件访问结构层次数增加时,BMAC-CP-ABE 的优势更加明显:AC-CPABE、LS-CP-ABE 与ACPC-CP-ABE 的加解密时间与密文开销仍然会线性增长,而BMAC-CP-ABE 是恒定不变且始终保持低水平的。以上实验结果验证了BMAC-CP-ABE 相较于已有的方案显著减少了私钥生成、加密和解密时间,以及私钥和密文存储开销。因此,通过BMAC-CP-ABE 可以高效地实现云环境中对大量数据文件的密文访问控制。

Fig.9 Time cost comparison of 4 algorithms图9 4种算法的时间成本比较

Fig.10 Storage cost comparison of 4 algorithms图10 4种算法的存储开销比较

5.2.2 多授权机构

在多授权机构场景下,对BMAC 生成私钥的时间开销与存储区块链产生的存储开销进行性能评估。

为直观起见,设AA 群共有10 个AA,当值AA 与监督AA 始终各为5 个,监督AA 对Item block 中数据的审计量为2%。区块中AID、UID、IbID、时间戳均以8 Byte 整形存储,属性的文字编码为UTF-8,长度限制12 Byte,对哈希树的哈希方法为AES256,不考虑AA 群中AA 相互沟通产生的时间开销。

图11 显示了系统属性数量为30 时,随着生成私钥数量的增长,AC-CP-ABE 单、多授权机构,BMACCP-ABE 单、多授权机构的时间消耗情况。图12 显示了这种情况下BMAC 中AA 群为存储区块链产生的额外存储开销情况。

如图11 与图12 所示,BMAC 引入区块链技术实现多授权机构密钥管理后,授权机构为用户分发私钥时产生的时间开销显著降低,为同方案单授权机构下的20%,对比使用传统方式实现多授权机构方案的AC-CP-ABE 为50%。引入区块链技术之后会产生额外的存储开销,但此开销较低,分发1 000 个私钥产生的区块大小仅为1.69 MB。在授权机构数量为10 个时整个系统的存储总开销为16.9 MB。在当前存储介质越来越廉价的环境下,这样以空间换时间的做法完全是可接受的。因此通过基于区块链的多授权机构密钥管理方法可显著提升授权机构的私钥分发效率。

Fig.11 Time cost comparison of two algorithms图11 两种算法的时间消耗比较

Fig.12 Storage cost of AA group图12 AA 群的存储开销

6 结论

现有的CP-ABE 没有考虑多个数据文件的访问结构之间存在层次关系,需要数据拥有者生成多个密文来实现多个数据文件的访问控制需求,这将给数据拥有者、数据访问者和云服务商带来大量的计算与存储开销;在已有的访问控制方案中亦未考虑单授权机构带来的安全性与可靠性问题。因此,本文设计了一种基于LSSS 的高效分层CP-ABE 算法,该算法使用一种集成的访问结构,能够同时对多个具有分层访问关系的数据文件进行一次性加密。当数据访问者的属性与访问结构的一部分或全部匹配时,他只需解密一次就可以获得与该部分关联的数据或全部数据。基于这种分层的CP-ABE 算法,本文提出了一种云环境中基于区块链的多授权机构访问控制方案BMAC。BMAC 能够实现安全、高效和细粒度的数据访问控制,显著减少了私钥生成、加密和解密时间,以及私钥和密文存储开销,同时利用区块链的特性使AA 群能够诚实、并行和去中心化地为用户分发私钥,并在私钥分发出错时还能进行责任追究。

猜你喜欢
私钥密文密钥
一种支持动态更新的可排名密文搜索方案
比特币的安全性到底有多高
幻中邂逅之金色密钥
幻中邂逅之金色密钥
基于模糊数学的通信网络密文信息差错恢复
嵌入式异构物联网密文数据动态捕获方法
Spatially defined single-cell transcriptional profiling characterizes diverse chondrocyte subtypes and nucleus pulposus progenitors in human intervertebral discs
程序员把7500枚比特币扔掉损失巨大
一种新的密文策略的属性基加密方案研究
Android密钥库简析