可控、可追责的敏感数据共享方案

张正昊 李 勇 张振江

(北京交通大学电子信息工程学院 北京 100044)(19120172@bjtu.edu.cn)

摘 要 在大数据时代下,海量数据之间的共享是充分挖掘数据价值的前提.对涉及用户隐私的敏感数据,需要对其共享过程特别关注,而传统的数据共享方式存在数据流向不明确、难以追责等缺陷.针对这些问题,基于区块链提出了一种支持监管的敏感数据可控共享方案.通过使用动态累加器技术实现敏感数据的访问控制,数据拥有方可以灵活地授予或者撤销其他参与方对数据的访问权限,实现数据拥有方对数据的可控性.设置监管方对数据请求过程进行审核,监管方将为通过审核的数据请求方颁发监管凭证,只有拥有监管凭证且获得数据拥有方授权的数据请求方才能获得数据.为保护数据请求方的隐私,通过强指定验证者签名技术,使无关第三方无法获得数据请求方的身份信息.使用区块链技术记录数据的请求和响应情况,该记录只有监管方可以读取,从而实现了监管方对数据共享全流程的可监管性.安全性分析表明,方案满足数据请求方隐私性、数据拥有方可控性、可监管性,仿真实验验证了方案的可行性.

关键词 数据共享;可控;隐私保护;可追责;区块链

在当今大数据时代,人们的日常生活中会产生大量数据,这些数据代表着一个人的日常习惯、行为动态、生活轨迹等,是极其重要的隐私数据.数据产生的源头可能多种多样,不同的公司、企业、部门之间都持有用户数据.在大数据背景下,这些蕴涵着巨大价值的数据必然走向共享、开放[1],即数据只有流动起来才能发挥其最大效能,进一步挖掘出数据背后的隐藏信息,为企业和个人提供更好的服务质量[2-3].如果不同数据只存放于独立的机构内部,就会形成“数据孤岛”,数据得不到充分利用,造成数据浪费.

然而,数据共享过程中存在的突出问题是,数据拥有方往往难以控制数据的流向,数据是否能得到合法使用也难以保证.例如2020年11月,国内某快递公司的40余万条客户个人信息被内部用户获取之后倒卖,被泄露的信息包括客户的收发件地址、姓名、电话等,这是一起严重的数据泄露事件.因此有必要研究隐私数据在各方之间共享时的安全性,实现数据的可控共享.另外,许多信息泄露事件都是内部人员所为,因此数据共享也需要设置监管方对数据共享进行监管,确保所有的数据获取请求和数据响应合规合法,最大程度避免数据泄露情况的发生.

1 相关工作

针对敏感数据共享过程中的痛点和难点,文献[4]基于大数据平台提出了一种安全的敏感数据共享框架.该框架从平台中数据的生命周期出发,分别从数据提交、存储、使用和销毁4个方面考虑数据的安全共享问题.文献[4]的作者设计了一种异构代理重加密方案,支持从身份基加密[5]到公钥加密[6]之间的转换.另外为了避免隐私信息的泄露,数据请求者将在基于虚拟机监视器(virtual machine monitor, VMM)[7]的私有进程中对数据进行下载操作,所有的密钥将保存在私有进程的内存中.框架为所有隐私数据设置了一种基于租约的机制,在租约到期后,明文和密钥将从云中彻底销毁.但是该框架对请求者的隐私问题考虑不充分,任何发生在平台上的数据共享行为都会被无关第三方得知,并且其访问控制功能的实现主要依赖于数据拥有方是否为请求方生成了重加密密钥,对数据请求方的权限控制相对较弱.

2008年,Nakamoto[8]提出比特币概念,区块链开始引起关注.由于区块链具有分布式、防篡改等特性,一些学者开始使用区块链进行访问控制,以设计可控的敏感数据共享方案.文献[9]针对云环境下的电子病历共享场景,设计了一个轻量可扩展的联盟链,所有的用户实体都将经过授权之后才能进入共享系统,并且所有的共享行为都会被实时记录.该方案利用区块链分布式与防篡改等特性,构造了比较强的访问控制方案.文献[10]研究了医疗数据在无信任环境下的数据共享问题,基于区块链技术提出了医疗数据管理系统MeDShare.在该系统内,对数据的操作行为都将以防篡改的方式记录下来,并且通过访问控制机制进行用户权限的管理.但是其访问控制通过访问控制表实现,验证用户权限时开销比较大.文献[11]基于联盟链并使用可搜索加密技术[12]和秘密分享技术[13],设计了一个基于区块链的医疗数据共享方案.在该方案中,希望得到共享数据的多个用户将获得搜索凭证的密钥份额,并提供给联盟链进行验证,验证通过后会得到搜索凭证,进而向数据服务器请求相应的密文,密文会被提交给智能合约进行解密,从而得到数据明文.此方案考虑到了云存储服务器并非完全可信的问题,并使用秘密分享技术来支持多个用户的共享,但该方案的交互过程相对复杂,联盟链、云服务器、数据拥有方和请求方之间都有交互,系统耦合性比较高.

随着使用区块链进行访问控制的相关研究不断深入,学者们开始注意到数据共享过程中的监管问题.文献[14]使用代理重加密技术[15]进行数据共享,同时保证数据拥有方对数据有一定程度的可控性.当用户有下载文件的权限时,第三方代理就会将数据密文和密钥的重加密密文发给用户,用户用自己的私钥解密出密钥,从而获得数据明文.该方案使用区块链对用户权限进行验证,并且记录请求内容,实现一定程度的监管性.文献[16]从时间维度的访问控制出发,结合属性基加密[17]和区块链,设计了医疗数据的共享方案.数据拥有方在给其他用户授权时,会部署一个限时智能合约,只有用户同时满足访问控制结构和时间范围才能获得数据.该方案虽然设置了监管中心对用户的身份进行管理,但是监管中心无法监管共享请求,也不知道是否有非法共享行为发生.另外,从时间维度对数据共享进行限制的灵活性不高,只要用户符合访问控制结构,那么在相应的时间段内用户可以随意获得数据,拥有方无法撤回授权.

从上述分析中可知,敏感数据共享过程仍存在待解决的问题:1)数据拥有方无法灵活地进行权限更新和撤销.2)数据共享本身缺乏监管性,有方案确实设置了监管中心,但监管性比较弱.鉴于敏感数据的重要性,必须有一个强监管方来保证数据共享过程的合法合规.3)共享过程中的用户身份隐私问题也需要考虑,共享本身是双方之间的交互过程,不相关的第三方不能获取到参与方的身份信息.针对这3个问题,本文以区块链技术为背景,提出了一个可控、可追责的敏感数据共享方案,旨在提高数据共享的隐私性、可控性和可监管性.该方案可以确保数据拥有方对数据的控制权,设置监管方以监督共享全过程,避免非法行为的出现.并且数据共享的行为将记录在区块链上,利用区块链不可篡改等特性,监管方可以追溯数据的使用过程,在非法行为出现时找到相关参与方进行问责.引入强指定验证者签名技术,保护了数据请求方的身份隐私.在访问控制方面使用动态累加器,使得数据拥有方可以灵活地对授权用户进行管理,包括权限的更新和撤销等,增强了拥有方对自己数据的可控程度.

2 相关假设

2.1 强RSA假设

n=pq为RSA模,c强RSA假设是指在不知道n的分解的前提下,计算a,b使得ab=c mod n是困难的.

2.2 离散对数(discrete logarithm, DL)假设

对于给定的群,设y,DL假设是指对于任何运行在多项式时间t内的算法A,求解出xq,使得y=gxmod q的概率是可以忽略的.

2.3 计算性Diffie-Hellman(computational Diffie-Hellman, CDH)假设

给定生成元为gq阶循环群,对于x,yR已知(g,gx,gy),CDH假设是指对于任何运行在多项式时间t内的算法A,正确计算gxy的概率是可以忽略的.

2.4 判定性Diffie-Hellman(decisional Diffie-Hellman, DDH)假设[18]

给定生成元为gq阶循环群,对于x,y,zR已知(g,gx,gy,gz),DDH假设是指对于任何运行在多项式时间t内的算法A,正确判断是否有z=xy mod q成立的概率是可以忽略的.

2.5 间隙性Diffie-Hellman(gap Diffie-Hellman, GDH)假设[19]

给定生成元为gq阶循环群,对于x,yR已知(g,gx,gy),GDH假设是指借助于DDH预言机的前提下,对于任何运行在多项式时间t内的算法A,正确计算gxy的概率是可以忽略的.

3 方案定义

本文方案包含的算法有10个:

1) Setup(1k)→params为系统初始化算法.以安全性参数1k为输入,输出公共参数params.

2) KeyGen(params)→(skA,pkA,skB,pkB,skR,pkR)为密钥生成算法.输入公共参数params,输出数据拥有方密钥对(skA,pkA)、数据请求方密钥对(skB,pkB)和监管方密钥对(skR,pkR).

3) AccInit(params)→(Acc,C)为累加器初始化算法,由数据拥有方执行.为属于自己的数据设置一个访问控制结构,输出累加器Acc和授权集合C.

4) ShareRequest(params,skB,pkB,pkA)→reqShare为共享请求算法,由数据请求方执行.输入公共参数params、数据请求方的密钥对(skB,pkB)和数据拥有方的公钥pkA,输出共享请求reqShare.

5) Authorization(params,skA,reqShare,Acc,C)→(0|witnessB,witness)为授权算法,由数据拥有方执行.输入公共参数params、数据拥有方的私钥skA、共享请求reqShare、当前累加器Acc和授权集合C,数据拥有方根据共享请求判断是否授权,如果不授权则输出0,如果授权则输出数据请求方证据witnessB和其他授权用户的新证据witness.

6) RegulateRequest(params,msg,pkA,skB,pkB,pkR,witnessB)→reqRegulate为监管请求算法,由数据请求方执行.输入公共参数params、数据拥有方公钥pkA、请求方自己的密钥对skBpkB、监管方公钥pkR、请求内容msg和授权凭证witnessB,请求方为监管方生成一个强指定验证者签名,并附带其他附加信息后输出reqRegulate.

7) RegulateVerify(params,pkB,skR,pkR,reqRegulate)→(0|σR)为监管验证算法,由监管方执行.输入公共参数params、请求方公钥pkB、监管请求和监管方密钥对skR,pkR,监管方验证信息的正确性和合法性,如果认为该请求不合法,则输出0,如果认为请求可以执行,则输出签名σR,并将请求上传到区块链中.

8) DataResponse(params,pkB,pkR,σR,wB,msg)→(0|resData)为数据响应算法,由数据服务器执行.输入公共参数params、数据请求方发来的信息pkB,σR,wB和监管方公钥pkR,数据服务器验证所有凭证是否成立,如果验证通过,则返回响应的数据,输出resData,并将响应信息上传到区块链,否则输出0.

9) Revoke(params,Acc,C)→(Accnew,witness)为权限撤销算法,由数据拥有方执行.输入公共参数params和当前累加器Acc,数据拥有方对在权限集合C中的某个用户进行权限撤销,输出新累加器Accnew和其他还存在于授权集合中的用户的证据witness.

10) RegulateSim(params,pkB,skR,pkR,reqRegulate)→σSim为副本模拟算法,由监管方在有需要时执行.为了保护数据请求方的隐私,输入公共参数params、请求方公钥pkB、监管请求reqRegulate和监管方密钥对skR,pkR,输出签名副本σSim.

4 安全模型

在本文方案中,安全性需求描述为4方面:

1) 数据拥有方可以控制自己数据的流向,即可以灵活地将数据访问权限授权给其他用户,也可以撤销对某个用户的授权;

2) 数据请求方在获得数据拥有方的授权之后,需要进一步获得监管方的授权,在与监管方通信的过程中,数据请求方的隐私得到保护;

3) 监管方可以对数据的请求、响应进行全流程的把控,一旦发现非法行为的出现,监管方将追踪到相应的共享参与方;

4) 在数据请求方与监管方交互的过程中,监管方不能破坏请求方的隐私,也不能冒充数据请求方,向数据拥有方非法请求数据.

本文假设数据服务器是可信的,且各参与方之间与数据服务器之间的信道是安全的.下面给出本文方案的安全性定义.

定义1. 数据请求方匿名性.对于一个挑战者C和敌手D之间的游戏Gameanony,如果不存在任何概率多项式时间敌手能以不可忽略的优势赢得该游戏,则该方案具有数据请求方匿名性.Gameanony定义为:

1) 对于签名者S0S1和验证者V,挑战者C为其生成密钥对——(skS0,pkS0),(skS1,pkS1),(skV,pkV),并将公钥(pkS0,pkS1,pkV)发送给敌手D.

2) 敌手D在多项式时间内向下列预言机发出查询.

Osign.输入待签名消息M,pkSd(d∈{0,1}),pkV,输出对消息M的签名σ.

Osim.输入待签名消息M,pkSd(d∈{0,1}),pkV,输出对消息M的签名σ.

Over.输入待签名消息M,σ,pkSd(d∈{0,1}),pkV,当σ有效时输出1,否则输出0.

3) 敌手D输出消息M*,挑战者C抛出硬币选择一个b∈{0,1},运行指定验证者签名算法输出σ*=Sign(skSb,pkSb,pkV,M*),将σ*发送给敌手D.

4) 敌手D向Osign和Osim发出如步骤2)中的查询,然后输出b′,当b′=b时,敌手D赢得这个游戏.

定义2. 数据拥有方可控性.如果满足以下条件,则数据拥有方可以控制自己数据的流向,即方案具备可控性:

Pr[Setup(1k)→params,KeyGen(params)→
(skA,pkA,skB,pkB,skR,pkR),
AccInit(params)→(Acc,C),
ShareRequest(params,skB,pkB,pkA)→
reqShare:Authorization(params,skA,
reqShare,Acc,C)→0]≥1-v(λ),

或者

Pr[Setup(1k)→params,KeyGen(params)→
(skA,pkA,skB,pkB,skR,pkR),
AccInit(params)→(Acc,C),
ShareRequest(params,skB,pkB,pkA)→reqShare:
Authorization(params,skA,reqShare,Acc,C)→
(witnessB,witness)]≥1-v(λ),

其中,v(λ)为可忽略函数,即数据拥有方不给数据请求方授权的概率接近于1,或数据拥有方向数据请求方授权,并为其他授权用户更新凭证的概率接近于1.

定义3. 可监管性.如果满足以下条件,则监管方可以审核系统中的共享请求和响应,即方案具有可监管性:

Pr[Setup(1k)→params,KeyGen(params)→
(skA,pkA,skB,pkB,skR,pkR),
AccInit(params)→(Acc,C),
ShareRequest(params,skB,pkB,pkA)→reqShare,
Authorization(params,skA,reqShare,Acc,C)→
(witnessB,witness),RegulateRequest(params,
msg,pkA,skB,pkB,pkR,witnessB)→reqRegulate:
RegulateVerify(params,pkB,skR,
pkR,reqRegulate)→0]≥1-v(λ),

或者

Pr[Setup(1k)→params,KeyGen(params)→
(skA,pkA,skB,pkB,skR,pkR),
AccInit(params)→(Acc,C),
ShareRequest(params,skB,pkB,pkA)→
reqShare,Authorization(params,skA,
reqShare,Acc,C)→(witnessB,witness),
RegulateRequest(params,msg,
pkA,skB,pkB,pkR,witnessB)→reqRegulate:
RegulateVerify(params,pkB,skR,
pkR,reqRegulate)→σR]≥1-v(λ),

其中,v(λ)为可忽略函数,即当数据请求方的请求有问题时,监管方否定该请求的概率接近于1,或者当数据请求方的请求正确时,监管方同意该请求并生成监管凭证的概率接近于1.

5 方案构造

通过引入动态累加器方案和强指定验证者签名方案,基于区块链技术设计了一种适用于敏感数据共享的方案.在该方案中,各数据共享方拥有对自己数据的控制权,在将数据上传时就设置好访问控制结构,只有满足访问控制结构的数据请求方才有机会获得数据.监管方负责验证每一次数据的请求过程,数据的请求和响应情况将被上传到区块链中,这些记录只有监管方可以读取,并且由于区块链具有不可篡改等特性,监管方可以在出现非法行为时追溯数据的共享全过程,定位相关责任方,进而采取必要措施.

在本节中,假设有2个参与方ABA将数据上传到数据服务器中,B请求获得A的某些数据,共享流程如图1所示.其中,本文假设数据服务器与各参与方之间的信道是安全可信的,其余信道不可靠,需要借助如SSL/TLS等技术进行传输.本文方案约定Encpk(m)=c,Decsk(c)=m为非对称加/解密算法,Sigsk(m)=σ,Verpk(σ)=0或1为数字签名和签名验证算法,具体计算过程不再赘述.方案构造9个算法:

Fig. 1 Data requester B requests shared from data owner A
图1 数据请求方B向数据拥有方A请求共享数据

1) Setup(1k)→params.输入安全参数1k,得到一个长度为k的随机数N,使得N=pq,其中p=2p′+1,q=2q′+1,pq的长度相等,并且pqp′,q′都是素数,从N的二次剩余循环群QRN中选择一个随机数u.接着选取一个乘法群,阶为m,生成元为gH:{0,1}×3m为一个抗碰撞的Hash函数.输出公共参数params=(N,u,,m,g,H).

2) KeyGen(params)→(skA,pkA,skB,skR,pkR).参与数据共享的双方AB各自生成一个随机数x1,x2m,令skA=x1skB=x2pkA=gskA mod mpkB=gskB mod mA的密钥对为(skA,pkA),B的密钥对为(skB,pkB).监管方R选取随机数xm,监管私钥skR=xpkR=gskR mod m,得到监管密钥对(skR,pkR).A,B,R分别保管各自的私钥,并公开公钥.

3) AccInit(params)→(Acc,C).A在本地维护一个授权集合C={c1,c2,…,cn},其中{c1,c2,…,cn}为n个授权用户的公钥,计算累加器Acc=uc1c2cn mod N,输出Acc.

4) ShareRequest(params,skB,pkB,pkA)→reqShare.B想要获取的内容为msg,当前系统时间为T,计算r1=EncpkA(pkB,msg,T),r2=SigskB(pkB,msg,T),输出共享请求reqShare={r1,r2}发送给A.

5) Authorization(params,skA,reqShare,Acc,C)→(0|witnessB,witness).A收到reqShare后,计算DecskA(r1)={pkB,msg,T},通过VerpkB(r2)验证签名的正确性.若验证不通过则输出0,若验证通过,则考虑是否授予B权限,如果决定授权,则将累加器更新为Accnew=AccpkB mod N,将B的公钥pkB加入授权集合C中形成新的授权集合为了证明计算证据生成密文EncpkB(wB),生成签名SigskA(wB),令witnessB={EncpkB(wB),SigskA(wB)}.对于原先就在授权集合中证据为w的用户,A为其计算wnew=wcB mod N作为新证据,生成Encpk(wnew)和SigskA(wnew),令witness={Encpk(wnew),SigskA(wnew)}.公开累加器Accnew,将witnessB发送给B,向其他用户发送witness.

6) RegulateRequest(params,msg,pkA,skB,pkB,pkR,witnessB)→reqRegulate.B收到witnessB后,计算DecskB(EncpkB(wB)),VerpkA(SigskA(wB))验证签名的正确性.若验证失败,则算法终止,回到ShareRequest;若验证成功,则生成强指定验证者签名(strong designated verifier signature, SDVS)[20].为了避免恶意监管方收到wB后,冒充数据请求方B向数据服务器S请求数据,B不能将wB直接发送给R,而是应该发送随机化后的wB,过程有4个步骤.

① 随机生成r,z,t,r′∈m

② 计算

③ 令计算t′=l-t,z′=r′+t′·skB

④ 输出签名σDVS=(t,z,t′,z′).

reqRegulate=(y1,y2)发送给监管方.

7) RegulateVerify(params,pkB,skR,pkR,reqRegulate)→(0|σR).监管方R收到reqRegulate=(y1,y2)之后计算然后对σDVS进行验证,验证过程为:

① 将σDVS解析为(t,z,t′,z′);

② 计算

③ 验证

若不相等则算法终止,若相等则验证通过,然后R将验证累加器证据的正确性.由于R收到的是而非原本的累加器证据,无法直接进行验证,因此B需要通过交互式零知识证明过程向R证明:自己持有随机数r,可以使得从而使得B可以在不暴露wB的情况下,证明wB的有效性.具体过程如算法1所示.当算法1输出1时,R进行如下计算:对请求方B的公钥pkB生成签名σR=SigskR(pkB),将该签名返回给B.

算法1. 关于累加器证据的零知识证明.

B和R分别计算

e(Acc,g);

B生成随机数sm,计算

e(Acc,g)s,并将w发送给R;

③ R生成随机数ηm,并将η发送给B;

B计算μ=s+ηr,并将μ发给R;

⑤ R验证?=w·,若等于,则输出1,否则输出0.

8) DataResponse(params,pkB,pkR,σR,wB,msg)→(0|resData).B构造dataReq=(pkB,σR,wB,msg)发送给数据存储服务器SS将计算VerpkR(σR),当验证通过时计算如果Acc′等于当前的累加器Acc,则最终验证通过,返回B所请求的数据.服务器构建resData=(msg′,pkB,T′),其中msg′为服务器返回的内容,T′为当前的系统时间,生成EncpkR(resData)后上传到区块链.

9) Revoke(params,Acc,C)→(Accnew,witness).A想要撤销B的权限,即从授权集合C={c1,c2,…,cn}中删掉cB=pkB时,A更新累加器为 mod N,对于尚存在于授权集合中证据为w的参与方,更新其证据为 mod N,其中a,b为2个整数,满足av+bcB=1,v为参与方的公钥,然后A公开Accnew,向各参与方发送witness={Encpk(wnew),SigskA(m)}.

6 方案分析

6.1 安全性分析

本节分析本文方案的安全性.

定理1. 如果Hash函数H为随机预言机,且GDH假设在群上成立,则该方案满足监管过程中的数据请求方隐私性.

证明. 设存在一个敌手D,以(1/2+δ)的概率攻破了监管过程中数据请求方的隐私性,即攻破了强指定验证者签名SDVS的隐私性,下面使用D作为子程序,构建算法E解决GDH假设.

步骤1. E初始化GDH参数(,g,q,gu,gw)和DDH预言机,E选择一个随机数u′∈q,令pkS0=gu,pkS1=gugu,pkV=gw,将(pkS0,pkS1,pkV)发给D,E生成初始为空的2个表格HT和ST.

步骤2. D向E进行如下查询,其中,本文假设D不进行重复查询.

1) Hash查询.输入(M,K,R1,R2),如果E发现HT中已经存在对应的记录((M,K,R1,R2),l),则直接返回c,否则,将(g,pkS0,pkV,K)和(g,pkS1,pkV,K)输入DDH预言机,分别得到b0b1.如果b0=1,则输出K并中断;如果b1=1,则输出K/(gw)u并中断.如果b0=b1=0,则生成随机数τq,将τ返回给D并在HT中增加((M,K,R1,R2),l).

2) 签名查询.输入比特d和消息M,E随机生成q,计算如果lM重复,则重新生成随机数进行上述计算,否则将((M,⊥,RM,1,RM,2),lM)存储在HT中,返回将(d,M,σM)存储在ST中.

3) 验证查询.输入比特d、消息M和某个检索ST,如果(d,M,σM)已经存在,则返回1,否则返回0.

步骤3. D输入消息M*,E随机抛出硬币选择一个b∈{0,1},随机选择q

计算同样,如果lM*重复,则重新生成随机数进行上述计算,否则将((M*,⊥,RM*,1,RM*,2),lM*)存储在HT中,返回将(b,M*,σM*)存储在ST中.

步骤4. D输出b′作为对b的猜测.

在步骤2中,D要想在验证查询阶段得到返回值为1,则需要其输入的签名σM*合法,而合法的签名将通过Hash查询获得,但D有可能不通过Hash查询而猜出一个合法的签名,这种情况的概率为1/q.因此,通过Hash查询获得合法签名的概率最小为(1-1/q).而D赢得Gameanony的概率为(1/2+δ),但是D有可能没有通过Hash查询,只是随机选择lM*使其赢得Gameanony,这种情况的概率为(1/2+1/q),因此D经过上述步骤得到正确结果的概率为((1/2+δ)-(1/2+1/q)),所以E解决GDH问题的概率为:

由上式,εGDH不可忽略,与GDH假设矛盾.

证毕.

定理2. 在数据共享过程中,只有持有数据拥有方凭证的其他参与方,才有可能获得数据,即数据拥有方具备数据的可控性.

证明. 标识为cj的数据请求方在请求授权时,数据拥有方更新累加器为Accnew=Acccj mod N,将授权集合C更新成并生成证据数据服务器验证证据的过程为

而最新的累加器为Accnew=wcj,该条件为数据服务器返回数据的必要条件,而当w不是正确的授权证据时,根据强RSA假设,Accnewwcj不相等,无法通过数据服务器的验证.因此,方案具有可控性.

证毕.

定理3. 对于系统中的所有数据共享请求,监管方能够审核共享请求与响应,即方案具有可监管性.

证明. 数据请求方需要向监管方发送reqRegulate=监管方计算以验证请求是否合法,然后通过交互式协议,监管方最终验证是否等于w·,其中

=e(A,g)s+ηr,

e(A,g)se(A,g)ηr=
e(A,g)s+ηr,

从而验证授权凭证是否有效,若有效则会将请求以pkR加密上传到区块链,并且数据服务器的响应情况将用pkR加密上传到区块链,监管方可以随时解密以跟踪数据使用情况.

证毕.

定理4. 监管方权力限制.监管方无法破坏数据请求方隐私性,也不能冒充获得授权的数据请求方非法获得数据.

证明. 在本文方案中,数据请求方将用SDVS来请求监管方的审核,由于该SDVS方案具有非授权性和非传递性的特征,因此没有第三方可以验证或者生成合法的签名.除此之外,在监管方验证授权凭证时,通过交互式证明协议,在不泄露凭证本身的前提下证明了正确性,因此监管方无法冒充合法的被授权方去获取数据.

证毕.

定理5. 监管方可以通过对区块链上存储的信息进行读取,获取到某个敏感数据共享过程的相关信息,在发现问题时进行追责.

证明. 在本文方案中,数据服务器S在返回给数据请求方数据时,需要构建resData=(msg′,pkB,T′),并计算EncpkR(resData)上传至区块链中.resData包含数据共享过程的参与方、共享内容等信息,监管方R可以解密这些信息从而进行追责.

证毕.

6.2 比较分析

将本文方案与文献[4,9,11,14]中的方案进行安全性对比,如表1所示:

Table 1 Comparison of Security
表1 安全性对比

方案隐私性可控性可监管性监管方权力限制文献[4]有强无无文献[9]无强弱无文献[11]无无无无文献[14]无弱无无本文方案有强强有

由表1可以看到,本文方案对比其他方案,在实现敏感数据可控的前提下还具有一定程度的隐私性,对于共享过程,监管方可以进行监管,同时监管方的权力将受到限制.

文献[10]同样使用访问控制技术进行权限的更新与撤销,将本文方案与文献[10]中的方案进行复杂度的对比,结果如表2所示:

Table 2 Comparison of Complexity
表2 复杂度对比

方案权限验证时间复杂度权限更新时间复杂度空间复杂度文献[10]O(n)O(1)O(n)本文方案O(1)O(n)O(1)

由于文献[10]中通过访问控制表进行访问控制,当需要验证用户权限时,需要遍历整个访问控制表,所以其时间复杂度为O(n),且需要存储整张表,空间复杂度为O(n).而本文方案中使用累加器进行访问控制,只需要用户自己的凭证,结合公开的累加器即可验证,其时间复杂度为O(1),并且验证方只需要累加器本身即可进行验证,无需额外存储信息,空间复杂度为O(1).所以本文方案的访问控制结构比较高效.并且本文方案相比文献[10],在做到高效访问控制的同时,还实现了一定的隐私性和追责性.

文献[21]使用代理重加密和可搜索加密技术进行医疗数据共享,其数据共享阶段包括陷门生成、搜索、解密3个阶段.表3展示了常用密码学计算步骤的计算成本,将本文方案与文献[21]进行比较,2个方案的计算成本如表4所示.

Table 3 Computational Cost of Common Cryptographic Algorithms

表3 常用密码算法的计算成本

符号含义时间∕msTe指数运算时间0.3418Te2二次指数运算时间0.4139Tm群上乘法运算时间0.0019Tp双线性映射时间13.6736ThHash运算时间0.0060Ti循环群中求逆运算时间0.0256

Table 4 Computational Cost of Schemes
表4 方案计算成本

方案数据加密数据共享文献[21]2Tp+8Te+7Th5Te+2Tp+3Th+4Tm+5Ti本文方案3Te+Tm12Te+2Tp+3Te2+2Th+4Tm+2Ti

综合表3和表4可得,本文方案在数据加密阶段的计算成本明显低于文献[21].在数据共享阶段,文献[21]的计算成本约为29.209 8 ms,本文方案的计算成本约为32.761 3 ms,计算成本增加了约12%,这主要是因为本文方案在数据共享阶段设置监管方对数据共享过程进行监管,提高了方案的安全性,所以计算成本有所增加,但在可接受的范围内.

在方案仿真部分,本实验使用Java语言,调用java.math.BigInteger库与第三方jpbc库,针对本文方案中的各种算法进行了仿真.实验环境配置如表5所示:

Table 5 Experimental Environment Configuration
表5 实验环境配置

硬件版本∕型号操作系统Windows 10内存16GB RAMCPUIntel Core i5 2.5GHz

实验分别设置安全参数长度为512 b和1 024 b,记录每个算法的运行时间,为了保证实验数据的可靠性,每一个算法的运行时间均多次重复运行后取平均值,不同安全参数下各算法的运行时间如表6所示.

从表6中可以看出,在安全性参数长度为512 b时,Setup算法和AccInit算法由于需要生成一系列的参数所以耗时比较大,但是这2个算法往往只在系统启动时执行一次,所以不会对系统整体效率产生影响.其余算法运行时间均为毫秒级别,效率比较高.当提高安全性参数时,只有SetupAccInit两个算法受到比较大的影响,其余算法均比较稳定.综上,本文方案在保证了较高安全性的同时,还具有良好的运行效率.

Table 6 Running Time of Algorithms
表6 算法运行时间 ms

安全性参数长度∕bSetupKeyGenAccInitShareRequestAuthorizationRegulateRequestRegulateVerifyDataResponseRevoke5121483.1257.5001105.87525.750167.1254.37523.8753.250140.000102414947.24028.4291639.19029.381213.61919.19040.33311.857167.400

7 结束语

本文基于动态累加器、强指定验证者签名和区块链技术,提出了一种适用于敏感数据共享的方案,该方案具有隐私性、可控性、可监管性、可问责性和监管约束性的特点.通过对比分析证明了本文方案的安全性.本文的主要贡献为:

1) 通过动态累加器技术,数据拥有方可以灵活地授予用户权限或者撤销已经发出的授权;

2) 设置监管方对整个敏感数据共享过程进行监管,监管方将审核每一个数据共享请求和响应情况,从而避免出现非法共享行为;

3) 引入强指定验证者签名技术,使得数据请求方在请求监管方审核时能够保护自身的身份隐私,从而使得方案具有一定的隐私性;

4) 敏感数据共享过程的有关信息将由数据服务器以监管方公钥加密后上传至区块链,监管方可以获得这些信息来对数据共享过程进行追责;

5) 引入交互式零知识证明技术,在不影响监管方发挥监管职责的前提下,限制监管方能够获得的信息,避免恶意监管方破坏系统的安全性.

未来工作将主要聚焦在减弱本文方案的假设,比如考虑在数据存储服务器半可信或者不可信前提下的共享方案,以及考虑当多个用户同时发起共享请求时,如何提高系统效率的方法.

作者贡献声明:张正昊完成了论文所提方案的设计、仿真工作,以及论文初稿撰写;李勇、张振江与张正昊一起讨论所提方案的可行性,并在方案框架、方案仿真与分析方面进行指导.

参考文献

[1]Guo Zijing, Luo Yuchuan, Cai Zhiping, et al. Overview of privacy protection technology of big data in healthcare[J]. Journal of Frontiers of Computer Science and Technology, 2021, 15(3): 389-402 (in Chinese)(郭子菁, 罗玉川, 蔡志平, 等. 医疗健康大数据隐私保护综述[J]. 计算机科学与探索, 2021, 15(3): 389-402)

[2]He Peiyu. Research on the application model and value of big data based on Internet finance[J]. China Business and Market, 2017, 31(5): 39-46 (in Chinese)(何培育. 基于互联网金融的大数据应用模式及价值研究[J]. 中国流通经济, 2017, 31(5): 39-46)

[3]Sima Hong. Establish a unified data standard system and promote the formulation of standards for data interconnection across industries[J]. China Standardization, 2019 (7): 14-14 (in Chinese)(司马红. 建立统一数据标准体系 推进跨行业数据互联互通标准制定[J]. 中国标准化, 2019 (7): 14-14)

[4]Dong Xinhua, Li Ruixuan, He Heng, et al. Secure sensitive data sharing on a big data platform[J]. Tsinghua Science and Technology, 2015, 20(1): 72-80

[5]Shamir A. Identity-based cryptosystems and signature schemes[G] //LNCS 196: Proc of the CRYPTO 1984. Berlin: Springer, 1984: 47-53

[6]Diffie W, Hellman M. New directions in cryptography[J]. IEEE Transactions on Information Theory, 1976, 22(6): 644-654

[7]Rosenblum M, Garfinkel T. Virtual machine monitors: Current technology and future trends[J]. Computer, 2005, 38(5): 39-47

[8]Nakamoto S. Bitcoin: A peer-to-peer electronic cash system[EB/OL]. 2008 [2021-10-08]. https://bitcoin.org/bitcoin.pdf

[9]Qi Xia, Sifah E B, Smahi A, et al. BBDS: Blockchain-based data sharing for electronic medical records in cloud environments[J]. Information, 2017, 8(2): 44-59

[10]Qi Xia, Sifah E B, Asamoah K O, et al. MeDShare: Trust-less medical data sharing among cloud service providers via blockchain[J]. IEEE Access, 2017, 5: 14757-14767

[11]Gao Mengjie, Wang Huaqun. Blockchain-based searchable medical data sharing scheme[J]. Journal of Nanjing University of Posts and Telecommunications: Natural Science Edition, 2019, 39(6): 94-103 (in Chinese)(高梦婕, 王化群. 基于区块链的可搜索医疗数据共享方案[J]. 南京邮电大学学报: 自然科学版, 2019, 39(6): 94-103)

[12]Song Xiaodong, Wagner D, Perrig A. Practical techniques for searches on encrypted data[C] //Proc of the 21st IEEE Symp on Security and Privacy. Piscataway, NJ: IEEE, 2000: 44-55

[13]Shamir A. How to share a secret[J]. Communications of the ACM, 1979, 22(11): 612-613

[14]Li Li, Zeng Qingxian, Wen Yihong, et al. Datasharing scheme based on the blockchain and the proxy re-encryption[J]. Netinfo Security, 2020, 20(8): 16-24 (in Chinese)(李莉, 曾庆贤, 文义红, 等. 基于区块链与代理重加密的数据共享方案[J]. 信息网络安全, 2020, 20(8): 16-24)

[15]Blaze M, Bleumer G, Strauss M. Divertible protocols and atomic proxy cryptography[G] //LNCS 1403: Proc of the EUROCRYPT 1998. Berlin: Springer, 1998: 127-144

[16]Zhou Zhengqiang, Chen Yuling, Li Tao, et al. Medical data security sharing scheme based on consortium blockchain[J]. Journal of Applied Sciences, 2021, 39(1): 123-134 (in Chinese)(周正强, 陈玉玲, 李涛, 等. 基于联盟链的医疗数据安全共享方案[J]. 应用科学学报, 2021, 39(1): 123-134)

[17]Sahai A, Waters B. Fuzzy identity-based encryption[G] //LNCS 3494: Proc of the EUROCRYPT 2005. Berlin: Springer, 2005: 457-473

[18]Boneh D. The decision Diffie-Hellman problem[G] //LNCS 1423: Proc of the 3rd Int Symp on Algorithmic Number Theory. Berlin: Springer, 1998: 48-63

[19]Okamoto T, Pointcheval D. The gap-problems: A new class of problems for the security of cryptographic schemes[G] //LNCS 1992: Proc of the Public Key Cryptography-PKC’01. Berlin: Springer, 2001: 104-118

[20]Huang Qiong, Yang Guomin, Wong Duncan S, et al. Efficient strong designated verifier signature schemes without random oracle or with non-delegatability[J].International Journal of Information Security, 2011, 10(6): 373-373

[21]Niu Shufen, Chen Lixia, Li Wenting, et al. Electronic medical record data sharing scheme based on blockchain[J/OL]. Acta Automatica Sinica, 2021 [2021-10-08]. https://doi.org/10.16383/j.aas.c190801 (in Chinese)(牛淑芬, 陈俐霞, 李文婷, 等. 基于区块链的电子病历数据共享方案[J/OL]. 自动化学报, 2021 [2021-10-08]. https://doi.org/10.16383/j.aas.c190801)

Controllable and Accountable Sensitive Data Sharing Scheme

Zhang Zhenghao, Li Yong, and Zhang Zhenjiang

(School of Electronic and Information Engineering, Beijing Jiaotong University, Beijing 100044)

Abstract In the era of big data, the sharing of massive amounts of data is a prerequisite for fully mining the value of data. Some of these data are sensitive data involving user privacy, and special attention should be paid to the data sharing process. However, traditional data sharing methods have defects such as unclear data flow and difficulty in accountability. To solve these problems, a blockchain-based sensitive data controllable sharing solution that supports regulation is proposed. By using the dynamic accumulator technology to achieve access control of sensitive data, the data owner can flexibly grant or revoke the access rights of other participants to the data and realize the controllability of the data by the data owner. A regulator is set up to check the data request process. The regulator will issue a regulatory certificate to the data requester after the check is approved. Only the data requester who has the regulatory certificate and is authorized by the data owner can get the data. To protect the privacy of the data requester, unrelated third parties cannot obtain the identity information of the data requester by using strong designated verifier signature (SDVS). Blockchain technology is used to record data requests and responses. The record can only be read by the regulator, which realizes the regulation of the whole data sharing process. The security analysis proves that the scheme satisfies the privacy of the data requester, the controllability of the data owner, and accountability. The simulation experiment proves the feasibility of the scheme.

Key words data sharing; controllability; privacy protection; accountability; blockchain

中图法分类号 TP391

DOI:10.7544/issn1000-1239.20210587

收稿日期2021-06-10;修回日期:2021-11-05

基金项目国家重点研发计划项目(2018YFC0832300,2018YFC0832303)

This work was supported by the National Key Research and Development Program of China (2018YFC0832300, 2018YFC0832303).

通信作者李勇(liyong@bjtu.edu.cn)

Zhang Zhenghao, born in 1997. Master. Student member of CCF. His main research interests include blockchain and information security.

张正昊,1997年生.硕士.CCF学生会员.主要研究方向为区块链和信息安全.

Li Yong, born in 1973. PhD, associate professor, PhD supervisor. Senior member of CCF. His main research interests include cryptography, cloud computing security, and blockchain.

李 勇,1973年生.博士,副教授,博士生导师.CCF高级会员.主要研究方向为密码学、云计算安全和区块链.

Zhang Zhenjiang, born in 1973. PhD, professor, PhD supervisor. His main research interests include edge computing, IoT and authentication.

张振江,1973年生.博士,教授,博士生导师.主要研究方向为边缘计算、物联网、身份认证.