(.丫,)
[0099] ......
[0100] + 從 + …+aa-1 =/(xj
[0101] 此時(shí)有η個(gè)方程組,η個(gè)未知數(shù),S卩aQai,......,an1〇
[0102] Step4:解上述方程組,得到系數(shù)at^,......,an丨,S=a。。
[0103]St印5 :輸出S。
[0104] 在秘密共享目錄樹(shù)后,當(dāng)需要上傳文件到公共云空間時(shí),首先從任意η個(gè)公共云 空間取回分解后目錄樹(shù)文件,恢復(fù)存儲(chǔ)目錄樹(shù),然后按照下文介紹的上傳操作將文件上傳, 上傳完畢后更新目錄樹(shù),最后利用Shamir秘密共享算法將目錄樹(shù)分解上傳到m個(gè)公共云空 間中,覆蓋掉原有目錄樹(shù)文件。當(dāng)需要從公共云空間下載文件時(shí),首先從任意η個(gè)公共云空 間取回分解后目錄樹(shù)文件,恢復(fù)存儲(chǔ)目錄樹(shù),然后根據(jù)目錄樹(shù),進(jìn)行文件下載操作。
[0105] 存儲(chǔ)文件:
[0106] 在上傳文件時(shí),進(jìn)行完目錄樹(shù)管理后,采用基于密鑰分解理論的文件分塊算法,將 其上傳到m個(gè)公共云空間中。
[0107] 基于密鑰分解理論的文件分塊算法如下:
[0108] 設(shè)定一個(gè)密碼系統(tǒng)為<M,C,K,P>,其中Μ為明文空間,C為密文空間,K為密鑰空 間(加密和解密密鑰空間),Ρ為參與者所組成的空間,討論將密鑰分配給m個(gè)人,允許其中 任意η個(gè)人都能恢復(fù)密鑰,少于η個(gè)人這不能恢復(fù)密鑰。
[0109] 在m個(gè)參與者中,任意η-1個(gè)參與者不能恢復(fù)密鑰,把密鑰空間Κ看成一個(gè)向 量空間,則其維度為qp1。對(duì)于密鑰空間…,尺Κ中的任一密鑰向量 κχ(i=L2,...,(::1)可以用參與者向量空間p中的元素?1(1 = 1,2,···,!!〇來(lái)線(xiàn)性表示, 即IU1于參與者空間P中的某幾個(gè)參與者。由于要求只需η個(gè)參與者即可恢復(fù)密鑰,則對(duì) 于參與者向量空間Ρ來(lái)說(shuō),其基向量個(gè)數(shù)為n,Ki可以用η個(gè)向量來(lái)表示。顯然任意η個(gè)向 量都可以得到密鑰I,而因?yàn)閙是基向量的個(gè)數(shù),則少于m個(gè)向量不能全部得到密鑰I。
[0110] 把文件當(dāng)作密鑰分解理論中密鑰K,在m個(gè)公共云空間中,任意η-1公共云空間不 能恢復(fù)密鑰Κ,則可以把文件分割成CT1塊子文件塊I(丨,2, _ ", ),將I分配給 m個(gè)公共云空間中的幾個(gè),使得必須具備任意其中η個(gè)公共云空間的子文件組才能恢復(fù)原 文件,任意不足η組子文件都不能恢復(fù)原文件,這樣任意不足η組子文件泄露也不足以泄漏 原文件,任意m-n組子文件損壞依舊能恢復(fù)原文件。
[0111] 給每塊子文件塊標(biāo)記為A&給m個(gè)公共云空間標(biāo)記為Q,C2,...,(;,取 其η-1 的組合:(:Α···Cn2CnpCA···Cn2Cn.....(; n+2(;n+3. · ·(;,共有C;-1 個(gè)組合。令這些 組合分別與對(duì)應(yīng),如1與CA.· ·Cn2Cni對(duì)應(yīng),其意義為CA.· ·Cn2Cni這η-1 個(gè)公共云空間都沒(méi)有存儲(chǔ)文件塊l。這樣很容易得到文件塊對(duì)公共云空間的分布方案,如 表1所示。
[0112] 表1文件塊對(duì)公共云空間存儲(chǔ)分布方案表
[0113]
[0114] 文件分割步驟如下:
[0115] St印1:輸入一個(gè)文件。
[0116] St印2 :輸入分割參數(shù)η與m,并計(jì)算文件分割數(shù)量blockjaumzq;、
[0117]Step3 :記錄文件名file_name,獲取文件大小file_size,并計(jì)算每塊子文件大 小。block_size=file_size/block_num〇
[0118]Step4 :以子文件塊大小block_size為單位,把文件分割成塊,每塊按序標(biāo)記。
[0119]Step5 :按照文件塊對(duì)公共云空間存儲(chǔ)方案,將文件塊進(jìn)行分組存儲(chǔ)到m個(gè)不同的 公共云空間。
[0120] 為了更形象地表示文件分割算法,現(xiàn)以m= 5,η= 3為具體例子?,F(xiàn)要將文件分 割成塊組合存儲(chǔ)在5個(gè)公共云空間中,必須從其中任意3個(gè)公共云空間取回子文件組才能 恢復(fù)文件,任意2個(gè)子文件組都不能恢復(fù)文件,文件塊分布推導(dǎo)如下。
[0121] 5個(gè)公共云空間,取兩兩組合,任一組合對(duì)應(yīng)一塊子文件塊,表示該公共云空間組 合未存儲(chǔ)該子文件塊,則文件需要分成g= 10塊,如圖4所示。由此很容易得到子文件塊 1的存儲(chǔ)分布,如圖5所不;并且由推導(dǎo)可得所有子文件塊的分布方案,如表2。
[0122] 表2子文件塊存儲(chǔ)分布方案表(m= 5,η= 3)
[0123]
[0124] 由上表可以得到在各公共云空間中,存儲(chǔ)的子文件塊,如表3所示。
[0125] 表3公共云空間存儲(chǔ)子文件塊表(m= 5,η= 3)
[0126]
[0127] 文件恢復(fù)步驟如下:
[0128] Stepl:根據(jù)對(duì)定的參數(shù)η,從任意η個(gè)公共云空間中取回η組子文件組
[0129] Step2 :從η組子文件組中找回全部子文件塊,去除重復(fù)的子文件塊。
[0130]St印3 :對(duì)這C,〗-1個(gè)子文件塊進(jìn)行排序。
[0131] St印4 :新建一個(gè)文件,以原文件名字file_name為名。
[0132] Step5 :將子文件塊的內(nèi)容按序以追加的形式寫(xiě)回到該文件中。
[0133] 由表3不難看出,在m= 5、n= 3的情況下,任意2個(gè)公共云空間的子文件組無(wú)法 恢復(fù)原文件,以取公共云空間1和公共云空間2為例,從2個(gè)公共云空間中的子文件組取回 的子文件塊有:2、3、4、5、6、7、8、9,缺少了子文件塊1。而任意3個(gè)公共云空間的子文件組 即可恢復(fù)原文件,公共云空間1和公共云空間2的子文件組中缺少子文件塊1,而公共云空 間3、公共云空間4和公共云空間5中都含有子文件塊1,即這從三個(gè)公共云空間任取其中 一個(gè)公共云空間,都可與公共云空間1、公共云空間2的其他子文件塊恢復(fù)原文件。
[0134] 在上傳文件時(shí),進(jìn)行完目錄樹(shù)管理后,采用基于秘密共享的保密存儲(chǔ)技術(shù),將其上 傳到m個(gè)公共云空間中,操作如下。
[0135] St印1:對(duì)要上傳的文件進(jìn)行加密。
[0136] Step2:采用Shamir秘密共享算法將密鑰分解存儲(chǔ)到m個(gè)公共云空間中。
[0137] Step3:對(duì)加密后的文件進(jìn)行物理分割成塊。
[0138] Step4 :按照子文件塊分布存儲(chǔ)方案將分割后的子文件塊進(jìn)行分布存儲(chǔ)。
[0139] 在下載文件時(shí),進(jìn)行完目錄樹(shù)管理后,只需從任意η個(gè)公共云空間中取回子文件 塊,通過(guò)本技術(shù)方案即可恢復(fù)回原文件。
[0140] Stepl:從任意η個(gè)公共云空間中取回子文件塊組,去除重復(fù)子文件塊。
[0141] Step2 :對(duì)子文件塊排序后進(jìn)行物理合并。
[0142] Step3 :從任意η個(gè)公共云空間中取回子密鑰,恢復(fù)密鑰。
[0143] Step4 :根據(jù)密鑰,對(duì)合并后的文件進(jìn)行解密,恢復(fù)原文件。
[0144] 上述實(shí)施例為本發(fā)明較佳的實(shí)施方式,但本發(fā)明的實(shí)施方式并不受上述實(shí)施例的 限制,其他的任何未背離本發(fā)明的精神實(shí)質(zhì)與原理下所作的改變、修飾、替代、組合、簡(jiǎn)化, 均應(yīng)為等效的置換方式,都包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【主權(quán)項(xiàng)】
1. 基于公共云的安全的分布數(shù)據(jù)管理方法,其特征在于,包括下述步驟: 51、 將本地用戶(hù)的存儲(chǔ)目錄樹(shù)提取出來(lái),作為一個(gè)目錄樹(shù)文件,把每個(gè)字節(jié)都當(dāng)作秘密 S ; 52、 使用Shamir秘密共享算法對(duì)目錄樹(shù)文件進(jìn)行分解,把每個(gè)字節(jié)進(jìn)行分解,得到m個(gè) 分解后的字節(jié),將這m個(gè)字節(jié)以追加寫(xiě)入的形式分別寫(xiě)到m個(gè)新建的文件中; 53、 當(dāng)目錄樹(shù)文件每一個(gè)字節(jié)都分解寫(xiě)到新建的文件后,將m個(gè)新建的目錄樹(shù)子文件 分別存儲(chǔ)到m個(gè)公共云空間中; 54、 需要恢復(fù)目錄樹(shù)文件時(shí),則從任意n (n〈m)個(gè)公共云空間中取回目錄樹(shù)子文件,從 這η個(gè)目錄樹(shù)子文件逐字節(jié)讀取出來(lái),當(dāng)做子秘密,使用多項(xiàng)式插值算法進(jìn)行秘密恢復(fù),恢 復(fù)出每個(gè)字節(jié),然后得到原本的目錄樹(shù)文件; 55、 在秘密共享目錄樹(shù)后,當(dāng)需要上傳文件到公共