專利名稱:一種基于網(wǎng)絡(luò)多節(jié)點(diǎn)的文件安全存儲(chǔ)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種基于網(wǎng)絡(luò)多節(jié)點(diǎn)的文件安全存儲(chǔ)方法。
背景技術(shù):
現(xiàn)有機(jī)密文件的存儲(chǔ)方法主要是采用加密存儲(chǔ)的方式實(shí)現(xiàn),這種方式保存的話,如果一旦存儲(chǔ)節(jié)點(diǎn)中數(shù)據(jù)被竊取,則數(shù)據(jù)將有很大可能失密;如果分成n片,在n個(gè)節(jié)點(diǎn)中分別存儲(chǔ)的話,一旦任一節(jié)點(diǎn)因任何原因失效,則數(shù)據(jù)無法恢復(fù);如果將每片復(fù)制多份,則一方面增加了總的存儲(chǔ)量,另一方面,如果獲取了幾個(gè)節(jié)點(diǎn)的數(shù)據(jù),則很可能導(dǎo)致文件失密,降低了安全性。
發(fā)明內(nèi)容
本發(fā)明其目的就在于提供一種基于網(wǎng)絡(luò)多節(jié)點(diǎn)的文件安全存儲(chǔ)方法,從而解決了現(xiàn)有網(wǎng)絡(luò)文件存儲(chǔ)中安全性不足或者冗余度過大的問題,在保證最小冗余度的情況下,給出了最大安全度的文件分割存儲(chǔ)算法。實(shí)現(xiàn)上述目的而采取的技術(shù)方案,包括
(1)獲取已具備的相互獨(dú)立的存儲(chǔ)節(jié)點(diǎn)數(shù)N,所述相互獨(dú)立為任一節(jié)點(diǎn)失密或損壞不會(huì)導(dǎo)致其余節(jié)點(diǎn)失密或損壞;
(2)將原始文件加密;
(3)根據(jù)存儲(chǔ)節(jié)點(diǎn)數(shù)量N,將加密文件切割成N(N-I)/2片文件片,每片大小任意,并對(duì)每個(gè)文件片進(jìn)行編號(hào);
(4)將文件片存儲(chǔ)在N個(gè)節(jié)點(diǎn)中,每節(jié)點(diǎn)存儲(chǔ)N-I片,并使得任意兩節(jié)點(diǎn)之間均有一個(gè)文件片相同,而每個(gè)文件片在全部節(jié)點(diǎn)中共出現(xiàn)兩次,即各節(jié)點(diǎn)總的存儲(chǔ)量為原始文件大小的兩倍,任意兩節(jié)點(diǎn)中所存儲(chǔ)文件編號(hào)的碼距為I。與現(xiàn)有技術(shù)相比本發(fā)明具有以下優(yōu)點(diǎn)。I、可適應(yīng)大量存儲(chǔ)節(jié)點(diǎn)進(jìn)行網(wǎng)絡(luò)存儲(chǔ)。2、可有效抵御內(nèi)部泄密和網(wǎng)絡(luò)黑客入侵,N個(gè)存儲(chǔ)節(jié)點(diǎn)中只要入侵節(jié)點(diǎn)數(shù)不大于N-2個(gè)(含N-2個(gè)),均無法利用節(jié)點(diǎn)中文件片合成原始文件,理論上文件都是安全的。3、任意一個(gè)節(jié)點(diǎn)因任何原因失效,均不會(huì)導(dǎo)致數(shù)據(jù)無法恢復(fù),而且通過其余節(jié)點(diǎn)能夠還原出本節(jié)點(diǎn)唯一的文件片構(gòu)成方式。4、通過任意N-I個(gè)節(jié)點(diǎn),均能還原出原始文件。
下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步詳述。圖I為本發(fā)明方法流程圖。圖2為本發(fā)明中文件片編碼算法流程圖。
具體實(shí)施例方式如圖I所示,包括
(1)獲取已具備的相互獨(dú)立的存儲(chǔ)節(jié)點(diǎn)數(shù)N,所述相互獨(dú)立為任一節(jié)點(diǎn)失密或損壞不會(huì)導(dǎo)致其余節(jié)點(diǎn)失密或損壞;
(2)將原始文件加密;
(3)根據(jù)存儲(chǔ)節(jié)點(diǎn)數(shù)量N,將加密文件切割成N(N-I)/2片文件片,每片大小任意,并對(duì)每個(gè)文件片進(jìn)行編號(hào);
(4)將文件片存儲(chǔ)在N個(gè)節(jié)點(diǎn)中,每節(jié)點(diǎn)存儲(chǔ)N-I片,并使得任意兩節(jié)點(diǎn)之間均有一個(gè)文件片相同,而每個(gè)文件片在全部節(jié)點(diǎn)中共出現(xiàn)兩次,即各節(jié)點(diǎn)總的存儲(chǔ)量為原始文件大小的兩倍,任意兩節(jié)點(diǎn)中所存儲(chǔ)文件編號(hào)的碼距為I。
如圖2所示,所述文件片編碼算法如下
①獲取存儲(chǔ)節(jié)點(diǎn)數(shù)N;
②定義數(shù)組a[N][N-1]用來收集每節(jié)點(diǎn)存儲(chǔ)的文件片編號(hào)(下標(biāo)范圍為a
[N-2]),數(shù)組的取值范圍為節(jié)點(diǎn)中文件片編號(hào)l、(N-l)/2 ;
③初始化行、列下標(biāo)和文件片編號(hào),分別以i,j,m表示,且i=0,m=l;
④如果i>=N-l,跳轉(zhuǎn)到⑩
⑤j=i ;
⑥如果j>=N-1,跳轉(zhuǎn)到④⑨
⑦將a[i][j]和a[j+l] [i]中的值置為m ;
⑧m=m+l;j=j+l ;跳轉(zhuǎn)到⑥
⑨i=i+l,跳轉(zhuǎn)到④
⑩完成文件片編碼,a
分別對(duì)應(yīng)N個(gè)節(jié)點(diǎn)中所存文件片的編號(hào)。本發(fā)明提出基于網(wǎng)絡(luò)多節(jié)點(diǎn)的文件安全存儲(chǔ)方法,具體特征包括以下步驟(如圖I所示)
1、獲取已具備的相互獨(dú)立的存儲(chǔ)節(jié)點(diǎn)數(shù)N,N的數(shù)值越大,則存儲(chǔ)安全性越高,同時(shí)并不會(huì)導(dǎo)致總文件存儲(chǔ)量的提高,這里“相互獨(dú)立”是指任一節(jié)點(diǎn)失密或損壞不會(huì)導(dǎo)致其余節(jié)點(diǎn)失密或損壞;
2、將原始文件以現(xiàn)有已知方式加密;
3、根據(jù)存儲(chǔ)節(jié)點(diǎn)數(shù)量N,將加密文件切割成N(N-I)/2片文件片,每片大小任意,并對(duì)每個(gè)文件片進(jìn)行編號(hào),注意文件必須分割成N(N-l)/2片,此為最小冗余分割方法;
4、將文件片存儲(chǔ)在N個(gè)節(jié)點(diǎn)中,每節(jié)點(diǎn)存儲(chǔ)N-I片,并使得任意兩節(jié)點(diǎn)之間均有一個(gè)文件片相同,而每個(gè)文件片在全部節(jié)點(diǎn)中共出現(xiàn)兩次,即各節(jié)點(diǎn)總的存儲(chǔ)量為原始文件大小的兩倍,任意兩節(jié)點(diǎn)中所存儲(chǔ)文件編號(hào)的碼距為I。文件片編碼算法如下(流程圖見圖2)
①獲取存儲(chǔ)節(jié)點(diǎn)數(shù)N;
②定義數(shù)組a[N][N-1]用來收集每節(jié)點(diǎn)存儲(chǔ)的文件片編號(hào)(下標(biāo)范圍為a
[N-2]),數(shù)組的取值范圍為節(jié)點(diǎn)中文件片編號(hào)l、(N-l)/2 ;
③初始化行、列下標(biāo)和文件片編號(hào),分別以i,j,m表示,且i=0,m=l;
④如果i>=N-l,跳轉(zhuǎn)到⑩
⑤j=i ;⑥如果j>=N-1,跳轉(zhuǎn)到④⑨
⑦將a[i][j]和a[j+l] [i]中的值置為m ;
⑧m=m+l;j=j+l ;跳轉(zhuǎn)到⑥
⑨i=i+l,跳轉(zhuǎn)到④
⑩完成文件片編碼,a[Ora[N_l]分別對(duì)應(yīng)N個(gè)節(jié)點(diǎn)中所存文件片的編號(hào)。
實(shí)施例現(xiàn)有條件有N個(gè)異地存儲(chǔ)設(shè)備,一個(gè)需要保密存儲(chǔ)的文件,具體實(shí)施方式
如下(以下例子以N=5計(jì))
1、將文件通過設(shè)置密碼的方式使用現(xiàn)有壓縮軟件如ZIP,進(jìn)行分片壓縮,將文件分 為S=N (N-I)/2片,分別命名為Z (I)、Z (2)、……、Z(S),iN=5時(shí),文件分割的總片數(shù)為S=5 (5-1)/2=10 片,編號(hào)為 Z(I) Z ⑴、Z ⑵、……,Z(IO);
2、將文件片存儲(chǔ)在N個(gè)節(jié)點(diǎn)中,每節(jié)點(diǎn)存儲(chǔ)N-I片,并使得任意兩節(jié)點(diǎn)之間均有一個(gè)文件片相同,而每個(gè)文件片在各節(jié)點(diǎn)中出現(xiàn)且只出現(xiàn)兩次??赏ㄟ^以下算法,但不限于以下算法將文件片分組,以C語(yǔ)言為例,設(shè)存儲(chǔ)節(jié)點(diǎn)數(shù)為5
main ()
{
#define N 5 //定義異地存儲(chǔ)設(shè)備的數(shù)量int a[N] [N-1] ; //創(chuàng)建一個(gè)數(shù)組,下標(biāo)0為行,下標(biāo)I為列,每行表示一個(gè)存儲(chǔ)節(jié)點(diǎn)所存儲(chǔ)的文件編號(hào)
int i, j,m; //i, j分別為行列下標(biāo),m為文件編號(hào) m=l;//置文件編號(hào)初值
for (i=0; i<N-l; i++) Il以下對(duì)數(shù)組進(jìn)行賦值,將對(duì)應(yīng)文件編號(hào)放進(jìn)相應(yīng)數(shù)組中 for(j=i;j〈N-l;j++)
{
a[i] [j]=m; a[j+l] [i]=m; m++;
}
for(i=0;i<N;i++) //顯示文件片分組情況,每行為一個(gè)節(jié)點(diǎn)所保存的文件片
{
for(j=0;j<N-l;j++)
printf("%5d", a[i][j]);printf CW);
}
}
運(yùn)行結(jié)果如下
12 3 4 15 6 725 8 9
36 8 10
47 9 10
表明
第I個(gè)存儲(chǔ)節(jié)點(diǎn)存儲(chǔ){Z (I),Z (2),Z (3),Z (4)}
第2個(gè)存儲(chǔ)節(jié)點(diǎn)存儲(chǔ){Z (I),Z (5),Z (6),Z (7)}
第3個(gè)存儲(chǔ)節(jié)點(diǎn)存儲(chǔ){Z (2),Z (5),Z (8),Z (9)}
第4個(gè)存儲(chǔ)節(jié)點(diǎn)存儲(chǔ){Z (3),Z (6),Z (8),Z (10)} 第5個(gè)存儲(chǔ)節(jié)點(diǎn)存儲(chǔ){Z (4),Z (7),Z (9),Z (10)}。
權(quán)利要求
1.一種基于網(wǎng)絡(luò)多節(jié)點(diǎn)的文件安全存儲(chǔ)方法,其特征在于,包括 (1)獲取已具備的相互獨(dú)立的存儲(chǔ)節(jié)點(diǎn)數(shù)N,所述相互獨(dú)立為任ー節(jié)點(diǎn)失密或損壞不會(huì)導(dǎo)致其余節(jié)點(diǎn)失密或損壞; (2)將原始文件加密; (3)根據(jù)存儲(chǔ)節(jié)點(diǎn)數(shù)量N,將加密文件切割成N(N-I)/2片文件片,每片大小任意,并對(duì)每個(gè)文件片進(jìn)行編號(hào); (4)將文件片存儲(chǔ)在N個(gè)節(jié)點(diǎn)中,每節(jié)點(diǎn)存儲(chǔ)N-I片,并使得任意兩節(jié)點(diǎn)之間均有ー個(gè)文件片相同,而每個(gè)文件片在全部節(jié)點(diǎn)中共出現(xiàn)兩次,即各節(jié)點(diǎn)總的存儲(chǔ)量為原始文件大小的兩倍,任意兩節(jié)點(diǎn)中所存儲(chǔ)文件編號(hào)的碼距為I。
2.根椐權(quán)利要求I所述的ー種基于網(wǎng)絡(luò)多節(jié)點(diǎn)的文件安全存儲(chǔ)方法,其特征在于,所述文件片編碼算法如下 X獲取存儲(chǔ)節(jié)點(diǎn)數(shù)N; S定義數(shù)組a[N] [N-1]用來收集每節(jié)點(diǎn)存儲(chǔ)的文件片編號(hào)(下標(biāo)范圍為a
、[Ν-1] [N-2]),數(shù)組的取值范圍為節(jié)點(diǎn)中文件片編號(hào)1、(Ν-1)/2 ; S初始化行、列下標(biāo)和文件片編號(hào),分別以i,j,m表示,且i=0,m=l ; .1:如果i>=N-i,跳轉(zhuǎn)到3 i: j=i ; -I;如果j >=N-l,跳轉(zhuǎn)到:!: S: %將a[i] [j]和a[j+l] [i]中的值置為m ;.$+ m=m+l ; j=j+l ;跳轉(zhuǎn)到 S+ I i=i+l,跳轉(zhuǎn)到 .3完成文件片編碼,a[Ora[N_l]分別對(duì)應(yīng)N個(gè)節(jié)點(diǎn)中所存文件片的編號(hào)。
全文摘要
一種基于網(wǎng)絡(luò)多節(jié)點(diǎn)的文件安全存儲(chǔ)方法,包括獲取已具備的相互獨(dú)立的存儲(chǔ)節(jié)點(diǎn)數(shù)N,所述相互獨(dú)立為任一節(jié)點(diǎn)失密或損壞不會(huì)導(dǎo)致其余節(jié)點(diǎn)失密或損壞;將原始文件加密;根據(jù)存儲(chǔ)節(jié)點(diǎn)數(shù)量N,將加密文件切割成N(N-1)/2片文件片,每片大小任意,并對(duì)每個(gè)文件片進(jìn)行編號(hào);將文件片存儲(chǔ)在N個(gè)節(jié)點(diǎn)中,每節(jié)點(diǎn)存儲(chǔ)N-1片,并使得任意兩節(jié)點(diǎn)之間均有一個(gè)文件片相同,而每個(gè)文件片在全部節(jié)點(diǎn)中共出現(xiàn)兩次,即各節(jié)點(diǎn)總的存儲(chǔ)量為原始文件大小的兩倍,任意兩節(jié)點(diǎn)中所存儲(chǔ)文件編號(hào)的碼距為1。從而解決了現(xiàn)有網(wǎng)絡(luò)文件存儲(chǔ)中安全性不足或者冗余度過大的問題,在保證最小冗余度的情況下,給出了最大安全度的文件分割存儲(chǔ)算法。
文檔編號(hào)H04L29/08GK102685199SQ20121001543
公開日2012年9月19日 申請(qǐng)日期2012年1月18日 優(yōu)先權(quán)日2012年1月18日
發(fā)明者代飛, 馮小輝, 吳昊, 蔣志航, 陸青, 陳宏欣 申請(qǐng)人:吳昊