專利名稱:一種基于組合編碼的文件加密和解密的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種基于組合編碼的文件加密和解密的方法,屬于信息安全領(lǐng)域。
背景技術(shù):
在信息技術(shù)飛速發(fā)展的現(xiàn)代社會(huì),信息安全占有重要地位,而密碼技術(shù)是信息安 全的保障及核心。密碼作為保密信息手段,根據(jù)對(duì)明文處理方式不同,密碼編碼系統(tǒng)有分組密碼和 流密碼兩類,分組加密一次處理一組元素的輸入,分組密碼體制屬于傳統(tǒng)加密體制,目前已 有大量分組密碼,如DES的各種變形、IDEA算法、SAFER系列算法、RC系列算法等。分組密碼的設(shè)計(jì)準(zhǔn)則包括安全性準(zhǔn)則和實(shí)現(xiàn)性準(zhǔn)則。安全性設(shè)計(jì)準(zhǔn)則主要包括三 方面密碼算法設(shè)計(jì)準(zhǔn)則、密鑰長(zhǎng)度設(shè)計(jì)準(zhǔn)則和分組長(zhǎng)度設(shè)計(jì)準(zhǔn)則。(1)密碼算法設(shè)計(jì)準(zhǔn)則現(xiàn)代密碼體制的安全性僅依賴于密鑰的保密,而不依賴于算法保密。總之,密碼算 法設(shè)計(jì)要遵循表1所示準(zhǔn)則。表1密碼算法設(shè)計(jì)準(zhǔn)則
相關(guān)準(zhǔn)則說(shuō)明算法公開(kāi)算法越復(fù)雜,密碼分析越困難混亂使明文、密文和密鑰間依賴關(guān)系足夠復(fù)雜,常用“代替”法擴(kuò)散“擴(kuò)散”可以隱藏明文統(tǒng)計(jì)特性,增加密碼分析者尋求明文冗余度的 難度。最簡(jiǎn)單的“擴(kuò)散”方法是“置換”法。抵抗差分分析可以對(duì)“弱”密鑰函數(shù)進(jìn)行多次迭代,進(jìn)而得到“強(qiáng)密碼”抵抗線性分析要求算法中包含高度非線性密碼函數(shù)。沒(méi)有弱密鑰當(dāng)弱密鑰數(shù)較少時(shí),在算法中稍作處理就可避免,且選取弱密鑰的概 率會(huì)隨著密鑰空間的增大而趨于零。其中,混亂和擴(kuò)散是香農(nóng)1945年提出的兩種隱藏明文冗余度的基本技術(shù),是加密 算法設(shè)計(jì)的基石。而所謂弱密鑰是指對(duì)于初始密鑰k,生成的子密鑰都相等,則稱k是弱密 鑰;若有一對(duì)密鑰kl,k2,使得兩密鑰互為加密/解密密鑰,則稱kl,k2是半弱密鑰。(2)密鑰長(zhǎng)度設(shè)計(jì)準(zhǔn)則必須保證密鑰長(zhǎng)度足夠大,才能使密碼算法抵抗強(qiáng)力攻擊,密鑰越長(zhǎng)意味著安全 性越高,但是加密/解密的速度也越慢。目前64位密鑰長(zhǎng)度已經(jīng)不能滿足安全需要,所以 128/192/256位成了常用的長(zhǎng)度。(3)分組長(zhǎng)度設(shè)計(jì)準(zhǔn)則為阻止對(duì)分組密碼進(jìn)行統(tǒng)計(jì)分析,分組長(zhǎng)度必須足夠大。分組越大意味著安全性 越高,但是加密/解密的速度也越慢。目前128位的分組大小被認(rèn)為是一個(gè)合理的折衷。由 于目前分組密碼通常是簡(jiǎn)單的代換密碼,而明文又有一定的冗余度,因此理論上可以對(duì)密文進(jìn)行頻率統(tǒng)計(jì)分析。但是當(dāng)分組長(zhǎng)度足夠大時(shí),這種分析就需要大量的密文數(shù)據(jù),從而使 計(jì)算不可行。此外,由于分組密碼需要迭代計(jì)算,因此安全性準(zhǔn)則通常還包括以下幾點(diǎn)(1)迭代輪數(shù)迭代輪數(shù)應(yīng)該足夠多。一般來(lái)說(shuō),循環(huán)迭代輪數(shù)越多安全性越高,常用16輪循環(huán), 也有11輪、8輪或6輪的,通常是安全性與實(shí)現(xiàn)性的折中。(2)迭代輪函數(shù)迭代輪函數(shù)要足夠復(fù)雜,復(fù)雜性越高,抗擊密碼分析的能力就越強(qiáng)。(3)密鑰編排算法一般說(shuō)來(lái),推測(cè)各個(gè)子密鑰和由此推出主密鑰的難度越大越好。因此子密鑰編排 算法越復(fù)雜,密碼分析就越困難。子密鑰生成算法同樣要滿足擴(kuò)散性好以及具有混亂特性。分組密碼的實(shí)現(xiàn)性準(zhǔn)則主要討論如何提高算法的執(zhí)行速度。分組密碼既可以用軟 件實(shí)現(xiàn),也可以用硬件實(shí)現(xiàn)。硬件實(shí)現(xiàn)的優(yōu)點(diǎn)是可以獲得高速率,而軟件實(shí)現(xiàn)的優(yōu)點(diǎn)是靈活 性強(qiáng)、代價(jià)低?,F(xiàn)有加密/解密技術(shù)中變換算法所涉及矩陣固定,如S-盒表、各種置換表是固定 的,另外,各分組密鑰通常是相同的,這些因素使得加密技術(shù)的機(jī)密性存在隱患,保密性能差。
發(fā)明內(nèi)容
本發(fā)明目的是為了解決現(xiàn)有對(duì)文件加密、解密方法的保密性能差的問(wèn)題,提供了 一種基于組合編碼的文件加密和解密的方法。本發(fā)明基于組合編碼的文件加密的方法設(shè)定第一輪加密時(shí),第1組分組序列的分組密鑰為初始密鑰Ktl,初始密鑰Ktl的單 位長(zhǎng)度為k比特,每輪加密時(shí)都將待加密文件按組長(zhǎng)度為η分成m組分組序列和一個(gè)余數(shù), 一種基于組合編碼的文件加密的方法包括以下步驟步驟一、根據(jù)所述初始密鑰Ktl確定第一輪加密時(shí)所有組的分組密鑰Knri,步驟二、根據(jù)分組密鑰Knrl確定該組所有輪加密時(shí)的子密鑰K0^ (w_d,w為文件加 密輪數(shù),步驟三、初始化加密的輪數(shù)w = 1,步驟四、將待加密文件按組長(zhǎng)度為η進(jìn)行分組,每組分組序列的元素?cái)?shù)目為η,每個(gè)元素的單位長(zhǎng)度為k比特,步驟五、對(duì)每組分組序列的數(shù)據(jù)進(jìn)行全排列,形成字典空間C0^1)(w_d,并按如下公 式求取每組序列在各自字典空間中的序數(shù) ㈣…—)
N_VV_(" — 7.)!_
ivCw-IXw-I) ~ La Lu X-IU
J=l x=l (novwxmwnh!)),
q=\q=x-\-\其中,j表示當(dāng)前被處理元素在分組序列中的位置,i表示當(dāng)前被處理元素在當(dāng)前 組對(duì)應(yīng)的密鑰序列中的位置,WX為密鑰序列中X位置的元素在分組序列中未經(jīng)處理的數(shù)目,q表示除了 X以外的元素的位置,Wq是各個(gè)元素?cái)?shù)目減去前面j個(gè)字符中已經(jīng)出現(xiàn)過(guò)的相 應(yīng)元素的數(shù)目,ii表示分組序列中密鑰元素?cái)?shù)目不為零的密鑰元素總數(shù),Niffl^1) ^ 0,步驟六、按分組序列含對(duì)應(yīng)密鑰各元素的數(shù)目+分組序列的序數(shù)的原則將當(dāng)前輪 各組序列進(jìn)行重新拼接,結(jié)尾處加入余數(shù)長(zhǎng)度,形成新的待加密文件,S卩,新的待加密文件拼接為第1組分組序列含對(duì)應(yīng)密鑰各元素的數(shù)目+第1組分 組序列的序數(shù)Ntlirt)+第2組分組序列含對(duì)應(yīng)密鑰各元素的數(shù)目+第2組分組序列的序數(shù)
N1^1)+......+第m組分組序列含對(duì)應(yīng)密鑰各元素的數(shù)目+第m組分組序列的序數(shù)
Nim-D (W-D+余數(shù)長(zhǎng)度,步驟七、將該輪所有組的密鑰序列進(jìn)行循環(huán)拼接,使其長(zhǎng)度與步驟六形成的新的 待加密文件的長(zhǎng)度相同,然后與步驟六形成的新的待加密文件進(jìn)行異或,結(jié)果作為下一輪 的待加密文件,步驟八、判斷w是否為奇數(shù),判斷結(jié)果為是,執(zhí)行步驟九,判斷結(jié)果為否,執(zhí)行步驟十,步驟九、將步驟七形成的下一輪的待加密文件中所有元素的位置前后置換,作為 該輪形成的加密文件,并作為下一輪待加密文件,步驟十、判斷是否滿足下述條件w彡4,判斷結(jié)果為否,令w = w+1,執(zhí)行步驟四,判斷結(jié)果為是,將本輪形成的加密文件作 為最終結(jié)果,完成對(duì)文件的加密。本發(fā)明基于組合編碼的文件解密的方法已知該文件在第一輪加密時(shí),第1組分組序列的分組密鑰為初始密鑰Ktl,初始密鑰 K0的單位長(zhǎng)度為k比特,已知該文件的被加密輪數(shù)為w輪,本方法的解密從第w輪開(kāi)始,一種基于組合編碼的文件解密的方法包括以下步驟步驟1、根據(jù)所述初始密鑰Ktl確定第一輪加密時(shí)所有組的分組密鑰Knrl,步驟2、根據(jù)分組密鑰Knri確定該組所有輪加密時(shí)的子密鑰Km (w_d,步驟3、初始化被加密的輪數(shù)w = 4,步驟4、判斷w是否為奇數(shù),判斷結(jié)果為是,執(zhí)行步驟5,判斷結(jié)果為否,執(zhí)行步驟6,步驟5、將待解密文件的所有元素的位置前后倒置,作為本輪的待解密文件,步驟6、將該輪所有組的密鑰序列進(jìn)行循環(huán)拼接,使其長(zhǎng)度與本輪的待解密文件的 長(zhǎng)度相同,然后與本輪的待解密文件進(jìn)行異或,異或結(jié)果作為該輪待解密文件,步驟7、將該輪待解密文件根據(jù)相關(guān)標(biāo)志進(jìn)行分組,形成m組數(shù)據(jù),相關(guān)標(biāo)志包括 密鑰各元素?cái)?shù)目和序數(shù)長(zhǎng)度,步驟8、通過(guò)步驟7每組數(shù)據(jù)中含對(duì)應(yīng)密鑰各元素的數(shù)目、分組序列的序數(shù)和余數(shù) 長(zhǎng)度信息,逐個(gè)解析步驟7獲得的m組數(shù)據(jù),步驟9、按照當(dāng)前分組序列對(duì)應(yīng)的密鑰序列中元素的順序,采用窮舉方法解析該組 分組序列的數(shù)據(jù),將解析完畢的m個(gè)分組序列及余數(shù)進(jìn)行拼接,作為下一輪待解密文件,步驟10、判斷是否滿足下述條件w < 1,判斷結(jié)果為否,令w = w-1,執(zhí)行步驟4,判斷結(jié)果為是,將本輪形成的解密文件作 為最終結(jié)果,完成對(duì)文件的解密。
8
本發(fā)明的優(yōu)點(diǎn)組合加密技術(shù)算法獨(dú)特,不涉及固有矩陣參與運(yùn)算,此外,現(xiàn)有加 密算法分組密鑰通常相同,而組合加密技術(shù)中子密鑰與分組密鑰都不相同,并且同初始的 主密鑰空間一樣大,從而加大了推測(cè)各個(gè)子密鑰、分組密鑰和由此推出初始主密鑰的難度, 使得保密性更強(qiáng)。該加密方法適合對(duì)文件進(jìn)行軟件加密。
圖1是本發(fā)明基于組合編碼的文件加密的方法流程圖,圖2是本發(fā)明基于組合編 碼的文件解密的方法流程圖,圖3是密鑰關(guān)系圖。
具體實(shí)施例方式具體實(shí)施方式
一下面結(jié)合圖1和圖3說(shuō)明本實(shí)施方式,本實(shí)施方式是一種基于組 合編碼的文件加密的方法,設(shè)定第一輪加密時(shí),第1組分組序列的分組密鑰為初始密鑰Ktl, 初始密鑰Ktl的單位長(zhǎng)度為k比特,每輪加密時(shí)都將待加密文件按組長(zhǎng)度為η分成m組分組 序列和一個(gè)余數(shù),一種基于組合編碼的文件加密的方法包括以下步驟步驟一、根據(jù)所述初始密鑰Ktl確定第一輪加密時(shí)所有組的分組密鑰Knri,步驟二、根據(jù)分組密鑰Knrl確定該組所有輪加密時(shí)的子密鑰K0^ (w_d,w為文件加 密輪數(shù),步驟三、初始化加密的輪數(shù)w = 1,步驟四、將待加密文件按組長(zhǎng)度為η進(jìn)行分組,每組分組序列的元素?cái)?shù)目為η,每個(gè)元素的單位長(zhǎng)度為k比特,步驟五、對(duì)每組分組序列的數(shù)據(jù)進(jìn)行全排列,形成字典空間C0rt)(w_d,并按如下公 式求取每組序列在各自字典空間中的序數(shù) ㈣…—)
權(quán)利要求
一種基于組合編碼的文件加密的方法,其特征在于,設(shè)定第一輪加密時(shí),第1組分組序列的分組密鑰為初始密鑰K0,初始密鑰K0的單位長(zhǎng)度為k比特,每輪加密時(shí)都將待加密文件按組長(zhǎng)度為n分成m組分組序列和一個(gè)余數(shù),一種基于組合編碼的文件加密的方法包括以下步驟步驟一、根據(jù)所述初始密鑰K0確定第一輪加密時(shí)所有組的分組密鑰Km 1,步驟二、根據(jù)分組密鑰Km 1確定該組所有輪加密時(shí)的子密鑰K(m 1)(w 1),w為文件加密輪數(shù),步驟三、初始化加密的輪數(shù)w=1,步驟四、將待加密文件按組長(zhǎng)度為n進(jìn)行分組,每組分組序列的元素?cái)?shù)目為n,每個(gè)元素的單位長(zhǎng)度為k比特,步驟五、對(duì)每組分組序列的數(shù)據(jù)進(jìn)行全排列,形成字典空間C(m 1)(w 1),并按如下公式求取每組序列在各自字典空間中的序數(shù)N(m 1)(w 1) <mrow><msub> <mi>N</mi> <mrow><mrow> <mo>(</mo> <mi>m</mi> <mo>-</mo> <mn>1</mn> <mo>)</mo></mrow><mrow> <mo>(</mo> <mi>w</mi> <mo>-</mo> <mn>1</mn> <mo>)</mo></mrow> </mrow></msub><mo>=</mo><munderover> <mi>Σ</mi> <mrow><mi>j</mi><mo>=</mo><mn>1</mn> </mrow> <mi>n</mi></munderover><munderover> <mi>Σ</mi> <mrow><mi>x</mi><mo>=</mo><mn>1</mn> </mrow> <mrow><mi>i</mi><mo>-</mo><mn>1</mn> </mrow></munderover><mfrac> <mrow><mrow> <mo>(</mo> <mi>n</mi> <mo>-</mo> <mi>j</mi> <mo>)</mo></mrow><mo>!</mo> </mrow> <mrow><mrow> <mo>(</mo> <munderover><mi>Π</mi><mrow> <mi>q</mi> <mo>=</mo> <mn>1</mn></mrow><mrow> <mi>x</mi> <mo>-</mo> <mn>1</mn></mrow> </munderover> <mrow><mo>(</mo><msub> <mi>w</mi> <mi>q</mi></msub><mo>!</mo><mo>)</mo> </mrow> <mo>)</mo></mrow><mo>×</mo><mrow> <mo>(</mo> <msub><mi>w</mi><mi>x</mi> </msub> <mo>-</mo> <mn>1</mn> <mo>)</mo></mrow><mo>×</mo><mrow> <mo>(</mo> <munderover><mi>Π</mi><mrow> <mi>q</mi> <mo>=</mo> <mi>x</mi> <mo>+</mo> <mn>1</mn></mrow><mi>ii</mi> </munderover> <mrow><mo>(</mo><msub> <mi>w</mi> <mi>q</mi></msub><mo>!</mo><mo>)</mo> </mrow> <mo>)</mo></mrow> </mrow></mfrac><mo>,</mo> </mrow>其中,j表示當(dāng)前被處理元素在分組序列中的位置,i表示當(dāng)前被處理元素在當(dāng)前組對(duì)應(yīng)的密鑰序列中的位置,wx為密鑰序列中x位置的元素在分組序列中未經(jīng)處理的數(shù)目,q表示除了x以外的元素的位置,wq是各個(gè)元素?cái)?shù)目減去前面j個(gè)字符中已經(jīng)出現(xiàn)過(guò)的相應(yīng)元素的數(shù)目,ii表示分組序列中密鑰元素?cái)?shù)目不為零的密鑰元素總數(shù),N(m 1)(w 1)≥0,步驟六、按分組序列含對(duì)應(yīng)密鑰各元素的數(shù)目+分組序列的序數(shù)的原則將當(dāng)前輪各組序列進(jìn)行重新拼接,結(jié)尾處加入余數(shù)長(zhǎng)度,形成新的待加密文件,即,新的待加密文件拼接為第1組分組序列含對(duì)應(yīng)密鑰各元素的數(shù)目+第1組分組序列的序數(shù)N0(w 1)+第2組分組序列含對(duì)應(yīng)密鑰各元素的數(shù)目+第2組分組序列的序數(shù)N1(w 1)+······+第m組分組序列含對(duì)應(yīng)密鑰各元素的數(shù)目+第m組分組序列的序數(shù)N(m 1)(w 1)+余數(shù)長(zhǎng)度,步驟七、將該輪所有組的密鑰序列進(jìn)行循環(huán)拼接,使其長(zhǎng)度與步驟六形成的新的待加密文件的長(zhǎng)度相同,然后與步驟六形成的新的待加密文件進(jìn)行異或,結(jié)果作為下一輪的待加密文件,步驟八、判斷w是否為奇數(shù),判斷結(jié)果為是,執(zhí)行步驟九,判斷結(jié)果為否,執(zhí)行步驟十,步驟九、將步驟七形成的下一輪的待加密文件中所有元素的位置前后置換,作為該輪形成的加密文件,并作為下一輪待加密文件,步驟十、判斷是否滿足下述條件w≥4,判斷結(jié)果為否,令w=w+1,執(zhí)行步驟四,判斷結(jié)果為是,將本輪形成的加密文件作為最終結(jié)果,完成對(duì)文件的加密。
2.根據(jù)權(quán)利要求1所述的一種基于組合編碼的文件加密的方法,其特征在于,步驟一 中的分組密鑰I^1的獲取方法為第一輪加密時(shí),每組分組密鑰Knri將其前一組密鑰序列的數(shù)據(jù)先循環(huán)右移或左移一位,形成待用密鑰序列,然后采用數(shù)據(jù)替代法生成當(dāng)前組的分組密鑰Knrl,采用數(shù)據(jù)替代法生成當(dāng)前組的分組密鑰Knri的過(guò)程為找到所述待用密鑰序列的第χ 號(hào)位置數(shù)據(jù)y,再尋找待用密鑰序列第y號(hào)位置的數(shù)據(jù)z,將數(shù)據(jù)ζ作為當(dāng)前組的分組密鑰 Knrl第χ號(hào)位置的數(shù)據(jù)。
3.根據(jù)權(quán)利要求1所述的一種基于組合編碼的文件加密的方法,其特征在于,步驟二 中的子密鑰K0lrl) (w_d的獲取方法為第m-1組的子密鑰K0lri)(w_d根據(jù)當(dāng)前組的前一輪的分組密鑰采用數(shù)據(jù)替代法生成,具 體過(guò)程為令第m-1組、前一輪的分組密鑰作為待用密鑰序列,找到所述待用密鑰序列的第χ號(hào)位置數(shù)據(jù)y,再尋找待用密鑰序列第y號(hào)位置的數(shù)據(jù) z,將數(shù)據(jù)ζ作為當(dāng)前第m-Ι組的子密鑰K^d^D第χ號(hào)位置的數(shù)據(jù),形成新的序列, 然后將所述新的序列的數(shù)據(jù)循環(huán)右移或左移一位作為第m-Ι組的子密鑰K^d^D。
4.根據(jù)權(quán)利要求1所述的一種基于組合編碼的文件加密的方法,其特征在于,步驟五
5.根據(jù)權(quán)利要求1所述的一種基于組合編碼的文件加密的方法,其特征在于,步驟五 序數(shù)Νμ)^)所占位數(shù)與當(dāng)前組的分組序列的最大序數(shù)P所占位數(shù)相同,最大序數(shù)P按下 述公式獲取p=c》xcK"2x......><;:-、P>0,當(dāng)前組的分組序列中含有對(duì)應(yīng)的密鑰序列中各密鑰元素的數(shù)目分別為m” n2......°
6.根據(jù)權(quán)利要求1所述的一種基于組合編碼的文件加密的方法,其特征在于,步驟六 中按分組序列含對(duì)應(yīng)密鑰各元素的數(shù)目的存儲(chǔ)格式為 按照密鑰序列中元素大小的順序進(jìn)行存儲(chǔ),設(shè)定密鑰序列中元素的數(shù)目為a,如果某元 素?cái)?shù)目每達(dá)到2k_l的倍數(shù),便增加k位,存儲(chǔ)前a-Ι個(gè)密鑰元素的數(shù)目,最后一個(gè)元素?cái)?shù)目 由分組序列長(zhǎng)度減去已經(jīng)存儲(chǔ)的前a-Ι個(gè)密鑰元素?cái)?shù)目獲得。
7.根據(jù)權(quán)利要求1所述的一種基于組合編碼的文件加密的方法,其特征在于,步驟六 中余數(shù)長(zhǎng)度為「log l。
8.一種基于組合編碼的文件解密的方法,其特征在于,已知該文件在第一輪加密時(shí),第1組分組序列的分組密鑰為初始密鑰Ktl,初始密鑰Ktl的 單位長(zhǎng)度為k比特,已知該文件的被加密輪數(shù)為w輪,本方法的解密從第w輪開(kāi)始, 一種基于組合編碼的文件解密的方法包括以下步驟 步驟1、根據(jù)所述初始密鑰Ktl確定第一輪加密時(shí)所有組的分組密鑰Knri, 步驟2、根據(jù)分組密鑰Knri確定該組所有輪加密時(shí)的子密鑰K0rt)(w_d, 步驟3、初始化被加密的輪數(shù)w = 4, 步驟4、判斷w是否為奇數(shù),判斷結(jié)果為是,執(zhí)行步驟5,判斷結(jié)果為否,執(zhí)行步驟6, 步驟5、將待解密文件的所有元素的位置前后倒置,作為本輪的待解密文件, 步驟6、將該輪所有組的密鑰序列進(jìn)行循環(huán)拼接,使其長(zhǎng)度與本輪的待解密文件的長(zhǎng)度 相同,然后與本輪的待解密文件進(jìn)行異或,異或結(jié)果作為該輪待解密文件,步驟7、將該輪待解密文件根據(jù)相關(guān)標(biāo)志進(jìn)行分組,形成m組數(shù)據(jù),相關(guān)標(biāo)志包括密鑰 各元素?cái)?shù)目和序數(shù)長(zhǎng)度,步驟8、通過(guò)步驟7每組數(shù)據(jù)中含對(duì)應(yīng)密鑰各元素的數(shù)目、分組序列的序數(shù)和余數(shù)長(zhǎng)度 信息,逐個(gè)解析步驟7獲得的m組數(shù)據(jù),步驟9、按照當(dāng)前分組序列對(duì)應(yīng)的密鑰序列中元素的順序,采用窮舉方法解析該組分組 序列的數(shù)據(jù),將解析完畢的m個(gè)分組序列及余數(shù)進(jìn)行拼接,作為下一輪待解密文件, 步驟10、判斷是否滿足下述條件w≤1,判斷結(jié)果為否,令w = w-1,執(zhí)行步驟4,判斷結(jié)果為是,將本輪形成的解密文件作為最 終結(jié)果,完成對(duì)文件的解密。
9.根據(jù)權(quán)利要求8所述的一種基于組合編碼的文件解密的方法,其特征在于,步驟1中 的分組密鑰Knri的獲取方法為第一輪加密時(shí),每組分組密鑰Knri將其前一組密鑰序列的數(shù)據(jù)先循環(huán)右移或左移一位, 形成待用密鑰序列,然后采用數(shù)據(jù)替代法生成當(dāng)前組的分組密鑰Knrl,采用數(shù)據(jù)替代法生成當(dāng)前組的分組密鑰Knri的過(guò)程為找到所述待用密鑰序列的第X 號(hào)位置數(shù)據(jù)y,再尋找待用密鑰序列第y號(hào)位置的數(shù)據(jù)z,將數(shù)據(jù)ζ作為當(dāng)前組的分組密鑰 Kffl^1第χ號(hào)位置的數(shù)據(jù);步驟2中的子密鑰Kmm的獲取方法為第m-1組的子密鑰K0lri)(w_d根據(jù)當(dāng)前組的前一輪的分組密鑰采用數(shù)據(jù)替代法生成,具 體過(guò)程為令第m-1組、前一輪的分組密鑰作為待用密鑰序列,找到所述待用密鑰序列的第χ號(hào)位置數(shù)據(jù)y,再尋找待用密鑰序列第y號(hào)位置的數(shù)據(jù) z,將數(shù)據(jù)ζ作為當(dāng)前第m-Ι組的子密鑰K^d^D第χ號(hào)位置的數(shù)據(jù),形成新的序列, 然后將所述新的序列的數(shù)據(jù)循環(huán)右移或左移一位作為第m-1組的子密鑰K0^ (w_d ; 步驟8中分組序列的序數(shù)所占位數(shù)與當(dāng)前組的分組序列的最大序數(shù)P所占位數(shù)相同, 最大序數(shù)P按下述公式獲取
10.根據(jù)權(quán)利要求8所述的一種基于組合編碼的文件解密的方法,其特征在于,步驟9 中所述的下一輪待解密文件的獲取過(guò)程為按照當(dāng)前分組序列對(duì)應(yīng)的密鑰序列的順序,采用窮舉方法解析該組分組序列的數(shù)據(jù), 將解析完畢的m個(gè)分組序列及余數(shù)進(jìn)行拼接,按照該組分組序列對(duì)應(yīng)的密鑰序列中元素的順序來(lái)假定被測(cè)位置的元素,然后根據(jù)假 定元素,并根據(jù)下述公式獲取相應(yīng)排列組合值ph(j,χ)
全文摘要
一種基于組合編碼的文件加密和解密的方法,屬于信息安全領(lǐng)域,本發(fā)明為解決現(xiàn)有對(duì)文件加密、解密方法的保密性能差的問(wèn)題。本發(fā)明文件加密的方法根據(jù)初始密鑰求解所有的密鑰序列,每輪加密都先對(duì)分組序列中的數(shù)據(jù)進(jìn)行全排列,形成字典空間,計(jì)算出序數(shù),然后按規(guī)則進(jìn)行拼接新序列,該輪所有組的密鑰序列進(jìn)行循環(huán)拼接后與新序列進(jìn)行異或,奇數(shù)輪時(shí)形成的加密文件前后置換元素,經(jīng)過(guò)四輪加密形成最終加密文件;解密過(guò)程是加密的逆過(guò)程,遇奇數(shù)輪先前后置換元素,然后與循環(huán)拼接的密鑰序列進(jìn)行異或,采用窮舉方法逐個(gè)解析分組序列的元素,將解析完畢的m個(gè)分組序列及余數(shù)進(jìn)行拼接,作為待解密文件,經(jīng)過(guò)四輪完成解密。
文檔編號(hào)H04L9/06GK101938350SQ20101022854
公開(kāi)日2011年1月5日 申請(qǐng)日期2010年7月16日 優(yōu)先權(quán)日2010年7月16日
發(fā)明者呂興鳳, 王圣宏, 陸軍, 陳立巖, 高揚(yáng) 申請(qǐng)人:黑龍江大學(xué)