王鑫龍



摘 ?要:在本次論文中,主要在文獻的基礎上,針對的場景是群組里面的成員分享數據、群組中有可能有群組的成員離開群組,所以該成員的簽名并不再生效,如果把數據重新下載下來再重新簽名這樣并不適用,所以在這次的論文中,利用第三方審計端的代理重簽名思想,來解決群組成員以后重新簽名的問題。
關鍵詞:云存儲;完整性審計;代理重簽名
引言
云存儲是由云計算提供的一種數據外包的存儲服務。然而,這種新的數據托管服務面臨著重要的安全挑戰,即如何保障數據的機密性和數據的完整性。在數據機密性方面,現在一般采用由數據擁有者自行對上傳云端的數據進行加密這種方式來解決。相比數據機密性,在數據完整性方面,可能存在更大的擔憂,擔心存儲在云服務器中的數據可能會丟失,由于數據被存儲到云服務器上,數據擁有者就放棄了對所存儲的數據的控制權。要是云存儲服務提供商是不可信或者半可信的,那么云服務器可能會對數據擁有者隱瞞數據丟失的情況,或者丟掉那些在長時間內未被訪問過或很少被訪問的數據以達到節省存儲空間的目的。但是云存儲服務提供商卻可能欺騙數據擁有者說數據仍然被完整地存儲在云服務器中。所以數據擁有者需要一種安全可信的服務機制來確保數據被真實、完整地存儲在云服務器中。為了提高云存儲的安全性、可靠性,驗證云服務器中數據擁有者數據的完整性和可用性,現在有許多的云存儲數據完整性審計的概念被大家所提出來,并具有很多優點,但是也有很多不足之處。其中一個問題就是當用戶將其數據存儲到云端之后,他們最關心的問題之一就是存儲的文件是否完好。最直接的辦法是將文件全部取回檢查,但是這樣將耗費大量的網絡帶寬,特別當存儲在云端的數據量很大的時候,將文件全部取回檢查是很不現實的。近年來出現的遠程數據完整性審計協議,使得云用戶不需要訪問原始數據,就能夠對原數據的完整性和正確性進行校驗,特別適用于云計算環境。因此,對云存儲環境下的數據完整性驗證審計協議的研究,具有重要的現實意義。云存儲下數據完整性驗證主要用戶、云服務提供商、可信的第三方審計端組成。由于本地客戶不可能將大量的時間的精力花費在對數據的完整性檢測上面,所以一般交給可信的第三方來處理。采用第三方驗證時,驗證方只需要掌握少量的公開信息即可完成完整性驗證任務。文獻基于代理重簽名的思想,設計了一個可以有效地支持群組用戶撤銷的方案。但是在文獻中,作者提到由于使用了代理重簽名的思想,這樣有可能出現一個問題:云端有可能和已經離開群組的用戶串謀,從而泄露用戶的隱私的問題。還有一個問題就是,重簽名該簽署誰的名,如果是一個非常機密的組織,這樣還有可能導致一個問題,就是容易泄露群組中用戶的信息的問題,比如:當一個數據塊分成多個數據塊以后,如果里面大多數是其中某一個人的簽名,那么我們有理由相信他是這個群組中比較重要的人物,所以在本論文中還要解決這個問題。
1 預備知識
1.1 雙線性映射
設G1和G2分別是同為q階的加群和乘群,并假設p,g為G1的生成子,假設在群G1和G2中,離散對數問題是難解的。
可定義雙線性映射對為e:
,并滿足以下特性:
可計算性:存在一個有效的算法計算雙線性映射e
雙線性:對于所有的u,v∈G1和a,b∈Zp,
非退化性:e(g,g)≠1
1.2 同態驗證標簽
同態是從一個代數結構到另一個代數結構的映射,它保持所有相關的結構不變,即存在映射: ? ? ? ? ,滿足
其中:·是X上的運算,是Y上的運算。
同態標簽是基于同態概念而生成的標簽,在數據完整性檢測過程中,可以利用同態標簽的同態性來驗證數據是否完整,同態標簽具有以下兩個性質:(1)通過使用同態標簽,可使用少量特定的數據塊數據的完整性檢測,而無數對所有的數據塊進行檢測,降低了通信開銷的計算開銷。(2)對于任意兩個數據塊mi和mj,mi+mj的標簽信息T(mi+mj)可以由它們各自的標簽信息T(mi)、T(mj)生成,即T(mi+mj)=T(mi)?T(mj)。
2 改進的方案
在本次論文中,假設在一個群組中有n個人,他們分享數據,一個數據被分成很多個數據塊,當某一個數據塊有人修改的時候,修改完成就簽上那個的人的名字,通常一個群組往往有人會退出這個群組,所以他的簽名就不應該還在群組中。當這個人離開后該簽誰的名字,簽了以后如何解決用戶隱私的問題。
如圖1所示:當Bob離開群組,cloud需要用重簽名密鑰重新計算之前由B簽名的數據塊。可以看出來,經過重簽名以后之前由Bob簽署的數據塊變成了A的。
假設群組中B由于某種原因離開了這個群組,所以當B離開后,可以簽署組長E的名字,具體步驟如下:
令M代表外包的數據塊, ?1和 ?2是階為p的乘法群,g為
1的生成元。
e: ? ? ? ? ? ? ? 為雙線性映射,全局變量有(e,p, ?1, ?2,g,w,H),其中H是哈希函數 ? ? ? ? ? ? 。
KeyGen:給出了全局變量(e,p, ?1, ?2,g,w,H),用戶uA隨機生成一個隨機數 ? ? ?,輸出公鑰pkA=ga,私鑰skA=a
ReKey:可信第三方按照以下步驟生成重簽名的密鑰rkA→B:(1)代理生成一個隨機數 ? ? ?并把他發送給用戶uA;(2)用戶uA計算并把r/a發送給用戶uB,其中skA=a;(3)用戶uB計算并把rb/a給第三方代理,其中skB=b;(4)代理恢復
Sign:通過私鑰skA=a,數據塊 ? ? ? ,數據塊的標示符id,用戶uA數據塊m的簽名: ? ? ? ? ? ? ? ? ?。
Resign:通過重簽名的密鑰rkA→B,公鑰pkA,簽名σ,數據塊的標示符id,代理驗證Verify(pkA,m,id,σ)是否等于1,如果結果是0,代理輸出 ?,否則 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 。Verify:通過公鑰pkA,數據塊m,數據塊的標示符id,簽名σ,如果數據塊是完整的,則e(σ,g)=e(H(id)ωm,pkA),否則輸出為0。
前面提到這樣還有可能導致一個問題,就是容易泄露群組中用戶的信息的問題,比如:當一個數據塊分成多個數據塊以后,如果里面大多數是其中某一個人的簽名,那么我們有理由相信他是這個群組中比較重要的人物。在代理重簽名的方案中,我們可以隨機的抽取群組的成員,利用代理重簽名的方案,讓離開群組的用戶簽名簽署成群里面隨機成員的,這樣可以不用泄露群組重要成員的問題。
3 結束語
本次論文針對的是在群組用戶分享數據的時候,由于有用戶離開群組,這樣離開的用戶的簽名并不再生效,為了使用戶不用下載數據修改簽名以后在上傳到云端這樣的通信開銷,所以本論文利用代理重簽名的方法來解決這個問題。
參考文獻
[1]李暉,孫文海,李鳳華,等.公共云存儲服務數據安全及隱私保護技術綜述[J].計算機研究與發展,2014.
[2]傅穎勛,羅圣美,舒繼武.安全云存儲系統與關鍵技術綜述[J].計算機研究與發展,2013.