基于区块链的细粒度云数据安全存储与删除方案

2021-07-29 03:34周由胜陈律君
电子与信息学报 2021年7期
关键词:拥有者细粒度密文

周由胜 陈律君

①(重庆邮电大学计算机科学与技术学院 重庆 400065)

②(重庆邮电大学网络空间安全与信息法学院 重庆 400065)

1 引言

随着大量的敏感数据,如健康数据、金融数据、商业秘密、保密通信等都被外包到云端,数据安全问题引起了大量关注[1,2]。由于云服务器往往是半可信的,出于数据安全性考虑,数据所有者可能需要将某些存储在云端敏感数据删除,因而如何确保云服务运营商诚实地依照用户要求删除数据对数据拥有者而言至关重要[3–5]。除了保证云端数据的保密性和可用性外,数据拥有者如何实现安全删除其外包数据是云存储服务中需要解决的一个重要问题。

现有的数据删除方法大多基于一比特返回协议进行构造,即在假定服务器可信的情况下,数据所有者发送一个请求让云服务器从物理介质中删除数据,然后接收一个表示删除操作结果的位应答(成功/失败)[6]。如Garfinkel等人[7]提出通过删除链接到数据的系统指针的方式,但它只是删除了链接而内容仍然保留在磁盘中。Gutmann[8]提出基于随机数据覆盖存储介质的方式实现数据删除。Paul等人[9]提出了可擦除性证明(Proof of Erasability,PoE)概念,即用随机模式覆盖磁删除数据。Perito等人[10]提出安全擦除证明(PoSE-s)的方案,通过备发送一串随机模式将原始数据覆盖。通过覆盖存储介质的安全数据删除大多不支持验证而且效率较低。近年来,基于密码技术的外包数据存储与删除方案受到关注[11–17]。Perlman[12]提出了一个有保证的删除协议。张曙光等人[13]提出了一种使云服务器能够实现加密数据重复删除的方法。为了实现删除公开可验证,Yang等人[14]提出一种基于私有链的删除证据存储方案。Yu等人[15]提出利用属性基加密实现外包数据访问控制,并通过交互验证删除。Xue等人[18]提出了支持细粒度访问控制的安全删除方案,但计算代价较大,并且需要可信第三方生成重加密密钥。此外,还有部分学者考虑了基于树状存储实现安全删除[19–21]。

现有多数外包数据的安全删除方案大都假设云服务器完全可信,或依赖可信第三方协作完成安全删除,同时难以支持细粒度访问控制与删除,其安全性和效率有待于进一步提升。为此,本文提出一种基于区块链的细粒度云数据安全删除方案。首先采用基于密文策略的属性基对外包数据加密,实现数据所有者对数据的细粒度访问控制和可公开验证删除。同时,将外包的数据与属性策略相关联,通过撤销用户访问文件必不可少的属性从而确保数据删除。其次,本文提出了基于区块链的数据删除证据验证。数据所有者可以通过云服务器中已修改的密文重构默克尔哈希树(Measurement Hash Tree,MHT),并且对比哈希链上公开的证据来验证目标数据是否已被删除。最后,本文方案基于椭圆曲线进行构造,相比传统的基于双线性映射的数据安全存储与删除方案,计算复杂度更小。在删除和验证阶段,只需要数据所有者与云服务器两方交互,不需要引入可信第三方,系统通信开销和计算开销进一步降低。

2 系统模型

2.1 安全假设

在本文中,假设云服务器为不可信实体,即云服务器可能未经数据拥有者授权删除数据或者不按照数据拥有者删除请求删除数据。假设数据拥有者为非诚实实体,即数据拥有者可能会否认自己曾经发出的数据删除请求,并诬陷云服务器未经授权删除数据,从而向云服务器索要赔偿。本方案允许被动攻击存在,即敌手可以窃听系统中的所有通信,未经授权的用户也可能相互勾结以获取明文信息。考虑到本文所提方案的应用环境,结合Ramokapane等人[22]提出的基于云的确定性删除的安全目标,将本文方案的安全目标设定为满足正确性、完整性、确定性数据删除、安全细粒度访问控制与责任追踪等要求。

2.2 系统模型

本文提出的方案包含5个实体:云服务器(Cloud Security Provider, CSP)、属性授权中心(Attribute Authorization center, AA)、数据拥有者(Data Owner, DO)、用户(Users)、区块链网络(Block Chain network, BC)。本方案的基本框架如图1所示。

图1 系统模型

(1) 云服务器(CSP):提供存储服务、数据访问服务。此外,云服务器可根据数据拥有者请求删除数据,并将删除证据存放于区块链。

(2) 属性授权中心(AA):为系统生成主密钥,为每个属性、合法用户生成私钥。

(3) 数据拥有者( DO):定义访问控制策略,通过定义的策略加密文件并存储到云上。此外,还可生成删除请求以及验证云服务器返回的删除结果。

(4) 用户(Users):在云上下载并解密密文,但只有授权用户可以获取相应明文。

(5) 区块链网络( BC):本文方案中使用联盟链以构成数据删除证据链,使用实用拜占庭算法(Practical Byzantine Fault Tolerance, PBFT)作为其共识机制。云服务器为普通节点,删除证据生成后交给所属机构的超级节点,由超级节点进行区块模拟打包,当交易记录填充完一个区块即提出出块请求。只有超级节点共同维护一份统一的包含删除证据的账本并参与共识,其他节点通过授权向超级节点申请查阅相关信息,实现删除证据公开验证服务。

2.3 算法组成

本方案包括7个算法:Setup, KeyGen, Encrypt,Decrypt, DelRequest,ReEncrypt,Verify,具体如下:

(1) Setup(1λ):由 AA运行的系统初始化算法,将安全参数λ作为输入,输出属性公钥PKi与系统主密钥MSK, PKi公开而MSK由A A私密保存。

(2) KeyGen(MSK,ID,SID):由 AA运行的密钥生成算法,输入主密钥MSK,用户身份标志 ID以及该用户的一组属性SID,输出与用户拥有属性相关的私钥S K。

(3) Encrypt(PKi,(A,ρ),M):由数据拥有者运行加密算法,该算法需要以属性公钥PKi,访问策略(A,ρ)以及明文M为输入,输出与访问策略(A,ρ)相关的密文CT以及签名σSKD0(Rj)。这里的Rj为已建立的第j个MHT的根值,A为线性秘密共享矩阵,ρ为一个映射,表示将矩阵A的第x行匹配到属性ρ(x)。

(4) Decrypt(CT,SKρ(x),ID):由用户运行的解密算法。该算法将密文 CT和与该用户拥有的属性相关的私钥SKρ(x),ID作为输入,若私钥中的属性集满足密文中的访问架构,算法输出明文M,否则,算法停止。

(5) DelRequest(fname,y):数据拥有者向云服务器申请删除数据的算法。算法将文件名fname与要更改的属性y作为算法输入,输出数据删除请求DR。

(6) ReEncrypt(CT,DR):云服务器对密文进行重加密算法。输入密文 CT与删除请求D R,输出重加密后的密文项以及签名σSKCSP(),这里的是更新后的MHT的根值。

(7) Verify(Resp,CT′):数据拥有者删除验证算法。数据拥有者输入云服务器返回的删除反馈Resp,更改后的密文CT′,再结合当前哈希链的值进行验证,若验证通过,输出1,否则,输出0。

2.4 安全模型

本方案的安全模型为基于选择性访问架构安全(selective access structure security),该模型由敌手 A 和挑战者C 之间的游戏来定义。在游戏开始阶段,敌手 A 先输出一个挑战访问架构A∗,接着敌手A 可以发出与属性S相关的私钥查询,但这些属性不能满足访问架构A∗。

模型详情如下所述:

Init: 敌手 A选择一个挑战访问架构(A∗,ρ∗),此架构中属性dummy已被撤销,即用(A∗, ρ∗)加密的密文已被删除。

Setup:挑战者 C 执行setup算法生成系统公共参数,并为每个属性生成公私钥对。接着挑战者C 将生成的公共参数发送给敌手A 。

Phase 1: 敌手 A向挑战者C 发送与属性组SID相关的私钥查询,但所有的属性组SID不能满足A∗。因为属性dummy已被撤销,则属性组SID不包括属性dummy。

Challenge: 敌手 A任选两个相同长度的消息M0,M1发送给挑战者C ,挑战者C 任选δ ∈{0,1},并基于访问架构(A∗, ρ∗)加密Mδ,并将加密后的密文CT∗发送给敌手A 。

Phase 2:过程与phase 1类似,敌手 A 进行更多的秘钥询问。

Guess:敌手 A输出猜想,若δ′=δ,则敌手A赢得游戏。

3 具体方案

本节给出数据存储与安全删除方案的具体构造。为了提高算法整体性能,本文利用椭圆曲线进行构造。假设每个用户都会预先加载公共参数PKi(1≤i ≤|U|)以及LSSS访问矩阵。本方案的详细结构如下所示:

Setup(1λ):选择GF(p)为阶为P的有限域,设E是定义在GF(p)上的椭圆曲线,G为阶为r的椭圆曲线E的基。H为单向抗碰撞哈希函数。

AA任选随机数α ∈Zr,再为|U|个属性选择元素h1,h2,···,h|U|∈Zr,将MSK =(h1,h2,···,h|U|,α)作为系统主密钥私密保存,计算αG,PKi=hiG(1≤i≤|U|),并公开αG以及属性公钥PKi。

图2 证据链结构

4 方案分析

4.1 安全性分析

此外,本文方案在安全特性方面与现有同类方案相比具有一定优势,具体结果如表1所示。Yang等人[14]方案与Hao等人[23]方案不采用属性加密方式,缺少细粒度访问特性,且存入云端的密文数据只能自己访问,不能分享数据,且后者方案无法提供隐私保护。Xue等人[18]方案、Yu等人[15]方案与本文方案都使用属性加密,均可提供细粒度访问控制,但是前两个方案不能进行公开验证及责任追踪,且基于双线性构造方案开销较大,综上所述,本方案在性能评估中有较好的优势。

表1 安全特性对比

4.2 性能分析

本节就时间复杂度将本文方案与现有同类方案进行分析对比,由于Setup, KeyGen等阶段由具有充足计算资源的属性中心(AA)执行的离线一次性操作,对系统运行性能影响较小,所以本节主要考虑执行较为频繁的加密、解密、删除、验证等4个阶段的计算开销,具体结果如表2 所示。表2中的加密对应前文算法Encrypt,解密对应算法Decrypt,删除对应算法DelRequest和ReEncrypt,验证对应算法Verify,其中Tp_mul,Tp_add,Tbp,Texp,Tmul,Tsig,Tver,Tε,TD,Th分别表示单次椭圆曲线倍点运算,椭圆曲线点加运算,双线性映射运算,幂运算,乘法运算,ECDSA签名运算及ECDSA验签运算,AES加密运算及解密运算,哈希运算等运算时间。为便于描述,l代表共享生成矩阵A的行数,|γ|为密文中属性个数,Ma表示满足访问策略的最少属性个数,m为当前区块链节点个数。由于Xue等人[18]方案、Yu等人[15]方案与本文方案均基于属性加密,故本节仿真实验只针对后3个方案比较,对比结果如图3(a),图3(b),图4(a)与图4(b)所示,分别表示加密阶段、解密阶段、删除阶段与验证阶段。本实验在Intel(R) Core(TM) i7-6700 CPU@3.40 GHz平台上使用JPBC库实现。椭圆曲线加密的密钥大小为160 bit, AES加密密钥大小为128 bit,安全参数设置为80,图3(a)为设置不同的访问矩阵行数或密文属性个数的加密时间对比,图3(b)为设置不同的用户私钥或密文中属性个数的解密时间对比,图4(a)为设置不同的访问矩阵行数或密文中属性个数的删除时间对比,图4(b)为设置不同用户私钥或密文中属性个数的验证时间对比。图中时间为重复50次得到的平均值。本文方案和Yu等人[15]方案是基于CP-ABE的,而Xue等人[18]方案是基于KP-ABE的。因此在加解密阶段和删除验证阶段的时间消耗受访问矩阵行数、私钥中属性个数以及密文中属性个数等不同类型参数影响,本文实验中将这些参数值都设置4~16的相同值。

图3 不同访问矩阵行数或密文中属性个数下的加解密时间变化

图4 不同访问矩阵行数或密文中属性个数下的删除与验证时间变化

表2 时间复杂度对比

5 结束语

为了解决云存储环境中数据可信删除问题,本文提出一种基于区块链的云数据安全存储与删除方案。本文方案不仅比同类方案更为轻量化,还实现了存储数据的细粒度访问控制,同时基于区块链的删除证据管理方式使其具有公开可验证特性。最后,对本文方案进行了安全性分析和实验分析,结果表明所提方案能更好地满足云数据安全共享与删除需求。

猜你喜欢
拥有者细粒度密文
融合判别性与细粒度特征的抗遮挡红外目标跟踪算法
一种支持动态更新的可排名密文搜索方案
基于模糊数学的通信网络密文信息差错恢复
细粒度的流计算执行效率优化方法
美德伦理品质有利于其拥有者
基于SVM多分类的超分辨图像细粒度分类方法
支持细粒度权限控制且可搜索的PHR云服务系统
一种基于密文分析的密码识别技术*
云存储中支持词频和用户喜好的密文模糊检索
一种基于间接互惠的计算网格合作激励机制研究*