專利名稱:文件混序分割存儲與合成互驗的方法
技術領域:
本發(fā)明涉及一種計算機文件分布式安全存儲的方法,特別是指一種將計算機文件 混序、分割、加密、分布式存儲以及互驗、解密、合成、還原的方法。
背景技術:
隨著現代技術的不斷發(fā)展和進步,計算機信息的安全性,尤其是計算機文件信息的安全性越來越突出。計算機文件信息的泄密很容易造成不可估量的損失,而現有的計算 機文件存儲技術存在嚴重的缺陷,難以達到計算機文件保密的目的,因此需要解決針對計 算機文件安全存儲的問題?,F在常用的計算機文件保護措施是將文件直接加密存儲在計算 機或者移動存儲設備中,但是當存有涉密文件的設備丟失后,當中的涉密文件的破解就只 剩下時間問題了,因此這種防泄密措施并不具有較高的安全性能。另外,還有一種保護措施就是將文件按順序先分割成若干個部分再存儲在幾個不 同的設備上,當需要使用時,再將文件還原成分割前的狀態(tài)。這種方案一股常用移動載體來 存儲分割后的各部分文件。雖然這樣從一定程度上提高了涉密文件的安全性,但是這種措 施存在一個致命的問題,就是因為文件是按順序分割的,雖然攻擊者可能只獲得了分割后 的一部分文件,但是當攻擊者破解了這一部分文件后,該部分文件所包含的秘密還是會泄 Mo另外,當分割后的一部分文件被惡意修改之后,現有產品都沒有進行報警,通知用 戶文件已經被改動,也就是缺少對文件進行的自身完整性檢測和互完整性檢測,這樣會導 致最終合成的文件出現錯誤,更嚴重者可能因攻擊者偽造秘密信息而造成決策失誤等。
發(fā)明內容
本發(fā)明的目的是提出一種文件混序分割存儲與合成互驗的方法,該文件混序分割 存儲與合成互驗的方法安全性好,效率高,且具有互驗功能。本發(fā)明的技術解決方案如下—種文件混序分割存儲與合成互驗的方法,其特征在于,包括以下步驟A 文件混序步驟;B 幻方加密步驟;C 文件恢復及互驗步驟;所述的文件混序步驟為步驟1:位置確定將源碼文件F以字符為單位存入一個16*n的矩陣L,η為字符數,矩陣L中的元素 表示為 au·,其中 i = 1, 2, 3, . . . , 16 ; j = 1,2, . . . , η ;步驟2 設定文件分塊數χ ;步驟3 產生χ個16階的隨機幻方M1, 1 = 1,2,3,...,χ;將產生的第一個隨機幻 方的首行中的元素存入集合H= Ovh2,...!^);
步驟4:位置混序首先確定集合Ke:將步驟1中的矩陣L分為16個集合Ke,e = 1,2,3, ...,16,,每個集合Ke的首元素對應矩陣L中第一行的元素 ,」,j = 1,2,3,... ,16 ;當e = 2k+l,k = 0,1,2,3,...,7時,Ke中首元素后面的其他元素為矩陣L中以
該首元素所在的主對角線上的所有元素;當e = 2m,m = 1,2,3, ...,8時,Ke中首元素后面的其他元素為矩陣L中以該首 元素所在的副對角線上的所有元素;然后,將Ke向左或向右平移Iii個單位,其中hi為集合H中的元素;當e = 2k+l,k = 0,1,2,3, · · ·,7時,將Ke中的元素向右平移Iii個單位;當e = 2m,m =,1,2,3,. . .,7時,將Ke中的元素向左平移Iii個單位;最后,將Ke中新的元素對應回原來矩陣的位置,得到一個混序的矩陣;步驟5:文件分割將步驟4的位置混序后的文件按順序分割為χ個子文件Fj,其中j = 1,2,3,…, χ ;所述的幻方加密步驟為步驟1 先將分割后的文檔。轉換成ASCII碼,再將其轉換成二進制;從而構造成 明文矩陣W1, 1 = 1,2,3,…X ;步驟2 ;將明文矩陣W1對應的幻方M1中的每個元素轉換為二進制值,再將明文矩 陣W1中的每個元素與幻方M1中對應的元素的二進制值進行異或運算,得到第一次密文矩陣
U1;步驟3 將第一次密文矩陣U1的元素采用幻方M1作為調序規(guī)則進行調序,即將幻 方中每個元素的數值所對應的密文矩陣中該數值號的元素調序到幻方中該元素的位置,得 到第二次密文矩陣U1*,由U1*組成密文分塊F/,加密完成;所述的文件恢復及互驗步驟為步驟1 將密文分塊F/運用SHA2-256算法生成一個記錄F/特征的256位0_1序 列~,即為散列值hj;步驟2 將所產生的χ個隨機幻方M1進行模和運算得到互完整性校驗矩陣M2 ;步驟3 用得到的0-1序列hj對隨機幻方M1進行洗牌得到認證矩陣M1*,具體操作 為從一組具有內部數學關系的可校驗的nl個有序數字序列中按序隨機抽取其中約一半 數字,按先后次序排成一組數字序列,并將該序列置于所剩數字序列之后,構成一個新的數 字序列,稱該數字序列重組過程為隨機洗牌過程,重組數字序列稱為洗牌結果,其中按序均 勻隨機抽取數字的方案由一 nl元0-1 二進制表示,并稱之為洗牌方案;步驟4:將密文分塊F/和Mi*—起封裝發(fā)送到各分布式終端,其中,i e {1,2, 3, . . . , x}, j 興 i ;步驟5 如果存有某一文件分塊Fi的終端Zi有提取文件F的需求,將Fi的散列值 hj廣播發(fā)送至存有F文件其他分塊的終端Zj, j e {1,2,3,...,χ},j乒i,終端Zj通過其 所保存的認證矩陣驗證其所接收的散列值是否正確,如果驗證正確,終端Zj則將其存儲 的文件分塊。傳送至此次文件的提取終端Zi ;
步驟6 如果已經收到全部文件分塊{Fj; j Φ i},由文件提取終端Zi分別計算各分 塊。的散列值hp利用h通過逆洗牌和反調序過程將各文件分塊。的相應隨機幻方M1分別從相應的認證矩陣M1*中提取出來,然后計算
驗證Μ*是否是幻方,如果M*是幻方,則所有文件分塊的自完整性與互完整性均滿足,可以成功合 成完整文件;否則,自完整性與互完整性均不滿足,文件不能成功合成;如文件可以合成, 首先將文件F/進行解密得到Fp解密方法即為加密方法的逆步驟,再將。合成得到混序后 的文件,最后將混序后的文件恢復成矩陣L,恢復操作為混序的逆步驟,從而恢復出文件F。所述的分塊數χ為3-10。分塊數無限制,可以從1到無窮大,因為分塊數是根據文件F的大小決定的,文件 F大則χ就大。有益效果本發(fā)明具有以下積極效果1)文件分割的無序性?,F有的文件分割技術只是將文件進行簡單的順序分割,不 能起到減小文件內容之間相關性的效果,某個文件分塊被破解之后攻擊者還是能得到部分 秘密信息。而本發(fā)明應用一種全新的幻方混序方法將需要分割的文件進行全文范圍內混 序,然后再進行分割,從最大程度上減小文件內容的相關性。簡要實施方式是首先將文件內 容轉換成16*n的矩陣,根據混序方案(一個隨機幻方的第一行數字序列)進行混序操作, 由于是根據整個矩陣的對角線進行雙向(左斜和右斜)傾斜方向移動,移動范圍是整個文 件矩陣,所以能夠保證全文內容的不相關性。而采用將文件內容轉換成ASCII碼值矩陣方 案時,不僅文件內容的順序被打亂,而且文件的具體內容也會發(fā)生改變,安全性能更高。2)幻方加密算法的高安全性。現有加密算法,如對稱加密算法DES、AES、IDEA、 FEAL等,就像在謝濤以前申請的專利中所說,因加密與安全風險的集中性和其的分組長度 都不適合與對分割后的文件進行加密。同時公鑰密碼系統(tǒng)有密鑰對生成效率低,加密與解 密效率偏低,模數太長,加密結果長度不確定等缺點。而單向散列函數又容易遭受“碰撞”攻 擊,所以也不適合作為本發(fā)明中加密算法。本發(fā)明采用幻方加密算法可以很好的克服這些 問題,而且幻方加密算法作為一種全新的加密算法,外界對其了解很少,所以其被破解的可 能性很低。3)文件合成時的完整性互驗。在分割后的文件合成時,本發(fā)明采取先對各個分割 后的文件的自身完整性和互完整性進行驗證,只有驗證通過后才允許合成,否則將不允許 合成。各分割后的文件的自完整性靠其它分割后的文件的認證信息進行驗證,可避免對分 割后的文件的偽造,也可以很好的防止內部人員而造成的泄密。每一分割后的文件的認證 信息實現(n-1)倍冗余存儲(η為文件分塊數),真正體現了分布式存儲系統(tǒng)的安全優(yōu)勢。 如果采用文件分塊的冗余存儲,就可實現高效分布式安全冗余存儲系統(tǒng)。而且自完整性與 互完整性校驗算法均可公開。采用隨機幻方洗牌認證還可以實現模糊認證。但現有技術是 不對分割后的文件進行驗證的,直接就將其進行合成,不能保證合成后的文件仍然是與分 割前的文件是否一致的,有可能會導致合成后的文件信息發(fā)生改變,同時也就不具有以上 其他的優(yōu)點。
圖1:明文矩陣;圖2:隨機幻方M1;圖3:隨機幻方M2;圖4:隨機幻方M3;圖5 幻方混序處理后的結果矩陣;圖6 明文轉換為二進制的結果;圖7 異或運算結果((由于版面限制,未設計成表格形式,各個數字之間以逗號隔 開);圖8 加密后的文件分塊((由于版面限制,未設計成表格形式,各個數字之間以逗 號隔開);圖9 利用SHA2-256算法產生的256位0_1序列;圖10 互完整性校驗矩陣計算過程;圖11 自完整性校驗矩陣計算過程;圖12 加密后的各個封裝數據塊。
具體實施例方式本發(fā)明用于文件混序的方法,包括以下步驟1.確定位置將表示文件F的二進制碼以字符(Byte)為單位存入一個16*n(n由字符的個數確 定)的矩陣L,矩陣L中的元素表示為」,其中i = 1,2,3,... ,16 ;j = 1,2,...,η;2.由用戶根據需要設定文件分塊數χ ;3.產生隨機幻方隨機幻方產生方法參見發(fā)明專利(謝濤,陳火旺,康立山;名稱為幻方身份雙向 認證與密鑰傳輸一體化方法;專利號ZL02114288. 2),為現有技術。根據隨機幻方編碼產生χ個隨機幻方Mi (i = 1,2,3, ... , χ),產生步驟(以下步 驟為簡要步驟,具體步驟見ZL02114288. 2)如下(1)初始化親本隨機地將1至η2的連續(xù)自然數排列成ηΧη的矩陣;(2)親本復制與變異計算σ i,當η·+!!- > 0時,等概率選擇三種元素置換算子 之一,以相應變異概率對矩陣進行操作,而且當最優(yōu)個體的目標函數值小于(50Χη)時,進 一步啟動行列局部調整操作,生成下代個體;當η,+η- = 0時,采用行列置換算子與對角 局部調整操作,生成下代個體;(3)親本更新當η,+η-Χ)時,如果當前最優(yōu)個體的目標函數不小于(50Χη),則采用(μ a)-ES更新機制,否則,采用(μ+λ )-ES更新機制;當Iira^rw = (MAd2)I 時,如果當前最優(yōu)個體的目標函數值大于100,則采用(μ · X)-ES更新機制,否則,采用 (u+A)-ES更新機制;(4)演化終止條件判斷如果最優(yōu)個體的目標函數值等于0,即滿足幻方條件,幻 方演化算法終止,同時轉幻方隨機分割過程;否則,轉步驟b。4.位置混序
取第一個幻方的第一行數值為混序方案,將整個文件進行混序。5.文件分割采用一定規(guī)則將混序后的文件分割為X個子文件。文件混序的
具體實施例方式文件混序的步驟為1.確定位置將文件F以字符(Byte)為單位存入一個16*n的矩陣L,矩陣中的元素表示為 , j (其中i = 1,2,3,...,16 ;j = 1,2,...,η),如果第η行數據沒有被存滿,則沒有數據的
元素用O補全;例如矩陣
,如果數據存到anl就存完了,那么an2-anl6則用零
元素補全。2.獲取用戶需要分割的子文件分塊數根據用戶設置獲取需要分割的子文件分塊數X,用戶可根據具體需要設置分割的 子文件個數X。3.產生隨機幻方為X個子文件產生X個16階的隨機幻方Mi (i = 1,2,3,···,x)。將產生的第一個隨機幻方的首行中的元素存入集合H = (hi; h2,. . . h16)。4.位置混序1)將第一步中的矩陣L分為16個集合Ke(e = 1,2,3, ...,16),每個集合Ke的 首元素對應矩陣L中第一行的元素 ,」。· = 1,2,3,...,16)。如!^ = (aia, . . .),K2 = (a12,...),...,Kn= (ai,16,...)。本步驟主要是將矩陣的元素分組,為位置混序做準備。Ke 的其他元素的確定見后續(xù)說明。a)當 e = 2k+l, (k = 0,1,2,3,· · ·,7)時Ke中首元素后面的其他元素為矩陣L中以該首元素所在的主對角線上的所有元 素,即Ke =( ,彳, 洲“沖乂郵,腫)..^),其中i = 1,2,3,···,n,其中隨著i的變化j = j+1,而j的取值范圍為[1,16],超出此范圍則跳回j = 1,如此往復直到i =n。[j的初值 取1b)當 e = 2m,(m = 1,2,3,· · ·,8)時Ke中首元素后面的其他元素為矩陣L中以該首元素所在的副對角線上的所有元 素,即Ke ( ,,」,已她,時,咖禮的)..^),其中i = 1,2,3,···,n,其中隨著i的變化j = j_l,而j的取值范圍為[16,1],超出此范圍則跳回j = 16,如此往復直到i = η。2)將Ke向左或向右平移hi個單位(其中Iii來自第三步的集合H,即產生的第一 個隨機幻方的首行中的元素)。本步驟是位置混序的關鍵,通過Ke的平移實現了真正的位 置混序。a)當 e = 2k+l, (k = 0,1,2,3,· · ·,7)時將Ke中的元素向右平移h個單位。當其中某一個元素移到集合的盡頭時,由于 位置不夠,還有未移完的步數,則需要將此元素移到原集合的首位,再把剩下的步數全部移完,依照此法將所有的元素都平移到位。如當Ii1 = 3,則1(1中的第1個元素向右移3位,到達第4個元素的位置,第2個元素向右移3位,到達第5個元素的位置,依次類推,第n-2個 元素本應向右移3位,但由于位置不夠,該元素跳到第1個元素的位置,第n-1個元素則跳 到第2個元素的位置。b)當 e = 2m,(m =,1,2,3,· · ·,7)時將Ke向左平移h個單位。當移到集合的盡頭時,與右移的處理方法相同。3)將Ke中新的元素對應回原來矩陣的位置,這樣就得到一個混序的矩陣。本步驟主要是將混序后的元素恢復成矩陣,方便后續(xù)步驟的進行。5.文件分割將混序后的文件分割為X個子文件Fj (其中j = 1,2,3,…,X)。即將整個混序后 的文件按順序分割成用戶所需要的塊數。本發(fā)明用于幻方加密的方法,包括以下步驟幻方加密步驟(X為文件需要分割的塊數)a.將分割后的文檔&轉換成ASCII碼,再將其轉換成二進制。從而構造成明文矩 陣巧(其中ι = 1,2,3,…)。b.將該塊明文對應的幻方禮中的每個元素轉換為二進制值,再將明文矩陣W1中 的每個元素與幻方Mi中對應的元素的二進制值進行異或運算。W1對應得到矩陣U1, U1稱為 第一次密文矩陣。C.將第一次密文矩陣U1的元素采用幻方Mi作為調序規(guī)則進行調序。即將幻方中 每個元素的數值所對應的密文矩陣中該數值號的元素調序到幻方中該元素的位置。具體 的,Mi如附圖2(為便于說明,但不僅限于此幻方)。按幻方的序列調序,矩陣U1對應得到矩 陣U1I其中1 = 1,2,3···)。調序過程為將矩陣U1的2號元素放到矩陣U1*的1號元素位 置;將U1的117號元素放到U1*的2號元素位置;將U1的45號元素放到U1*的3號元素位 置;…;將U1的120號元素放到U1*的256號元素位置。矩陣U廣稱為第二次密文矩陣。U1* 組成密文F/d.分塊后的明文Fj對應得到F/,加密完成。本發(fā)明用于合成互驗的方法,包括以下步驟a.將加密后的文件分塊F/運用SHA2-256算法(SHA-256算法是美國國家安全局 設計,美國國家標準技術研究院發(fā)布的一種安全加密算法。)生成一個記錄F/特征的256 位0-1序列hj ;b.將所產生的X個隨機幻方Mi進行模和運算(即將η個η階隨機幻方的元素按 位相加或者相乘,取模η2+1得到一個模η2+1內自然數的矩陣S,模運算即是將該數字除以 η2+1后取余數)得到互完整性校驗矩陣M ;d.用得到的0-1矩陣hj對隨機幻方Mi (i = j)進行洗牌(從一組具有內部數學 關系的可校驗的η個有序數字序列中按序隨機抽取其中約一半數字,按先后次序排成一組 數字序列,并將該序列置于所剩數字序列之后,構成一個新的數字序列,稱該數字序列重組 過程為隨機洗牌過程,重組數字序列稱為洗牌結果,其中按序均勻隨機抽取數字的方案可 由一 η元0-1 二進制表示,并稱之為洗牌方案。)得到矩陣M廣e.將加密后的文件分塊F/和Mji e {1,2,3,. . .,η},j乒i) 一起封裝發(fā)送到各分布式終端。即若文件分為4塊時,分割加密后的封裝數據塊是F1 (F1*, M2*, Μ;, Μ;, M), F2 (F2*, M1*, M3*, M4*, M),F3 (F3*, M1*, M2*, M4*, M),F4 (F4*, M1*, M2*, M3*, M)。f.如果存有某一文件分塊Fi的終端Zi有提取文件F的需求,通過廣播協(xié)議將Fi 的散列值h發(fā)送至存有F文件其他分塊的終端如Zj (j e {1,2,3,...,η},j興i),終端Zj 通過其所保存的認證矩陣驗證其所接收的散列值Iii是否正確(驗證以256-bit散列值比 作為洗牌方案能否從認證矩陣集合{H/,i Φ j}中恢復出一個且只有一個矩陣滿足幻方條 件,即通過對洗牌方案的逆序從而恢復一個矩陣并驗證得到的矩陣是否為幻方,幻方是指 由1到η2的連續(xù)自然數排成η行與η列的矩陣,使每行、每列以及兩主對角線上數字之和均 等于常數C = η (η2+1) /2的數字矩陣。此步為文件分塊存儲終端τ、驗證文件F的此次提取 終端Zi是否具有合法資格,即是否也是文件F的分塊存儲終端),如果驗證正確,終端Zj則 將其存儲的文件分塊。傳送至此次文件的提取終端Zi ;g.如果已經收到全部文件分塊{Fj; j Φ i},此次文件提取終端Zi分別計算各分塊 Fj的散列值~,利用hj通過逆洗牌(謝濤,陳火旺,康立山;名稱為幻方身份雙向認證與密 鑰傳輸一體化方法;專利號ZL02114288. 2)和反調序過程將各文件分塊h的相應隨機幻方Mj分別從相應的認證矩陣M/中提取出來,然后計算M*= Ml- Yj Hj mod(l62+l),
出來,然后計算
驗證M*是否滿足幻方條件,即驗證M*是否是幻方。如果滿足,則所有文件分塊的自完整性 與互完整性均滿足,可以成功合成完整文件;否則,自完整性與互完整性均不滿足,文件不 能成功合成。h.如文件可以合成,首先將文件F/進行解密(解密方法即為加密方法的逆步驟) 得到Fp再將。合成得到混序后的文件,最后將混序后的文件恢復成(按混序的逆步驟即 可恢復)矩陣L,從而恢復出文件F ;如文件不可合成,則不進行此步驟。以下將結合圖和具體實施過程對本發(fā)明做進一步詳細說明實施例1:為進一步說明本發(fā)明,特舉實例如下。但本發(fā)明的內容不僅限于實施例中所涉及 的內容。說明一為便于說明,假定需要處理的對象是一個文本文件(一種文件存儲格 式),其文件名為 example, txt,其長度為 44 字節(jié),內容為“ABCDEFGH12345678IJKLMN0P8765 4321QRSTUVWX90YZ”44 個字符。說明二 將文件以字符為單位放入一個16列的矩陣中,最后一行不足的元素補0, 存放形式參見附圖1。說明三假定用戶需要將文件example, txt分割成三部分,產生3個隨機幻方M1, M2、M3,參見附圖2、附圖3、附圖4。文件example, txt的幻方混序例。過程一根據幻方禮,取出第一行元素“2,117,45,141,233,95,3,35,225,179, 228,185,199,195,103,71,,作為混序方案。過程二 根據幻方混序原理,以過程一得到的混序方案進行混序,例如第一個右斜 移動方案為“2”,則將原文矩陣中第一條對角線上的元素右斜移動2個單位;第一個左斜移 動方案為“ 117”,則將第一步右斜移動后的矩陣中第二條對角線上的元素右斜移動2個單位;其余步驟依此類推。經過幻方混序處理后的結果矩陣參見附圖5?;梅郊用芾?。將得到的3個分割后的明文文件與對應的3個幻方進行加密,為便于說明選擇分割后的第一部分明文為例。過程一將該塊明文中的每個元素轉換為ASCII碼值,再轉換為二進制,結果參見 附圖6。將明文矩陣中的每個元素與對應的幻方M1中對應的元素的二進制值進行異或運算。 結果參見附圖7。過程二 利用幻方禮對過程一的計算結果進行幻方調序。將過程一的計算結果中 第2個元素調整到第1個位置,將第117個元素調整到第2個位置,將第45個元素調整到 第3個位置,將第141個元素調整到第4個位置。其后元素依次類推,得到最終加密后文件 分塊,結果參見附圖8。文件合成互驗例。由于本例數據量較大,且為了便于讀者理解,將采用宏觀圖表來表示。假設將加密后的3個文件分塊存放于網絡中的三臺電腦中,具體步驟如下過程一將加密后的3個文件分塊運用SHA2-256算法生成一個記錄特征的256位 0-1序列,如附圖9所示。過程二 將所產生的3個隨機幻方進行模和運算得到互完整性校驗矩陣M,如附圖 10所示。過程三用得到的0-1序列分別對相應的3個隨機幻方進行洗牌得到3個新的自 完整性校驗矩陣,如附圖11所示。過程四將加密后的文件分塊和其它文件分塊對應的自完整性校驗矩陣一起封 裝。即分割加密后的封裝數據塊是ΜΜ/,Μ/,Μ^ΜΜΛΜ/,Μ^μμλμλμ)如附圖 12所示。過程五將封裝后的數據塊發(fā)送到各分布式終端,不是本系統(tǒng)的終端則不發(fā)送,如 附圖13所示。以上過程完成了數據塊的分布式存儲,當其中某個終端有文件使用需求時,合成 互驗步驟如下過程一假設存有第2個文件分塊的終端有提取文件的需求,將本地文件分塊的 散列值計算出,如附圖14所示。過程二 將計算出的散列值發(fā)送至存有文件各分塊的終端,如附圖15所示。過程三各終端通過其所保存的自完整性校驗矩陣驗證其所接收的散列值是否正 確(驗證以256-bit散列值作為洗牌方案能否從自完整性校驗矩陣集合中恢復出一個且只 有一個矩陣滿足幻方條件,此步為其余文件分塊存儲終端驗證文件分塊2的此次提取終端 是否具有合法資格,即是否也是整合文件的分塊存儲終端),如附圖16所示。過程四驗證正確,各終端則將其存儲的文件分塊傳送至此次文件的提取終端,如 附圖17所示。過程五收到全部文件分塊后,此次文件提取終端分別計算各文件分塊的散列值, 如附圖18所示。過程六利用相應的散列值通過逆洗牌過程將各文件分塊的相應隨機幻方分別從相應的自完整性校驗矩陣中提取出來,如附圖19所示。過程七計算
驗證Μ*是否滿足幻方條件。如果
滿足,則所有文件分塊的自完整性與互完整性均滿足,可以成功合成完整文件;否則,自完 整性與互完整性均不滿足,文件不能成功合成。如附圖20所示。最后,按照實例一和實例二的逆過程恢復出最終明文(由于實例一和實例二僅僅 涉及到加減運算,故此過程必然可逆)。
權利要求
一種文件混序分割存儲與合成互驗的方法,其特征在于,包括以下步驟A文件混序步驟;B幻方加密步驟;C文件恢復及互驗步驟;所述的文件混序步驟為步驟1位置確定將源碼文件F以字符為單位存入一個16*n的矩陣L,n為字符數,矩陣L中的元素表示為ai,j,其中i=1,2,3,...,16;j=1,2,...,n;步驟2設定文件分塊數x;步驟3產生x個16階的隨機幻方Ml,l=1,2,3,...,x;將產生的第一個隨機幻方的首行中的元素存入集合H=(h1,h2,...h16);步驟4位置混序首先確定集合Ke將步驟1中的矩陣L分為16個集合Ke,e=1,2,3,...,16,,每個集合Ke的首元素對應矩陣L中第一行的元素a1,j,j=1,2,3,...,16;當e=2k+1,k=0,1,2,3,...,7時,Ke中首元素后面的其他元素為矩陣L中以該首元素所在的主對角線上的所有元素;當e=2m,m=1,2,3,...,8時,Ke中首元素后面的其他元素為矩陣L中以該首元素所在的副對角線上的所有元素;然后,將Ke向左或向右平移hi個單位,其中hi為集合H中的元素;當e=2k+1,k=0,1,2,3,...,7時,將Ke中的元素向右平移hi個單位;當e=2m,m=,1,2,3,...,7時,將Ke中的元素向左平移hi個單位;最后,將Ke中新的元素對應回原來矩陣的位置,得到一個混序的矩陣;步驟5文件分割將步驟4的位置混序后的文件按順序分割為x個子文件Fj,其中j=1,2,3,…,x;所述的幻方加密步驟為步驟1先將分割后的文檔Fj轉換成ASCII碼,再將其轉換成二進制;從而構造成明文矩陣Wl,l=1,2,3,…x;步驟2;將明文矩陣Wl對應的幻方Ml中的每個元素轉換為二進制值,再將明文矩陣Wl中的每個元素與幻方Ml中對應的元素的二進制值進行異或運算,得到第一次密文矩陣Ul;步驟3將第一次密文矩陣Ul的元素采用幻方Ml作為調序規(guī)則進行調序,即將幻方中每個元素的數值所對應的密文矩陣中該數值號的元素調序到幻方中該元素的位置,得到第二次密文矩陣Ul*,由Ul*組成密文分塊Fj*,加密完成;所述的文件恢復及互驗步驟為步驟1將密文分塊Fj*運用SHA2-256算法生成一個記錄Fj*特征的256位0-1序列hj,即為散列值hj;步驟2將所產生的x個隨機幻方Ml進行模和運算得到互完整性校驗矩陣M2;步驟3用得到的0-1序列hj對隨機幻方Ml進行洗牌得到認證矩陣Ml*,具體操作為從一組具有內部數學關系的可校驗的n1個有序數字序列中按序隨機抽取其中約一半數字,按先后次序排成一組數字序列,并將該序列置于所剩數字序列之后,構成一個新的數字序列,稱該數字序列重組過程為隨機洗牌過程,重組數字序列稱為洗牌結果,其中按序均勻隨機抽取數字的方案由一n1元0-1二進制表示,并稱之為洗牌方案;步驟4將密文分塊Fj*和Mi*一起封裝發(fā)送到各分布式終端,其中,i∈{1,2,3,...,x},j≠i;步驟5如果存有某一文件分塊Fi的終端Zi有提取文件F的需求,將Fi的散列值hj廣播發(fā)送至存有F文件其他分塊的終端Zj,j∈{1,2,3,...,x},j≠i,終端Zj通過其所保存的認證矩陣驗證其所接收的散列值hj是否正確,如果驗證正確,終端Zj則將其存儲的文件分塊Fj傳送至此次文件的提取終端Zi;步驟6如果已經收到全部文件分塊{Fj,j≠i},由文件提取終端Zi分別計算各分塊Fj的散列值hj,利用hj通過逆洗牌和反調序過程將各文件分塊Fj的相應隨機幻方Ml分別從相應的認證矩陣Ml*中提取出來,然后計算驗證M*是否是幻方,如果M*是幻方,則所有文件分塊的自完整性與互完整性均滿足,可以成功合成完整文件;否則,自完整性與互完整性均不滿足,文件不能成功合成;如文件可以合成,首先將文件Fj*進行解密得到Fj,解密方法即為加密方法的逆步驟,再將Fj合成得到混序后的文件,最后將混序后的文件恢復成矩陣L,恢復操作為混序的逆步驟,從而恢復出文件F。FDA0000021534340000031.tif
2.根據權利要求1所述的文件混序分割存儲與合成互驗的方法,其特征在于,所述的 分塊數χ為3-10。
全文摘要
本發(fā)明提供了一種文件混序分割存儲與合成互驗的方法,其特征在于,包括以下步驟A文件混序步驟;B幻方加密步驟;C文件恢復及互驗步驟。該文件混序分割存儲與合成互驗的方法安全性好,效率高,且具有互驗功能。使用本發(fā)明,具有以下優(yōu)點,文件分割的無序性,幻方加密算法的高安全性,文件合成時的自身完整性和互完整性驗證。
文檔編號G06F17/30GK101840485SQ201010177099
公開日2010年9月22日 申請日期2010年5月19日 優(yōu)先權日2010年5月19日
發(fā)明者張燕, 李若豫, 王麗, 王麗賓, 王啟萱, 王鈺水, 王雨桃, 肖屈瑤, 謝濤, 韓維峰, 韓蕭, 馬代武, 馬博 申請人:韓蕭;馬代武;王啟萱;王鈺水