汪彩梅 闻琪略 周子健 卢建豪 张琛 吴志泽
摘 要:数据流行度去重方案中存在检测机构不诚实、数据存储不可靠等问题,提出一种面向去中心化存储的数据流行度去重模型。针对检测机构不诚实,模型结合区块链的不可窜改性与智能合约的不可抵赖性,将智能合约作为检测机构执行数据的重复性检测和流行度检测,保障了检测结果的真实性。针对数据存储不可靠问题,提出一种文件链存储结构。该结构满足数据流行度去重的要求,并通过添加辅助信息的方式,建立分布在不同存储节点中实现物理/逻辑上传的分片之间的逻辑关系,为流行度数据去中心化网络存储提供基础;同时,在数据块信息中添加备份标识,借助备份标识将存储网络划分为两个虚拟存储空间,分别实现数据和备份数据的检测与存储,满足了用户备份需求。安全性分析和性能分析表明,该方案具有可行性,保障了检测结果的真实性,并提高了数据存储的可靠性。
关键词:数据去重; 数据流行度; 去中心化; 区块链; 存储可靠性
中图分类号:TP309 文献标志码:A 文章编号:1001-3695(2024)05-038-1544-10
doi:10.19734/j.issn.1001-3695.2023.07.0381
Data popularity deduplication model for decentralized storage
Abstract:There are issues such as dishonest checking organizations and unreliable data storage in a deduplication scheme based on data popularity. This paper proposed a data popularity deduplication model for decentralized storage. To address the dishonesty of the checking agency, the model executed duplication checking and popularity checking of data by using smart contracts as the checking organization, which combined the non-tamper-ability of blockchain with the non-repudiation of smart contracts. It guaranteed the authenticity of the test results. To address the problem of unreliable data storage,it proposed a file chain storage structure. This structure satisfied the requirement of data popularity deduplication. Meanwhile, this structure established the logical relationship between the fragments which were distributed in different storage nodes to achieve physical/logical uploads by adding auxiliary information. The file chain storage structure provided the basis for popularity data in decentralized network storage. Besides,it added backup identifiers to the data block information, and divided the storage network into two virtual storage spaces with the help of the backup identifiers. Also, two virtual storage spaces were oriented for data detection and storage. It satisfied the users backup needs. Security analysis and performance analysis show that the scheme is feasible, guarantees the authenticity of the test results, and improves the reliability of data storage.
Key words:deduplication; data popularity; decentralized; blockchain; storage reliability
0 引言
隨着互联网技术的发展,数据呈爆炸式增长,使得越来越多的用户将数据外包给云服务提供商(cloud service provider,CSP)进行存储。数据外包至CSP有效缓解了本地存储空间的压力,但对CSP的存储空间和传输带宽造成了巨大压力。为降低CSP的存储成本并提高其存储能力,数据去重技术应运而生。
数据去重是一种高效的数据缩减技术,旨在检测并消除数据集合中的重复数据,以此降低对存储空间的需求[1,2]。重复数据包括明文和密文两种形式。若需检测明文是否重复,可直接比较明文的内容是否相同。检测密文是否重复,需先将密文解密至明文,再比较明文是否相同。由于检测机构无法获取用户解密密钥,故无法将密文恢复至原始的明文,阻碍了重复密文数据的检测。因此,最初的数据去重仅能实现对明文的去重[3]。
为实现密文去重,Douceur等人[4]提出了收敛加密(convergent encryption,CE)。CE利用哈希函数的单向特性与唯一性,可从相同数据中提取出相同密钥,并对相同数据采用相同密钥加密。因此,CE可为相同数据生成相同密文,实现无须解密密文的重复性检测。
然而,采用CE的数据去重方案不具有语义安全性[3]。语义安全性要求攻击者无法从密文推导出明文。若数据采用CE进行加密,攻击者往往可以通过穷举收敛加密有限的明文空间,并将密文与截获的密文相匹配,可逆推得到对应的明文信息[5]。然而,如果采用具有语义安全性的加密方式加密所有的数据,由于采用不同密钥加密相同数据生成不同密文,又再次使得密文数据去重不可执行。
因此,实现密文数据去重的同时提供语义安全性,是数据去重的一个挑战。针对此挑战,一些学者围绕数据流行度去重方案(deduplication scheme based on data popularity,DBDP)展开研究[5~11]。DBDP[6,7]根据数据流行度不同提供不同的安全级别,数据流行度可通过拥有数据的用户数目进行衡量。DBDP设置流行度阈值,当拥有数据的用户数目小于阈值时,数据为非流行数据,并采用具有语义安全的加密方式。反之,数据为流行数据,并采用收敛加密,执行数据去重。
然而,DBDP中采用可信第三方服务器(third-party provider,TTP)作为检测机构。TTP需負责记录上传拥有数据的用户数目,并检测数据的存储情况以及流行度,故DBDP对第三方可信程度要求较高[8,9]。但可信度的第三方在实际中极难部署。
为降低对第三方的安全需求,Ha等人[10]将重复性检测信息采用同态加密并存储在TTP中。虽然该方式降低了对第三方的安全需求,但无法解决第三方服务器单点故障问题。为此,哈冠雄等人[11]提出无须第三方服务器的DBDP,在不需要部署任何第三方服务器的情况下实现对数据流行度的精确统计,但要求CSP完全可信。而在数据流行度去重方案中,如果作为检测机构的CSP或TTP不可信,数据检测结果的真实性难以保障,导致数据加密方式与流行度不匹配的问题,使得非流行数据安全性下降。
此外,文献[5,6]仅实现了流行数据的去重,对于非流行数据仍保留多份数据副本。为降低数据的冗余,高文静等人[8,9]提出双层加密的方式,对非流行数据先采用收敛加密,实现数据去重,再采用语义安全性的加密方式以保护数据机密性,达到在CSP中仍仅保留一个副本的效果。
尽管数据去重模型中通常为降低冗余,要求CSP中仅保留一个副本[12,13],但CSP中仅保留一个副本会对DBDP中数据存储的可靠性产生影响,具体体现在两点:
a)DBDP主要面向集中式存储[14,15],将文件存储在中心存储服务器上,一旦中心存储服务器发生故障,大部分文件会损坏或者丢失。当唯一副本丢失时,拥有相同副本的所有用户都会丢失原有数据[16]。
b)当用户实际使用云存储服务,希望对同一数据进行备份以保障数据的完整性与可用性[17,18]时,这与数据去重思想相冲突,CSP会忽视用户备份需求,从而无法实现备份操作。
综上所述,本文提出了一种面向去中心化存储下的流行度数据去重模型,主要贡献如下:
a)结合区块链的不可窜改性与智能合约的不可抵赖性,提出一种基于区块链的分片检测方案。该方案核心思想是利用区块链存储分片的存储情况、流行度等信息,实现数据的不可窜改。同时,方案引入智能合约作为检测机构,执行分片的重复性检测和流行度检测,并返回检测结果。方案可以保障重复性和流行度检测结果的真实性,从而解决数据的加密方式与流行度不匹配问题。
b)提出一种文件链存储结构(file chain storage structure,FCSS)。结构中仅为物理上传的分片存储完整数据,为逻辑上传的分片存储地址, 并为数据提供相匹配流行度的加密方式,满足数据流行度去重的要求。同时,通过添加辅助信息的方式,建立分布存储在不同存储节点中物理/逻辑上传的分片之间的逻辑关系。FCSS为数据流行度去重模型应用在去中心化存储网络中提供基础。
c)在数据块信息中添加备份标识,借助备份标识将存储网络划分为两个虚拟存储空间,分别存储常规上传和备份上传的数据。面向两个虚拟存储空间,实现数据和备份数据的差异性检测与存储。该方案在数据去重模型中满足了用户备份需求。
1 预备知识
1.1 收敛加密
在传统数据加密方式中,持有相同数据的用户会采用不同密钥对数据进行加密,使得相同数据会对应不同密文。因此,当数据以密文形式存储时,传统数据加密方式会阻碍相同数据的检测。收敛加密(CE)[4]是一种可以实现密文检测的加密方式。CE利用哈希函数的单向特性与唯一性,从数据中提取出唯一的数据指纹,并将其作为加解密密钥。因此,CE保障了数据明文与密文具有唯一映射关系,有助于实现密文的重复性检测。收敛加密主要由四个算法组成,分别是:
a)KeyGenCE (M)→CEKey:密钥生成算法。输入明文数据M,输出收敛密钥CEKey。
b)encrypt(CEKey,M)→C:加密算法。输入收敛密钥CEKey和明文数据M,输出数据密文C。
c)TagGen(C)→Tag:标签生成算法。输入密文数据C,输出数据标签Tag。
d)decrypt(CEKey,C)→M:解密算法。输入收敛密钥CEKey和密文数据C,输出明文数据M。
1.2 数据去重技术
数据去重技术[1,2]是一种高效的数据缩减技术,能够检测并消除存储系统中的重复数据,以节省传输带宽和存储空间。经典的数据去重模型如图1所示,共包含用户、检测机构、CSP三个实体。图1中,用户A和B上传数据前,都会向检测机构请求检测数据的存储情况。由于检测机构检测出的数据未存储,故用户A为首次上传用户,会将完整的数据上传存储至CSP中,即物理上传。由于检测机构检测出数据已存储,故用户B为后续上传用户,会收到检测机构已有上传记录的检测结果和数据存储地址,不进行实际数据传输,即逻辑上传。
然而,在大多数据去重模型[3]中,通常对所有数据仅采用不具有语义安全的收敛加密。为实现数据去重的同时保障语义安全性,Stanek等人[6]提出一种数据流行度去重方案。该方案会为数据分配一个流行度阈值T并存储在检测机构中,检测机构执行重复性检测和流行度检测两个任务。检测机构会记录数据被不同用户上传的数目count。执行流行度检测功能时,检测机构会将count与T进行比较。当count 1.3 区块链与智能合约 区块链[19]是一种分布式账本技术,具有不可窜改性。区块链通常将所有的信息以区块为单位集中存储在一条链上,通过在后一个区块中添加前一个区块哈希值,实现区块之间的关联,从而保证了数据不可窜改性。 智能合约是一种旨在以信息化传播、验证或执行合同的计算机协议,具有自动验证性和不可抵赖性。一旦智能合约被部署在区块链上,即可实现流程的自动控制。同时,智能合约内容将无法被任何合约参与者窜改,这使得智能合约在要求无可信第三方的场景得到了广泛应用[20]。如,文献[21]为解决第三方密钥管理服务器不可信时,可能会纰漏数据的问题,采用秘密共享方案将密钥划分为多个部分,分布存储在区块链上,使其只有有访问权限的用户才可以访问。文献[22]为解决半诚实的云服务器带来的安全问题,结合区块链技术为公平搜索提供保障,并实现密文数据的分布式存储,规避了传统半诚实云服务器中的高信任、低可靠缺陷。 2 系統模型 2.1 系统模型 面向去中心化存储的流行度数据去重模型如图2所示,系统实体包括去中心化存储网络(decentralized storage network,DSN)、当前用户(current user,CU)、首次用户(first user,FU)、区块链(blockchain,BC)。 a)去中心化存储网络(DSN)。DSN中包含大量的存储节点,主要功能是向用户提供存储服务。与以往DBDP的存储网络不同,文件会进行分片,并构造成文件链结构,存储在不同的存储节点中,以提高数据存储可靠性。与传统去中心化存储网络不同的是,本文DSN中仅存储了少量重复副本,提高了存储能力。 b)当前用户(CU)。CU指本次希望将文件上传至DSN中,并会在需要时进行下载的用户。CU外包数据至CSP之前,会先将文件构建成文件链。文件链可以满足数据流行度去重以及去中心化存储网络存储的需求。 c)首次用户(FU)。FU指首次将数据上传至DSN的用户。若CU上传的数据是首次上传至DSN,则CU也是FU,完成数据的物理上传。 d)区块链(BC)。BC的主要功能是存储数据的信息、部署并维护智能合约等。部署在BC上的智能合约承担着数据去重模型中检测机构的角色,执行数据的重复性检测和流行度检测。 2.2 威胁模型 本文方案主要考虑以下两类攻击者: a)内部敌手。指去重模型内部的敌手,主要指检测机构和存储网络。检测机构是不完全可信的,它可能会告知用户数据错误的流行度,诱使用户对数据采用流行度不匹配的加密方式,从而导致非流行数据不具有语义安全性。此外,现有去重模型中主要面向集中式存储,将文件存储在中心存储服务器中。集中式存储存在单点故障的风险,并且本文认为存储网络中的存储节点是诚实且好奇的,可对用户外包数据进行任意访问。同时,传统的数据去重模型要求仅保留一份数据副本,故当用户通过备份方式提高数据可靠性时,去重模型会对备份文件执行去重操作,无法实现备份。 b)外部敌手。指去重模型外部的敌手,主要指恶意用户。外部攻击者可以通过某种攻击手段获取部分用户上传的数据,并尝试破解密文数据的明文信息。此外,外部攻击者还可以攻击存储节点,从而导致存储节点中的部分数据损坏或者丢失。然而,传统的数据去重模型中要求存储系统仅保留一份数据副本,故当一份数据副本丢失时,所有拥有该数据的用户都会丢失自己的数据。 2.3 安全目标 本文方案主要有四个安全目标: a)数据隐私性。本文模型要求存储网络中存储节点和恶意敌手无法获取用户外包数据,即用户外包数据应以密文的形式存储在存储网络中。同时,非流行数据应持有语义安全性,故数据去重模型中需保障检测机构检测结果的真实性,从而使数据的加密方式与其流行度相匹配。由于区块链具有不可窜改性,智能合约具有不可抵赖性,故可使得区块链和智能合约在无可信第三方的场景中得到应用。因此,本文将智能合约作为数据去重模型中的检测机构。 b)数据存储可靠性。去中心化存储网络不依赖任何中心存储服务器,并将数据分散存储在多个存储节点中,故可以有效缓解中心化存储网络中单点故障的问题。因此,本文要求数据去重模型应面向去中心化存储网络,并且由于集中式存储网络下文件的存储结构与去中心化存储网络下文件的存储结构存在差异,故本文模型要求设计一个新的存储结构,并且存储结构应同时满足去中心化存储网络下流行度数据的存储与去重。 c)数据容错性。本文模型中可满足用户备份文件需求,不会对用户备份的文件实现去重。故,数据去重模型中要求在数据检测和数据存储时,需将用户常规上传的文件与备份上传的文件进行区分,即对分片实现差异性的检测和存储。 d)数据完整性。本文模型应保障存储网络中数据的完整性。同时,用户可以自行验证外包数据的完整性。 3 详细设计 3.1 系统初始化 系统初始化分为两个部分。a)为加入数据去重模型的用户分配唯一标识符UserID。UserID用于确定用户的身份,以避免同一用户上传相同分片时,对数据流行度准确性造成影响。b)智能合约的部署,其主要涉及两个智能合约。 1)上传数据块信息合约 上传数据块信息合约由用户调用,负责将所有数据块信息存储至区块链,记为AddBlockInfo(BlockInfo[N])→res。其中,所涉及的参数如表1所示。 2)检测分片合约 检测分片合约由用户调用,负责对分片执行重复性检测以及流行度检测,并返回分片的检测结果,记为CheckFragment(FInfo[N])→Result[N]。其中,所涉及的参数如表2所示。 3.2 基于区块链的检测方案 在数据流行度去重模型中,用户在上传数据前,需借助检测机构检测数据的存储情况和流行度。同时,当检测机构不诚实时,检测机构可能会向用户返回错误的检测结果,从而导致数据加密方式与流行度不匹配的问题。由于区块链和智能合约可应用于无可信场景下,故为确保检测结果的真实性,本文结合区块链的不可窜改性与智能合约的不可抵赖性,提出了基于区块链的检测方案。具体地,由区块链存储分片对应的数据块信息以用于检测,并将区块链上的智能合约作为检测机构。 3.2.1 差异性检测思路 由于数据去重模型中通常要求仅存储一份文件,故检测机构在执行重复性检测时仅会判断存储网络是否存储了该文件,而不会判断文件是否是用户需要备份的文件。为满足用户的备份需求,需实现对常规分片与备份分片实现差异性检测,即检测机构不仅需要执行检测还需要识别文件是否为用户主动备份的文件。因此,本文方案在数据块信息中添加备份标识BS,BS由用户的备份意愿所决定。 如图3所示,本文方案根據借助备份标识BS,存储网络可以划分为两个虚拟存储空间VSS1和VSS2。VSS1中存储的是无论用户是否有备份需求均会上传的数据块,即常规数据块,BS=0。VSS2中均为用户有备份需求时,为实现备份时上传的数据块,即备份数据块,BS=1。故在检测分片存储情况时,常规上传的分片面向VSS1进行检测,而备份上传的分片面向VSS2检测。将常规与备份上传区分检测的方式,使用户在备份时,检测机构不会因为用户曾上传过而执行去重操作。 3.2.2 检测分片合约计算方式 智能合约检测分片合约CheckFragment执行重复性检测和流行度检测的方式如下: 区块链中共包含l个区块,可记为 TDk={Tag,UserID,count,value,DP,BS},k∈[1,l] TD={TD1,TD2,…,TDl}(1) 从区块链中的区块TD中筛选出两类,并按照下标进行排序,分别是 CTD1={TDs1|TDs1.tag==FIi.tag,TDs1.BS==0,s1∈[1,cl1]}(2) CTD2={TDs2|TDs2.tag==FIi.tag,TDs2.BS==1,s2∈[1,cl2]}(3) CTD1和CTD2表示区块链中标签为FIi.tag的分片对应的所有数据块信息。区别在于,CTD1为常规数据块信息,CTD2为备份数据块信息。其中CTD1中共包含cl1个元素,CTD2中共包含cl2个元素。 结果参数Ri中各参数计算方式如下: a)分片被不同用户上传的数目Ri.count。Ri.count取决于CTD1中最新更新的数据块信息CTD1[cl1-1]。当CTD1没有数据块信息时,表示未曾有用户上传该分片,则Ri.count=1。当CTD1有数据块信息时,表示曾有用户上传过该分片。如果CU没有上传该分片时,Ri.count=CTD1[cl1-1].count+1。反之,Ri.count=CTD1[cl1-1].count,从而避免由于分片重复上传造成对数据流行度的影响。 b)分片流行度Ri.DP。Ri.DP取决于Ri.count与流行度阈值T之间的关系。当Ri.count c)常规数据块地址Ri.value1。Ri.value1取决于CTD1中的数据块信息。当CTD1没有数据块信息或者流行度刚转换Ri.DP=transition时,表明当前存储网络中没有存储完整数据的、相应流行度的数据块,则Ri.value1=NULL。 当CTD1存在数据块信息时,表明当前存储网络中已经存储完整数据的常规数据块。如果分片为非流行数据,Ri.value1取决于第一次记录的数据块信息,则Ri.value1=CTD1[0].value。如果分片为流行数据,Ri.value1取决于CTD1[r1].DP=transition,r1∈[1,cl1]的数据块,则Ri.value1=CTD[r1].value。 d)备份数据块地址Ri.value2。Ri.value2仅在当前用户CU有备份意愿时才进行计算,取决于CTD2中的数据块信息。此时,当前存储网络中没有存储完整数据的、相应流行度的备份数据块有三种情况: (a)CTD2没有数据块信息; (b)流行度刚进行转换,Ri.DP=transition; (c)流行度转换时,没有上传备份数据块; 则Ri.value2=NULL。 当CTD2存在数据块信息时,表明当前存储网络中已经存储完整数据的备份数据块。如果分片为非流行数据, Ri.value2取决于第一次上传备份数据块时记录的数据块信息,则Ri.value2=CTD2[0].value。如果分片为流行数据,Ri.value2取决于首次上传分片流行度为流行的数据块信息CTD2[r2],r2∈[1,cl2],则Ri.value2=CTD2[r2].value。 3.3 构造文件链 在数据流行度去重模型中,检测机构完成数据的重复性检测和流行度检测后,用户需根据检测结果,确定数据的上传方式,即逻辑上传或者是物理上传,并为流行度数据采用相匹配的加密方式。在本模型中,该步骤对应构造文件链。 3.3.1 文件链存储结构设计思想 本文方案中,为缓解集中式存储中心存储服务器故障,会导致大部分文件损坏或丢失的问题,设计一种文件链存储结构FCSS,可使文件满足数据流行度去重的要求,同时适用于去中心化网络的存储,提高数据存储的可靠性。故FCSS应考虑并满足以下四点: a)设计分片去重方法。为将数据去重模型中的数据最终存储到去中心化存储网络中,要对文件以分片为单位进行处理[23],并将分片作为本文模型中最小的存储和检测单位。同时,仅为需要物理上传的分片保留完整数据。 b)选择不同安全级别。数据流行度去重模型要求应对不同流行度的数据采用相匹配的加密方式,并提供不同的安全级别。其中,非流行数据应持有语义安全性。 c)建立分片逻辑关联。其目的是将分散存储在不同存储节点中的分片重新合并为文件。同时,由于文件中可能存在物理上传和逻辑上传的分片,故存在难点在于如何将逻辑上传的分片还原为文件。因此,需要在存储结构中添加辅助信息,以实现分片之间逻辑顺序的连接。 d)实现备份。为满足用户的备份需求,需对常规分片与备份分片实现差异性存储。因此,需将文件链划分为常规文件链(routine file chain,RFC)和备份文件链(backup file chain,BFC)。如果用户没有备份文件意愿,则需构建一条文件链RFC;反之,用户则构建两条文件链RFC和BFC。 3.3.2 文件链存储结构定义 故文件链存储结构构建思想如图4所示。本文方案将文件F根据系统预设大小M划分为N个分片FF={fi|i∈[1,N]}。 文件链(file chain,FC)本质上是由N个数据块(data block,DB)组成,记为FC={DBi|i∈[1,N]}。每个数据块中都包含寻址域(addressing domain,AD)和数据域(data domain,DD)两个部分,记为DB=AD∪DD。 1)寻址域AD AD用于建立数据块之间的联系以及定位数据块的位置。AD中包含前一数据块地址(previous address,PA)、当前数据块地址(current address,CA)、下一数据块地址(next address,NA),记为AD=PA∪CA∪NA。PA、CA、NA分别用于定位上一个数据块、当前数据块、下一个数据块的位置。地址的计算方式是计算数据块哈希,hash(·)为计算哈希的函数,记为 hash(DNi-1 .DD)→DNi.AD.PA hash(DNi.DD)→DNi.AD.CA hash(DNi+1.DD)→DNi.AD.NA(4) 其中:本文方案采用的哈希函数为国密SM3。 故,AD可以建立DNi-1、DNi、DNi+1之间的逻辑关系φ1(α)和φ2(α),i∈[1,N],α=DNi。φ1(α)用于获取上一数据块DNi-1的地址,φ2(α)用于获取下一数据块DNi+1的地址。特别地,当i=1时,φ1(α)用于获取上一数据块DNN的地址;当i=N时,φ2(α)用于获取下一数据块DN1的地址。这种方式可以一定程度上减轻用户保管数据块地址的负担。 2)数据域DD DD用于存储数据,它包含两个部分:a)块标识BlockID,用于区分存儲相同内容的数据块,记为hash(count+UserID+TimeStamp)→BlockID,其中TimeStamp为时间戳;b)采用匹配加密方式的完整分片或者存储完整分片的数据块地址,其具体内容由分片检测结果中的存储情况和流行度决定。 其中,为便于后面讨论,本文将存储完整分片的数据块称为完整数据块(complete data block,CDB),实现分片的物理上传;存储完整分片数据块地址的数据块称为去重数据块(duplicated data block,DDB),实现分片的逻辑上传。 3.3.3 文件链构造流程 文件链构造流程共分为文件预处理和构造文件链两个部分。 1)文件预处理 当前用户CU需先对文件进行预处理,从而获得构建文件链时所需使用的参数,其具体操作如下: a)完成文件分片。CU将文件F根据大小M划分为N个分片,得到分片有序集FF={fi|i∈[1,N]}。其中,M由系统预设。 b)生成收敛密文。CU依次对fi生成收敛密钥KeyGenCE (fi)→CEKeyi,并将CEKeyi集合成收敛密钥集CEKS={CEKeyi|i∈[1,N]}。之后,CU依次对fi进行第一次加密得到收敛密文encrypt(CEKeyi,fi)→C1fi。 c)生成分片标签。CU依次从C1fi中计算出fi的标签TagGen(C1fi)→tagi。 d)调用检测分片合约。CU调用检测分片合约CheckFragment,并获得合约返回分片检测结果。 e)获取外层密钥。当fi由CU首次上传时,则CU生成外层密钥KeyGen (1λ)→OKeyi。否则,CU向首次用户FU申请并获取OKeyi。CU将OKeyi集合成外层密钥集OKS={OKeyi|i∈[1,N]}。 2)构造文件链 构建文件链所需的参数获取完毕后,CU开始文件链的构造。构造文件链本质上是将N个分片构建成N个数据块结构,本文将文件链记为RFC={DBri|i∈[1,N]}和BFC={DBbi|i∈[1,N]}。 由于文件链构造方式相同,故为便于介绍,将Ri.value1和Ri.value2统记为Ri.value,常规文件链RFC={DBri|i∈[1,N]}和备份文件链BFC={DBbi|i∈[1,N]}统记为FC={DBi|i∈[1,N]}。 构造文件链具体操作如下: a)确定存储内容。为构造数据块的数据域,CU首先要确定存储的内容(data domain content,DDC)是完整的分片还是存储完整分片的数据块地址。确定方式可以通过查看检测结果中的Ri.value是否为空值NULL。 (a)当Ri.value==NULL时,表明fi在Ri.DP的流行度下VSS1/VSS2中没有存储完整分片,故需实现fi的物理上传,即数据块的数据域中存储的内容是完整的分片DDCi=fi。 (b)当Ri.value≠NULL时,表明fi在Ri.DP的流行度下VSS1/VSS2中已经存储过完整的分片,故只需实现fi的逻辑上传,即数据块的数据域中存储的内容是存储完整分片的数据块地址DDCi=Ri.value。 b)第一次加密。采用的是收敛加密,收敛加密的目的是为了实现密文数据去重,故无论fi为非流行数据还是流行数据,CU都需采用CEKeyi依次对DDCi进行加密,得到收敛密文C1i,记为encrypt(CEkeyi,DDCi)→C1i。 c)第二次加密。采用的是具有语义安全性的加密算法国密SM4。因此,如果fi为流行数据,则CU无须对数据进行第二次加密,即C2i=C1i。如果fi为非流行数据,则CU需采用OKeyi依次对C1i进行加密,得到最终的密文C2i,encrypt(OKeyi,C1i)→C2i。 d)构造数据域。数据块的数据域中包含块标识和具体存储内容两个部分,故CU应依次计算出DBi的块标识BlockIDi,记为 hash(fi.count+UserID + TimeStamp)→BlockIDi(5) 计算完成后,CU将块标识BlockIDi和密文C2i共同组合成数据块的数据域DBi.DD,如下: (a)当fi需实现物理上传时,数据块的数据域为DBi.DD=BlockIDi‖C2i。 (b)当fi仅需实现逻辑上传时,数据块的数据域为DBi.DD=BlockIDi‖C2i‖C2i。拼接两次C2i的目的是在CU下载数据块时,以区分存储的内容是完整分片还是数据块地址。 e)构造寻址域。CU依次对DBi.DD生成哈希,并将哈希赋值给数据块的寻址域,记为 至此,当所有分片均构建成数据块后,文件链构造完成。 3.4 上传文件 在构造完成文件链后,当前用户CU需将文件链上传至去中心化存储网络DSN中,即数据块会分布式存储在不同的存储节点中。此外,为实现基于区块链的分片检测,保障检测结果的真实性,CU还需将所有的数据块信息存储在区块链中,以保障数据块信息不被窜改。该阶段的详细步骤如下: a)调用上传数据块信息合约。CU将用户唯一标识符UserID、备份标识BS和所有数据块的分片标签tag、分片被不同用户上传的数目count、加密的数据块地址value、分片流行度DP整合为N组数据块信息BIi。其中,数据块的备份标识值与用户备份意愿相同,记为BS=RBackup。 之后,CU调用上传数据块信息合约AddBlockInfo,将所有数据块信息上链。 b)存储数据块信息。合约接收到N组数据块信息BIi,并将信息存储至区块链中。其中,一个区块对应一个数据块的信息。 c)建立映射元文件。为实现文件的自主管理,CU需建立元文件。元文件可實现文件与文件链中数据块的基本映射,其基本内容与作用如表3所示。 d)上传文件链。CU将文件链上传至去中心化存储网络DSN中。 e)存储文件链。DSN接收到文件链后,将数据块分布式地存储在不同的存储节点中。 3.5 下载文件 当前用户CU在需要时,需从去中心化存储网络DSN中下载文件。与以往的数据流行去重模型不同的是,以往的模型将文件存储在集中式存储网络中,不需要对文件进行重构,本文模型需要将分布式存储在不同存储节点中的数据块进行重构。下载文件的详细步骤如下: a)第一次下载数据块。根据元文件中的头数据块地址FA,CU从DSN中下载文件链中所有的数据块{DBi|i∈[1,N]}。 b)区分数据块存储内容。文件链中存在存储完整分片的数据块CDB,也存在存储数据块地址的数据块DDB,故在解密之前,CU需先对它们进行区分。 由于存储完整分片和数据块地址的数据块数据域构成不同,且块标识由哈希计算得出,大小恒定不变,故可以借助数据域的内容和大小进行区分。如果数据块数据域中除去块标识后,剩下的内容前半部分和后半部分相同,则为完整数据块CDB。反之,则为去重数据块DDB。 c)第一次解密数据块。由于数据块对应分片的流行度存在非流行和流行两种情况,故解密时需采取两个步骤: (a)如果CU拥有OKS[i],说明DBi对应分片为非流行数据,则CU需采用OKS[i]对数据域中存储的内容DCi进行解密,记为decrypt(OKS[i],DCi)→C1DBi。反之,则跳过该解密过程,即C1DBi=DCi。 (b)在构造数据块时,无论分片处于非流行还是流行状态,均需采用收敛加密加密数据。故,CU必须采用CEKS[i]对C1DBi进行解密,记为decrypt(CEKS[i],C1DBi)→MDBi。 其中,文件链中可能包含去重数据块DDB,故部分MDBi为数据块地址BAddress,记为BAddress=MDBi。CU所有的BAddress集合为{BAdressk|k∈[1,l]},l为文件链中DDB的数目。 d)第二次下载数据块。如果{DBi|i∈[1,N]}中存在DDB,则执行该步骤。CU根据{BAdressk|k∈[1,l]}从DSN中下载数据块{DBk|k∈[1,l]}。 e)第二次解密数据块。如果{DBi|i∈[1,N]}中存在DDB,则执行该步骤。CU依次对{DBk|k∈[1,l]}进行解密。解密方式同步骤c),不同的是此次解密的数据块DBk均为完整数据块CDB。 f)合并分片。CU将CDB的MDB进行合并,最终获得文件F。 4 安全性分析 4.1 检测结果真实性分析 定义1 在数据流行度去重方案中,文件上传至CSP前通常需要检测机构对文件执行重复性检测和流行度检测,其具体流程如下: a)用户user生成文件F的标签TagGen(F)→tag,并将tag发送给检测机构。 b)检测机构TA根据tag执行重复性检测和流行度检测,计算出F的存储情况和流行度。 c)TA将F的存储情况和流行度告知user。 d)user根据F的存储情况和流行度,对F采用不同的上传、加密方式。如果F没有上传,则进行物理上传。反之,则进行逻辑上传。如果F为非流行数据,则采用语义安全的加密方式。反之,则采用收敛加密,执行去重操作。 定义2 流行度欺骗攻击指恶意检测结构会告知用户数据错误的流行度,使用户采用错误的加密方式加密数据,其在数据去重模型中的攻击流程如下。 假设文件F为非流行数据,并且其密文C已经存储在CSP中。 a)用户user将标签tag发送给检测机构TA执行重复性检测和流行度检测。 b)出于利益或其他原因,检测结构TA与攻击者A进行合谋。TA告知user,文件F经过此次上传,流行度将从非流行数据转换为流行数据。 c)user无法对流行度检测的结果进行验证,故对文件F采用收敛加密得到收敛密钥和收敛密文,如下: KeyGenCE(F)→CEKey(7) encrypt(CEKey,F)→C*(8) d)user将密文C*上传至CSP中进行存储。 e)攻击者A通过非法手段截取文件F的密文C*。C*采用的是不具有语义安全性的收敛加密,因此破解难度低于C。 f)攻击者A采用暴力攻击或者其他攻击方式尝试对C*进行破解,建立C*与F之间的联系。 定理1 本文方案可以保障检测机构检测结果的真实性。 证明 本文方案中,由区块链存储数据块信息,采用智能合约检测分片合约CheckFragment执行数据的重复性检测和流行度检测,并向用户返回数据的存储情况和流行度。 区块链的每一个区块中都包含指向前一个区块的哈希值,故如果前一个区块数据被窜改,其对应的哈希值也相应会改变。如果攻击者试图窜改区块链中的某个区块,则会破坏该区块以及后续所有的区块,导致整个区块链无效。因此区块链可以保证区块中的数据块信息不会被别的攻击者窜改。而智能合约的执行过程是公开的,并且可被其他节点查看和验证。如果智能合约的执行结果被窜改,其他节点会发现并拒接该结果,从而保证了智能合约执行结果的真实性。 因此,由检测分片合约CheckFragment作为检测机构,承担重复性检测和流行度检测职责,可避免流行度欺骗攻击中的步骤b)的出现,从而避免后续阶段的发生。故本方案可以抵御流行度欺骗攻击,保障检测结果的真实性。 4.2 语义安全性分析 定义3 本文方案使用的对称加密SM4具有语义安全性,其猜测优势是可以忽略的。 定理2 本文方案中非流行数据具有语义安全性。 证明 假设存在攻击者A和挑战者Chal。A会攻击非流行数据。Chal拥有外层密钥OKey,并运行非流行数据的加密方式,接受A的攻击挑战。具体挑战描述如下: a)攻击者A从明文数据集M中任意选取两个明文数据(M0,M1)。 b)攻击者A将两个明文数据(M0,M1)发送给挑战者Chal。 c)挑战者Chal任意选取Mr∈(M0,M1),并采用非流行数据的加密方式进行加密,得到密文Cr: encrypt(Okey,encrypt(KeyGenCE (Mr),Mr))→Cr(9) 并将Cr发送给攻击者A。 d)攻击者A猜测密文Cr来源于M0还是M1。 攻击者A猜测优势为 Pr1=Pr[encrypt(Okey,encrypt(KeyGenCE(M0),M0))→Cr](10) Pr2=Pr[encrypt(Okey,encrypt(KeyGenCE (M1),M1))→Cr](11) Adv(A)=|Pr1-Pr2|(12) 又因为本文采用的对称加密算法SM4具有语义安全性,故(M0,M1)的密文在计算上是不可分的,即 {C0}≈p{C1}(13) 因此,存在可忽略值ε,使Adv(A)=|Pr1-Pr2|≤ε,非流行数据具有语义安全性。 4.3 抵御暴力攻击分析 定义4 暴力攻击指当攻击者已知数据属于某个可预测集时,通过穷举方式可以确定密文对应明文数据的攻击方式。暴力攻击在数据去重模型的攻击流程如下: 假设存在攻击者A,A拥有明文空间集MS={F1,F2,…,Fn},其可以通过以下流程发起暴力攻击: a)A通过非法手段截取文件F的密文C。 b)A依次对MS中的文件Fk,k∈[1,n]進行计算,并得到收敛密钥CEKeyk和收敛密文Ck,如下: KeyGenCE(Fk)→CEKeyk(14) encrypt(CEKeyk,Fk)→Ck(15) c)A将Ck和截获的密文C进行比对。当Ck满足等式Ck==C,A可确定F==Fk。至此,A获得原始明文文件F。 定理3 本文方案中非流行数据能够抵御暴力攻击。 证明 本文方案中,当前用户CU将文件划F分成N个分片FF={fi|i∈[1,N]},并根据fi的存储情况和流行度,将fi构建成不同的数据块结构。当fi.DP=unpopular时,CU需将数据块数据域中存储的内容DDC先后采用收敛密钥CEKey和外层密钥OKey进行加密,得到最终的密文,记为 encrypt(Okey,encrypt(CEKey,DDC))→C(16) 其中:CEKey是从fi中提取的密钥。 KeyGenCE (fi)→CEKeyk(17) 故任何拥有fi的用户均可以计算得到。 OKey由第一个上传fi的首次用户FU随机生成: KeyGenCE(1λ)→Okey(18) 假设攻击者A发起暴力攻击,通过非法手段获取任一数据块,数据块的数据域中存储密文C。A依次将MS中的Fk划分成与fi同等大小的分片,共J个分片{f*j|j∈[1,J]}。由于A仅能计算出f*j的收敛密钥,无法获取外层密钥,故无法将f*j加密成最终的密文C*j,并将C*j与C进行比对。其次,A截获的仅为文件链中的一个数据块,并且无权限根据数据块地址直接访问存储内容,故A无法获取完整的文件。 4.4 完整性验证分析 定理4 本文方案中任意用户均可对密文进行完整性验证。 证明 本文方案中,用户上传文件F前,会先将文件F构建成多个不同的数据块结构,即文件链FC={DBi|i∈[1,N]}。当文件链构建完成后,再将文件链上传至CSP中。当用户下载文件F时,用户会先下载若干个数据块,再将数据块重构为文件。数据块DB由寻址域AD与数据域DD组成,寻址域AD中包含前一数据块的地址PA、当前数据块的地址CA、后一数据块的地址NA,记为 DB=AD∪DD,AD=PA∪CA∪NA(19) 已知用户已经上传文件F对应的文件链FC={DBi|i∈[1,N]}。当用户将文件链中所有数据块下载完毕,用户可通过寻址域判断文件是否完整,具体流程如下: a)依次计算数据块数据域DBi.DD的哈希地址hash(DBi.DD)→hi。 b)依次将hi与DBi.AD.CA进行比对。如果相同,则说明数据块DBi没有发生窜改。 c)依次将DBi.AD.CA与DBi-1.AD.NA、DBi+1.AD.PA进行比对。其中,DBN.AD.NA与DB1.AD.CA比对,DB1.AD.PA与DBN.AD.CA比对。如果相同,则说明下载的数据块正确。 当上述比对均相同时,数据具有完整性。 4.5 存储可靠性分析 定义5 以往的流行度数据去重模型多会将文件F集中式地存储在中心存储服务器中。假设存在攻击者A攻击中心存储服务器成功,中心存储服务器中的大量数据都会损坏或者丢失,其中可能包含有文件F。又因为数据去重模型中拥有相同文件的用户仅存储一个副本在存储系统中,故所有拥有该文件的用户都会丢失自己的文件。 定理5 本文方案可以提高数据存储的可靠性。 证明 在本文方案中,假设去中心化存储网络DSN中包含P个存储节点DSN={SN1,SN2,…,SNP}。当用户希望上传文件F时,会将F划分为N个分片FF={fi|i∈[1,N]},并构造常规文件链RFC={DBri|i∈[1,N]}。如果用户有备份需求,用户还会构造出备份文件链BFC={DBbi|i∈[1,N]}。构造文件链完成后,再将其分散存储在k,k∈[1,P]个存储节点中。 假设存在攻击者A成功攻击DSN中的任意存储节点SNk,k∈[1.P],导致丢失了RFC中的部分数据块。此时,可以将BFC中数据块进行替换或采用容错两种方式进行恢复。因此,本文方案可以提高数据存储的可靠性。 5 实验分析 实验采用C语言编写哈希函数SM3、加解密函数SM4,采用Python实现参数的初始化、文件链构造以及网络通信的编写,采用基于Python的开发测试框架Brownie实现区块链网络,采用Solidity实现智能合约的编写。实验环境涉及主机参数如表4所示。三台主机模拟去中心化存储网络中的服务器端,并且共同维护一个区块链网络。在这三台主机中,其中一台主机还用于模拟用户端。本章主要从功能上将本文方案与其他方案[7,8,14,24]进行了对比,并通過仿真实验分别完成了本文方案的性能和去重效率测试。 5.1 功能对比分析 本文方案的功能优势主要体现在数据流行度去重模型可以保障检测结果的真实性、面向去中心化存储、考虑用户备份需求。将本文方案与文献[7,8,14,24]进行比较,结果如表5所示。 文献[7]中首次提出数据流行度去重方案,为流行度不同的数据提供不同的安全级别,可在实现密文数据去重的同时,为非流行数据提供语义安全性。该方案中将第三方服务器作为检测机构,而可信第三方服务器极难部署,存在返回错误检测结果的可能,故无法保障检测结果的真实性。此外,该方案并未考虑到数据存储不可靠的问题。 文献[8]在文献[7]的基础上提出了一种基于双层加密的数据去重方案,对非流行数据先采用收敛加密,后采用语义安全的加密方式,实现了对非流行数据的去重,提高了数据去重效率。但该方案将CSP作为检测机构,仍无法保障检测结果的正确性。同时,数据存储可靠性问题也并未考虑。 文献[14]结合区块链的去中心化和不可窜改性,实现了面向去中心化存储的数据存储。由于去中心化存储网络不依赖任何中心服务器,并将数据分散存储在多个存储节点上,故当数据中部分存储节点被恶意敌手攻击,导致部分数据被损坏或者丢失时,仍可以通过纠删码等容灾方式恢复完整的文件。此外,由于该文献不涉及数据去重,故仍可实现用户数据的备份。 文献[24]引入双服务器模型作为去中心化存储网络对数据进行存储以及去重,并且由双服务器相互对数据进行审计。双服务器的审计结果在用户之间共享,以避免重复审计。同时,该文献将标签存储在区块链中,由用户进行搜索是否重复,可以保障重复性检测结果的真实性。但该文献没有考虑到数据流行度,故也无法保障流行度检测结果的真实性。同时,该文献中相同数据仅能存储一份,故会对用户备份的数据执行去重操作,无法实现备份需求。 因此,本文方案更具功能性,可提高数据流行度去重模型的安全性。 5.2 时间开销分析 为便于进行实验分析,实验设置数据分块量N为10,阈值T为3,对1~20 M的文件进行测试。根据上传方式和加密方式不同,本文分片划分为四种情况,分别是:a)情况1,非流行数据首次上传;b)情况2,非流行数据后续上传;c)情况3,流行数据首次上传;d)情况4,流行数据后续上传。 为模拟分片的四种情况,本实验在上传文件前,将存储网络存储置空,使任何分片均未被存储;实验开始后,将相同文件分别上传、下载4次。这可保证文件中所有分片的情况均从情况1开始,并且所有分片的存储情况和流行度在四次上传和下载的过程中将保持一致。同时,由于构建常规文件链与备份文件链中的数据块时,处于相同情况的相同分片的时间开销相同,故本实验不刻意考虑备份文件的情况。 5.2.1 基于区块链的数据检测时间开销 在数据流行度去重模型中,用户在上传数据前,需借助检测机构检测数据的存储情况和流行度。本文方案将区块链中的智能合约作为检测机构,执行数据的重复性检测和流行度检测。本节测试在不同文件大小情况下数据检测的时间开销,如图5所示。实验表明,数据检测时间开销并不会受到文件大小的影响。 原因在于,本文方案中,检测分片合约CheckFragment执行重复性检测和流行度检测时,仅需输入用户唯一标识UserID、分片标签tag、用户备份意愿RBackup。其中,同一文件中所有分片的UserID和RBackup始终保证不变。tag由标签生成算法TagGen计算而来,即由不同大小文件划分得到的分片会具有相同位数的tag。故在检测分片合约和区块链中数据规模相同时,文件大小不会对数据检测时间开销造成影响。 同时,文献[25]同样采用区块链上的智能合约作为检测机构。与本文不同的是,该方案每检测一次分片的存储情况,都需要调用智能合约执行重复性检测,且不支持流行度检测。本文模型中,用户只需调用一次智能合约即可检测文件中所有分片的存储情况。故本文方案中的检测方式减少了调用智能合约的次数,可降低检测所需要的时间。同时,图5表明,本文方案中一次性检测所有分片思想的时间开销,要远低于多次检测分片思想的时间开销。此外,本文方案的分片检测合约具有更多的功能,其可以面向两个虚拟存储空间,检测分片的存储情况和流行度。 5.2.2 构造文件链时间开销 本文方案中,在文件上传前,当前用户需先将文件构造为文件链。构造文件链分为文件预处理和构造文件链两个部分。 a)文件预处理包含文件分片、分片的收敛加密、生成分片标签,时间开销测试结果如图6所示。实验结果表明,该阶段时间开销随着文件体积的增大随之增大,但不受文件中分片流行度与存储情况的影响。 原因在于,文件分片、分片的收敛加密、生成分片标签的三个阶段仅需输入文件F,而决定分片情况的数据块地址Ri.value和分片流行度Ri.DP不参加该阶段的计算。因此,文件预处理时不存在差异性策略,不会受到分片流行度与存储情况的影响。 b)构造文件链的时间开销如图7所示。实验表明,在情况1和3下,构造文件链的时间开销随着文件的增大而增大。而情况2和4下,该阶段的时间开销并不随文件增大。 原因在于,在情况1和3下,由于文件对应分片的流行度分别处于非流行和流行时,存储网络中并没有存储相应流行度的数据块,故在构造文件链的数据块时,数据块中存储的是完整的分片,而不同的文件大小会被划分成不同大小的分片。同时,构造数据块包含构造数据域和构造寻址域两个阶段,构造数据域时需对分片进行加密,构造寻址域时需对数据域部分进行哈希运算,故两个阶段时间开销均会受到分片大小影响。因此,在情况1和3下,构造文件链会受到文件大小的影响。 在情况2和4下,存储网络已经存储文件链中相应流行度的数据块,故数据块中存储的内容是存储完整分片数据的数据块地址。而数据块地址位数是恒定的,故不同大小的分片不会对构造数据块时间开销造成影响。因此,在情況2和4下,构造文件链不会受到文件大小的影响。 此外,在情况1和2下,文件对应分片的流行度为非流行,故在构造数据块的数据域时,仅需对存储的内容进行两次加密;在情况3和4下,文件对应分片的流行度为流行,仅需一次加密。因此,在分片处于相同流行度时,情况1构造文件链的时间开销要高于情况3,情况2构造文件链的时间开销要高于情况4。 5.2.3 上传文件链时间开销 文件链构造完成后,当前用户需要将文件链上传至去中心化存储网络中,其时间开销测试结果如图8所示。实验表明,在情况1和3下,文件链传输的时间开销随着文件的增大而增大。而在情况2和4下,该阶段的时间开销并不随文件增大。情况2和4的文件链传输时间要远低于情况1和3。 原因在于构造文件链相同,在情况1和3下,文件链的数据块中存储的是完整分片,即在传输过程中要实现数据块的物理上传。在情况2和4下,文件链的数据块中存储的是存储完整分片的数据块地址,即在传输过程中要实现数据的逻辑上传,执行去重操作。 5.2.4 文件下载 本文模型中,当前用户需要文件时,会从存储网络中下载文件链,并将其重构为文件。本阶段主要围绕数据块第一次下载、第一次解密、第二次下载、第二次解密、合并文件五个步骤进行展开,时间开销如图9~12所示。结果表明,四种情况下获取完整文件的时间开销均会随文件大小增大而增大,但其中各步骤占比不同。原因在于,在情况1和3下,文件链中的数据块实现的是物理上传,第一次下载时获得的数据块中存储内容均是完整分片,因此,当前用户无须进行数据块的第二次下载和解密,第二次数据块的下载和解密的时间均为0 s。 在情况2和4下,文件链中的数据块实现的是逻辑上传,仅存储了存储完整分片的数据块地址,而非完整分片。又因为文件链中数据块数据域体积是恒定的,故随着文件体积大小增大,第一次下载和解密数据块的时间开销并不受影响。而第二次下载文件链中的数据块时,数据块中存储的是完整的分片,因此数据块的第二次下载和解密会随文件体积而增大,它们的时间开销增大。 5.3 去重效率分析 本节在当前用户上传数据或者主动备份數据后,对存储网络中存储情况进行分析。存储网络部分存储情况如表6所示。其中,行表示上传的次数,列表示第几次进行备份。交叉部分S表示经过若干次上传和备份时,存储网络中存储文件的总大小。其中,S针对本文方案,S针对不支持数据去重的存储系统。S表示文件的大小。ε为极小的值,表示文件链中除去完整数据以外的大小。由分析可得,将大小为S的文件在本文方案中进行备份与去重后,无论上传多少次,存储网络中存储的空间不会超过4S+ε。因此,提高了存储服务器的空间利用率。 6 结束语 本文提出了面向去中心化存储的数据流行度去重模型。为了实现在不可信环境下对流行度数据执行重复性检测和流行度检测,本文借助区块链的不可窜改性与智能合约的不可抵赖性,将区块链上的智能合约作为检测机构,保障了检测结果的真实性,使数据流行度与加密方式相匹配。为提高数据存储的可靠性,本文提出文件链存储结构,该结构可以关注流行度数据去重,同时将文件构建成适合去中心化存储网络存储的结构。此外,本文借助备份标识,将存储网络虚拟划分为两个虚拟存储空间,并面向两个虚拟存储空间,实现数据的检测与存储,满足用户备份需求。最后,安全性分析和实验表明本文方案具有可行性。 参考文献: [1]Li Peng, Zheng Yan, Liang Xueqin, et al. SecDedup: secure data deduplication with dynamic auditing in the cloud[J]. Information Sciences, 2023, 644:119279. [2]Benil T, Jasper J. Blockchain based secure medical data outsourcing with data deduplication in cloud environment[J]. Computer Communications, 2023, 209: 1-13. [3]Prajapati P, Shah P. A review on secure data deduplication: cloud storage security issue[J]. Journal of King Saud University-Computer and Information Sciences, 2022,34(7): 3996-4007. [4]Douceur J R, Adya A, Bolosky W J, et al. Reclaiming space from duplicate files in a serverless distributed file system[C]//Proc of the 22nd International Conference on Distributed Computing Systems. Piscataway, NJ: IEEE Press, 2002: 617-624. [5]Xie Qingyuan, Zhang Chen, Jia Xiaohua. Security-aware and efficient data deduplication for edge-assisted cloud storage systems[J]. IEEE Trans on Services Computing, 2023,16(3): 2191-2202. [6]Stanek J, Sorniotti A, Androulaki E, et al. A secure data deduplication scheme for cloud storage[C]//Proc of International Conference on Financial Cryptography and Data Security. Berlin: Springer, 2014: 99-118. [7]Stanek J, Kencl L. Enhanced secure thresholded data deduplication scheme for cloud storage[J]. IEEE Trans on Dependable and Secure Computing, 2018,15(4): 694-707. [8]高文静, 咸鹤群, 程润辉. 基于双层加密和密钥共享的云数据去重方法[J]. 计算机学报, 2021,44(11): 2203-2215. (Gao Wenjing, Xian Hequn, Cheng Runhui. A cloud data deduplication method based on double-layered encryption and key sharing[J]. Chinese Journal of Computers, 2021,44(11): 2203-2215.) [9]高文静, 咸鹤群, 田呈亮, 等. 基于双层加密的云存储数据去重方法[J]. 密码学报, 2020,7(5): 698-712. (Gao Wenjing, Xian Hequn, Tian Chengliang, et al. A cloud storage deduplication me-thod based on double-layered encryption[J]. Journal of Cryptologic Research, 2020,7(5): 698-712.) [10]Ha Guanxiong, Chen Hang, Jia Chunfu, et al. A secure deduplication scheme based on data popularity with fully random tags[C]//Proc of the 20th International Conference on Trust, Security and Privacy in Computing and Communications. Piscataway, NJ: IEEE Press, 2021: 207-214. [11]哈冠雄, 賈巧雯, 陈杭, 等. 无第三方服务器的基于数据流行度的加密去重方案[J]. 通信学报, 2022,43(8): 17-29. (Ha Guanxiong, Jia Qiaowen, Chen Hang, et al. Data popularity-based encrypted deduplication scheme without third-party servers[J]. Journal on Communications, 2022,43(8): 17-29.) [12]Zhang Guipeng,Yang Zhenguo,Xie Haoran,et al.A secure authorized deduplication scheme for cloud data based on blockchain[J]. Information Processing & Management, 2021,58(3): 102510. [13]Wang Yunling, Miao Meixia, Wang Jianfeng, et al. Secure deduplication with efficient user revocation in cloud storage[J]. Computer Standards & Interfaces, 2021,78: 103523. [14]Sharma P, Jindal R, Borah M D. Blockchain-based decentralized architecture for cloud storage system[J]. Journal of Information Security and Applications, 2021, 62: 102970. [15]Qi Saiyu, Wei Wei, Wang Jianfeng, et al. Secure data deduplication with dynamic access control for mobile cloud storage[J]. IEEE Trans on Mobile Computing, 2024,23(4):2566-2582). [16]Li Jingyi, Wu Jigang, Chen Long, et al. Deduplication with blockchain for secure cloud storage[M]//Xu Zongben, Gao Xinbo, Miao Qiguang, et al. Big Data. Singapore: Springer, 2018: 558-570. [17]Benoit A, Hakem M, Robert Y. Fault tolerant scheduling of prece-dence task graphs on heterogeneous platforms[C]//Proc of IEEE International Symposium on Parallel and Distributed Processing. Pisca-taway, NJ: IEEE Press, 2008: 1-8. [18]Wang Shuli, Li Kenli, Mei Jing, et al. A task scheduling algorithm based on replication for maximizing reliability on heterogeneous computing systems[C]//Proc of IEEE International Parallel & Distributed Processing Symposium Workshops. Piscataway, NJ: IEEE Press, 2014: 1562-1571. [19]Nakamoto S. Bitcoin: a peer-to-peer electronic cash system[EB/OL]. (2008). https://bitcoin.org/en/bitcoin-paper. [20]Nizamuddin N, Salah K, Azad M A, et al. Decentralized document version control using Ethereum blockchain and IPFS[J]. Computers & Electrical Engineering, 2019,76: 183-197. [21]顏亮, 葛丽娜, 胡政. 基于区块链的属性基多关键词排序搜索方案 [J]. 计算机应用研究, 2023,40(7): 1952-1956,1963. (Yan Liang, Ge Lina, Hu Zhen. Blockchain-based attribute-based multi-keyword ranking search scheme[J]. Application Research of Computers, 2023,40(7): 1952-1956,1963.) [22]Zhang Guipeng,Xie Haoran,Yang Zhenguo,et al.BDKM:a blockchain-based secure deduplication scheme with reliable key management[J]. Neural Processing Letters, 2021,54: 2657-2674. [23]Benisi N Z, Aminian M, Javadi B. Blockchain-based decentralized storage networks: a survey[J]. Journal of Network and Computer Applications, 2020, 162: 102656. [24]Tian Guohua, Hu Yunhan, Wei Jianghong, et al. Blockchain-based secure deduplication and shared auditing in decentralized storage[J]. IEEE Trans on Dependable and Secure Computing, 2021,19(6): 3941-3954. [25]Li Yandong, Zhu Liehuang, Shen Meng, et al. CloudShare: towards a cost-efficient and privacy-preserving alliance cloud using permissioned blockchains[M]//Hu Jiankun, Khalil I,Tari Z, et al. Mobile Networks and Management. Cham: Springer International Publishing, 2018: 339-352.