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