张晓东,陈韬伟,余益民,2
(1.云南财经大学 信息学院,昆明 650221;2.云南财经大学 智能应用研究院,昆明 650221)
随着区块链技术的不断普及,使用区块链在弱信任或无信任网络中进行数据共享已经非常普遍。但是由于区块链的“不可篡改”和“公开透明”的特点,使得区块链上的隐私数据保护成为一个挑战。近年来,研究人员针对区块链上的隐私保护和数据共享提出了新的解决方案[1-3]。其中,基于属性的加密算法由于其“一对多”加密和可以实现细粒度访问控制等优点,被广泛应用在数据溯源[4]、云存储[5]、医疗数据共享[6]、物联网[7]等区块链的各种方案中。
属性基加密(Attribute-Based Encryption,ABE)来源于SAHAI等[9]于2005 年提出的基于模糊身份加密,后来演变为基于属性的加密。其中,在密钥策略属性基加密(Key Policy-Attribute Based Encryption,KP-ABE)中,密文与属性关联,密钥与访问策略关联;而在密文策略属性基加密[10](Ciphertext Policy Attribute Based Encryption,CP-ABE)中,密钥与属性关联,密文与访问策略关联,允许数据拥有者自由制定访问控制策略,适用于分布式存储和解密方不确定的环境[11]。近年来,关于ABE 的研究主要集中于计算效率[12-13]、访问策略及属性隐藏[14]和身份管理[15]。2007 年,BETHENCOURT等[16]描述了密文策略属性基加密算法,针对一个解密的对象群体,利用用户相关属性及其用户对象间的相互信任关系作为授权依据,设计访问控制结构,通过一个中心权威构建加解密原语,只有当属性满足访问结构时,用户才能成功解密密文,从而实现一对多加密以及细粒度的访问控制。2011 年,WATERS[10]在标准模型下证明了CP-ABE 的安全性,并提出一个采用线性秘密共享方案实现秘密共享的CP-ABE,在效率上有了明显提升。2012 年,OKAMOTO等[17]提出一个无界内积属性基加密方案,解除了以往属性基加密方案对谓词和属性大小的限制。2013 年,GORBUBOV[18]提出基于多项式逻辑电路的属性基加密方案,其公开参数和密文大小随着电路深度线性增长,实现了由基于布尔公式向基于电路的转变,可有效抵御合谋攻击。2014 年,WATERS[19]受ROUSELAKIS等[20]提出的属性基加密方案启发,提出Online-Offline 属性基加密方案,将所有配对操作进行离线处理,减少了在线阶段的计算开销。
随着量子计算的不断发展,基于数论问题的困难性将会极大降低,以数论为基础的传统公钥密码体系面临着被破解的风险。格密码采用格困难问题作为格密码构造的安全性基础,拥有最困难情况假设下无法求解的安全性,可以很好地抵抗量子攻击。目前,被证明安全的格困难问题主要由小整数解[21](Small Integer Solution,SIS)问题和容错学习问题[22](Learning With Errors,LWE)问题。两种困难问题均从最坏情况理想格问题向一般变种问题归约,且计算效率高,易存储。目前,基于格的加密方案相继被提出,但主要集中于基于身份加密[23]、数字签名[24]和零知识证明[25]等。2021年5 月,DATTA等[26]基于LWE 困难问题,构造一种基于密文策略的属性基加密算法,实现了可抵抗量子攻击的CPABE 方案。
本文通过改进CPABE 方案,提出适用于区块链的抗量子攻击LWE-CPABE 算法,并给出支持策略更新的密文策略属性基加密算法,以实现数据的动态访问控制。在此基础上,定义适用于LWE-CPABE 算法的可公开验证数据的格式化交易结构,设计交易生成算法和交易验证合约。
本文设λ为安全参数,negl:ℕ →ℝ 表示可忽略函数,若该函数渐进地小于任意反多项式函数,则该函数可忽略,即对于任意常数c>0 存在一个整数Nc,对于所有λ>Nc都有negl(λ)≤λ-c,[n]={1,2,…,n}。
令PPT(Probability Polynomial-Time)为概率多项式时间,对于某一分布X,令x←X 为X 分布随机抽样值;对于集合X,令x←X为集合X中元素均匀采样值。在默认情况下,文中向量即为行向量;在矩阵中,第j行记为Mj,MJ记为M的子矩阵,由所有Mj的行组成(j∈J),J为矩阵的一组行索引;对于向量v,令‖v‖为该向量的ℓ2范数,‖v‖∞为该项量的ℓ∞范数。
对于整数q≥2,设ℤq为模q的环,ℤq表示(-q/2,q/2]范围内的整数。
对于整数上的一组分布D={Dλ}λ∈ℕ}并且存在边界B=B(λ)>0,若对于每个λ∈ℕ 都有:
则认为D 是有B边界的。
引理1设B1=B1(λ)和B2=B2(λ)为正,令D={Dλ}λ为B1的有界分布族,U={Uλ}λ为[-B2(λ),B2(λ)]上 的均匀分布。若存在一个可忽略函数negl(·)使得对于所有λ∈ℕ 都有:
则认为分布族D+U 和U 在统计上是不可区分的。
定理1(剩余哈希定理)令n:ℕ →ℕ,q:ℕ →ℕ,m>(n+1)logaq+ω(logan)并且k=k(n)为多项式,则以下两个分布在统计上是不可区分的:
引理2若离散高斯分布的参数σ较小,则从该分布提取的任何向量大概率将较短。
引理3令m、n、q为正整数且满足m>n,q>2。定义矩阵,则存在可忽略函数negl(·),使得:
对于安全参数λ∈ℕ,假设n:ℕ →ℕ,q:ℕ →ℕ,σ:ℕ →ℝ+是λ的函数。定义LWEn,q,σ为由n=n(λ)、q=q(λ)和σ=σ(λ)参数化的LWE 困难问题假设。对于任意PPT 敌手A,存在一个可忽略函数negl(·),对于任意λ∈ℕ:
定义1若存在一个PPT 敌手可以解决LWE 困难问题假设,那么存在一个PPT 量子算法可以在最高困难下解决格困难问题。
鉴于目前有关格困难问题的技术方案,当所有λ∈ℕ,n=n(λ),q=q(λ),σ=σ(λ)满足以下条件时:
LWE 困难问题假设对于任意多项式n(·)和任意函数q(·)、σ(·)都成立。
如图1 所示,LWE-CPABE 算法主要由系统初始化、用户属性私钥生成、明文加密、密文解密、密文策略生成以及密文策略更新6 个部分组成。
图1 LWE-CPABE 算法流程Fig.1 Procedure of LWE-CPABE algorithm
LWE-CPABE 算法流程如下:
1)Setup(1λ,smax,U)→(PK,MSK)。系统初始化算法通过输入安全参数λ,LSSS 矩阵所支持的最大宽度smax=smax(λ)和用户属性集合U,输出系统公私钥对(PK,MSK)。
3)Enc(PK,m,(M,ρ))→CT。明文加密算法通过输入公钥PK、明文m和访问控制策略,输出密文CT。
设ρ是一个将属性映射到矩阵M行向量的映射函数,即ρ(i)为矩阵M中第i行相关联的属性。随机选择并计算:
4)Dec(PK,CT,SK)→m。密文解密算法输入公钥PK、密文CT 和用户属性私钥SK,输出明文m。
设用户所拥有的属性满足访问控制策略。令I为对应于属性的行向量集合,令{ωi}i∈I∈{0,1}⊂ℤq为重构系数。对于任意i∈I,令ρ(i)为行关联属性,计算:
5)AccGen(M′,ρ′)→。密文策略生成算法将新的访问控制策略作为输入,输出更新后的策略密文。
LWE-CPABE 安全游戏中包含一个挑战者和一个敌手,挑战者模拟系统运行并回答敌手询问。具体游戏如下:
1)系统建立。敌手接收安全参数1λ并提交一个访问控制策略(M,ρ),挑战者运行Setup 算法生成系统公钥PK 发送给敌手。
2)私钥询问。敌手对挑战者进行多项式时间的私钥询问,对于每次密钥查询,敌手发送一组属性U∈U,但是这些属性不满足访问控制策略(M,ρ)。挑战者运行KeyGen 算法并将生成的用户属性私钥SK发送给敌手。
3)挑战阶段。挑战者选择一个随机消息b←{0,1}并使用敌手提供的访问控制策略(M,ρ)运行Enc 算法对消息进行加密。此后,将密文CT 发送给敌手。
4)重复步骤2)。
5)猜测阶段。敌手输出对b的猜想b′←{0,1}。
敌手A 在该游戏中的优势为:
定义2若对于任何PPT 敌手A,存在一个可忽略函数negl(·),使得对于所有的λ∈ℕ,都有,则本文所提出的LWECPABE 方案是选择性安全的。
为实现区块链中的数据高效流转与策略更新,数据的上传、共享、修改及策略更新都通过交易的形式写入区块链中。用户可通过所持有的与自身属性相匹配的用户属性私钥访问链上的授权信息,完成安全可控的数据共享。LWE-CPABE 区块链数据共享方案架构如图2 所示,其中,实线为交易过程,虚线为相关参数传递过程。
图2 数据共享方案的架构Fig.2 Architecture of data sharing scheme
格式化交易结构如下:
1)用户(DO、DU)。包括数据拥有者和数据使用者。数据拥有者DO 制定访问控制策略,并生成相对应的密文,将密文上传至第三方存储并将地址上传至区块链,同时,将主密钥MSK 委托密钥中心保管;数据使用者DU 从密钥中心获取主密钥,之后利用自己的属性集合生成用户属性私钥SK,从区块链获取密文并解密。
2)第三方存储(TPS)。提供加密数据的存储服务,并将加密数据地址存入区块链中。
3)共识网络(CN)。由区块链中各记账节点组成,负责LWE-CPABE 区块链加密协议中所涉及的交易的共识与记账更新。
4)密钥中心(KA)。存储LWE-CPABE 加密算法中的主密钥MSK,各用户通过密钥中心获取主密钥。
5)智能合约(SC)。为协议各参与方提供交互接口。
LWE-CPABE 区块链数据共享方案以区块链中的交易为载体实现数据的加密存储与细粒度访问控制。加密数据的访问控制权限由数据拥有者制定,数据被发布至链上后可以任意次数更新访问控制策略,直至加密数据被撤销,结束本次加密数据共享的生命周期。为使各参与方更高效地获取所需数据,便于审计和掌握访问控制动态,加密协议中定义了适用于该协议的交易格式:
其中:From 表示交易发起方;To 表示交易接收方;TxType 表示交易类型,A 表示访问控制策略类消息,D 表示数据类消息;OpType 表示操作类型,P 表示发布,U 表示更新,R 表示撤销;Timestamp 表示交易发布的时间戳;Data 表示交易包含的数据体;CheckText 表示数据域Data 的哈希值;Sign 表示交易发起方的签名。
在LWE-CPABE 区块链数据共享方案中,各参与方通过交易的方式进行相关数据的流转。为保证交易的正确性、完整性和可追溯性,在交易生成后需共识网络中各节点进行共识验证。
参与数据共享的各参与方和全网节点通过智能合约的方式进行交易的生成与验证。交易生成合约如算法1 所示。
算法1交易生成算法
交易生成后,将被广播至共识网络被其他节点验证。区块链中的节点可通过CheckText 和签名Sign 对该交易进行快速验证。
交易验证合约如算法2 所示。
算法2交易验证合约算法
当该交易获得节点验证成功并全网共识后,挖矿节点会打包交易、出块并全网广播,最终由本地节点接收并同步区块。
本节将详细阐述基于LWE-CPABE 方案的区块链数据共享过程。
DO 选择正确性证明所需的参数约束。对于任意B∈ℕ,令UB表示ℤ ∩[-B,B]上的均匀分布。系统初始化算法选择参数n、m、σ、q和噪声分布Xlwe、X1、X2、Xbig:
1)系统初始化。数据拥有者DO 选取安全参数λ,LSSS 矩阵支持的最大宽度smax和用户属性集合U,运行Setup 算法生成公钥PK 和主密钥MSK。
系统初始化算法如算法3 所示。
算法3系统初始化算法
DO 生成交易TxUploadPK={DO,BC,A,P,Timestamp,PK,CheckText,SigDO}将公钥上链。然后使用KA 公钥对主密钥加密得到CTMSK,并生成交易TxUploadMSK={DO,KA,A,P,Timestamp,CTMSK,CheckText,SigDO},将主密钥MSK 委托KA 保管。
2)数据加密。数据拥有者DO 制定访问控制策略(M,ρ),(M,ρ)为LSSS 访问控制策略,其中M=,ρ为属性映射(单射)函数ρ:[ℓ]→U,将访问控制矩阵Mi映射到属性集合U。之后,运行Enc 算法,输入公钥PK、明文m和访问控制策略(M,ρ)后得到密文CT。
数据加密算法如算法4 所示。
算法4数据加密算法
DO生成交易TxUploadCT={DO,TPS,A,P,Timestamp,CTMSK,CheckText,SigDO},将密文上传至第三方存储TPS,TPS 生成交易TxCTAddress={TPS,BC,A,D,Timestamp,CTAddress,CheckText,SigTPS},将密文地址上链。
3)用户属性私钥生成。各数据使用者DU 从密钥中心KA 处申请获得主密钥,KA 使用各用户区块链公钥对MSK 加密后生成交易TxDownloadMSK={KA,DU,A,P,Timestamp,CTMSK,CheckText,SigDO}。之后DU 输入自身属性信息U和主密钥MSK,运行KeyGen 算法输出与自身属性对应的用户属性私钥SK。
用户属性私钥生成算法如算法5 所示。
算法5用户属性私钥生成算法
4)密文解密。DU 从区块链BC 检索密文地址,通过密文地址CTAddress从TPS 搜索到相对应密文CT 并下载至本地,TPS 生成交易TxDownloadCT={TPS,DU,D,P,Timestamp,CT,CheckText,SigTPS}进行密文下载记录。DU 使用SK 对密文CT 进行解密,获取明文。
在密文解密过程中,SK 对应于属性集合U 的某个子集U∈U,若(1,0,…,0)不在与U关联的矩阵M的行空间中,则解密失败;否则,设I为矩阵M的一组行索引并满足∀i∈I:ρ(i)∈U,设标量{ωi}i∈I∈{0,1}⊂ℤq,且=(1,0,…,0),其中Mi为矩阵M的第i行。
解密算法如算法6 所示。
算法6解密算法
5)密文策略生成。当访问控制策略发生变更时,重新加密需要耗费更多密钥空间成本和密文加密时间成本。在LWE-CPABE 区块链加密协议中,数据使用者可进行原始密文保留的访问控制策略更新。在进行策略更新时,DO 生成新的访问控制策略(M′,ρ′),之后运行AccGen 算法得到更新后的策略密文UpdateCT=
随后生成策略更新交易TxAccGen={DO,TPS,A,U,Timestamp,UpdateCT,CheckText,SigDO}发送给第三方存储TPS。同时,生成原密文撤销交易发送至区块链以更新密文信息TxAccUpdate={DO,BC,A,R,Timestamp,CT,CheckText,SigDO}告知各数据使用者DU。
6)密文策略更新。TPS 获取更新后的策略密文后,从原CT 中获取密文C,输入更新的访问控制策略密文,运行AccUpdate 算法生成更新 后密文CT′。
更新后密文仍使用原密文地址,各数据使用者仍可通过上述步骤获取密文并进行解密。
在基于LWE-CPABE 的区块链加密协议中,各用户利用格式化的交易结构可快速高效地检索到各自所需信息,同时,整个数据流转周期内实现了各节点行为全过程链上监管,可以更好地进行审计和掌握访问控制动态。
假设某数据使用者拥有的属性U∈U,并且满足LSSS 访问控制策略(M,ρ),则由密文解密算法可得:
因此,以λ中几乎可以忽略的概率,syT的最高有效位(MSB)不受上述噪声的影响,其范围为q/4,因此不影响最高有效位,即MSB(K)=MSB(syT)。
证毕。
本文基于LSSS 访问控制结构的LWE-CPABE,定义了更灵活的选择性安全,即“线性独立约束下的选择性安全”。因此,将游戏中的密钥询问阶段修改如下:
在密钥询问阶段,敌手向挑战者进行多项式的密钥询问,对于每次密钥询问,攻击者发送一系列不满足访问控制策略(M,ρ)的属性U∈U。此外,访问控制矩阵M的行由U中的属性进行标记,即M在ρ-1(U)中的索引必须线性无关。之后,挑战者回复相应的用户属性私钥SK ←KeyGen(MSK,U)。
敌手A 在该游戏中的优势定义为:
定义3若上述游戏中任意PPT 敌手A 的优势(λ)可以忽略不计,则基于LSSS 访问控制结构的LWE-CPABE 加密方案在线性独立约束下是选择性安全的。
定义4若LWE 困难问题假设成立,则本文所构造的LWE-CPABE 满足选择性安全。
证明为证明定义4,本文设置了一系列混合博弈游戏,该系列游戏在公共参数的生成、密文挑战和密钥询问阶段各不相同。系列游戏中的第一个游戏对应于所提出的LWE-CPABE 方案在线性独立约束博弈下的选择性安全,最后一个游戏是证明敌手A的优势为0。此外,敌手A 在每个连续游戏之间的变化量可忽略不计。
证毕。
以下是混合游戏的构建与归约:
Hyb0:该混合游戏对应于ABE 方案的真实弱安全选择性博弈。
Hyb1和Hyb0之间的变化仅仅是句法上的变化,因此这两个混合游戏是无法区分的。
Hyb2:该游戏与Hyb1类似,区别是在Setup 阶段矩阵{Hu}生成的改变。
Hyb2和Hyb1之间的变化同样仅仅是句法上的变化,因此这两个混合游戏是无法区分的。
Hyb3:该游戏与Hyb2类似,区别是在Setup 阶段矩阵{}生成的改变。
Hyb6和Hyb5的不可区分性源于格陷门函数EnLT=(EnTrapGen,EnSamplePre)。
Hyb7:该游戏与Hyb6类似,区别在于回答敌手A的密钥询问时密钥组件的改变。
Hyb7和Hyb6之间的变化同样仅仅是句法上的变化,因此这两个混合游戏是无法区分的。
Hyb8:该游戏与Hyb7类似,区别在于回答敌手A的密钥询问时向量{ku}u∈U∩ρ([ℓ])的改变。
由LWE 困难问题假设可知,Hyb11和Hyb10在选择上是不可区分的。
证明对于任意敌手A 和任意x∈{0,1,…,11}。令pA,x:ℕ →[0,1]为一个函数,对于所有λ∈ℕ,定义敌手在混合博弈游戏中胜出的概率为pA,x(λ)。根据Hyb0的定义,对于所有的λ∈ℕ,有:
另外,对于所有λ∈ℕ,有pA,11=1/2,因为在Hyb11中的挑战密文中没有挑战者选择挑战位的信息。因此,对于所有λ∈ℕ,有:
同理分析可知,在Hyb1与Hyb2中,pA,1(λ)=pA,2(λ)。
由于EnLT=(EnTrapGen,EnSamplePre)满足剩余哈希定理,因此在Hyb3到Hyb10中,对于任意敌手A,存在一个可忽略函数negli(·),使得对于所有的λ∈ℕ,有:|pA,i-1(λ)-pA,i(λ) |≤negli(·)。
又由于LWE 困难问题假设成立,因此对于任意PPT 敌手A,存在一个可忽略函数negl11(·),使得对于所有的λ∈ℕ,满足:|pA,10(λ)-pA,11(λ) |≤negl11(·)。
由此可知,敌手A 在混合博弈游戏中的优势为0。
证毕。
本节将介绍常见的区块链攻击模型及本文方案如何抵抗这些典型攻击。
合谋攻击:在分布式体系中,攻击者通过多个秘密集合反向计算出授权方的主密钥或其他用户的用户属性私钥。在本文方案中,每个用户属性私钥在生成时会生成一个均匀独立分布的随机向量t^←X1,任意的用户属性私钥的随机向量均不同,因此该用户属性私钥对于任何人都是信息论隐藏的,无法实现合谋攻击。
中间人攻击:中间人攻击是指攻击者在通信方两端分别建立独立联系,交换其所收到的数据,监听或篡改信息。在本文方案中,各节点间所有的通信均以交易的方式进行,交易由发起方利用其区块链私钥进行签名,返回的秘密数据通过对方公钥进行加密,中间人无法通过篡改地址或伪造签名来通过验证。因此,本文方案可以很好地防止中间人攻击。
链接攻击:链接攻击是指攻击者通过链接同一地址的多条交易查找用户的隐私数据。在本文方案中,用户属性相关授权过程可由用户自己决定,用户可以选择公开其身份属性,也可以隐藏身份信息以保护隐私。此外,相关数据在链上均为密文,安全性通过算法安全性得到保证,攻击者无法获取用户相关信息,做到抗链接攻击。
通过对比本文方案与文献[5]方案的功能特性,分析本文方案在数据共享上的优缺点,如表1 所示。
表1 不同方案的性能对比分析Table 1 Performance comparison and analysis of different schemes
文献[5]由于采用q-PBDHE 困难问题假设,即无法在多项式时间内破解私钥和对单向函数求逆,以可以忽略的概率被破解,但随着量子计算的不断发展,这些困难问题假设将会面临被破解的风险,因此基于此类困难问题所构造的密码学方案是非绝对安全的,但本文所构造的LWE-CPABE 方案可以得到绝对的安全性证明。此外,本文的LWE-CPABE方案是基于最高困难的安全类型,其他代数结构中均为平均困难的安全类型。在该安全类型中,若破解密码算法,则需要解决最高情况的困难问题。最后,文献[5]所构造的CPABE 方案在计算上需要乘法运算、模指数运算和双线性映射等开销较大的运算,而本文方案则只需进行开销较小的加法运算,极大地提高了运算效率。
另外,通过对比本文方案和文献[26]方案的功能特性,分析本文方案在数据共享上的优缺点,结果如表2 所示。
表2 不同方案的功能对比分析Table 2 Functional comparison and analysis of different schemes
在文献[26]方案中,若数据使用者群体发生改变,则需要数据使用者重新生成访问控制矩阵并对明文数据进行重新加密。而在本文方案中,增加了策略撤销与更新算法,当数据使用者集合发生改变时,数据拥有者仅需生成新的访问控制矩阵即可实现对密文访问控制策略的变更。同时,通过策略撤销交易即可实现原有访问策略的撤销,有效地减少了计算代价和存储代价。另外,本文方案支持公共数据(如密文、公钥等)的共识验证,可有效保证公共数据的安全性、完整性与来源真实性。在基于密码学的数据共享方案中,其安全性依赖于密钥的安全性,而密钥盗版及滥用问题一直是属性基加密中难以解决的问题。因此,在本文方案中,利用格式化的交易结构、改进的密钥生成算法、严格的密钥申请交易和密钥传递交易,可实现密钥流转的全过程行为记录,实现快速、准确的密钥相关行为追溯。因此,对比文献[26]方案,本文方案更适用于区块链数据共享。
本节主要针对方案的实现性能进行分析。实验采用一台主机(Intel Core i7-8750H CPU@2.20 GHz,8.0 GB RAM,Win10操作系统),并利用PBC密码库、PALISADE密码库和编程语言C++来构建实验框架。在对性能指标进行选择时,本文方案并未对区块链网络的交易流程进行改动,只是将网络中上链的数据采用LWE-CPABE 进行加密,不会影响到区块链网络的运行效率。因此,本文首先对LWE-CPABE 方案的性能指标进行评估。
在实验中,明文数据设置为308 Byte。因为本文方案无需进行模指数、双线性映射等复杂运算,仅需要进行加法运算,所以在各阶段的时间代价均明显优于文献[5]方案。
如图3 所示,系统初始化时间与系统属性数量呈线性增长关系。该阶段文献[5]方案时间代价增长率明显大于本文方案,即随着属性数量的增加,本文方案在分布式数据共享和访问控制方面更具优势。
图3 不同方案的系统初始化时间Fig.3 System initialization time of different schemes
如图4 所示,随着系统中属性的不断增加,本文方案中数据拥有者在链下加密所花费的时间明显少于文献[5]的方案,其原因是在以文献[5]方案为代表的传统属性基加密方案中需要复杂的双线性配对运算和指数运算,而本文方案仅需加法运算,因此,将本文LWE-CPABE 方案应用于区块链数据共享,将对系统的整体效率有极大的提升。
图4 不同方案的加密时间Fig.4 Encrypt time of different schemes
如图5 所示,在密钥生成阶段,随着属性的不断增加,本文方案明显优于文献[5]的方案,在进行多用户、多属性集合的密钥生成时,本文方案具有更强的实用性。
图5 不同方案的密钥生成时间Fig.5 Key generation time of different schemes
如图6 所示,在解密阶段,本文方案在0~2 ms 左右远低于文献[5]方案,对于分布式系统的整体效率有非常大的提升,因此更适合区块链数据共享。为完整模拟整个策略更新过程,本文实验利用1 台主机4 个节点并采用C++编写的PBFT 共识算法对数据流转操作进行模拟。访问控制策略更新过程可分解为策略生成、策略更新和策略上链3 个步骤。通过模拟本文算法步骤得到各部分时间代价如图7 所示,当更新算法的属性个数依次为2、4、6、8、12、14 和16 时,策略生成、更新和上链时间代价总和维持在1 500 ms 以内。
图6 不同方案的解密时间Fig.6 Decrypt time of different schemes
图7 策略更新时间Fig.7 Policy update time
如图8 所示,在模拟交易数量与交易响应时间及TPS 的关系时,测试对象为从区块链网络中随机挑选的一个节点,测试内容为调用CITA SDK 生成交易与交易信息查询,并发数条件分别为200~800。在性能测试时,单节点保持较高的响应速度和TPS。在400~700 并发数下,交易生成和验证时间保持在14 s内,TPS为每秒80 条以上。因此,本文方案可以实现区块链上数据访问控制策略的快速更新,且拥有较快的交易生成及验证速度,可以提供高性能的服务。
图8 交易平均响应时间与TPSFig.8 Average transaction response time and TPS
区块链上的隐私保护技术是数据安全共享的重要因素,随着量子计算的快速发展,传统的以数论为基础的公钥密码体系无法抵抗量子攻击。因此,本文将区块链技术与格属性基加密算法有效融合,提出一种基于LWE-CPABE的区块链数据共享方案。通过对CPABE方案进行改进,给出可更新策略的抗量子攻击属性基加密算法,以实现数据的动态保护。在此基础上,设计区块链格式化交易结构实现基于格的CPABE 细粒度访问控制,在保证算法抗量子攻击特性的同时,确保过程的可追溯性。实验结果表明,与传统CPABE 算法相比,基于格的算法可以明显提升计算速度。下一步将研究区块链上基于LWE-CPABE 的分布式密钥生成方案及策略隐藏,以实现更加安全高效的基于属性基加密的分布式数据共享。