999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

面向去中心化存儲的數據流行度去重模型

2024-06-01 18:11:28汪彩梅聞琪略周子健盧建豪張琛吳志澤
計算機應用研究 2024年5期

汪彩梅 聞琪略 周子健 盧建豪 張琛 吳志澤

摘 要:數據流行度去重方案中存在檢測機構不誠實、數據存儲不可靠等問題,提出一種面向去中心化存儲的數據流行度去重模型。針對檢測機構不誠實,模型結合區塊鏈的不可竄改性與智能合約的不可抵賴性,將智能合約作為檢測機構執行數據的重復性檢測和流行度檢測,保障了檢測結果的真實性。針對數據存儲不可靠問題,提出一種文件鏈存儲結構。該結構滿足數據流行度去重的要求,并通過添加輔助信息的方式,建立分布在不同存儲節點中實現物理/邏輯上傳的分片之間的邏輯關系,為流行度數據去中心化網絡存儲提供基礎;同時,在數據塊信息中添加備份標識,借助備份標識將存儲網絡劃分為兩個虛擬存儲空間,分別實現數據和備份數據的檢測與存儲,滿足了用戶備份需求。安全性分析和性能分析表明,該方案具有可行性,保障了檢測結果的真實性,并提高了數據存儲的可靠性。

關鍵詞:數據去重; 數據流行度; 去中心化; 區塊鏈; 存儲可靠性

中圖分類號: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.countT時,分片為流行數據,則Ri.DP=popular。

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.

主站蜘蛛池模板: 四虎永久免费网站| 亚洲无码日韩一区| 午夜电影在线观看国产1区| 国产永久在线观看| 婷婷色丁香综合激情| 亚洲精品无码在线播放网站| 国产91在线|日本| 国产精品美女免费视频大全| 国产一区二区在线视频观看| 亚洲男人在线天堂| 色欲综合久久中文字幕网| 91亚洲国产视频| swag国产精品| 午夜一区二区三区| 国外欧美一区另类中文字幕| 国产成人综合在线观看| 日韩乱码免费一区二区三区| 亚洲av无码牛牛影视在线二区| 中文字幕欧美日韩| 欧美日韩在线亚洲国产人| 伦精品一区二区三区视频| 中文无码毛片又爽又刺激| 欧美 亚洲 日韩 国产| 熟妇丰满人妻| 久久成人免费| 18禁黄无遮挡网站| 中文字幕在线观| h视频在线播放| 亚洲热线99精品视频| 日韩在线永久免费播放| 国产成人精品一区二区| 依依成人精品无v国产| 日本午夜三级| 欧美日韩亚洲综合在线观看 | 中文字幕人妻无码系列第三区| 99re视频在线| 凹凸精品免费精品视频| 女人一级毛片| 91视频区| 久久精品只有这里有| 国产一区二区三区在线观看免费| 欧美综合区自拍亚洲综合天堂| 亚洲精品国产综合99| 国产成人8x视频一区二区| 这里只有精品国产| 成人在线观看一区| 亚洲精品欧美日韩在线| 亚洲中文字幕精品| 国产男女免费视频| 日a本亚洲中文在线观看| 99久久精品国产综合婷婷| 伊人激情综合| 久久久受www免费人成| 欧美伊人色综合久久天天| 日本a级免费| 日韩美毛片| 亚洲精品麻豆| 国产乱人免费视频| 欧美中文字幕一区| 九九热精品视频在线| 国产精品女在线观看| 亚洲狼网站狼狼鲁亚洲下载| 精品在线免费播放| 91精品国产91欠久久久久| 国产原创第一页在线观看| 蜜芽一区二区国产精品| 在线观看亚洲精品福利片| 国产亚洲精品自在线| 久久96热在精品国产高清| 99久久性生片| 国产成人精品在线1区| 人妻精品久久久无码区色视| 久久永久精品免费视频| 久久男人资源站| 国产喷水视频| 亚洲Av激情网五月天| 天天综合色天天综合网| 欧美精品在线看| 91久久国产综合精品| 亚洲午夜福利精品无码不卡| 毛片大全免费观看| 国产在线观看精品|