- 相關推薦
基于可分在線/離線簽名的云存儲完整性驗證方案
隨著全球通信技術的不斷發(fā)展以及信息化和網(wǎng)絡化的不斷推進,物聯(lián)網(wǎng)、泛在網(wǎng)、云計算和云存儲等分布式網(wǎng)絡系統(tǒng)技術逐漸成為信息科學領域的重要發(fā)展方向。但是這也對當今的各種通信設備和網(wǎng)絡設備的計算、存儲及通信能力提出更高的要求。下面小編為大家獻上基于可分在線/離線簽名的云存儲完整性驗證方案的論文,希望對信息安全專業(yè)的同學有幫助哦!
摘 要:云存儲的完整性驗證是目前云計算研究的一個熱點方向。論文的云存儲完整性驗證方案是基于可分在線/離線簽名的研究,其適用于用戶將數(shù)據(jù)文件存儲于服務器后,在取回時需要驗證其完整性的情況。該方案因為利用了可分在線/離線簽名的思想,因而擁有較高的存儲效率,并且適合用戶一經(jīng)確定后需要在極短時間內(nèi)完成上傳存儲的即時存儲情況。
關鍵詞:云存儲;數(shù)據(jù)存儲;完整性;驗證方案
1、 引言
云計算是一種基于互聯(lián)網(wǎng)和分布式計算的新的計算模式。它將原本各自獨立的計算、存儲及寬帶等資源整合起來形成資源池,以按需付費的方式給用戶提供服務。用戶使用云計算服務時,無需自己構建和維護這些資源,只需通過遠程資源訪問即可實現(xiàn)與云計算服務商之間的信息交流。
云存儲是目前應用范圍較廣的云計算技術。云存儲是指用戶通過互聯(lián)網(wǎng)服務或數(shù)據(jù)庫的管理與備份等自助服務,將自身的海量數(shù)據(jù)外包給一個專業(yè)的云計算服務器,以此來減少自身本地存儲的維修代價的一種技術。在云存儲中,用戶因為將本地存儲的海量數(shù)據(jù)外包給云服務器存儲,并可能為了降低自身的存儲代價而將本地存儲中的元數(shù)據(jù)刪除,從而喪失對這些數(shù)據(jù)的物理管理權限。因此,用戶必然會對云端數(shù)據(jù)的安全狀況產(chǎn)生擔憂,因為即使服務商對用戶承諾保護用戶的數(shù)據(jù)安全性,但這僅是道德和經(jīng)濟層面的約束,并無法因此確保用戶數(shù)據(jù)的絕對安全。所以,從用戶的角度考慮:一方面要防止云端個人或組織的隱私信息被不可信的服務商泄露、竊取或篡改;另一方面,如果用戶存儲于云端的數(shù)據(jù)已被損壞或丟失,則需要及時地驗證這些數(shù)據(jù)的完整性,從而揭示服務商的不可靠性。
2007年,Juels和Kaliski首次提出可恢復性證明(POR)的存儲模型?苫謴托允侵割櫩涂梢詮姆⻊掌髦刑崛∠惹按鎯Φ臄(shù)據(jù)文件。他們在POR協(xié)議中使用了糾錯碼編碼,將數(shù)據(jù)文件劃分成數(shù)據(jù)塊,對每一個數(shù)據(jù)塊進行加密,并在數(shù)據(jù)塊之間插入“哨兵”。利用這些“哨兵”,用戶端不僅可以驗證存儲于云端數(shù)據(jù)的完整性,而且可以在存儲數(shù)據(jù)已被篡改和刪除后,以一定的概率恢復這些數(shù)據(jù)。之后,Ateniese等人提出了另一個存儲證明方案,即數(shù)據(jù)持有性證明(PDP)協(xié)議。該協(xié)議利用同態(tài)認證標簽給出了一個有效的存儲方案。云用戶通過該協(xié)議可以驗證存儲于不誠實的云服務器中的數(shù)據(jù)的完整性。雖然該協(xié)議在構造中運用了同態(tài)性質(zhì)使得通信量可以不隨數(shù)據(jù)的增大而呈線性增加,但是其構造使用模冪運算來為數(shù)據(jù)塊生成標簽,因此需要耗費較大的計算資源。
2、 云存儲模型
2.1 語法定義
云存儲的數(shù)據(jù)存儲與數(shù)據(jù)驗證模型通常由數(shù)據(jù)提供者、云端和用戶三方構成的一個系統(tǒng)。數(shù)據(jù)的存儲和數(shù)據(jù)的驗證,都可以在數(shù)據(jù)提供者和云服務器之間完成,因此我們的驗證方案包含數(shù)據(jù)的存儲和數(shù)據(jù)的驗證兩個部分。我們定義數(shù)據(jù)的存儲為準備階段,即“Setup”階段;數(shù)據(jù)的驗證階段為挑戰(zhàn)階段,即“Challenge”階段。
本文構建的云存儲方案是一個標準的數(shù)據(jù)存儲模型(Data Storage Model),以下簡稱這個存儲模型為DSM。DSM是由四個概率多項式時間算法組成的四元組:
DSM=(KeyGen,TagGen,GenProof,CheckProof)
其完整的語法定義為:
(1)(pk,sk)←KeyGen(1λ) :該算法由數(shù)據(jù)提供者運行。在輸入安全參數(shù)λ后,該算法輸出一對公私鑰對(pk,sk)。
(2)Ti← TagGen(pk,sk,f,i):該算法由數(shù)據(jù)持有者運行。輸入公私鑰對(pk,sk),文件f和文件對應的標志符i(i∈N*),輸出一個標簽Ti 。
(3)V← GenProof(pk,F(xiàn),Chal,T) :該算法由云服務器運行。輸入公鑰pk,數(shù)據(jù)全文件F=(f1,f2,…,fi,…,fn)(n∈N*),挑戰(zhàn)Chal={i1,i2,…,ik}(1≤ik≤n)和全標簽T=(T1,T2,…,Ti,…,Tn)輸出一個驗證證明V。
(4) accept / reject←CheckProof(pk,F(xiàn)Chal,Chal,V):該算法由數(shù)據(jù)持有者運行,輸入公鑰pk,挑戰(zhàn)文件FChal={fi1,fi2,…,fik},挑戰(zhàn)Chal和驗證證明V,輸出一個驗證結果accept或者rejec。
模型說明:
顧客(Client)C與服務商(Server)S之間的數(shù)據(jù)存儲協(xié)議可以用這個數(shù)據(jù)存儲模型DSM實現(xiàn),具體步驟分為Setup和Challenge兩個階段:
-Setup:顧客C將待存儲文件F劃分成n個數(shù)據(jù)塊F=(f1,…,fi,…,fn),其中i∈{1,2,…,n}。C隨后運行(pk,sk)←KeyGen(1λ)算法,然后再運行標簽生成算法Ti← TagGen(pk,sk,f,i)算法。C存儲公私鑰對(pk,sk)后,將pk,F(xiàn)和T=(T1,T2,…,Tn)發(fā)送給S存儲于服務器并保證sk是保密的。待S存儲完成后,C刪除本地文件中的F和T。
-Challenge:C生成驗證挑戰(zhàn)Chal,并發(fā)送給S。S隨后運行V← GenProof(pk,F(xiàn),Chal,T) 后,將生成的驗證證明V及與挑戰(zhàn)Chal相對應的挑戰(zhàn)文件FChal返回給C。最后,C通過運行CheckProof(pk,F(xiàn)Chal,Chal,V) 得到驗證結果accept或者rejec。
2.2 安全定義
我們設計一個攻擊模型(Game)來證明這個存儲驗證方案的安全性并觀察此數(shù)據(jù)驗證方案的屬性。這個攻擊模型是一個PPT敵人A與一個挑戰(zhàn)者C之間攻擊博弈,具體有四個階段:
(1)準備(Setup):C選擇安全參數(shù)λ后運行(pk,sk)←KeyGen(1λ)算法,將生成的公鑰pk發(fā)送給敵人A,并保證私鑰sk是保密的。 (2)查詢(Query):這個階段A進行適應性地標簽查詢:A首先選擇文件f1并將之發(fā)送給C。C隨后運行Ti← TagGen(pk,sk,f,1)并將生成的文件f1的標簽T1返回給A。然后A繼續(xù)選擇文件f2,f3,…fn并陸續(xù)對C進行適應性查詢。C將生成的對應文件的標簽T2,T3,…Tn依次返回給A。在這個查詢過程中,C通過計算Ti← TagGen(pk,sk,f,j)生成標簽Tj,其中1≤j≤n。A按順序存儲文件F=(f1,f2,…,fn)和與之對應的標簽T=(T1,T2,…,Tn)。