本發(fā)明涉及云存儲數(shù)據(jù)完整性審計,特別是一種面向群組的高效動態(tài)數(shù)據(jù)完整性審計方法。
背景技術(shù):
1、隨著云計算技術(shù)的不斷發(fā)展,云存儲服務在實踐中得到了廣泛的應用,為用戶在日常的學習、工作、生活中提供便利,用戶通過將本地存儲數(shù)據(jù)上傳到云上以獲得更加強大,更加經(jīng)濟,更高質(zhì)量的存儲。此外在一些云端多用戶協(xié)作系統(tǒng)中,多個用戶共同擁有同一文件,進行實時編輯、更新和共享,這不僅促進團隊協(xié)作,還顯著提升工作效率。然而用戶在享受高效、便利的存儲服務的同時,也失去了對數(shù)據(jù)的物理控制。由于云存儲系統(tǒng)并不完全可信,云上數(shù)據(jù)完整性的保持是用戶在使用云存儲服務時重點關(guān)注的問題之一。如果數(shù)據(jù)在存儲期間發(fā)生了篡改或丟失,將直接導致服務中斷,嚴重時還將造成經(jīng)濟損失,影響云存儲服務市場的良性發(fā)展。
2、目前,云存儲數(shù)據(jù)完整性審計領域已經(jīng)取得了一定進展,尤其以數(shù)據(jù)持有性證明(provable?datapossession,pdp)和數(shù)據(jù)可恢復性證明(proofof?retrievability,por)兩個工作為代表。然而,這些方式僅能提供高效的靜態(tài)數(shù)據(jù)完整性審計,如果用戶對數(shù)據(jù)進行動態(tài)修改,會破壞數(shù)據(jù)塊索引和數(shù)據(jù)標簽索引的一致性,因此需要將大量數(shù)據(jù)取回本地進行修改后重新上傳,這會顯著增加計算開銷。更為嚴重的是,在多用戶協(xié)作系統(tǒng)中,多個用戶同時擁有并頻繁修改同一文件,導致計算成本進一步上升。顯然,這些解決方案會給用戶帶來沉重的計算負擔,難以適應實際生產(chǎn)環(huán)境的需求。
3、對此,為緩解這個沖突,現(xiàn)有方案是通過添加額外的數(shù)據(jù)結(jié)構(gòu)來維護數(shù)據(jù)塊索引與數(shù)據(jù)標簽索引的一致性,使得數(shù)據(jù)塊的位置不再依賴于用戶最早的設定,而可以隨著用戶的要求發(fā)生變化,從而降低動態(tài)數(shù)據(jù)更新的代價,現(xiàn)有的數(shù)據(jù)結(jié)構(gòu)有:跳表、哈希數(shù)、哈希表等。然而如果直接把現(xiàn)有的動態(tài)數(shù)據(jù)完整性審計方案應用到多用戶協(xié)作系統(tǒng)中,會存在以下三個問題:1)文件無法共享:現(xiàn)有方案中,文件的所有權(quán)歸屬于單一用戶,導致其他協(xié)作成員無法有效共享或訪問文件,從而限制了團隊合作的靈活性和效率;2)用戶身份隱私泄露:由于數(shù)據(jù)完整性審計標簽是通過與用戶身份相關(guān)的密鑰對生成,可能導致用戶身份在審計過程中被暴露,增加了身份隱私泄露的風險,尤其是在公開或臨時合作環(huán)境中;3)文件修改操作開銷較大:現(xiàn)有方案在處理文件動態(tài)修改時,需要對額外的數(shù)據(jù)結(jié)構(gòu)進行自上而下的更新,導致計算成本較高。在多用戶協(xié)作系統(tǒng)中,頻繁的動態(tài)數(shù)據(jù)操作進一步加重了系統(tǒng)的計算負擔,影響整體性能。
技術(shù)實現(xiàn)思路
1、有鑒于此,本發(fā)明的目的在于提供一種面向群組的高效動態(tài)數(shù)據(jù)完整性審計方法,解決了上述直接將現(xiàn)有的動態(tài)數(shù)據(jù)完整性審計方案應用到多用戶協(xié)作系統(tǒng)中,存在的文件無法共享、用戶身份隱私泄露和文件修改操作開銷大的問題。
2、為實現(xiàn)上述目的,本發(fā)明采用如下技術(shù)方案:一種面向群組的高效動態(tài)數(shù)據(jù)完整性審計方法,包括以下步驟:
3、步驟1:系統(tǒng)基于安全參數(shù)λ,生成全局公開參數(shù)param,選擇一個階為安全素數(shù)p的乘法循環(huán)群g,隨機選擇兩個獨立的生成元g,h,選擇一個哈希到g群中的雜湊函數(shù)h;設系統(tǒng)參數(shù)param={g,p,g,h,h};
4、步驟2:群組用戶根據(jù)系統(tǒng)參數(shù)生成密鑰和公鑰,選擇兩個隨機元素(xj,yj)←zp,設私鑰skj=(xj,yj),計算公鑰
5、步驟3:群組用戶生成具有匿名性的完整性審計標簽;
6、步驟4:第三方審計者構(gòu)建哈希鏈表,根據(jù)線性函數(shù)f計算數(shù)據(jù)塊索引r1,rn;初始化哈希鏈表節(jié)點a1={n1=n,head1→r1,tail1→rn},其中n為節(jié)點存儲的數(shù)據(jù)塊數(shù)目,head1為節(jié)點存儲的第一個數(shù)據(jù)塊索引,tail1為節(jié)點存儲的最后一個數(shù)據(jù)塊索引;
7、步驟5:第三方審計者與云存儲服務器交互生成數(shù)據(jù)完整性審計結(jié)果;
8、步驟6:群組用戶動態(tài)修改數(shù)據(jù),第三方審計者高效更新哈希鏈表。
9、在一較佳的實施例中,所述步驟3包括以下步驟:
10、步驟31:群文件f分割成n個大小一樣的數(shù)據(jù)塊mi,并且將mi進一步劃分為s個大小相同的數(shù)據(jù)塊mij,其中(1≤i≤n,1≤j≤s),其中s為群組用戶數(shù)量,根據(jù)線性函數(shù)f計算數(shù)據(jù)塊mi的索引信息ri;
11、步驟32:群組用戶π為數(shù)據(jù)塊mi匿名生成完整性審計標簽,計算事件event簽名xπ是群組用戶π的私鑰,選擇兩個隨機數(shù)計算其中ri為數(shù)據(jù)塊mi的索引;計算驗證輔助信息生成數(shù)據(jù)塊mi的完整性審計標簽
12、步驟33:群組用戶為各自數(shù)據(jù)塊匿名生成完整性證明標簽后,生成群文件f完整性審計標簽集合tag={tagi}1≤i≤n;云存儲服務器與第三方審計者可根據(jù)完整性審計標簽對用戶身份追溯,驗證不同完整性審計標簽是否由同一群組用戶生成。
13、在一較佳的實施例中,所述步驟33包括以下步驟:
14、步驟331:獲得完整性審計標簽tag1={t1,·},tag2={t2,·},驗證完整性審計標簽有效性;
15、步驟332:比較t1是否等于t2,如果相等,則數(shù)據(jù)塊m1和m2由同一群組用戶生成,返回驗證結(jié)果linked,否則數(shù)據(jù)塊m1和m2由不同群組用戶生成,返回驗證結(jié)果unlinked。
16、在一較佳的實施例中,所述步驟5包括以下步驟:
17、步驟51:第三方審計者從數(shù)據(jù)塊集合[1,n]中隨機挑選c個元素構(gòu)成的子集i;對挑戰(zhàn)集合中的每一個ci,選擇隨機數(shù)vi,遍歷哈希鏈表,獲得索引ri;在有限域zp中隨機選擇一個元素a;計算h(ri)=a(h(ri)+1),生成隨機挑戰(zhàn)q=(h(ri),i,vi}i∈i;
18、步驟52:云存儲服務器根據(jù)挑戰(zhàn)集q,查找對應的數(shù)據(jù)塊mi,與其標簽其中i∈i,計算生成完整性證明p=(σ,k,z,x,y,(μj}(1≤j≤s),(τi}i∈q),其中:
19、
20、
21、
22、步驟53:第三方審計者根據(jù)完整性證明p=(σ,k,z,x,y,(μj}(1<j<s),(τi}i∈q),挑戰(zhàn)q=(h(ri),i,vi}i∈i,事件event計算e=h(event),群組用戶公鑰集γ計算驗證等式(1)是否成立:
23、
24、通過驗證的輔助數(shù)據(jù)a,計算參數(shù)計算驗證等式(2)是否成立:
25、
26、只有當?shù)仁?1)和等式(2)同時成立時,則認為得到正確的完整性驗證結(jié)果,并返回審計結(jié)果accept,否則云存儲服務器數(shù)據(jù)完整性遭到破壞,返回審計結(jié)果reject。
27、在一較佳的實施例中,所述步驟6包括以下步驟:
28、步驟61:數(shù)據(jù)插入:群組用戶在i處之后插入數(shù)據(jù)塊,隨機選擇插入數(shù)據(jù)索引r′←zp,將插入位置i,r′和操作op=″insert",發(fā)送給第三方審計者;第三方審計者調(diào)用算法1獲得數(shù)據(jù)在哈希鏈表的插入位置(j,i*),代表數(shù)據(jù)索引位于哈希塊aj內(nèi)第i*塊后,后調(diào)用算法2更新哈希鏈表;
29、步驟62:數(shù)據(jù)刪除:群組用戶刪除i處的數(shù)據(jù)塊,將i和操作op=″delete″,發(fā)送給第三方審計者,其中i為刪除位置;第三方審計者調(diào)用算法1獲得數(shù)據(jù)在哈希鏈表的刪除位置(j,i*),后調(diào)用算法3更新哈希鏈表;
30、步驟63:數(shù)據(jù)修改:群組用戶將數(shù)據(jù)塊mi修改為mi′生成對應的標簽tagi′,將mi′,tagi′上傳到云存儲服務器。
31、在一較佳的實施例中,所述步驟6中,提及的算法1,算法2和算法3具體步驟如下:
32、(1)算法1:輸入數(shù)據(jù)位置i,輸出數(shù)據(jù)在哈希鏈表中的位置(j,i*),設哈希鏈表∏={a1,...,ac},其中aj={nj,headj,tailj}為哈希鏈表中的節(jié)點;遍歷哈希鏈表中的節(jié)點aj,其中(1≤j≤c);令i*=i,依次對比i*與nj的大??;若i*>nj,則令i*=i*-nj;若i*≤nj,則返回(j,i*),結(jié)束遍歷;
33、(2)算法2:輸入(j,i*),r′,哈希鏈表∏,輸出更新后的哈希鏈表∏′;設哈希鏈表∏={a1,...,ac},其中aj={nj,headj,tailj}為哈希鏈表中的節(jié)點;若i*=nj,令aj={nj=nj+1,headj→headj,tail1→r′);若i*≠nj,則生成新節(jié)點aj+1={nj+1=nj-i*,headj+1→headj+i*,tailj+1→tailj},令aj={nj=i*+1,headj→headj,tail1→r′};
34、(3)算法3:輸入(j,i*),r′,哈希鏈表∏,輸出更新后的哈希鏈表∏′;設哈希鏈表∏={a1,...,ac},其中aj={nj,headj,tailj}為哈希鏈表中的節(jié)點;若i*=nj,令aj={nj=nj-1,headj→headj,tail1→headj+(i*-2)};若i*≠nj,生成新節(jié)點aj+1={nj+1=nj-i*,headj+1→headj+i*,tailj+1→tailj},令aj={nj=i*-1,headj→headj,tail1→headj+(i*-2)}。
35、與現(xiàn)有技術(shù)相比,本發(fā)明具有以下有益效果:
36、1、本發(fā)明的動態(tài)數(shù)據(jù)完整性審計方法允許文件在群組內(nèi)有效共享,確保所有協(xié)作成員都能實時訪問和修改文件,提升了團隊協(xié)作的效率和靈活性。
37、2、本發(fā)明的動態(tài)數(shù)據(jù)完整性審計方法允許群組用戶根據(jù)群組信息生成具有匿名性的群文件完整性審計標簽,避免了用戶身份在審計過程中被暴露的風險,尤其適用于公開或臨時合作環(huán)境,實現(xiàn)數(shù)據(jù)所有權(quán)對外界匿名的同時可以追溯真實的簽名用戶,有效提升用戶身份隱私保護和系統(tǒng)的可靠性。
38、3、本發(fā)明的動態(tài)數(shù)據(jù)完整性審計方法針對多用戶協(xié)作系統(tǒng)中頻繁的數(shù)據(jù)動態(tài)操作,提出一種新的數(shù)據(jù)結(jié)構(gòu)——哈希鏈表,使用少量節(jié)點存儲大量數(shù)據(jù)索引,優(yōu)化存儲開銷。當數(shù)據(jù)動態(tài)變化時,通過生成新節(jié)點高效更新哈希鏈表使得數(shù)據(jù)索引仍按順序排列,并且能根據(jù)線性函數(shù),通過指針快速獲得存儲數(shù)據(jù)索引,且時間恒定不變,提高動態(tài)數(shù)據(jù)審計效率。