APP下载

基于属性加密的区块链数据溯源算法

2019-12-03田有亮杨科迪王缵冯涛

通信学报 2019年11期
关键词:密文加密区块

田有亮,杨科迪,王缵,冯涛

(1.公共大数据国家重点实验室(贵州大学),贵州 贵阳 550025;2.贵州大学计算机科学与技术学院,贵州 贵阳 550025;3.贵州大学密码学与数据安全研究所,贵州 贵阳 550025;4.贵州大学数学与统计学院,贵州贵阳 550025;5.兰州理工大学计算机与通信学院,甘肃兰州 730050)

1 引言

数据是继物质、能源之后的第三大基础性战略资源,各行各业的发展越来越离不开数据。数据开放、共享和交易是解决“数据孤岛”的重要手段,但随着大数据的开放与共享,数据盗卖转售及隐私泄露等问题尤为突出,给数据安全和隐私安全带来前所未有的挑战。

数据溯源是对原始数据及其演变过程的追溯、重现与展示。通过数据溯源,用户可以了解数据生命周期变化过程,回溯数据相关来源。区块链技术具有去中心化和去信任化等特点,能够在陌生节点之间建立点对点的可信账本,形成具有唯一性和不可篡改的区块,非常适合应用于溯源,但区块链的公开透明性严重威胁着用户隐私。针对这一问题,Ramachandran 等[1]及Tosh等[2]分别在区块链数据溯源框架中,通过散列函数对用户ID 进行处理实现隐私保护。Wu 等[3]引入数据脱敏技术,提出一种基于区块链的电子病历安全共享模型,该模型在不破坏数据统计特性的前提下,以牺牲某些数据的准确性为代价解决交易隐私泄露问题。Wang 等[4]利用智能合约和同态加密技术对用户进行隐私保护,但该方案中交易信息的可见性仅限于交易双方,并不利于数据高效共享。Lei 等[5]以零知识证明方法对交易隐私进行保护,但在频繁交易和扩展性要求较高的场景下,交易信息共享性难于满足需要。Zhang 等[6]通过群签名技术对群用户进行隐私保护,但流转信息的公开性仅限于事先设定的群内成员,无法实现溯源信息共享性的动态更新。Bhuiyan 等[7]根据场景不同设置智能合约限制用户访问权限,并根据特定条件授予和撤销访问权以确保数据动态共享,然而细粒度的交易隐私保护却难于实现。Neisse 等[8]基于智能合约设计3种具有不同粒度的可扩展性访问控制模型,实现数据细粒度访问控制和流转信息有效跟踪。从以上方案可知,目前基于区块链的数据溯源方案主要采用数据脱敏、数字签名、零知识证明、同态加密等加密技术并结合智能合约实现隐私保护,使溯源信息共享性局限于事先设定的交易群体,无法实现高效扩展,难以满足实际溯源需要。

属性基加密(ABE,attribute-based encryption)作为一种新兴的加密技术,将用户身份与一系列属性绑定,通过对用户私钥或密文设置属性集与访问结构,只有属性集与访问结构相匹配时才能解密,从而实现一对多的加密通信以及对文件的细粒度访问控制,因此更适用于具有数据共享和隐私保护的加密处理。属性加密思想最早由Sahai等[9]于2005年提出,根据密文、密钥表现形式以及访问策略绑定位置不同,属性加密可分为基于密钥策略的属性加密(KP-ABE,key-policy attribute-based encryption)[10]和基于密文策略的属性加密(CP-ABE,ciphertext-policy attribute-based encryption)。在CP-ABE 中,密文和访问策略相关联,用户密钥和属性集合相对应。因此,CP-ABE 方案更适合应用于溯源场景。2007年,Bethencourt 等[11]给出了第一个基于密文策略的属性加密构造。2011年,Waters[12]首次在标准模型下证明了CP-ABE 的安全性,并于2012年提出支持动态证书和密文授权的ABE 方案[13],该方案首次提出策略更新的思想,但其新策略比原策略更严格。此后,Yang 等[14]通过策略动态更新对云环境中的数据进行访问控制,Liu等[15]提出一种智能电网多权限访问控制的高效属性撤销方案,Huang 等[16]提出一种多权限可撤销的ABE 方案。上述具有策略更新的ABE 方案[14-16]主要将密文存储于云环境或大数据平台中,通过修改密文实现访问策略的动态更新。但区块数据具有不可更改、不可删除等特性,无法通过修改区块内容实现策略更新。因此设计一种访问策略可更新的区块链溯源算法,是实现溯源信息安全动态共享的重要手段之一。

鉴于上述分析,本文提出一种基于属性加密的区块链数据溯源算法。通过改进的属性加密算法完成交易隐私保护,利用设计的策略可更新溯源链实现溯源信息动态共享。本文的主要贡献如下。

1)形成适用于区块链的访问策略可更新属性加密算法。改进Waters 所提CP-ABE 方案[12],设计访问策略更新算法,并确保攻击者无法通过策略更新对交易内容发起攻击。

2)实现区块内容可见性动态更新。通过改进的属性加密算法生成交易区块和访问策略区块,基于访问策略更新算法追加策略区块,实现区块内容可见性的动态调整。

3)确保交易隐私不发生泄露的同时,实现溯源信息动态共享。利用属性加密算法完成交易隐私保护,通过适用于区块链的策略更新算法实现溯源信息动态共享。

2 准备知识

2.1 参数定义

本文中改进的属性算法及策略可更新溯源算法所涉及的主要参数如表1所示。

表1 主要参数

2.2 单调张成方案

改进的CP-ABE 算法采用单调张成方案[17]完成访问结构向访问矩阵的转化。转换过程中,对于系统属性a,b,c,d及其访问结构F=(a∩(b∪(c∩d))),方案首先将“∩”格式化为“2”、将“∪”格式化为“1”,然后将属性元素自左向右依次展开。故(a∩b)格式化为(a,b,2),表示在属性a,b中需满足2个;(c∪d)格式化为(c,d,1),表示在属性c,d中需满足一个。则F格式化为L=(a,(b,(c,d,2),1),2),访问结构L转换为访问矩阵M的详细过程如表2所示。若F更新为F'=(a∩(b∪(c∩d∩e))),则L更新为L'=(a,(b,(c,d,e,3),1),2),更新后访问矩阵M'的转换过程如表3所示。

表2 原访问结构与访问矩阵转换

表3 新访问结构与访问矩阵转换

根据线性秘密共享方案[18]可知,对于满足访问结构F的授权集S={a,c,d}在访问策略(M,ρ)中可以找到一组向量{wi}ρ(i)∈S={2,-2,1},使。同理,对于更新后的访问结构F',满足该结构的授权集S'={a,c,d,e},在访问策略(M',ρ')中可以找到向量

3 改进的属性加密算法

本文算法对Waters 所提的CP-ABE 进行改进,改进后的算法总体流程如图1所示,其中虚线框为修改或新增部分。

图1 改进的CP-ABE 属性加密流程

3.1 算法描述

改进的CP-ABE 算法主要由系统初始化、属性私钥生成、加密、解密、密文策略生成及密文策略更新6个部分组成,具体如下。

1)Setup(k,U)→(PK,MSK)。系统初始化算法通过输入安全参数k和系统属性集U,输出系统公私钥对(PK,MSK)。

设G1为q阶循环群,g为G1的生成元,双线性映射e:G1×G1→G2。随机选择α,β∈Zp及群G1的元素h1,h2,···,hu,其中{1,2,···,u}表示属性集U中对应的属性标号,输出系统密钥对(PK,MSK)为

2)KeyGen(MSK,S)→SK。属性私钥生成算法通过输入系统私钥MSK 和用户属性集合S,输出用户的属性私钥SK。

密钥中心输入系统私钥MSK=gα和用户属性集S={x1,x2,···,xn},选择随机参数t∈Zp,输出用户的属性私钥SK 为

3)Encrypt(m,δ,(M,ρ))→CT。加密算法通过输入明文m、策略更新者身份标识δ及访问控制策略(M,ρ),输出密文CT。

加密过程中,M是l×n的访问矩阵,Mi表示矩阵中的第i行,i∈[1,2,···,l]。函数ρ将Mi映射到属性,记为ρ:{1,2,···,l}→{1,2,···,u}。加密算法选择随机向量生成密文信息(C,Cδ),s为秘密共享密钥,t2,···,tn为随机值,以λi=vMi表示秘密共享密钥份额,随机选取r1,r2,···,rl∈Zp在密文中添加附加信息(Ci,Di)i∈[1,l],以此作为访问控制策略。最终创建密文CT 为

为实现访问控制策略动态更新,加密完成后,属性加密算法根据安全加密算法(如SM9)对s进行加密,以此作为保留加密信息En(s)。

4)Decrypt(CT,SK)→m。解密算法输入关于访问策略(M,)ρ的密文CT,以及关于用户属性集S的私钥SK。如果解密者的属性集S满足访问策略(M,)ρ,则输出明文m,否则解密失败。

设索引集为I={i:ρ(i)∈S},目标向量为(1,0,···,0)。根据单调张成方案知,如果用户属性满足访问矩阵(Mi)i∈I,则能够找到一组向量{wi}i∈I使得。根据线性秘密共享方案知。则解密计算式为

密文策略生成算法通过更新者身份δ对En(s)解密获取s'作为第一个输入值,根据新访问策略(M',')ρ选择随机向量计算,其中M'是一个l'×n'矩阵,s'仍为秘密共享密钥,为随机值。然后,随机选取计算更新后的策略密文信息为

3.2 安全模型

改进的CP-ABE 方案安全模型是选择属性和选择明文攻击下的不可区分性(IND-SAS-CPA,indistinguish ability against selective access structure and chosen plaintext attack)游戏,游戏中包含一个挑战者和一个敌手,挑战者模拟系统运行并回答敌手的询问。具体游戏如下。

1)系统建立。挑战者运行系统初始化算法Setup(k,U),将生成的系统公共参数PK 发给敌手,敌手宣布要挑战的旧访问策略(M,ρ)和新访问策略(M*,ρ*)。

2)私钥询问。敌手向挑战者发送多个属性集合S1,S2,···,Sn,且这些属性集合不能满足访问策略(M,ρ)和(M*,ρ*),挑战者运行私钥生成算法KeyGen(MSK,S)生成相应属性私钥并发给敌手。

3)挑战明文。①敌手发送2个等长的消息m0、m1给挑战者,挑战者随机选取c∈{0,1}使用旧访问策略(M,ρ)对mc加密;②挑战者根据(M*,ρ*)对访问策略进行更新,生成相应的更新密文CT*;③挑战者将更新密文CT*发送给敌手。

4)重复步骤2),敌手再度向挑战者发送属性集合S n+1,Sn+2,···,Sn+m申请相应私钥,但规定以上属性集合不能满足访问结构(M*,ρ*)。

5)猜测阶段。敌手输出对c的猜想c'∈{0,1}。

定义1若多项式时间敌手赢得以上安全模型游戏的优势是可忽略的,则改进的CP-ABE 方案是安全的(CPA)。

4 访问策略可更新的溯源链

区块链是以区块结构存储数据,同时使用密码技术保证安全传输和多方访问的分布式数据存储技术体系。区块链因其去中心化、防篡改、高透明和可追溯等特性,成为各专家学者研究的热点。但区块链的公开透明性严重威胁着交易隐私,并且写到链上的数据不可更改,更不可销毁,使管理者难以对链上的非法数据进行有效管理。

针对上述问题,本文溯源算法基于访问策略更新算法对区块结构进行设计,实现区块内容可见性的动态更新。如图2所示,大数据平台中每一个数据资源块Ri在区块链中都有唯一版权区块Pi与之对应。数据交易过程中,大数据平台对上链前的每一笔交易信息tx 进行属性加密处理,形成交易密文结构CT={C,Cδ,(Ci,Di)i∈[1,2,···,l]},共识节点通过如下过程完成交易的上链、查询及策略更新。

图2 溯源链及区块结构

写入交易过程中,共识节点首先以(C,Cδ)生成交易区块TX,以(Ci,Di)i∈[1,2,···,l]生成访问控制策略区块A,得到新交易策略区块组{TX,A};然后根据Ri找到其Pi交易链的最后一个交易策略区块组{TXj,Aj},将{TX,A}追加到链上形成新的交易记录{TXj+1,Aj+1}。

溯源信息查询过程中,共识节点从TX 中获取交易信息(C,Cδ),从TX 对应的最后一个策略区块A中,获取相应访问控制策略(Ci,Di)i∈[1,2,··,l]。将{TX,A}构成的交易记录完整密文CT={C,Cδ,(Ci,Di)i∈[1,2,···,l]}返回给溯源用户,用户通过属性私钥SK 解密CT 得到交易信息m。

为更新链上某笔交易的访问控制策略,首先共识节点对签名消息<δ>进行验证,以此确定更新者身份是否真实;然后通过判断等式是否成立,以此判别更新者是否有交易TX 的更新权限且更新前后所使用的共享密钥s是否一致;最后将生成的新策略区块A'追加到TX 的最后一个访问策略区块之后,得到含新访问策略的交易策略区块组{TX,A'},以此完成策略更新。

5 数据流转溯源算法

本节将讲述如何通过改进的属性加密算法及策略可更新的溯源链,实现流转信息的隐私保护及溯源信息的动态共享。

5.1 系统模型

为实现大数据平台中的数据高效溯源,平台将数据供应商发布的数据资源分割为数据块,以此作为流转溯源的基本单位。数据的上传、交易、共享、修改及其他流转操作都视为一笔交易写到区块链中,形成溯源信息。溯源用户可通过持有的属性密钥访问链上的授权信息,完成权限范围内的数据追踪溯源,以此实现交易隐私保护。溯源管理者过身份信息及保留加密信息对交易的访问策略进行更新,完成交易信息的细粒度访问控制,从而实现溯源信息动态共享。本模型主体单元如图3所示。

图3 溯源系统主体单元

1)系统用户。可以是溯源管理者、数据供应商或消费者,也可以是大数据平台的其他参与人,每个系统用户都有一个身份唯一标识符GID。

2)大数据平台。提供大数据存储及交易服务,并将版权信息及历史交易记录存入区块链中。

3)区块链网络。由各验证节点组成,负责存储版权信息及数据交易记录,各交易信息上链都需经过属性加密处理。

4)密钥中心。通过用户身份信息生成GID,根据用户属性生成属性私钥SK,并对GID 及SK 进行管理。

5)智能合约。为上述主体提供交互接口。

5.2 算法构造

本节利用第3节改进的属性加密算法和第4节设计的溯源链,完成数据流转信息上链、查询及访问策略动态更新,算法具体步骤如下。

1)系统初始化。密钥中心首先通过安全散列算法对用户身份信息进行散列处理,生成身份唯一标识符GID;然后选取安全参数k和系统属性集U,通过3.1节的算法Setup(k,U)生成系统主密钥对(PK,MSK)←Setup(k,U)。

2)用户属性私钥生成。为产生用户的属性私钥,密钥中心首先将用户发来的GID 提交给大数据平台审核,以获取用户属性集S;然后利用3.1节的密钥生成算法输入主私钥MSK 生成用户属性私钥SK ←KeyGen(MSK,S);最后将SK 返回给用户。

3)上传版权数据。数据供应商将数据资源Resource 上传至大数据平台,平台首先对数据进行分割,形成数据块{R1,R2,···,Rn}及其版权信息;然后将生成的版权信息记录到区块链中,得到对应的版权区块{P1,P2,···,Pn}。由于版权信息公开可查阅,故不作属性加密处理。

4)存入交易信息。若数据供应商GIDp想将数据块Ri共享给某一数据使用者GIDu或某一数据消费者GIDu欲购买该数据块Ri,则大数据平台对上述操作生成一笔交易tx={Ri,From,To,Time},形成交易明文信息m={tx.Ri,tx.From,tx.To,tx.Time}。

加密交易明文m时,平台输入溯源管理者提供的身份标识δ及访问控制策略(M,ρ),利用3.1节的属性加密算法Encrypt(m,δ,(M,ρ))对m进行加密,得到交易密文信息CT={C,Cδ,(Ci,Di)i∈p[1,2,··,l]}。同时,属性加密算法还将通过安全加密算法SM9,对加密过程中产生的共享密钥s进行加密,形成保留加密信息En(s),为策略更新提供条件。

交易密文CT 上链过程中,共识节点首先基于第4节的策略可更新溯源链,生成交易区块TX 及其访问控制策略区块A;然后将{TX,A}追加到链上形成Ri的一条溯源信息。

5)读取溯源信息。若溯源用户欲获取数据资源Ri的所有流转信息{txi}i∈[1,2,···,n],共识节点从Ri对应的交易链Pi中提取txi对应的交易策略区块组{TX,A},以此构建一条完整交易密文结构CT={C,Cδ,(Ci,Di)i∈[1,2,···,l]}返回给用户。如果用户属性集S满足密文策略{Cδ,(Ci,Di)i∈[1,2,···,l]},则解密得到交易信息tx=m,否则解密失败。通过上述方式提取Pi链的所有交易区块组{TXi,Ai}i∈[1,2,···,n],从中获取交易密文结构CTi∈[1,2,···,n]并解密,得到所有交易信息{txi}i∈[1,2,···,n]形成完整溯源信息。

6)更新访问策略。策略更新过程分为策略密文生成和策略区块上链两步。其中,策略密文生成由更新者执行,策略区块上链由共识节点执行。

①更新者输入身份信息δ、保留加密信息En(s)及新访问策略''(M,)ρ,通过3.1节的策略密文生成算法AccGen(En(s),δ,(M',ρ'))生成新的策略密文;然后将身份签名消息<δ>及发送给共识节点。

②共识节点基于第4节的策略验证过程对<δ>及进行审核。通过后以生成新策略区块A'并追加到TX 对应的策略区块后,形成新交易策略区块组{TX,A'}。

6 方案分析

6.1 安全性分析

定理1若判定性q-PBDHE 假设[12]成立,则不存在多项式时间敌手能够选择挑战访问结构(M#,ρ#)攻破改进的CP-ABE 方案。

证明若存在一个多项式时间敌手A选择一个挑战访问结构(M#,ρ#),以不可忽略的优势ε赢得游戏,则存在一个模拟器以不可忽略的优势ε解决判定性q-PBDHE 假设。

1)系统建立。模拟器加载q-PBDHE 参数Y、T,敌手提交要挑战的旧访问策略(M*,ρ*)和新访问策略(M#,ρ#)。其中,M*是l*×n*的矩阵,M#是l#×n#的矩阵,且l*,n*,l#,n#≤q。模拟器随机选择α=α'+βq+1,α'∈Zp,使系统公钥e(g,g)α=e(g,g)α'+βq+1=e(g β,g)βqe(g,g)α'。对系统属性集合U中的每一个元素x∈U,令索引集X={i:ρ*(i)=x}选择一个随机的参数z x∈Zp,并执行以下运算。若x∈U,则,否则hx=gzx。

2)私钥询问。敌手通过提交不满足访问策略(M*,ρ*)和(M#,ρ#)的属性集S询问私钥,挑战者运行私钥生成算法KeyGen(MSK,S)生成相应属性私钥SK={L,K,Kx}发给敌手。私钥构造过程如下。

计算K值时包含参数gβq+1,该参数不能通过判定性q-PBDHE 提供的参数计算出来,其可以利用步骤1)中等式α=α'+βq+1经过指数运算来消除。

计算Kx时包含参数,根据线性重构特性,当用户属性集S不满足访问结构时,有。根据这一特性可以消除Kx中包含的参数,令X为i的索引集且ρ*(i)=x。用户提交的属性集S分为两部分,属于系统属性U的元素集合命名为S1,记作S1={x:ρ(i)∈S∩U};不属于系统属性U的元素命名为S2,记作S2={x:ρ(i)∈S且ρ(i)∉U}。K x计算的具体方法为

3)挑战明文。敌手发送2个等长的消息m0、m1给挑战者,挑战者随机选取c∈{0,1}使用旧的访问结构(M*,ρ*)对mc进行加密。

①挑战者计算C=mcTe(g,g)αsδ和Cδ=g sδ,随机选择,通过共享密钥,随机选择r1,···,rl*∈Zp对i=1,···,n*定义Hi为m≠i时ρ*(i)=ρ*(m)的集合,则密文元素为

②挑战者根据敌手提供的新问策略(M#,ρ#)及保留加密共享密钥s'对(Ci,Di)进行更新计算。随机选择,随机选择r1,···,rl#∈Zp对i=1,···,n#定义Hi为m≠i时ρ#(i)=ρ#(m)的集合,则新策略元素为

4)重复步骤2),敌手再次向挑战者发送任意次的属性集合S n+1,Sn+2,···,Sn+m申请相应私钥,但规定以上属性集合不能满足访问结构(M#,ρ#)。

5)猜测阶段。敌手输出对的c猜想c'={0,1},如果c'=c,则挑战者输出θ=0,表示,此时敌手的优势;如果c'≠c,则输出θ=1,表示T是群TG中的一个随机元素,此时敌手的优势。因此,敌手A攻击q-PBDHE假设的优势为

故任何多项式时间敌手赢得IND-SAS-CPA 游戏的优势是可忽略的。

证毕。

定义2若敌手可以通过策略更新算法任意更新访问控制策略从而非法访问交易数据,则敌手可以成功发起访问策略更新攻击。

定理2若数字签名算法满足不可伪造性,则溯源算法可以抵抗策略更新攻击。

证明由溯源算法执行主体构成知,策略更新算法攻击者可分为溯源管理者、溯源用户及区块链网络中的共识验证节点。根据策略更新算法可知,若恶意管理者欲发起访问策略攻击,即不解密En(s)而直接计算将无法通过验证,故恶意管理者无法成功更新访问策略;若恶意溯源用户欲发起攻击,则需提供管理者的身份签名消息δ<>和策略密文,由于签名算法具有不可伪造性且恶意溯源用户无法提供有效的,故恶意用户无法通过验证。即恶意用户无法成功更新访问策略;同理,恶意共识节点无法提供有效签名消息<δ>,故恶意节点亦无法成功更新访问策略。综上,溯源算法可以抵抗策略更新攻击。

证毕。

定理3若通过En(s)解密得到的s'与加密时使用的s一致,则更新算法具有正确性。

证明根据加密算法Encrypt(m,δ,(M,ρ))及其生成的密文结构CT={C,Cδ,(Ci,Di)i∈[1,2,···,l]}知,若要对CT 的访问控制策略进行更新,则对CT 解密获取m后重新加密即可。即通过旧属性私钥SK 解密CT 获取m后,更新者输入δ和欲更新的访问控制策略(M',ρ'),算法选取新秘密共享值s'和随机参数,对m再次加密生成全新密文即可。根据解密算法Decrypt(CT,SK)知,满足新策略的用户可以借助属性密钥SK '通过解密得到e(g,g)αsδ,从而解出。由于更新过程中,通过En(s)获取到的s'与加密时使用的s一致,故C'=C,Cδ'=Cδ,则重加密后的密文结构可表示为。因此,'SK 可以通过解密得到e(g,g)αsδ,从而解出,即'SK 可以正确解密更新后的密文

证毕。

定理4若改进的属性加密算法满足IND-SAS-CPA,则溯源方案具有隐私保护性。

证明首先,交易记录tx 生成过程中,由于交易双方都通过各自的GID 进行匿名交易,使攻击者即便获取到交易记录,也无法通过交易密文提取到有效的交易者身份信息,故溯源方案可以保护用户身份隐私。其次,由于数据上链过程中,每条交易记录都将经过属性加密处理。根据改进的属性加密算法满足IND-SAS-CPA 知,即便多项式时间敌手获取到交易密文CT,也无法从密文中获取到关于明文的有效信息,故溯源方案可以保护交易隐私。综上,溯源方案具有保护身份隐私和交易隐私的隐私保护性。

证毕。

定理5若溯源方案可以抵抗访问策略更新攻击,则溯源信息具有动态共享性。

证明由于交易信息上链前都将基于访问策略(M,)ρ进行属性加密处理,故满足策略要求的溯源用户可以通过属性私钥SK 从溯源信息CT 中共享到交易信息。当溯源信息的访问权限发生改变时,由于溯源管理者可以通过有效的管理身份信息δ及新的访问策略(M',ρ')对访问权限进行动态更新,并且溯源方案可以抵抗访问策略更新攻击,故旧策略用户无法以SK 对溯源信息CT'进行有效共享,而新用户可以通过SK'对CT'进行有效访问。故溯源信息具有动态共享性。

证毕。

6.2 实验仿真分析

基于属性加密的数据溯源算法实验采用一台主机(其中,CPU 为Intel Core i32120,内存为4 GB,操作系统为Windows 7),并选用C++作为主要编程语言模拟实现 Waters 属性加密方案和改进的CP-ABE 算法。

如图4所示,当访问策略的属性个数设置为4,数据大小分别为128 B、256 B、512 B 和1024 B时,从Waters 方案与本文方案的加解密时间曲线可以看出,由于本文方案中引入身份参数,使双线性映射的计算量有所增加,导致加密时间和解密时间代价平均比Waters 方案约高出400 ms 和300 ms。

图4 同属性个数下的加解密时间对比

如图5所示,当加解密数据大小设置为128 B,访问属性分别为4、8、12和16个时,随着属性个数的增加,本文方案加解密时间代价总体高于Waters 方案。其中加密执行时间平均约高出Waters方案500 ms,而解密时间平均约高出300 ms。

图5 同文件下的加解密时间对比

由定理2知,要实现溯源信息访问权限的更改,可以通过重加密方式和策略更新方式完成。重加密过程分为解密原密文和生成新密文两步,策略更新分为新策略生成和新策略上链两步。通过模拟上述算法步骤得到各部分时间代价如图6所示,当更新算法的属性个数依次递增为4、8、12和16时,策略更新总时间消耗比重加密总时间消耗节约100~700 ms,故本文方案在满足溯源信息动态共享的同时,访问策略更新算法有一定优势。

图6 重加密与策略更新时间对比

为完整模拟整个溯源信息的上链、查询以及策略动态更新,本文实验利用4台主机采用C++编写PBFT 共识算法对数据流转操作进行模拟。为提高区块存储及查询效率,共识节点以SQL Server 2008存储本地区块数据。数据上链过程分为属性加密、共识验证及写入本地区块3个阶段,溯源信息查询过程分为交易策略区块组查询和交易密文解密2个阶段,策略更新过程分为策略密文生成和追加新策略区块2个阶段。从图7中可以看出,当属性个数在16个以内时,上述操作的执行时间代价维持在2 s以内,并且时间代价随属性个数的增加呈线性增长关系。

图7 溯源操作执行时间代价

相较于传统区块链的“完全去中心化”,数据上链过程中,为实现溯源信息访问权限的细粒度控制,第三方需对交易进行属性加密并对加密过程中产生的共享密钥信息进行保存,甚至对访问策略进行更新;而共识节点需将每笔交易的密文分为2个区块存储。以上处理虽在一定程度上加大了第三方的计算代价及溯源链的存储代价,但为链上数据访问策略的动态更新提供有利条件。第三方计算代价如图8所示,当交易的数据大小为128 B时,随着属性个数的增加,整个交易信息的加密时间代价约为800~1800 ms,解密时间约为600~1400 ms,而新策略生成时间约为400~900 ms,保留加密信息的解密En(s)时间约为200 ms(与属性个数无关)。

图8 第三方计算时间代价

7 结束语

数据共享和隐私保护一直是评价区块链溯源系统的重要因素,本文基于属性加密算法提出一种具有保护用户隐私和数据动态共享的区块链数据溯源算法。数据上链过程中,基于Waters 所提的CP-ABE 方案设计适用于区块链的策略可更新属性加密算法,以此实现溯源信息的隐私保护。溯源信息查阅过程中,基于策略更新算法设计区块结构,完成交易区块访问策略的动态更新。最后,通过安全性及实验仿真分析表明,所提方案可以在保护用户隐私的同时实现溯源信息共享性的动态调整。本文方案具有广阔的应用场景,不仅能够为数据溯源提供具体的思路和方法,还能够为区块内容可见性的调整提供有效的解决方案。

猜你喜欢

密文加密区块
一种支持动态更新的可排名密文搜索方案
一种新型离散忆阻混沌系统及其图像加密应用
基于模糊数学的通信网络密文信息差错恢复
区块链:一个改变未来的幽灵
基于网络报文流量的协议密文分析方法
密钥共享下跨用户密文数据去重挖掘方法*
区块链:主要角色和衍生应用
《红楼梦》的数字化述评——兼及区块链的启示
一种基于熵的混沌加密小波变换水印算法
一场区块链引发的全民狂欢