1.一種云端數(shù)據(jù)存儲完整性的證明方法,其特征在于:包括如下步驟:
步驟一、用戶對待上傳的文件進(jìn)行預(yù)處理:生成私鑰、對文件分塊并計算每個文件塊的標(biāo)簽;
步驟二、用戶將預(yù)處理后的文件發(fā)送給云存儲服務(wù)器,本地只保存私鑰;
步驟三、當(dāng)需要驗證云端數(shù)據(jù)存儲的完整性時,用戶隨機(jī)選取一些文件塊并向云端發(fā)起挑戰(zhàn);
步驟四、云端生成擁有文件塊的證明并返回給用戶;
步驟五、用戶對云端擁有文件塊的證明進(jìn)行云端數(shù)據(jù)完整性驗證。
2.根據(jù)權(quán)利要求1所述的一種云端數(shù)據(jù)存儲完整性的證明方法,其特征在于:生成私鑰的方法為:利用隨機(jī)數(shù)生成器,產(chǎn)生兩個長度為k的隨機(jī)數(shù)分別作為對稱密碼加密密鑰kenc和哈希函數(shù)的密鑰kmac,其中k為安全參數(shù),則私鑰sk=(kenc,kmac)。
3.根據(jù)權(quán)利要求2所述的一種云端數(shù)據(jù)存儲完整性的證明方法,其特征在于:對文件分塊并計算每個文件塊的標(biāo)簽的方法為:
(1)將文件M分割為s塊{M1,M2,…,Ms},每塊大小為n bit;
(2)利用隨機(jī)數(shù)生成器,產(chǎn)生一個隨機(jī)數(shù)kext作為偽隨機(jī)置換函數(shù)π的參數(shù),令:
其中π(·)為的帶參數(shù)的隨機(jī)置換函數(shù),l為每個文件塊抽取的比特數(shù);每個文件塊抽取{i1,i2,…,il}對應(yīng)位置的比特,設(shè)抽取后的結(jié)果為{m1,m2,…,ms},記為mi=Extract(Mi),1≤i≤s;
(3)利用隨機(jī)數(shù)生成器,產(chǎn)生一個隨機(jī)數(shù)kp1f作為偽隨機(jī)函數(shù)f的參數(shù),按如下公式計算每個文件塊的標(biāo)簽:
其中為按位異或運算,為帶參數(shù)的、輸出為l比特的偽隨機(jī)函數(shù),令文件M的標(biāo)簽:
其中是密鑰為kenc的對稱加密算法,是密鑰為kmac的哈希函數(shù)。
4.根據(jù)權(quán)利要求3所述的一種云端數(shù)據(jù)存儲完整性的證明方法,其特征在于:步驟二所述用戶發(fā)送給云存儲服務(wù)器的預(yù)處理后的文件M*={{M1,…,MS},{σ1,…,σS},τ}。
5.根據(jù)權(quán)利要求4所述的一種云端數(shù)據(jù)存儲完整性的證明方法,其特征在于:云端生成擁有文件塊的證明的方法為:
(1)云存儲服務(wù)器利用用戶隨機(jī)選擇子集I按如下公式計算聚合認(rèn)證碼σ和聚合消息
(2)則生成的擁有I對應(yīng)文件塊的證明
6.根據(jù)權(quán)利要求5所述的一種云端數(shù)據(jù)存儲完整性的證明方法,其特征在于:用戶對云端擁有文件塊的證明進(jìn)行云端數(shù)據(jù)完整性驗證的方法為:
(1)用戶利用私鑰sk中的kmac驗證文件標(biāo)簽τ,如果不滿足則驗證失敗,返回0;否則,用戶利用私鑰sk中的kenc解密出kext和kp1f;
(2)用戶計算出{i1,i2,…,il},抽取中{i1,i2,…,il}位置對應(yīng)的比特,設(shè)抽取后的結(jié)果為記為
(3)當(dāng)且僅當(dāng)時,用戶驗證服務(wù)器擁有I對應(yīng)文件塊并返回1。