APP下载

基于区块链可撤销属性的去中心化属性基加密方案

2023-09-27马海英李金舟杨及坤

计算机应用 2023年9期
关键词:私钥密文解密

马海英,李金舟,杨及坤

(南通大学 信息科学技术学院,江苏 南通 226019)

0 引言

属性基加密(Attribute-Based Encryption,ABE)作为一种能有效地对外包数据实现细粒度访问控制的密码学原语,具有良好的应用前景,已成为近年来国内外学者的研究热点[1-4]。在密文策略的ABE(Ciphertext Policy Attribute-Based Encryption,CP-ABE)方案中,加密者为数据制定访问控制策略,并将该策略嵌入密文中,只有满足访问控制策略的用户才能成功解密。CP-ABE 更适合在不可信环境下进行数据安全共享。在现实物联网(Internet of Things,IoT)场景中,用户属性常常动态变化,访问数据的权限需要不断调整。因此,如何构造高效可撤销用户属性的CP-ABE 方案至关重要。

为了实现用户属性的撤销,Yang 等[5]通过更新相关密文和密钥,提出一种高效撤销用户属性的多权威CP-ABE 方案,并应用于云存储的访问控制系统。但Hong 等[6]针对Yang 等[5]的多权威CP-ABE 方案,证明一个撤销的用户依然能成功解密更新后的密文,因此该可撤销属性的多权威CPABE 方案不满足后向安全性。Xiong 等[7]提出一种可撤销的多权威属性基加密方案,该方案需要利用一个完全可信的属性权威管理模块提供云存储的访问控制功能,很难应用到不可信的物联网场景中,拓展性有待进一步完善。

由于属性撤销的计算开销较大,Deng 等[8]利用可外包解密的ABE 方案[9]构造一个可撤销用户的属性基数据存储方案,但用户属性密钥的生成和分发难以协调,且密钥管理过程不透明。Ming 等[10]提出了一种高效可撤销的云存储加密方案,通过在属性中添加版本密钥,实现用户属性的撤销。Ge 等[11]提出一种可撤销的属性基数据存储方案,使被撤销的移动设备无法访问任何文件。Ali 等[12]提出一种轻量级的可撤销分层ABE 方案,使用分层模型提供了灵活和可扩展的用户撤销机制。然而上述方案的安全性完全依赖于可信的密钥生成中心,且存在属性撤销效率低、用户属性密钥难协调、属性密钥管理不透明等问题,难以保障系统安全性。

区块链[13]作为一种新型的去中心化协议,能在不可信的环境中建立节点之间的信任,为解决ABE 中属性密钥的高效撤销提供了一种有效解决方法。Xu 等[14]提出一种基于区块链的移动网络身份管理和认证方案,用户自己控制共享数据的访问权限,灵活度高。Luo 等[15]提出一种基于区块链同态加密的聚合方案,使用粒子群优化算法和智能合约进行自动调度,确保数据的有效共享。Sun 等[16]利用区块链技术设计了一种防篡改的车联网数据共享方案,用户使用一个授权聚合密钥能高效地访问车联网数据。Huang 等[17]提出一种基于区块链的隐私保护医疗数据共享方案,使用代理重新加密和零知识证明技术,提高了数据共享的安全性。Ma 等[18]提出一种基于区块链数据众筹的细粒度授权机制,数据所有者负责颁发属性私钥和加密数据,但可能成为系统的瓶颈。由此可见,区块链辅助数据共享和数据交易在各个领域得到了广泛研究,但文献[14-18]中的方案在数据共享过程中,无法保证前向和后向安全性。

为了提高用户属性撤销的效率,本文将区块链和多权威的CP-ABE 相结合,提出一种新的基于区块链可撤销属性的去中心化属性基加密(Blockchain-based Decentralized Attribute-Based Encryption for Revocable attribute,BRDABE)方案。利用共识驱动的区块链构架,将密钥分发的信任问题从属性权威映射到分布式账本上,利用智能合约协助属性权威实现对用户属性的撤销。当撤销用户属性时,属性权威利用智能合约记录撤销用户的属性状态,生成与撤销属性相关的密文更新钥和密钥更新钥,通过安全信道将密文更新钥发送给数据拥有者,将密钥更新钥发布在区块链上。未撤销用户利用密钥更新钥更新他的属性私钥,数据拥有者更新与撤销属性相关的密钥密文。通过安全性证明和效率分析,本文方案不仅提高了属性撤销的效率,而且保障了共享数据的前向和后向安全性。

1 相关技术

1.1 合数阶双线性群

设G(λ) →(N=p1p2p3,G0,G,e) 表示双线性群生成算法,λ为系统安全参数,输出结果(N=p1p2p3,G0,G,e)用来描述双线性群。G0、G是阶为N=p1p2p3的乘法循环群,其中p1、p2、p3为三个不同的大素数,Gi是群G0的阶为pi的子群,i=1,2,3。G0到G的双线性映射e:G0×G0→G满足以下性质[19]:

1)双线性性:∀g,h∈G0,x,y∈ZN,都有e(gx,hy)=e(g,h)xy。

2)非退化性:如果g是G0的生成元,那么e(g,g)是G的生成元。

3)可计算性:对于任意的g,h∈G0,存在一个多项式时间算法计算e(g,h)。

4)子群正交性:对于任意的gi∈Gi,gj∈Gj,若i≠j,那么有e(gi,gj)=1。

1.2 访问控制结构

假设P是n个实体的集合,P={p1,p2,…,pn}。访问控制结构A[5]是P的非空子集合,如果集合A是单调的,对于任意集合X和Y,如果X∈A,且X⊆Y,则Y⊆A。单调的访问控制结构意味着A是单调的,如果集合Z包含访问控制结构A中的元素,Z为授权集合;否则Z为非授权集合。

1.3 多权威属性基加密

BRDABE 方案基于多权威 DABE(Decentralizing Attribute-Based Encryption)[1]进行构造,该方案中没有中央权威机构,满足去中心化,DABE 的形式化定义如下:

1)系统初始化算法:Global Setup(λ)→(GP)。系统管理员执行系统初始化算法,输入安全参数λ,输出全局公共参数GP。

2)属性权威初始化算法:Authority Setup(GP,S)→(PK,SK)。属性权威执行初始化算法,输入全局公共参数GP和用户属性集合S,输出公私钥对(PK,SK)。

3)加密算法:Encrypt(M,A(A,ρ),GP,{PK})→CT。数据拥有者执行加密算法,输入共享数据M,访问控制策略A(A,ρ)(A是一个n×l矩阵),系统公共参数GP,属性公钥集{PK},输出数据密文CT。

4)属性私钥生成算法:KeyGen(GID,i,SK,GP)→Ki,GID。属性权威执行属性私钥生成算法。输入用户全局身份GID,属性权威管理的属性i和该属性权威的私钥SK,输出属性私钥Ki,GID。

5)解密算法:Decrypt(CT,{Ki,GID},GP)→M/⊥。数据申请者执行解密算法,输入密文CT,属性私钥集{Ki,GID},系统公共参数GP,若满足访问控制策略A(A,ρ),则输出M;否则输出⊥。

1.4 区块链

区块链集成了分布式数据存储、对等网络、密码算法和共识机制等技术,能将时序的交易数据以单向链表的区块结构形式存储在分布式数据库账本中,具有去中心化、公开透明、不可篡改、安全可信、可追溯等特点。在多利益主体参与的场景下,通过区块链构建去中心化的共享平台,并利用对等网络进行节点间的数据传输,采用带时间戳的链式区块结构存储共享数据,能增强可验证性和可追溯性;采用数字签名技术可保障数据的不可篡改性,同时实现问责制度[18]。因此,区块链能在不可信的环境中建立节点间的信任,是保障分布式物联网场景中数据安全共享的潜在解决方案。

智能合约在区块链平台得到了广泛应用,能利用智能合约提高区块链的去中心化、公开透明、不可篡改等特性,更适用于实现复杂完备的业务逻辑。BRDABE 方案的智能合约在Hyperledger Fabric 中部署测试,运行环境是docker 容器,在满足触发条件的情况下,智能合约将自动执行一些预定义的功能,然后生成交易或调用其他智能合约。本文利用智能合约记录用户属性和数据共享的状态,协助属性权威实现用户属性的撤销。

2 BRDABE模型

2.1 BRDABE模型结构

BRDABE 的模型结构如图1 所示,共包含以下6 个实体:

图1 模型的结构Fig.1 Structure of model

1)系统管理员(System Manager,SM):创建区块链,构建数据共享平台。当数据拥有者(Data Owner,DO)、数据申请者(Data Requester,DR)和属性权威(Attribute Authority,AA)向系统发起注册时,SM 验证身份,为合法用户分配公私钥对和区块链上的钱包地址,该钱包地址可标识用户的唯一身份。SM 生成系统全局公共参数GP 并将它记录到创世区块中。

2)区块链B(Blockchain):记录系统中数据共享的过程和细粒度授权过程的分布式账本。区块链记录着DR 及其属性集合之间的映射关系,并且发布用户属性状态的变化、共享数据的描述信息,从而保障了数据共享的安全性、不可篡改性和可审计。区块链利用智能合约辅助实现用户的属性撤销,DO 只需更新部分密文,未撤销DR 更新相应的密钥,减小了属性撤销的计算开销。此外,数据密文和会话钥密文存放在云服务器中,仅将这些密文的存储地址存放到区块链的交易中,这种存储模式不仅可以减小区块链的存储开销,还可以提高区块链系统的吞吐量。

3)属性权威(AA):每个AA 彼此相互独立,审核数据申请者(DR)的身份,并且根据它管理的一组属性为DR 生成相应的属性私钥。当DR 的属性撤销时,负责管理该属性的AA执行属性撤销合约,更新DR 当前的属性状态,将该过程作为一条交易记录到区块链上。为了防止AA 和DR 之间的串谋攻击,本文方案从拥有数据量较多的DO 中选出属性权威,这意味着AA 与DR 之间进行合谋攻击,将会威胁自身的经济利益,从而确保了数据共享的安全性。此外,拥有数据量较大的DO 通常是行业可信度高的企业或政府部门,例如三甲医院、公安部门等,它们成为属性权威能诚实可靠地审核DR 的属性和身份信息,与数据量小的DO 相比,有更高的可信度和更高质量的数据。

4)数据拥有者(DO):根据物联网数据特征,制定相应的访问控制策略。每个DO 首先选取一个会话密钥κ来加密数据,利用AES(Advanced Encryption Standard)对称加密算法计算生成数据密文DCT;然后,利用访问控制策略对会话密钥执行BRDABE 属性加密算法,生成会话密钥密文KCT;当AA撤销DR 的属性时,DO 利用AA 发送的密文更新钥,计算与撤销属性相关的密文,生成更新后的密钥密文。

5)数据申请者(DR):每个DRj根据自身需求在系统中检索共享的物联网数据,DRj通过关键字检索共享数据的描述信息找到合适的数据。DRj调用策略匹配函数PolicyM(∙)对自身当前的属性集进行策略匹配,若满足该共享数据的访问控制策略,DRj下载并解密密文。

6)云服务器(Elastic Cloud Server,ECS):ECS 是半可信实体,用于存储物联网(IoT)数据密文和会话密钥密文。由于区块链不适合存储数据量较大的数据,当DO 将会话密钥密文和数据密文上传到ECS 时,会获取一个哈希字符串(URL),该字符串即文件存放位置。当DR 解密数据时,DR将属性私钥集合发送给云服务器,云服务器利用转换密钥解密密钥密文,生成转换密文,发送给DR。

2.2 BRDABE形式化定义

BRDABE 由11 个算法组成,它们的形式化定义如下:

1)SMSetup(λ)→{GP,(sk0,pk0)}。SM 执行系统初始化算法,输入为安全参数λ,输出为系统参数GP和公私钥对(sk0,pk0)。

2)AAReg(InfoAA)→{aid}。SM 执行属性权威注册算法,输入为属性权威的信息集合InfoAA,输出为属性权威的钱包地址aid。

4)UserReg(GP,pk0,Infouid)→{uid,(pkuid,skuid),Cer(tuid)}。SM 执行用户注册算法,输入为系统参数GP,系统管理员SM 的公钥pk0,用户的身份信息Infouid。系统首先验证用户的身份,并为合法用户颁发全局唯一的身份uid。算法的输出为用户身份uid,一对全局公私钥对(pkuid,skuid)和验证证书Cer(tuid)。

7)PDCTGen(KCT,dfuid,pkuid,{askaid,uid,i|k∈SA,i∈Said})→CTc。服务器执行预解密算法,输入为解密因子dfuid,密钥密文KCT,用户公钥pkuid和密钥集合{askaid,uid,i|k∈SA,i∈Said}。当用户uid拥有的属性满足访问控制策略时,服务器运行该算法生成正确的转换密文CTc。

8)Decryp(tCTc,skuid)→κ。DR 执行解密算法,输入为转换密文CTc,用户私钥skuid,输出为会话密钥κ。

9)UKeyBase(SKaid,{pkuid},VKaid,i)→(KUKuid,i,CUKi),其中,uid∈Uaid。AA 执行更新钥生成算法,输入为私钥SKaid,当前的属性版本钥VKaid,i,以及所有未撤销用户的全局公钥集合,输出为用户的密钥更新钥KUKuid,i和密文更新钥CUKi。

10)SKUpdate(askaid,uid,i,KUKuid,i)→。未撤销属性的DR 执行密钥更新算法,输入为当前的密钥askaid,uid,i,以及密钥对应的密钥更新钥KUKuid,i,输出为更新后的属性私钥

11)KCTUpdate(κ´,KCT,CUKμ)→KCTUPD。DO 执行密钥密文更新算法,输入为会话密钥κ΄、当前的密钥密文KCT和密文更新钥CUKμ,输出为更新后的密钥密文KCTUPD。

2.3 安全性模型

定义2 BRDABE 的安全性。若σ΄=σ,则攻击者赢得游戏,否则挑战者赢得游戏。此游戏中攻击者赢得这个游戏的优势为如果任意多项式时间内,攻击者赢得上述游戏的优势都是可以忽略的,则称BRDABE 方案是适应性安全的。

3 BRDABE方案

BRDABE 方案主要包括七个阶段:系统初始化、属性权威初始化、用户注册、用户属性私钥生成、数据加密、数据解密和属性撤销。

3.1 系统初始化

系统管理员SM 执行算法SMSetup(λ)→(GP,(sk0,pk0)),输入安全参数λ,选择一个阶数为N=p1p2p3的双线性群G,其中p1、p2、p3是三个不相同的大素数。然后SM 构建联盟链,为SM 自己选择唯一身份idSM。SM 选择双线性映射e:G×G→GT,令Gi是循环群G的pi阶子群,随机选择一个生成元g∈G1,选择一个hash 函数H:{0,1}*→G,该函数可以将属性映射到群G中的元素,得到系统公共参数:

最后,SM 为自己生成一对公私钥(sk0,pk0),将公钥pk0和系统的全局公共参数GP记录到创世区块中,便于用户从区块链中获取全局公共参数GP和系统管理员公钥pk0。

3.2 属性权威初始化

每个属性权威AA 向SM 申请属性管理权限,SM 为合法的AA 生成一个钱包地址aid并授予AA 相关的属性域管理权限,其中钱包地址aid用于标识属性权威的唯一身份。身份为aid的AA 执行算法AASetup(GP,aid,{i|i∈Said})→(PKaid,SKaid,{PKaid,i,VKaid,i|i∈Said}),其中,Said是AAaid管理的属性集合。假定身份为k的属性权威AAk管辖的属性域是Sk,AAk从创世区块中读取全局公共参数GP和系统管理员公钥pk0,随机选取βk∈ZN作为AAk的私钥,即SKk={βk}。此外,AAk选择随机数vk,i作为属性i的版本私钥VKk,i=vk,i,得到属性版本私钥集合{VKk,i=vk,i,vk,i∈ZN}。对于每个属性i∈Sk,AAk计算第i个属性公钥:

AAk得到所管辖的属性公钥集:

然后AAk计算它对应的授权公钥:

最后,系统管理员将AAk中每个属性i对应的一组属性公 钥{PKk,i|i∈Sk}和一组哈希值{H(i) |i∈Sk}与授权公钥PKk记录到列表LAA-att中,该列表会记录在区块链上。其他属性权威以相同的方式进行注册验证并获取属性私钥分发的权限。

3.3 用户注册

SM 执行用户注册算法UserReg(GP,pk0,Infouid)→{uid,(pkuid,skuid),Cer(tuid)}。用户DR 向SM 申请注册,提交身份描述信息InfoDR(如姓名、邮箱等),SM 验证用户的InfoDR,为该用户选择一个钱包地址uid,该钱包地址用于标识用户的唯一身份。根据用户的钱包地址uid,SM 随机选择uuid,zuid∈,计算该用户的公钥,用户私钥sk=z。然后,SMuiduid利用私钥sk0为用户计算数字签名,生成该用户的数字证书Cert(uid)。SM 将全局公私钥对(pkuid,skuid)和Cer(tuid)通过秘密信道发送给用户,并将用户的pkuid记录在区块链上。

3.4 用户属性私钥生成

假定第j个数据申请者DRj向第k个属性权威AAk申请属性私钥,Uk是AAk域内的用户集合,SA是属性权威集合,j∈Uk,k∈SA,AAk管理的属性域为Sk,DRj申请的属性i∈Sk。DRj向AAk申请属性私钥,提交Cert(uid),AAk利用pk0验证该用户DRj的身份信息,得到。如果用户身份不合法,密钥生成请求失败。对于合法用户,AAk调用密钥生成算法为DRj计算第i个属性私钥askk,j,i:

最后,AAk利用RSA(Rivest Shamir Adleman)加密算法Enc(pkj,{askk,j,i})计算得到该用户属性私钥集合的密文该交易记录到用户属性列表LDR-Att中,将列表LDR-Att作为一条交易记录到区块链上,同时记录下该条交易的索引TXk,j。数据申请者DRj可以根据交易索引TXk,j从区块链中获取属性私钥密文,并使用自己的私钥skj解密密文。此外,LDR-Att中记录着所有DR 的属性集合,方便其他用户进行验证。以相同的方式,DRj可以从其他属性权威获得所有的属性私钥

3.5 数据加密

每个DO 对待共享数据M制定访问控制策略,将访问控制策略嵌入到待共享数据的密文中。DO 首先选择会话钥κ,利用AES 对称加密算法AES.enc(κ,M),得到数据密文DCT=AES.enc(κ,M)。然后,DO 为共享数据M制定一个访问控制策略A(A,ρ),其中A是一个n×l矩阵,ρ是一个从集合{1,2,…,n}到属性集合U的映射。

此外,DO 将密钥密文KCT上传到云服务器中。

3.6 数据解密

在云存储系统中,任何合法用户都可以从云服务器获取任何感兴趣的密文。但是,只有当用户的属性满足访问控制策略,才能解密获得会话密钥,并利用会话密钥进一步获取共享数据。为了减少用户的计算开销,将解密过程的计算密集型的双线性对等复杂运算外包给云服务器,得到一个转换密文CTc,用户仅计算一次幂乘和一次乘法运算,即可得到会话密钥κ,利用κ解密数据密文DCT,获取物联网数据。假设数据申请者DRj满足DO 共享数据Mx的访问控制策略A(A,ρ),DCTx为Mx的数据密文,KCTx为Mx的会话密钥密文,DRj的属性私钥集为解密过程如下:

1)生成转换密文。DRj通过关键字检索物联网数据,然后调用策略匹配函数,DRj的属性集满足Mx的访问控制策略A(A,ρ),获取DCTx和KCTx,数据获取过程记录在共享列表Ldata中。DRj利用KCTx中的C1,i计算解密因子dfj:

DRj通过安全信道将发送给ECS,ECS 从用户属性列表LDR-Att中检索与DRj相关的属性公钥集{PKk,j},然后计算属性的公共子集Pj,A={ρ(i),i∈l}∩{PKk,j}。对于集合Pj,A中的这些属性,ECS 进一步检查是否存在子集Ic,使得Ic是向量(1,0,…,0)的线性组合。如果不存在,则终止解密。如果存在,ECS 选择一组常量{ci∈ZN},使得,执行算法PDCTGen(KCT,dfj,pkj,,计算得到转换密文CTc:

其中:ωi=Ai∙v;λi=Ai∙v,v∙(1,0,…,0)=s,ω∙(1,0,…,0)=0,Ai表示A的第i行。

2)解密数据密文。CServer 通过安全信道将CTc发送给DRj,DRj利用私钥skj解密CTc,恢复会话密钥:

DRj利用κ解密DCTx得到Mx,即Mx=dec(κ,DCTx)。

3.7 属性撤销

假设DRφ的属性μ被AAk撤销,撤销过程如下:

2)DO 更新会话钥密文。DO 通过安全信道获取CUKμ,更新与撤销属性μ相关的会话钥密文KCTx。DO 重新选择会话钥κ´,利用AES 对称加密算法AES.enc(κ´,M)加密数据,得到DCTUPD,该过程可预先处理。然后DO 运行算法CTUpdate(κ´,KCT,CUKμ)→KCTUPD,利用CUKμ对KCT进行更新,得到新的会话密钥密文KCTUPD:

DO 将更新后的KCTUPD重新上传云服务器,密文组件CTμ={C0,C3,i}的更新为主要开销,而DO 在本地可预先生成C0,所以KCTUPD的主要开销是更新与撤销属性μ相关联的密文C3,i,部分密文组件的更新极大地提高属性撤销的效率。通过AAk提供的密文更新钥,本方案可以保证访问控制系统的前向安全性,即新加入的用户如果拥有满足访问控制策略的属性,就能够解密密文。

3)未撤销用户更新属性私钥。当密钥密文发生改变后,满足该密文访问控制策略的未撤销授权DR 需要更新其属性μ的私钥。AAk在列表LDR-Att中记录更新属性μ私钥的用户列表{listDR},AAk通知{listDR}中的每个用户更新属性μ私钥。每一个拥有属性μ的未撤销的授权DRj(j∈SU,j≠φ),通过智能合约获取密钥更新钥KUKj,μ,DRj执行算法SKUpdate(askk,j,μ,KUKj,μ)→{ask´k,j,μ},利用KUKj,μ更新属性私钥askk,j,μ为中的Kj,μ:

由于DRj的钱包地址uj唯一,这些密钥更新钥KUKj,μ对于所有未撤销的用户都是不同的。因此,被撤销的用户DRφ无法使用其他未被撤销的用户的更新密钥KUKj,μ,更新自己的属性私钥,保证了数据共享的后向安全性。

4)其他授权用户解密新版本密文。授权用户DRj(j∈SU,j≠φ)获取新的密钥密文KCTUPD和数据密文DCTUPD,向ECS 发送新的密钥集合,ECS 执 行PDCTGen解密得到转换密文CTc,DRj利用私钥skj解密CTc,恢复会话密钥κ´,解密DCTUPD得到共享数据Mx。

4 安全性分析与性能评估

4.1 正确性证明

当DRj属性满足密钥密文KCT的访问策略A(A,ρ),则存在ωx=Ax∙ω,λx=Ax∙v,v∙(1,0,…,0)=s,ω∙(1,0,…,0)=0,通过解密算法可得转换密文CTc:

最后,DRj通过会话密钥κ对密文进行解密以获得共享数据的明文M=AES.dec(κ,DCT)。

4.2 安全性证明

定理1 假设属性权威和用户不会串谋,BRDABE 方案能够抵抗属性撤销用户的合谋攻击。

证明 在BRDABE 方案中,假设属性权威和用户不会串谋,SM 为每个合法用户生成一个区块链上的钱包地址uid用于标识用户的唯一身份。每个AA 为数据申请者颁发的属性私钥与UID相关联。因此,对于那些不满足访问控制策略的数据申请者,即便想要合谋解密他们各自无法单独解密的密文时,也无法解密密文,因为他们没有相同的属性私钥组件。另一方面,假设存在一个来自合谋用户的属性子集,使得,而根据数据申请者的UID不同,他们的身份、公私钥和属性私钥也不同,因此无论合谋用户怎样组合都无法解密密文。因此,本方案可以保证数据共享的安全性,抵抗非法用户与其他用户之间的合谋攻击。证毕。

定理2 假设密文和密钥更新算法可以正确执行,当撤销用户的某一属性时,BRDABE 方案可以同时保持前向安全性和后向安全性。

证明 在BRDABE 方案中,假设密文和密钥更新算法可正确执行,当用户DRφ的属性μ被撤销时,所有未撤销的用户的密钥和云服务器中与撤销属性相关的所有密文将被更新,已知密钥更新钥和密文更新钥,密文和密钥组件更新如下:谋,DRφ仍然无法更新其属性私钥,因为密钥中的可以

即使被撤销的用户DRφ可以与一些未被撤销的用户合阻止被撤销的用户DRφ通过合谋未被撤销用户的KUK来更新密钥。因此,被撤销用户DRφ具有旧版本密钥,无法解密更新后的密文,而更新后的密文只能通过新版本密钥进行解密,这保证了方案的后向安全性。此外,在BRDABE 方案中,密文更新由DO 实现,AAk管理撤销的属性,如果云服务器负责更新密文,则该机制可以抵抗基于云的共谋攻击。如果一个新的数据申请者属性能够满足嵌入到先前会话密钥密文中的访问策略,那么数据申请者仍然可以解密密钥密文,这可以保证本方案满足前向安全性。综上,BRDABE 方案可以保证物联网数据的前向安全性和后向安全性。证毕。

4.3 功能和性能分析

本节通过仿真实验对本文提出的方案进行分析与验证,将BRDABE 方案与现有的方案进行了对比,包括DABE[1]、BDABE(Blockchain-based DABE)[19]、EDAC-MCSS(Effective Data Access Control for Multiauthority Cloud Storage Systems)[5]和 SEM-ACSIT(Secure and Efficient Multiauthority Access Control for IoT Cloud Storage)[7]。

本文的实验环境如下:操作系统为Windows 10,处理器为Intel Core i5-7300,CPU 频率2.5 GHz,内存为16 GB。本文基于虚拟机搭建区块链系统,区块链环境为Hyperledger Fabric 2.4,本方案设计了两个智能合约:共享合约(Shared Contract,SC)和属性撤销合约(Attribute Revocation Contract,ARC),在Hyperledger 环境下的docker 容器中测试了合约。采用JPBC(Java Pairing Based Cryptography library 1.2.1)加密库。所有结果在100 次模拟测试中取平均值。

4.3.1 功能分析

将BRDABE 和相关方案[1,5,7,19]进行功能对比。DABE[1]和BDABE[19]都不能实现用户属性撤销的后向安全性。Yang等[5]提出了可撤销用户属性的多权威ABE 方案EDACMCSS;然而Hong 等[6]通过反证法证实EDAC-MCSS 不满足后向安全性,而且利用云服务器进行密文更新,无法抵抗共谋攻击;Xiong 等[7]在EDAC-MCSS 方案的基础上,提出了一种多权威可撤销的属性基加密(SEM-ACSIT)方案,但该方案中存在完全可信实体AAM(Attribute Authority Management),而在分布式物联网场景中很难找到这样的完全可信实体。因此,上述方案[5,7,19]只满足较弱的选择性安全模型,即在系统初始化之前选定撤销用户的属性集,然而,在不可信的IoT环境中攻击者能自适应地选择撤销用户的属性集合,所以,这些方案[5,7,19]无法满足实际IoT 应用场景的安全需求。

本文的BRDABE 方案能够满足适应性用户属性撤销的安全需求,且无须任何可信权威中心,将用户属性撤销的过程记录到区块链的分布式账本上,通过链上链下相结合的方式,对密文和密钥中的版本钥组件进行更新,实现了用户属性撤销的前向和后向安全性。

4.3.2 性能分析

将本文方案与SEM-ACSIT 和EDAC-MCSS 方案的存储开销进行对比,如表1 所示。其中:nk表示AAk管理的属性数量;NA表示云存储系统中所有属性权威的数量;|G|表示群元素的大小;nk,j表示从AAk分配给用户j的属性数;Lu表示访问列表的长度;tc表示嵌入在密文中的访问策略中的属性数。在SEM-ACSIT 方案中,新引入的AAM 模块主要存储所有AA的授权公钥和它管理的所有属性公钥。虽然利用AAM 存储公钥可以在系统级别上减小数据共享者的存储开销,但是增加了系统的额外开销。本文的BRDABE 利用区块链存储AA的授权公钥与它管理的所有属性公钥,既减小了数据共享者的存储开销,又保障了共享过程的安全性和可追溯性。此外,BRDABE 的数据共享者的存储开销是恒定的。然而,EDAC-MCSS 方案中数据共享者的存储开销取决于属性权威的总数和AAk管理的属性数。当公钥数过多或存储出现冗余时,EDAC-MCSS 方案的存储开销高于BRDABE。

表1 不同方案的存储开销对比Tab.1 Storage overhead comparison of different schemes

5 种方案的计算开销如表2 所示。其中:p为双线性映射e上的1 次配对操作;E为群上的1 次幂乘运算;m为1 次乘法运算;N和n为方案中属性权威和用户的总数;R为撤销属性的个数;AE为访问控制策略中的属性个数。与DABE 和BDABE 相比,BRDABE 实现了用户属性撤销的前向和后向安全性。在加密部分,BRDABE 比DABE 少1 次幂乘运算,比BDABE 少了2 次幂乘运算,多了1 次双线对运算,增加的计算开销在可接受范围内;解密部分,BRDABE 的计算开销低于DABE 和BDABE,用户仅需执行1 次幂乘和乘法运算。BRDABE 采用外包解密,云服务器生成转换密文发送给用户,减小了用户的计算开销。属性撤销时,AA 生成密钥和密文更新钥,DO 和DR 并发更新,针对1 个撤销属性,DR 更新密钥的计算量为1 次乘法运算,DO 执行密文更新的计算量为1 次乘法运算,计算量低于EDAC-MCSS 和SEM-ACSIT。

表2 不同方案的计算开销对比Tab.2 Computating overhead comparison of different schemes

4.3.3 BRDABE实验结果和相关工作性能比较

表3 是AA 数保持为2,AA 管理的属性数改变时,不同方案密钥生成时间对比。相较于BDABE,本文方案的密钥生成时间缩短了47.46%~54.35%。主要因为在合数阶群上本文方案比BDABE 少执行2 次幂乘运算。当属性数较大时,BRDABE 比DABE 的密钥生成时间更长,但可以接受。

表3 不同方案的密钥生成时间对比Tab.3 Comparison of key generation time of different schemes

在加密实验中,本文对256 b 的会话密钥进行了加密测试,结果如表4 所示。相较于DABE,本文方案的加密时间缩短了0.73%~2.28%。主要原因是,本文方案相较于DABE 少了1 次幂乘运算,因此时间开销低于DABE。此外,在数据共享的前,DO 可以利用高性能计算机提前对加密操作预处理,因此,链下执行的加密操作不会增加数据共享的时间。

表4 不同方案的加密时间对比Tab.4 Comparison of encryption time of different schemes

在解密实验中,本文对256 b 的会话密钥进行了解密测试,结果如表5 所示。解密时间随着访问控制策略中的属性个数的增加而增加,相较于BDABE 和DABE 方案,本文方案数据解密时间分别缩短了61.67%~65.98% 和94.06%~94.75%。本文方案将解密的大量运算交给高性能云服务器处理,然后将解密后的转换密文发给用户,用户只需要执行1 次幂乘运算和1 次乘法运算即可解密获取数据,这减少了用户的计算开销,更适合计算力较低的物联网设备。

表5 不同方案的解密时间对比Tab.5 Comparison of decryption time of different schemes

在属性撤销实验中,本文分别对密文更新和密钥更新进行了测试,如表6 所示。相较于EDAC-MCSS 方案和SEMACSIT 方案,本方案属性撤销时间缩短了92.19%~92.27%和92.49%~93.49%。主要原因是,密钥更新时本文方案的用户只需执行1 次乘法运算,EDAC-MCSS 需多执行1 次幂乘运算,SEM-ACSIT 需多执行2 次幂乘运算。密文更新时,针对每个撤销属性,DO 只需执行1 次乘法运算,而EDAC-MCSS和SEM-ACSIT 需多执行1 次幂乘运算。总之,本方案的撤销耗时较少,适合多撤销场景下的数据共享。

表6 不同方案的属性撤销时间对比Tab.6 Comparison of attribute revocation time of different schemes

4.3.4 区块链和BRDABE各阶段的实验结果

结合区块链和上述核心算法的实验结果,本文对BRDABE 方案的系统初始化、属性权威初始化、用户注册、数据加密、数据解密和属性撤销阶段进行了全面的实验评估。本文假设以下场景:有三个属性权威,AA1管理属性集{工作单位},AA2管理属性集{职称},AA3管理属性集{部门}。DR1和DR2分别是A 公司的信息部经理和销售部经理,因工作要求需要获取公司一季度的能源消耗数据M1,公司使用本文提出的数据共享方案控制数据的访问。在系统部署时,GP记录在创世区块中,方便共享过程的验证,存储开销为5 KB,BatchTimeout 设置为60 s,因此创世区块的生成耗时为60 s。属性权威执行AASetup 算法,生成属性公钥并记录到列表LAA-att中,耗时约为1 360 ms,存储数据为{{工作单位},{职称},{部门}},存储开销约为1.6 KB。

DR1和DR2在进行注册时,SM 对它们的身份进行验证,AA1、AA2和AA3并发执行BRDABE 密钥生成算法,为DR1和DR2生成属性私钥集{A 公司,信息部,经理}和{A 公司,销售部,经理},耗时约为2 510 ms。AA1、AA2和AA3将密钥生成过程作为交易,记录在区块链的用户列表LDR-Att中,存储数据为{DR1,GPK1,{A 公司,信息部,经理},{KSK1}}和{DR2,GPK2,{A 公司,销售部,经理},{KSK2}},存储开销为2.6 KB,耗时33 ms。其中,GPK1和GPK2分别是DR1和DR2的全局公钥,{KSK1}和{KSK2}是DR1和DR2的属性私钥密文。

DO1设定能源消耗数据M1的访问控制策略为{A 公司∧(销售部∨信息部)∧总经理},M2的访问控制策略为{A 公司∧(销售部∨信息部)}。DO1执行BRDABE 加密算法,生成数据密文和密钥密文,并上传到云服务器,加密耗时为5 600 ms,由于数据加密过程可预先处理,该过程不会增加共享时间。DO1通过智能合约将M1和M2的描述信息发布到区块链中,描述信息为{{KSx},A(A,ρ)x,tvalid,{PKk,i|i∈Sk},x=1,2,…,m},存储开销约为2.5 KB,耗时约为53 ms。其中,{KSx}是描述数据Mx的关键字集合,A(A,ρ)x是访问控制策略,tvalid是数据生成日期,{PKk,i|i∈Sk}是属性公钥的集合。

DR1和DR2调用共享合约中的策略匹配算法,对其属性集进行策略匹配,由于DR1和DR2满足M1和M2的访问控制策略,将DR1和DR2的身份加入M1和M2的访问控制列表Ldata1和Ldata2中,耗时约为45 ms。DR1和DR2获取IoT 数据密文和会话密钥密文后,执行BRDABE 解密算法,ECS 外包解密耗时约为121 ms,DR 解密数据密文耗时约为26 ms,解密总耗时约为147 ms。DO1将M1和M2获取过程作为一条交易存储在共享列表Ldata中,存储数据为{DO1,M1,{DR1,DR2},CServer1}和{DO1,M2,{DR1,DR2},CServer1},存储开销为2.8 KB。其中,CServer1是外包计算的云服务器。

当AA2撤销DR1的“经理”属性时,AA2首先调用ARC 中的策略匹配函数,筛选DR1属性集不再满足访问控制策略的密文,即为KCT1,耗时21.5 ms。KCT1由DO1存储管理,因此DO1需要链下更新会话密钥密文KCT1。AA2遍历共享列表Ldata1,筛选满足M1访问控制策略的用户,得到列表{DR2},耗时21.5 ms,该列表中的用户需要更新其属性私钥。AA2执行属性撤销算法,输入KCT1和{DR2}生成CUK和{KUK2},耗时1 023 ms,AA2在撤销列表LR-Att中新增撤销记录:{AA2,DR1,“经理”,KCT1,{DO1},{DR2},{KUK2},2022-11-13},存储开销为3.8 KB,耗时38 ms。AA2通过安全信道将CUK发送给DO1,DO1利用CUK链下更新与撤销属性相关的部分会话密钥密文。KUK2记录在撤销列表中,拥有“经理”属性的未撤销用户DR2执行撤销合约获取{KUK2},耗时33 ms,然后更新其属性私钥,由于密文更新和密钥更新可以并发执行,而密文更新时间为2.1 ms,密钥更新时间为1.9 ms,因此,链下密文和密钥更新的时间开销为2.1 ms。

总之,在该场景下,DR 从注册申请属性私钥到解密获取IoT 原始数据总耗时约为2 710 ms。当撤销DR1的“经理”属性时,链上耗时约为114 ms,链下耗时约为1 025.1 ms,撤销总耗时约为1 139.1 ms。在存储开销方面,一个区块中存储10 条数据共享/撤销交易记录,通过Hyperledger Explorer Web应用程序可以查看区块的大小为45 KB。在EDAC-MCSS 和SEM-ACSIT 方案中,撤销属性时存在如下问题:DO 和DR 筛选复杂;CUK和KUK传输过程中易被篡改而且无法追溯,复杂场景下通信开销较大。本文利用区块链可以解决上述问题,利用链上链下相结合的方式实现物联网数据的细粒度安全共享,将属性密钥生成、更新、撤销和数据共享过程记录在区块链上,虽然存储开销增加了,但在保障前向、后向安全性的前提下,使得任何撤销记录公开透明、可追溯和不可篡改,更适合复杂分布式物联网环境下的数据共享。

5 结语

针对传统属性基加密机制存在属性撤销安全性难以保障,用户属性密钥的生成、分发和撤销难以协调,无法将它应用到实际的物联网场景中等问题。本文提出一种基于区块链可撤销的去中心化属性基加密(BRDABE)方案,利用共识驱动的区块链构架,将密钥分发的信任问题从属性权威映射到分布式账本上,利用智能合约协助属性权威实现对用户属性的撤销。安全性证明和效率分析表明,本文方案不仅提高了属性撤销的效率,而且保障了共享数据的前向和后向安全性。本文的下一步研究方向是,进一步提高该BRDABE 方案的属性撤销效率,并将它应用到物联网数据共享场景中。

猜你喜欢

私钥密文解密
清扫机器人避障系统区块链私钥分片存储方法
一种支持动态更新的可排名密文搜索方案
比特币的安全性到底有多高
基于模糊数学的通信网络密文信息差错恢复
基于改进ECC 算法的网络信息私钥变换优化方法
炫词解密
解密“一包三改”
炫词解密
一种基于虚拟私钥的OpenSSL与CSP交互方案
一种基于密文分析的密码识别技术*