基于区块链的云数据匿名确定性删除方法

2021-04-17 16:04:14王双星罗劲瑭帅莉莎张佳敏张敏阳小龙
电信科学 2021年3期
关键词:拥有者确定性密钥

王双星,罗劲瑭,帅莉莎,张佳敏,张敏,阳小龙

(1. 北京科技大学计算机与通信工程学院,北京 100083;2. 国网四川省电力公司经济技术研究院,四川 成都 610041)

1 引言

云计算服务在大数据时代为人们带来了极大的方便,其计算能力强、存储空间大的优势吸引了无数用户。用户将数据上传到云端后,数据的所有权与其使用权处于分离状态,容易造成个人隐私信息泄露的问题。确定性删除作为云数据安全存储领域的核心技术之一,旨在保障用户数据隐私,使超过用户授权期限的数据在CSP(cloud service provider,云服务提供商)处失效且不可恢复。实现云端数据的确定性删除,是用户实现对其参与共享内容的有效管控和保护自身隐私的重要途径。

根据调研,现有研究主要实现了3个层面的确定性删除[1]。

· 第一层意义上的确定性删除是指将云端数据删除问题转换为用户对密钥的安全删除问题。其研究成果可以分为基于密钥集中管理和密钥分散管理两大类。集中式密钥管理的代表方案为Nair等[2]提出的基于Ephemerizer系统的确定性删除方案,通过第三方密钥管理服务器生成公钥加密数据密钥,当密钥管理服务器删除私钥之后数据密钥和密文将无法解密访问,从而实现数据的确定性删除。Tang 等[3]对上述方案进行了扩展,提出基于策略的确定性删除方案(FADE),其基本思想是将数据用DK(data key,数据密钥)加密并与访问策略的布尔组合进行关联,每条访问策略与一个CK(control key,控制密钥)关联,如果CK被密钥管理者删除则原数据便不可恢复。分散式密钥管理的代表性方案是Geambasu 等[4]提出的Vanish方案。其主要思想是:用户将数据用随机生成的密钥K进行加密,并将此密钥进行门限密码处理后随机分发到DHT[5](distributed hash table,分布式哈希表)网络中,DHT网络的动态更新特性会将密钥分片删除,此时密钥K将不能进行重构,达到用户数据确定性删除的目的。为了解决Vanish方案易受Sybil攻击[6]的缺陷,Zeng 等[7]提出一种解决方案SafeVanish,通过增加密文分量长度并利用RSA加密对称密钥的方式抵抗Sybil攻击。

· 第二层意义上的确定性删除指云内或跨云的数据副本删除问题。针对云环境下数据多副本难以管理的问题,熊金波等[8]提出一种多副本安全共享与关联删除方案,方案利用RAO(replication associated object,副本关联对象)封装用户数据副本,CSP维护副本目录记录和追踪用户数据所有副本信息。不同服务器之间的同步机制可以监测RAO产生或删除副本的操作行为,保证了跨云副本的精确管理。

· 第三层意义上的确定性删除是指实现云端数据的删除反馈机制。Zhang等[9]基于数据完整性检查提出可证明可追溯的确定性删除方案,云端对数据确定性删除后需要按照用户指定的模式对原始存储位置进行覆写,并利用区块链公开透明的特性进行覆写结果的公众验证。杜瑞忠等[10]构建基于脏数据块覆写的可搜索路径散列二叉树(DSMHT),对要删除的数据进行覆写后再进行正确性验证。余海波[11]提出基于区块链的数据确定性删除协议,利用区块链保存服务器生成的数据删除证据和经证据构造得到的Merkle树的根值。用户通过区块链上的证据信息,对收到的删除结果进行验证,确保服务器的行为诚实和数据不可恢复。

由上述调研可知,现有确定性删除方法聚焦的重点是确保用户可以通过删除数据密钥等手段使其共享数据不再可以访问,并使删除结果更具有说服力;但现有方法都忽略的是除了数据本身,用户的共享和删除行为也是攻击者关注的对象。这是因为通过将用户行为与其身份进行关联,CSP或攻击者可以监视用户的一举一动,甚至对用户进行肖像描绘、兴趣预测,并在用户不知情的情况下将分析结果随意传播以换取经济利益,这无疑会给用户隐私带来威胁。所以,如何实现在不透露用户身份的情况下在云环境下共享数据、删除(撤销)数据是解决数据共享参与用户隐私保护的另一重要途径。针对上述问题,本文提出的确定性删除方法实现了用户数据匿名上云,并在保持用户匿名情况下实现数据的确定性删除,能有效避免攻击者对用户行为的追踪分析。本文的主要贡献如下。

· 改进了可链接环签名方案,可同时兼顾用户匿名性和用户自主性,即用户可在匿名情况下自由决定签名中的链接标记。这样,用户可以将加密数据与环签名信息上传到CSP,在确定性删除阶段用户生成带有同样链接标记的签名,CSP即可通过链接数据上传阶段和数据确定性删除阶段的签名信息实现匿名确权从而执行确定性删除。

· 构建了不同类型的区块链交易以实现密钥信息分散管理和确定性删除,避免了集中密钥管理的单点失效问题,也不需要引入可信第三方,简化了系统结构;同时得益于区块链难以篡改和可追溯的特性,使确定性删除操作被永久记录在区块链并且不可抵赖,更具有“确定性”。

2 理论基础

(1)Shamir门限秘密共享方案[12]

其基本思想是,将秘密k以某种方式分成n份k1,k2,…,kn,并满足:

· 任意t或t个以上ki能够计算出k;

· 任意少于或等于t-1个ki无法计算出k。

(2) 可链接环签名[13]

又称为LSAG(linkable spontaneous anonymous group,可链接自发匿名群组)签名。可链接环签名有以下特性。

· 匿名性:若签名者所在环中有n个成员的公钥,攻击者无法确定签名由环中哪个成员生成。

· 自发性:没有群组秘密,不需要群组管理员。

· 不可伪造性:环中其他成员不能伪造真实签名者对消息m的签名,攻击者在获得某个有效签名的基础上,也不能为消息伪造一个签名。

· 可链接性:若诚实签名者在同一环中对消息m和m′签名得到两个可链接环签名,那么这两个环签名拥有相同的链接标记。根据链接标记,环中成员能在不知签名者身份的情况下验证两个签名是否由同一签名者生成。

本文对可链接环签名方案进行了改进,使其能在同一签名群体中生成带有不同链接标记的签名。

(3)区块链[14-15]

区块链实际上是一种分布式数据库或公共分类账本,由一系列按时间顺序排列的区块组成,其中记录着经过验证的交易或者数字事件。最重要的是,区块链每个区块都包含时间戳和前一个区块的哈希值(如图1所示),这使得区块链的数据不可更改并且可追踪。分布式网络中的节点达成共识后,新的有效区块才会被添加到区块链。此外,分布式网络中的每个节点都保留相同的区块链副本,这使得区块链能有效防止单点失效问题。

文中所用符号缩写及含义见表1。

3 基于区块链的确定性删除

3.1 系统组成

系统模型如图2所示,基于区块链的确定性删除模型由4个实体组成:数据拥有者(data owner,DO)、数据使用者(data user,DU)、区块链网络和CSP(数据拥有者和数据使用者均为

图1 区块链的结构

表1 符号缩写

图2 系统模型

区块链中的节点,为方便叙述将其分开表示)。其中,CSP负责存储、返回用户的加密数据,监听区块链交易信息并执行云数据的删除;数据拥有者将密钥信息通过交易分散到区块链网络中并将加密数据上传到CSP;数据使用者通过交易请求从区块链中恢复密钥信息并解密从CSP下载的加密数据;区块链网络负责密钥信息的分散管理,同时验证交易信息的合法性。本文参考Li等[16]的方案为区块链网络构建了3种类型的区块链交易,分别为TXDATA、TXREQUEST和TXDELETE,分别用于数据上传、数据请求和数据确定性删除。每个区块链节点还拥有一个链下数据库,用以存储密钥信息经Shamir门限秘密拆分得到的子秘密。此外,区块链节点共同维护一个公钥池,其中存储所有节点的环签名公钥和RSA公钥,所有节点都能获取其中存储的公钥列表。

3.2 模型假设

对于上述系统模型,本文定义如下假设条件。

(1)云服务提供商(CSP):诚实地存储用户数据,但是对用户数据好奇,可能不诚实删除用户数据。

(2)数据使用者:数据使用者是可信的,不会将恢复的明文信息透露给其他人。实际上,一旦数据使用者获得数据访问权限,诸如截屏、拍照等较高层级的操作是无法被禁止的[17],所以本文认为假设合理。

(3)区块链网络:当收到外部交易时,每一个区块链网络中的节点会根据交易类型诚实执行相应命令,即每个节点会自动执行数据存储和数据删除的操作。假设合理性基于区块链网络的安全性,即某个节点想要改变当前区块链网络状态,则其需要利用自己想要的执行结果说服其他节点或者发动51%攻击,无论哪一种方式都需要付出极大的代价。

4 基于区块链的匿名确定性删除方法

4.1 设计思想

数据拥有者将数据加密后上传到CSP,将密钥信息和存储位置利用Shamir秘密分享策略进行拆分,并通过区块链交易广播到不同区块链节点中存储。这样不仅避免了使用密钥管理服务器容易发生的单点失效问题,同时也使密钥信息不容易被攻击者窃取。

数据拥有者和数据使用者是对等的区块链节点。为实现匿名确定性删除,所有区块链节点发送交易时不携带身份信息,即匿名发送交易。但是匿名情况下确保交易发送者身份合法性是需要解决的问题,而可链接环签名可以实现匿名情况下的身份认证,故本文利用可链接环签名对交易进行签名和验证。在数据上传阶段,数据拥有者为TXDATA交易添加特定链接标记,当数据拥有者想要结束共享时,则发送带有相同链接标记的TXDELETE交易通知区块链节点和CSP执行删除操作。由于可链接环签名的不可伪造性,攻击者无法伪造带有相同链接标记的合法签名,也就是说只有数据拥有者才能删除自己共享的数据,保证了数据安全性。

本文构建了3种不同类型的交易,设计了区块链中交易发送算法SendTX和交易处理算法HandleTX,算法会根据交易类型的不同控制区块链节点执行不同的操作;由于本方法的匿名要求,将交易的签名算法替换为改进的可链接环签名算法,实现交易的匿名验证。如果数据拥有者将密钥信息直接发送到区块链,区块链的公开性会使用户数据直接暴露给所有人,这是不能接受的。针对这一问题,本文采用RSA加密算法将交易信息加密后发送。当数据拥有者准备将密钥信息通过交易信息发送到区块链时,其从公钥池中随机选择RSA公钥对交易进行加密,这样确保了只有该公钥的持有者(即数据拥有者所选择的交易接收者)可以解密并存储密钥信息。

4.2 方案设计

方案可以分为3个阶段描述:数据上传阶段、数据请求阶段和数据确定性删除阶段。假设区块链由n个节点组成,节点i可以用五元组(Nodei,PKi、SKi,yi,xi)表示,其中Nodei为节点名称,PKi、SKi为RSA加密公钥和私钥,yi、xi为可链接环签名公钥和私钥。特别地,用π(1≤π≤n)表示作为数据拥有者的节点,用μ(1≤μ≤n)表示数据使用者节点。在数据上传阶段之前,所有节点生成RSA密钥对和可链接环签名密钥对,并将公钥发送到公钥池中得到公钥列表L1={PK1,PK2,…,PKn}和L2={y1,y2,…,yn}。

4.2.1 数据上传阶段

数据拥有者在数据上传阶段将加密数据上传到CSP,同时将密钥信息通过TXDATA类型的交易拆分并分散到不同区块链节点存储。这样不仅避免了单独使用密钥管理服务器的单点失效问题,而且当数据拥有者想要结束共享时,可以随时发送TXDELETE类型的交易撤销密钥信息进行数据的确定性删除。数据上传阶段如图3所示,共分为6个步骤。

步骤1假设数据拥有者待上传的加密数据为E,其对称加密密钥为KEY。在数据上传之前,数据拥有者向云服务提供商发送存储请求。

步骤2云服务提供商为数据拥有者预先分配并返回存储地址ADDR,数据拥有者将KEY和ADDR封装成秘密数据封装体SDO。

步骤3数据拥有者运行Shamir门限秘密共享算法将SDO拆分成多个子秘密。具体计算过程如下。

假设区块链网络共有n个节点,数据拥有者选择秘密恢复门限值t>n/2(防止51%攻击),选择一个大素数p,在GF(p)中随机选择系数at-1,at-2,…,a1,且令a0=H3(SDO),其中H3:{0,1}*→Zp。构造GF(p)上的t-1次多项式:

图3 数据上传阶段

在GF(p)中选取n个非零、互不相同的x1,x2,…,xn,令i=1,2,…,n,计算:

并将x1,x2,…,xn和p公开,将Datai(i=1,2,…,n)输出。

步骤4数据拥有者运行交易发送算法SendTX(TXDATA,[Data1,Data2,…,Datan],None,r)→{txdata0},参数一表示发送TXDATA类型的交易,参数二表示要发送的数据,参数三表示交易接收者公钥,数据上传阶段接收者公钥从公钥列表随机选择,所以设置为None(空)。参数四表示可链接环签名的链接参数。数据拥有者会将Datai用接收者公钥进行RSA加密填充到Payload字段,对交易进行可链接环签名后填充到SIG字段,然后将交易广播到区块链网络中,最后将算法运行过程所用参数保存到DVO(如图4所示)以便在数据请求阶段使用。

图4 两种数据访问封装体

步骤5区块链节点收到交易广播运行此交易处理算法HandleTX(txdata0)。算法判断交易为TXDATA类型后,验证交易的可链接环签名是否合法,若合法则将交易打包到区块链。打包交易后,区块链节点尝试解密txdata0交易的Payload字段,若能解密则将数据保存到数据库。以图中3中Node1节点为例,Node1可以解密Payload字段的第一行,得到Data1后将Data1及其哈希值和txdata0的SIG字段保存到数据库,其他节点同理。由图3可知,数据拥有者Nodeπ已经将SDO子秘密Data1,Data2,…,Datan分 散 到Node1,Node2,…,Noden。

步骤6数据拥有者运行可链接环签名的签名算法LSAGSig(E,r)→{σr(E)}对加密数据E进行可链接环签名,链接参数为r,并将签名结果与加密数据E一同尝试发送给CSP。CSP运行可链接环签名的链接算法LSAGLink(σr(E),σr(txdata0))→True or False,如果算法输出True,表示当前E的发送者与txdata0是同一用户,其身份已经由区块链网络验证,CSP即可从数据拥有者接受加密数据E。

数据上传阶段结束后,CSP中已经存储了加密数据E,数据拥有者将步骤4中所用Datai的哈希值H(Datai)和其对应RSA公钥封装到DVO(data visit object,数据访问封装体)的MAPPING字段,将加密数据E的哈希值H(E)和链接参数r封装到DVO的PROOF字段(如图4(a)所示)。除此之外,数据拥有者还封装一个PDVO(partial data visit object,部分数据访问封装体)(如图4(b)所示),PDVO省去了DVO的链接参数r,没有链接参数r意味着无法生成合法的TXDELETE交易,所以PDVO不具有确定性删除权限。数据拥有者可以将PDVO交给其他数据使用者而不必担心数据被恶意删除。

4.2.2 数据请求阶段

数据使用者利用部分数据访问封装体(PDVO)访问数据拥有者共享的数据,共分为5个步骤,如图5所示。

步骤1数据使用者提取部分数据访问体中MAPPING字段(t行,t为Shamir秘密分享策略设置的门限值)的H(Datai)与其对应的RSA公钥PKi,运行发送交易算法SendTX(TXREQUEST,{Data1,Data2,…,Datat},{PK1,PK2,…,PKt},r)→ {txrequest}。

步骤2区块链所有节点运行接收交易算法HandleTX(txrequest),成功验证交易签名信息验证后将交易打包到区块链,并解密Payload得到数据请求者公钥PKμ和请求数据的摘要H(Datai),区块链节点根据数据摘要查找数据库C1字段,若查找成功则向数据请求者返回一个TXDATA交易,即再次运行算法SendTX(TXDATA,Datai,PKμ,0) →{txdatai}。数据请求阶段只需要验证交易合法性即可,故链接参数设置为0。在图5中,Node1,Node2,…,Nodet节点分别返回TXDATA类型的交易txdata1,txdata2,…,txdatat。

步骤3数据使用者运行交易处理算法HandleTX(txdatai),验证txdatai的签名后打包交易到区块链,并解密Payload字段可以得到秘密封装体SDO子秘密Data1,Data2,…,Datat。

图5 数据请求阶段

步骤4数据使用者对SDO子秘密进行Shamir秘密重构,将t组(xi,Datai)代入拉格朗日插值计算式重构f(x):

得到f(x)之后计算:

即可恢复秘密数据封装体SDO。

步骤5数据使用者将秘密数据封装体SDO中的存储位置ADDR发送至CSP请求加密数据E。CSP查找数据库的C0字段,若查找成功则向数据使用者返回C1字段即加密数据E。数据使用者首先验证E的摘要值是否与PDVO中存储的H(E)一致,若一致则用密钥KEY对加密数据E进行解密即可得到数据拥有者共享的数据。

经过数据请求阶段,数据使用者通过利用PDVO向区块链请求到数据拥有者的SDO信息,并利用SDO向CSP请求得到数据拥有者的加密数据。

4.2.3 数据确定性删除阶段

数据拥有者利用DVO进行确定性删除操作,以撤销其在数据上传阶段共享的数据,如图6所示,确定性删除阶段分为3个步骤。

步骤1数据拥有者提取DVO的MAPPING字段SDO子秘密的哈希值H(Datai)与其对应的PKi,执行算法SendTX(TXDELETE,H(Datai),PKi,r)→{txdelete}。

步骤2区块链中所有节点执行交易接收算法HandleTX(txdelete),此算法验证交易签名、将交易打包到区块链后,对交易Payload字段进行解密得到H(Datai),并在数据库中匹配H(Datai)对应的数据条目。若匹配成功则执行算法LSAGLink(σr(txdelete),σr(txdatai))→True or False,如果算法输出True,表示此txdelete的发送者与txdata0是同一用户,完成了确定性删除的匿名身份认证。确定了删除发起者的身份后,区块链节点将H(Datai)对应的整行数据条目删除。

步骤3区块链节点删除了SDO子秘密后,加密数据E的密钥KEY与存储位置ADDR已经被永久销毁,CSP中还存储着加密数据E,需要将其删除以释放空间。具体做法是:CSP监听到步骤1中txdelete交易信息,根据σr(txdelete)在数据库中进行匹配得到C2字段的可链接环签名信息σr(E),执行LSAGLink(σr(txdelete),σr(E))→True or False。若算法输出True,表示此txdelete的发送者与txdata0是同一用户,完成确定性删除的匿名身份认证,将σr(E)对应条目从本地数据库删除。至此,数据已完成确定性删除。

图6 确定性删除阶段

4.3 关键算法设计

4.3.1 区块链交易发送与交易处理算法

本方案的主要逻辑功能依靠区块链交易发送与交易处理算法实现。数据拥有者或数据使用者通过交易发送算法发送不同类型的区块链交易,区块链节点根据交易处理算法通过收到交易的类型执行相应操作。

算法1交易发送算法

输入交易类型Type,将被加密发送的数据列表DatasOrHashs,目的节点RSA公钥列表PKs,可链接环签名链接参数r。

输出类型为Type的交易TX。

(1)function SendTX(Type, DatasOrHashs,PKs,r):

(2)begin

(3) if Type=TXDATA or TXDELETE then

(4) PKform←None,LinkSym←r

(5) else if Type=TXREQUEST

(6) PKform←PKπ,LinkSym←0

(7) end if

(8) if PK= None

(9) PKdest←RandomChoose(L1)

(10) else

(11) PKdest←PKs

(12) end if

(13) fori=0 to PKs.length

(14) Payload[i]←RSAEnc(DatasOr Hashs[i]|| PKform, PKdest[i])

(15) end for

(16)σr(Payload)←LSAGSig(L2, Payload, Link Sym,yπ,xπ)

(17)return TX(Type, Payload,σr(Payload))

(18)end

算法1的第(3)~(7)步判断要发送的交易类型,如果是TXDATA或TXDELETE类型的交易,说明不需要区块链返回交易,故PKform可以设置为空值None;但这两种类型的交易需要发送者添加链接标记r,将r保存到变量LinkSym以便后续调用。如果是TXREQUEST类型的交易,区块链会向自己返回TXDATA交易,所以需要将自己的RSA公钥赋值给PKform。算法第(8)~(12)步指定交易接收者RSA公钥(确保交易只能由特定接收者解密),如果PKs参数未设定(None),则从公钥池的RSA公钥列表中随机选择接收者公钥(RandomChoose);如果PKs不为空,则说明这是数据使用者请求的交易,PKs即数据使用者的公钥。第(13)~(15)步是加密过程,保证交易信息只有接收者能解密。第(16)步对交易进行可链接环签名,实现匿名情况下交易合法性的验证。算法最后返回交易信息TX。

算法2交易处理算法

输入接收到的交易TX

输出Type为TXDATA的交易或者空

(1)function HandleTX(TX)

(2)begin

(3) if LSAGVer(L2,TX.Payload,TX.σr(Payload)) =Reject

(4) exit

(5) end if

(6)try

(7){DatasOrHashs||PKfrom}← RSADec(TX.Payload, SKπ)

(8)except 解密失败exit

(9) if TX.Type=TXDATA

(10)C0 ,C1,C2←DatasOrHashs, H(Datas OrHashs), TX.σr(Payload)

(11) 将C0,C1,C2分别保存到本节点数据库C0,C1,C2列

(12) else if TX.Type=TXREQUEST

(13)C0,C1,C2←尝试查找本节点数据库中C1列为DatasOrHashs的数据

(14)查找成功则执行SendTX(TXDATA,C0,L1, L2, 0),否则exit

(15) else if TX.Type is TXDELETE

(16)C0,C1,C2←查找本节点数据库中C1列为DatasOrHashs的数据

(17) 若查找失败,exit,否则继续

(18) if LSAGLink(C2,TX.σr(Payload))=True

(19) 删除本节点数据库中C1列为Data的数据

(20) end if

(21) end if

(22)end

算法2第(3)~(8)步首先验证交易,即验证交易的可链接环签名字段是否合法,若是非法交易则结束算法;若交易合法则会被打包到区块链,所有节点会尝试解密该交易,如果解密失败,说明此交易接收者不是自己,结束程序;若解密成功,则说明此交易是发给自己的,执行后续步骤。第(9)~(19)步判断交易类型并执行相应操作,如果判断交易类型为TXDATA,则将交易数据保存到本地数据库。如果交易类型为TXREQUEST,说明有数据使用者正在请求数据,尝试从本地数据库查找数据,如果找到则通过TXDATA交易返回该数据,否则退出算法。如果交易类型为TXDELETE,首先查找本地数据库,确定要删除的数据是否存在。如果存在则将TXDELETE的可链接环签名字段与对本地查找到的签名信息进行环签名的链接操作,若链接成功则说明TXDELETE交易的发送者是数据库中该条数据的拥有者,执行删除操作。

4.3.2 改进的可链接环签名算法

原始可链接环签名算法在相同公钥列表下只能生成带有相同链接标记的签名结果,无法应用在本方案中。主要有两点原因:首先,如果同一用户生成的签名结果只能有一种链接标记,那么攻击者可以根据此链接标记定位用户所有签名,从而分析用户行为,这样会大大降低用户匿名性。其次,改进的可链接环签名可以很容易匿名实现文件所有权的鉴权。原理是:针对某一次共享过程,用户对其进行签名并附加一个独特的链接标记,在确定性删除阶段发送带有同样链接标记的TXDATA交易,区块链节点和CSP即可确定用户对该数据的所有权并执行删除操作。如果只能生成一种链接标记,就无法指定对哪一次共享进行确定性删除。具体改进算法,包括签名算法、签名验证算法和签名链接算法。

令G(q)=

· 签名算法 LSAGSig(L2,m,r,yπ,xπ) →σrm:算法输入为消息m∈ {0,1}*,环签名公钥列表L2={y1,…,yn},yn对应的私钥(1 ≤π≤n)和链接参数,根据链接参数计算h=H2(r)和y~=hxπ,得到链接标记。接下来选择u∈RZq,并计,为使签名闭合成环,令i=π+1 ,…,n,1,…,π-1,选 择并 计 算最后计算sπ=u xπcπmodq. 得到并输出可链接环签名结果

· 签名验证算法LSAGVer(L2,m,σrm)→Accept or Reject:算法输入为消息m,环签名公钥列表L2以及消息m在L2上的环签名σr(m)。令i=1,…,n,首先计算中间变量,根据中间变量计算最后验证是否成立,若成立则输出Accept,否则输出Reject。

5 安全性分析

5.1 改进的可链接环签名安全性分析

定理1改进的可连接环签名不改变原始方案的匿名性。

证明假设L为可链接环签名公钥列表,m为待签名消息,r为改进方案中的链接参数。原方案中,签名算法第一步计算h=H2(L)和最终生成签名改进方案中,签名算法第一步计算和y~ =hxπ,最终生成签名对比原方案与改进方案可知,原方案中L为公钥列表,这是所有环内成员已知条件,即h为环内成员已知条件,所以原方案生成签名等价于与改进方案相同。所以,改进方案中将h=H2(r)加入签名结果使环内成员可见,相比较原方案没有透露更多信息。综上所述,改进的可链接环签名方案不改变原方案匿名性。

定理2除了签名者,其他人不能伪造带有相同链接标记的签名。

证明要生成链接标记,首先通过单向哈希函数计算h,再计算所以要想伪造相同链接标记,必须解决离散对数问题,计算出签名者私钥,才能伪造消息m的签名。而目前没有有效的算法在多项式时间内解决离散对数问题,所以只有签名者可以生成同样链接标记的环签名。

5.2 方案匿名性分析

(1)区块链交易信息对匿名性影响

区块链节点和CSP通过验证交易信息的签名字段验证交易发出者身份的合法性,不涉及交易发出者的真实身份,切断了用户数据与其身份的关联性。由于可链接环签名的匿名性可知,区块链节点之间是相互匿名的,节点对于CSP来说也是匿名的。假设攻击者想要跟踪某一用户的共享和删除行为,需要破解区块链上记录的环签名信息(第5.1节已经证明签名方案的安全性)。攻击者还可以根据链接标记追踪用户行为,但是用户的每次共享行为都会随机选择链接参数生成不同链接标记,除非攻击者窃取到签名者私钥,否则系统是安全的,能有效防止攻击者的追踪分析。

(2)安全信道对匿名性影响

方案中数据使用者和数据拥有者与CSP之间会使用安全信道进行数据传输,安全信道的建立可能会涉及用户IP地址,但是用户IP地址不能代表用户身份。首先,用户IP地址通常由运营商进行分配,所以会经常变动。其次,在大多数情况下一个公网IP地址对应的是一个用户群体而不是单独一个用户。在安全信道进行数据传输之前,通信双方可以先进行密钥协商,利用协商的密钥加密传输的数据,这个过程可以不涉及用户身份。综上所述,安全信道不会降低用户匿名性。

5.3 不可抵赖性分析

在所提方法中,区块链网络不仅负责密钥信息的分散存储,还起到验证操作者身份的作用,用户的所有操作都会经验证后记录在区块链中并且不会被篡改。不论是数据上传、数据请求还是数据确定性删除都需要操作者向区块链发送相应类型的交易,CSP监听到交易信息才会对用户数据进行相应操作。如果某节点试图篡改区块链数据,则其需要从该区块开始计算哈希值直到最新区块使区块之间通过哈希值连接,这需要非常强大的算力,通常需要全网一半以上的算力才能做到如此(51%攻击)。

如上所述,区块链的难以篡改性,使链上数据具有权威性,任何一方都不能抵赖。如果CSP没有诚实删除用户数据,则用户可以将环签名链接参数r和签名私钥xπ交给第三方仲裁机构,仲裁机构根据链接参数计算将得到的链接标记y~与出现纠纷交易的签名进行对比,如果链接标记相同,说明用户确实执行过删除操作,CSP无法抵赖。

6 实验仿真

6.1 实验环境

本文采用阿里云服务器模拟云服务提供商(CSP),用本地计算机运行区块链节点(包括数据拥有者和数据使用者),其中阿里云服务器CPU为2核心,内存为4 GB,操作系统为CentOS 8.0 64位,网络带宽为1 Mbit/s;本地计算机配置为Intel Core(TM) i5-10210U CPU @ 1.60 GHz四核,设备内存为12 GB,操作系统为Windows 1 064位,网络带宽为100 Mbit/s。方案中使用的AES算法、RSA算法和数据摘要算法采用Python加密库PyCryptodome提供的API函数。区块链采用基于RPC[18](remote procedure call,远程过程调用)实现的开源项目[19]。数据拥有者或数据使用者与CSP之间的数据传输采用FTP进行模拟,CSP对区块链数据的监听通过调用区块链的接口实现。

6.2 实验及结果分析

实验主要对方案的3个阶段耗时情况进行了实验评估。实验选择Shamir秘密分享门限t为0.6n,选取AES密钥长度为128 bit,RSA模数长度为1 024 bit。

(1) 数据上传阶段和数据确定性删除阶段性能分析

数据上传阶段中,数据拥有者和数据使用者与CSP之间的数据传输速率取决于双方带宽的最小值,可直接计算得出,所以本实验没有统计文件上传耗时,即实验统计的时间是从数据拥有者发出存储请求到数据拥有者开始向CSP上传文件。系统主要时间消耗为Shamir秘密拆分算法、交易发送算法SendTX和交易处理算法HandleTX,SendTX算法主要包含RSA加密和签名算法,HandleTX算法主要包含RSA解密算法和签名验证算法。表2为数据上传阶段各个算法耗时占比情况(“其他”指代数据拥有者向CSP发送请求、数据库存储和区块链网络通信等开销),可见数据上传阶段主要时间开销来源是RSA算法和签名(改进的可链接环签名)算法。同时由图7可见,随着节点数量的增加,系统耗时呈现线性增长的趋势,这是因为签名的生成和验证是与环内成员(区块链节点)数量线性相关的,RSA加解密次数也是与节点数量呈线性相关的。

表2 数据上传阶段耗时占比详情

图7 数据上传阶段耗时曲线

(2) 数据请求阶段性能分析

实验统计数据请求阶段时间是从数据使用者发送TXREQUEST交易到接收到CSP返回的密文结束。期间各个算法耗时占比见表3。可见RSA解密耗时占比非常大,其原因是,当区块链接收数据使用者发送的TXREQUEST交易后还需要返回t个TXDATA交易,而针对这t个交易数据使用者要逐个解密这些交易的Payload字段。从图8也可以看出,由于RSA解密阶段的影响,整个数据请求阶段耗时远远高于数据上传阶段。这个问题是可以改善的,由于此解密过程在数据使用者本地计算机进行,可以用计算机编程的多线程思想解决,即对t个秘密并行解密,优化后与数据上传阶段耗时是相近的。

图8 数据请求阶段耗时曲线

(3)数据确定性删除阶段性能分析

实验统计数据确定性删除阶段时间是从数据拥有者发送TXDELETE交易到云端从数据库中删除加密数据结束。此阶段与数据上传阶段类似,主要时间开销为RSA算法和签名算法(见表4),并且随着节点数量增加,时间消耗呈线性增长(如图9所示)。

表3 数据请求阶段耗时占比

表4 数据确定性删除阶段耗时占比

图9 数据确定性删除阶段耗时曲线

7 结束语

本文在现有确定性删除方法的基础上做了进一步的探索,提出切断用户数据与用户身份关联的确定性删除理念,并提出了基于区块链的匿名确定性删除方法。方法在区块链中构建不同类型的交易实现用户对数据密钥的隐藏、请求和删除,并应用改进的可链接环签名技术实现了云数据的匿名确定性删除,进一步提高了用户使用云计算服务时的隐私性。最后对方案性能进行了评估,结果表明系统能实现较高效率的数据上传、数据请求和数据确定性删除。在未来研究中,会在方案中加入节点动态加入和退出功能,并进一步提高系统效率。

猜你喜欢
拥有者确定性密钥
基于Stackelberg博弈的异步联邦学习激励机制设计
探索企业创新密钥
论中国训诂学与经典阐释的确定性
论法律解释的确定性
法律方法(2022年1期)2022-07-21 09:18:56
含混还是明证:梅洛-庞蒂论确定性
美德伦理品质有利于其拥有者
密码系统中密钥的状态与保护*
一种对称密钥的密钥管理方法及系统
基于ECC的智能家居密钥管理机制的实现
电信科学(2017年6期)2017-07-01 15:45:06
法律确定性的统合理性根据与法治实施
社会科学(2016年6期)2016-06-15 20:29:09