一種基于Lagrange插值法和多云的數(shù)據(jù)隱藏方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于多云存儲(chǔ)和信息隱藏技術(shù)領(lǐng)域,涉及一種多云環(huán)境下的數(shù)據(jù)隱藏方 法,具體涉及一種基于Lagrange插值法和多云的數(shù)據(jù)隱藏方法。
【背景技術(shù)】
[0002] 云存儲(chǔ)是基于云計(jì)算的興起而應(yīng)運(yùn)而生的,近年來,數(shù)字化、信息化日益明顯,人 們對(duì)于存儲(chǔ)的需求也增長(zhǎng)快速。隨著云存儲(chǔ)服務(wù)提供商的增多,越來越多的公司選擇在處 理重要數(shù)據(jù)時(shí)使用云存儲(chǔ)來滿足他們的存儲(chǔ)需求。比如醫(yī)療記錄數(shù)據(jù)庫,大型系統(tǒng)的歷史 信息和金融數(shù)據(jù)等。然而云存儲(chǔ)在給用戶存儲(chǔ)帶來靈活性和高擴(kuò)展性的同時(shí),也面臨著安 全挑戰(zhàn)。首先由于云存儲(chǔ)的不可信,會(huì)導(dǎo)致用戶隱私的泄露;另外由于云存儲(chǔ)服務(wù)的中斷, 導(dǎo)致服務(wù)不可用;第三,由于云存儲(chǔ)提供商之間競(jìng)爭(zhēng)激烈,價(jià)格會(huì)因此浮動(dòng),用戶更換云存 儲(chǔ)提供商時(shí)會(huì)造成較大的花費(fèi);最后,由于云存儲(chǔ)可能會(huì)丟失或者損壞用戶數(shù)據(jù),數(shù)據(jù)完整 性受到威脅。
[0003] 當(dāng)前對(duì)于云存儲(chǔ)數(shù)據(jù)安全性的研宄分為單個(gè)云的研宄和多個(gè)云的研宄。本發(fā)明的 方案是基于多云環(huán)境的,目前有關(guān)多云存儲(chǔ)的研宄,國內(nèi)的研宄比較少,國外的學(xué)者研宄比 較多,且提出很多獨(dú)特的想法。
[0004] Cachin等人表示單個(gè)云服務(wù)仍然受到停機(jī)的影響,首先提出了多云存儲(chǔ)的概 念。Abu-Libdeh等提出了一個(gè)RACS協(xié)議,將常用于磁盤和文件系統(tǒng)中的獨(dú)立磁盤陣列的 技術(shù)應(yīng)用于云存儲(chǔ)。該協(xié)議主要關(guān)注于云存儲(chǔ)提供商鎖定的問題。通過將用戶的數(shù)據(jù)分 割到多個(gè)云存儲(chǔ)提供商,使得用戶避免云存儲(chǔ)提供商的鎖定,降低更換云存儲(chǔ)提供商的成 本,更好的容忍云存儲(chǔ)提供商的停機(jī)或發(fā)生故障,分散了存儲(chǔ)的負(fù)載。D. Bowers等提出 了 HAIL協(xié)議,該協(xié)議是一個(gè)分布式加密系統(tǒng),允許一組服務(wù)器確認(rèn)客戶端的數(shù)據(jù)是完整 的和可恢復(fù)的。它提供了一個(gè)軟件層來滿足存儲(chǔ)于多個(gè)云中的數(shù)據(jù)的可用性和完整性。 Bessani等提出了一個(gè)虛擬化存儲(chǔ)系統(tǒng)Depsky,Depsky系統(tǒng)中提出了兩個(gè)協(xié)議Depsky-A和 Depsky-CA。Depsky-A沒有對(duì)數(shù)據(jù)做任何處理把數(shù)據(jù)復(fù)制在不同的云存儲(chǔ)中,Depsky-CA解 決了 D印sky-A的限制,借鑒Krawczyk提出的改進(jìn)的秘密共享方案,先使用對(duì)稱密鑰對(duì)數(shù)據(jù) 加密,然后用Shamir的秘密共享方法管理密鑰,同時(shí)用糾刪碼對(duì)加密后數(shù)據(jù)進(jìn)行編碼,最 后把數(shù)據(jù)塊和秘密共享后的密鑰存到對(duì)應(yīng)的云存儲(chǔ)中。提高了存儲(chǔ)在云上數(shù)據(jù)的可用性、 完整性、機(jī)密性。
[0005] 從現(xiàn)有研宄成果可以看出,RACS解決了云存儲(chǔ)提供商的鎖定,但它沒有解決 數(shù)據(jù)機(jī)密性問題,HAIL解決了云存儲(chǔ)中數(shù)據(jù)完整性和可用性,但沒有解決機(jī)密性問 題,D印sky-CA相對(duì)比較完善,提高了存儲(chǔ)在云上數(shù)據(jù)的可用性、完整性、機(jī)密性。然而 D印sky-CA使用Shamir秘密共享去分割密鑰,密鑰大小會(huì)增加 η倍(η個(gè)存儲(chǔ)云),相對(duì)于 理論上的最優(yōu)情況,仍舊會(huì)增加存儲(chǔ)空間,雖然通常來說密鑰本身的大小并不大。但是密鑰 的引入在一些每天需要經(jīng)常更新的應(yīng)用中,所增加的存儲(chǔ)空間同樣也是不可忽視的。
【發(fā)明內(nèi)容】
[0006] 針對(duì)現(xiàn)有技術(shù)存在的問題,本發(fā)明提供了一種基于Lagrange插值法和多云的數(shù) 據(jù)隱藏方法,與RACS相比解決了數(shù)據(jù)機(jī)密性的問題,與Depsky-CA相比解決由于密鑰存儲(chǔ) 所帶來的存儲(chǔ)空間增加的問題。
[0007] 本發(fā)明所采用的技術(shù)方案是:一種基于Lagrange插值法和多云的數(shù)據(jù)隱藏方法, 應(yīng)用在多云環(huán)境下的系統(tǒng)中,系統(tǒng)包括四個(gè)部分:用戶、客戶端、數(shù)據(jù)上傳層、數(shù)據(jù)下載層和 云端;其特征在于,包括以下步驟:
[0008] 步驟1 :用戶注冊(cè);系統(tǒng)在客戶端啟動(dòng)后,用戶進(jìn)入注冊(cè)界面,輸入用戶名與密碼 進(jìn)行注冊(cè),注冊(cè)成功后,轉(zhuǎn)到步驟2 ;
[0009] 步驟2:用戶登錄;用戶進(jìn)入登錄界面,輸入用戶名密碼進(jìn)行登錄,登錄成功后,轉(zhuǎn) 到步驟3 ;
[0010] 步驟3 :選擇上傳文件;用戶進(jìn)入系統(tǒng)主界面,點(diǎn)擊上傳按鈕,從本地選擇任意一 個(gè)文件進(jìn)行上傳,選擇完成后,轉(zhuǎn)到步驟4 ;
[0011] 步驟4 :此時(shí)客戶端首先用Reed Solomon糾刪碼的信息分割算法將文件分成相同 大小的m塊,然后編碼產(chǎn)生k塊,其中k彡m,共產(chǎn)生η個(gè)數(shù)據(jù)塊,n = m+k,編碼成功后轉(zhuǎn)到 步驟5 ;
[0012] 步驟5 :然后用Lagrange插值法對(duì)分割后的每個(gè)數(shù)據(jù)塊進(jìn)行信息隱藏,隱藏成功 后轉(zhuǎn)到步驟6 ;
[0013] 步驟6 :文件上傳;把處理后的每塊數(shù)據(jù)及每塊數(shù)據(jù)對(duì)應(yīng)的序列值上傳到相應(yīng)的 云存儲(chǔ)中,文件上傳成功后,系統(tǒng)主界面顯示了已成功上傳的η塊數(shù)據(jù),根據(jù)云存儲(chǔ)各自的 狀況,用戶根據(jù)自身需求選擇其中的m塊進(jìn)行下載,選擇完成后轉(zhuǎn)到步驟7 ;
[0014] 步驟7 :文件下載;選擇完成后點(diǎn)擊下載按鈕,則從相應(yīng)的云存儲(chǔ)中下載存儲(chǔ)的數(shù) 據(jù)及其對(duì)應(yīng)的序列值,m塊數(shù)據(jù)下載下來后,轉(zhuǎn)到步驟8 ;
[0015] 步驟8 :在客戶端對(duì)下載下來的每塊數(shù)據(jù)用Lagrange插值法對(duì)隱藏的信息進(jìn)行恢 復(fù),恢復(fù)成功后,轉(zhuǎn)到步驟9;
[0016] 步驟9 :對(duì)用Lagrange插值法對(duì)隱藏的信息進(jìn)行恢復(fù)后的m塊數(shù)據(jù)用Reed Solomon糾刪碼的信息恢復(fù)算法對(duì)其進(jìn)行恢復(fù),恢復(fù)成為原始的文件,結(jié)束。
[0017] 作為優(yōu)選,步驟4的具體實(shí)現(xiàn)包括以下子步驟:
[0018] 步驟4. 1 :首先定義上傳文件為D,將文件D分為大小相同的m塊,則文件D視為向 量:D = (D1, DfDJ ;
[0019] 步驟4. 2 :定義分塊編碼后的文件為向量:(D1, D2~Dm,(V"Ck),k為編碼產(chǎn)生的冗 余塊數(shù)量;
[0020] 步驟4. 3 :定義編碼矩陣B,編碼矩陣是由單位矩陣和范德蒙德矩陣構(gòu)成,其中單 位矩陣是m行m列矩陣,范德蒙德矩陣為k行m列矩陣;
[0021]
[0022] 步驟4.4 :編碼矩陣與文件向量相乘生成(DDDfD1^CV-Ck),
[0023]
[0024] 作為優(yōu)選,步驟5的具體實(shí)現(xiàn)包括以下子步驟:
[0025] 步驟5. 1 :定義分割編碼后的數(shù)據(jù)塊(D1, D2-Dm, (V-Ck)為:(D1 D2…Dn),令i = 1,轉(zhuǎn)到步驟5. 2 ;
[0026] 步驟5. 2 :如果i〈 = n,轉(zhuǎn)到步驟5. 3,否則轉(zhuǎn)到步驟5. 8 ;
[0027] 步驟5. 3 :將數(shù)據(jù)塊01分成t個(gè)更小單位數(shù)據(jù),D i= (d n, dfdit),轉(zhuǎn)到步驟5. 4 ;
[0028] 步驟5. 4 :定義數(shù)對(duì):(X1, dn), (x2, di2)…(xt, dit),其中xr"xt選取任意整數(shù),在t 個(gè)點(diǎn)上面利用拉格朗日插值公式生成k-Ι階多項(xiàng)式L(X);
[0029]
[0030] 其中Ij (X)為插值基函數(shù):
[0031]
[0032] 步驟5. 5:得到多項(xiàng)式L(X)后,選取區(qū)別于Xl~xt的另外t個(gè)點(diǎn),α a2··· Ctt代 入多項(xiàng)式計(jì)算相應(yīng)的函數(shù)值,得到β U β 2··· β t,令Di= (β ρ β 2··· β t);
[0033] 步驟5· 6 :隱藏信息后的數(shù)據(jù)塊Di= (β η β 2··· β t),以及α α 2··· α t在步驟6 中將會(huì)存儲(chǔ)到相應(yīng)的云存儲(chǔ)中;
[0034] 步驟5. 7 :i = i+Ι,回轉(zhuǎn)執(zhí)行所述的步驟5. 2 ;
[0035] 步驟5.8 :將文件的存儲(chǔ)信息寫入客戶端,所述的存儲(chǔ)信息包括文件名、文件大 小、恢復(fù)文件塊m、以及原始的序列x^·· xt;其中對(duì)于同一個(gè)文件每塊數(shù)據(jù)塊的原始的序列 Xf Xt是一樣的,Lagrange插值法信息隱藏結(jié)束。
[0036] 作為優(yōu)選,步驟8的具體實(shí)現(xiàn)包括以下子步驟:
[0037] 步驟8. 1 :從云存儲(chǔ)端下載下來的m塊數(shù)據(jù)(D2-Dm, C1),用序列(D1AfDm)來表 示,令i = 1,轉(zhuǎn)到步驟8. 2 ;
[0038] 步驟8. 2 :如果i〈 = m,轉(zhuǎn)到步驟8. 3,否則轉(zhuǎn)到步驟8. 5 ;
[0039] 步驟8. 3 :對(duì)于下載得到數(shù)據(jù)塊Di= (β ^ β 2··· β t)與α α 2··· a t,根據(jù)步驟 5.4,用(€[1,01),((!2,02)~(€^,^),構(gòu)造多項(xiàng)式函數(shù)1^00,在客戶端查找相關(guān)存儲(chǔ) 信息,得到該下載文件的原始的序列Xl~xt,代入多項(xiàng)式函數(shù)計(jì)算出原始的數(shù)據(jù)值Di = (dn, dy dit),轉(zhuǎn)到步驟 8. 4 ;
[0040] 步驟 8. 4 : i = i+Ι,轉(zhuǎn)到步驟 8. 2 ;
[0041] 步驟8. 5 :用Lagrange插值法對(duì)隱藏的信息進(jìn)行恢復(fù)后得到編碼后的原始數(shù)據(jù)塊 (D1, DfDm),即(DfDm, C1),隱藏信息恢復(fù)結(jié)束。
[0042] 作為優(yōu)選,步驟9的具體實(shí)現(xiàn)包括以下子步驟:
[0043] 步驟9. 1 :根據(jù)步驟8. 5得到的數(shù)據(jù)序列(D2-Dm, C1),對(duì)步驟4. 3中所定義的編碼 矩陣刪除數(shù)據(jù)塊D1, C^Ck所對(duì)應(yīng)的行,得到矩陣B' ;
[0044]
[0045] 步驟9.2 :將矩陣B'的逆矩陣與步驟8.5中得到的數(shù)據(jù)塊(DfD1^C1)相乘,得到 用戶原始的文件;
[0046]
[0047] 步驟9. 3 :得到文件D = (D1, DfDm),Reed Solomon糾刪碼的信息恢復(fù)算法結(jié)束。
[0048] 本發(fā)明可以獲得以下的有益效果:通過采用多個(gè)云存儲(chǔ)服務(wù)器來存儲(chǔ)數(shù)據(jù),解決 了服務(wù)的可用性問題,解決了單云環(huán)境下的云提供商鎖定問題;通過Reed Solomon糾刪碼 的使