專利名稱:一種分組密碼加密方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息安全加密技術(shù)領(lǐng)域,尤其是涉及一種利用電子計(jì)算機(jī)及編碼技術(shù),形成加密密碼用以保護(hù)信息的方法。
背景技術(shù):
隨著計(jì)算機(jī)與數(shù)據(jù)通信技術(shù)的高速發(fā)展和廣泛應(yīng)用,社會(huì)對(duì)信息的安全存儲(chǔ)、安全處理和安全傳輸?shù)囊蕾囋絹碓酱?,信息的安全保護(hù)問題就顯得更加重要。可靠的加密方法可以使一些敏感機(jī)密信息在沒有防護(hù)措施的介質(zhì)上安全地存儲(chǔ)或傳輸。
分組密碼方法是解決信息安全保護(hù)問題的現(xiàn)代密碼技術(shù)之一,其誕生和發(fā)展有著重要的理論價(jià)值和廣泛的應(yīng)用背景。七十年代中期美國(guó)數(shù)據(jù)加密標(biāo)準(zhǔn)DES的頒布揭開了分組密碼研究的序幕,與其他密碼技術(shù)相比,分組加密算法的突出特點(diǎn)是將明文消息按固定的長(zhǎng)度進(jìn)行分組,在密鑰的作用下,逐組地進(jìn)行加密,變換成固定長(zhǎng)度的密文分組,每一組明文對(duì)應(yīng)一組密文。因此,分組加碼算法的本質(zhì)特征就是一種替代方法。解密過程則是將密文組代替為原始等長(zhǎng)度的明文組。目前,國(guó)際上使用的分組大小為128和64比特。
分組密碼的基本設(shè)計(jì)原則就是Shannon提出的混亂原則和擴(kuò)散原則,即原始信息經(jīng)過加密處理之后變得非常復(fù)雜,要想通過處理后的結(jié)果分析出原始信息是現(xiàn)有技術(shù)和實(shí)際應(yīng)用不可行的。
分組密碼的早期研究基本上是圍繞DES進(jìn)行,但是進(jìn)入九十年代后,隨著分組密碼分析技術(shù)的發(fā)展,特別是差分密碼分析和線性密碼分析的提出,迫使人們不得不研究新的密碼算法,開始出現(xiàn)了一些新型的分組密碼算法。1997年4月NIST發(fā)起征集AES(Advanced Encryption Standard高級(jí)加密標(biāo)準(zhǔn))后,有15個(gè)算法成為了AES候選算法,并選定MARS、RC6、Ri jndael、Serpent和Twofish5個(gè)算法作為參加決賽的算法,最終NIST選擇Rijndael算法作為高級(jí)加密標(biāo)準(zhǔn)AES;2000年1月歐洲NESSIE計(jì)劃開始征集歐洲標(biāo)準(zhǔn),有17個(gè)算法獲得候選資格,選定IDEA、Khazad、MISTY1、Camellia、SHACAL、RC6、SAFER++等七個(gè)算法為分組密碼的第二輪決賽算法,其中MISTY1、Camellia、SHACAL三個(gè)算法連同AES算法Rijndael一起作為歐洲新世紀(jì)的分組密碼標(biāo)準(zhǔn)算法。目前,韓國(guó)、日本和俄羅斯等國(guó)家也都已經(jīng)制定了各自的加密標(biāo)準(zhǔn),近年我國(guó)也提出要制定自己的分組密碼標(biāo)準(zhǔn)。
在AES和歐洲加密標(biāo)準(zhǔn)征集中,共征集了30多個(gè)分組密碼方案,這些算法反映了當(dāng)前分組密碼的設(shè)計(jì)水平和方向。
分組密碼的研究包括分組密碼設(shè)計(jì)和分組密碼分析兩個(gè)方面。分組密碼的設(shè)計(jì)和分析是兩個(gè)既相互對(duì)立又相互依存的研究方向,正是由于這種對(duì)立促進(jìn)了分組密碼的飛速發(fā)展。因而,一個(gè)優(yōu)秀的分組密碼方法應(yīng)該要能抵抗各種密碼分析的攻擊,即使達(dá)不到理論上是不可破的,也應(yīng)該是實(shí)際上不可破的。
分組密碼算法的基本功能是對(duì)信息進(jìn)行安全保護(hù),并在此基礎(chǔ)上提高安全性能。已有的分組密碼算法為了達(dá)到高的安全性導(dǎo)致加解密速度較慢,或者邏輯結(jié)構(gòu)較復(fù)雜,較難在軟硬件上快速實(shí)現(xiàn)。
另一方面,隨著分組密碼中數(shù)據(jù)循環(huán)移位和多維n-點(diǎn)變換擴(kuò)散器技術(shù)的發(fā)展,數(shù)據(jù)循環(huán)移位和多維n-點(diǎn)變換擴(kuò)散器技術(shù)已得到了廣泛應(yīng)用,特別是在一些廣為人知的經(jīng)典分組密碼算法中也使用了以上技術(shù),如RC5、MARS等算法充分利用數(shù)據(jù)循環(huán)移位的方法來實(shí)現(xiàn)對(duì)數(shù)據(jù)的復(fù)雜處理,SAFER系列算法就通過采用三維2-點(diǎn)、四維2-點(diǎn)、二位4-點(diǎn)變換擴(kuò)散器使信息數(shù)據(jù)得到最優(yōu)的擴(kuò)散。但是,隨著近年來密碼編碼技術(shù)和密碼分析技術(shù)的深入,僅僅單獨(dú)使用數(shù)據(jù)循環(huán)移位或多維n-點(diǎn)變換擴(kuò)散器技術(shù)來加密信息以達(dá)到使信息混亂和擴(kuò)散的目的已變得越來越復(fù)雜,使得一些分組加密算法存在一些加解密速度較慢,算法邏輯結(jié)構(gòu)較復(fù)雜,軟硬件實(shí)現(xiàn)較困難的問題。因此,設(shè)計(jì)高效安全的分組密碼算法,并將其在實(shí)際中應(yīng)用,將有利于一些重要領(lǐng)域的信息安全保護(hù)。
現(xiàn)有分組密碼算法試圖在安全性,邏輯結(jié)構(gòu),速度和軟硬件實(shí)現(xiàn)難易程度等方面找到一個(gè)平衡。許多算法通過較復(fù)雜的邏輯結(jié)構(gòu)來保證算法的安全,但是這樣算法速度就變慢了,而且難于程序?qū)崿F(xiàn)或難以在微型電路芯片上實(shí)現(xiàn);另有一些算法的結(jié)構(gòu)較簡(jiǎn)單,也易于軟硬件實(shí)現(xiàn),但是它的安全性就達(dá)不到應(yīng)用的要求。因此,較偏向分組密碼算法的一些性能,而沒有找到一個(gè)較合理的平衡是導(dǎo)致這些缺陷的一個(gè)主要原因。
因此,需要發(fā)明一種新的分組密碼加密算法解決上述問題。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種高效并且安全的分組密碼加密算法,結(jié)合數(shù)據(jù)循環(huán)移位和最優(yōu)多維n-點(diǎn)變換擴(kuò)散器等技術(shù)實(shí)現(xiàn)明、密文的變換過程,具有可靠的安全性、加解密速度快、算法邏輯結(jié)構(gòu)簡(jiǎn)潔且易于軟硬件實(shí)現(xiàn)等特點(diǎn)。
本發(fā)明為了實(shí)現(xiàn)上述技術(shù)目的,采用如下技術(shù)手段一種分組密碼加密方法,用于包括有寄存器的計(jì)算機(jī)對(duì)明文數(shù)據(jù)進(jìn)行加密處理,所述方法包括以下處理步驟A.將明文數(shù)據(jù)按每組M字節(jié)分成明文數(shù)據(jù)組;B.設(shè)置密鑰K,并將密鑰K按照每N字節(jié)分成密鑰數(shù)據(jù)組;C.設(shè)置循環(huán)移位的比特位數(shù),及循環(huán)移位常量L和移位常數(shù)R;對(duì)明文數(shù)據(jù)組和密鑰數(shù)據(jù)組的數(shù)據(jù)進(jìn)行模2加及循環(huán)移位操作,得到第一中間數(shù)據(jù);D.設(shè)置密碼分組的非線性置換模型,對(duì)第一中間數(shù)據(jù)進(jìn)行非線性置換,得到第二中間數(shù)據(jù);E.設(shè)置多維X-點(diǎn)變換擴(kuò)散器,對(duì)第二中間數(shù)據(jù)進(jìn)行多維X-點(diǎn)變換擴(kuò)散,得到第三中間數(shù)據(jù);F.提供密碼算法的輪函數(shù),并設(shè)置該密碼算法輪函數(shù)的輪數(shù),由所述輪函數(shù)處理第三中間數(shù)據(jù),得到第四中間數(shù)據(jù);G.將所述第四中間數(shù)據(jù)與所述密鑰K的部分密鑰逐比特異或,操作后的結(jié)果即為對(duì)該明文數(shù)據(jù)組加密所得到的密文數(shù)據(jù)組。
所述的步驟B進(jìn)一步包括以下處理步驟b1.將隨機(jī)N字節(jié)的初始密鑰每連續(xù)64比特分成一組,共產(chǎn)生n個(gè)64比特的初始密鑰組,標(biāo)記為第1至第n個(gè)64比特組,其中n=8*N/64;b2.將第i個(gè)64比特組分為前后32比特,后32比特加上(i+1)的值作為新的前32比特,將新得到的前32比特與后32比特異或,再循環(huán)左移新的前32比特值大小的比特位,最后將循環(huán)移位后的結(jié)果與n異或,作為第i個(gè)64比特新的后32比特,而將此新后32比特加上此前新得到的前32比特的結(jié)果循環(huán)左移新后32比特值的比特位數(shù),將此結(jié)果作為第i個(gè)64比特新的前32比特;其中,所述i的取值范圍是0≤i≤n;b3.將第i個(gè)64比特組分為前后32比特,前32比特減去(i+1)的值作為新的前32比特,將后32比特減去新得到的前32比特后,再循環(huán)左移新的前32比特值大小的比特位,最后將循環(huán)移位后的結(jié)果與n異或作為第i個(gè)64比特新的后32比特,而將此新后32比特異或上此前新得到的前32比特的結(jié)果循環(huán)左移新后32比特值的比特位數(shù),將此結(jié)果作為第i個(gè)64比特新的前32比特;b4.將n循環(huán)左移i位后,再加上1的結(jié)果作為n的新值,并標(biāo)記為n’;b5.將步驟b2獲得的第i-1個(gè)64比特與步驟b3獲得的第i個(gè)64比特異或的結(jié)果作為新的第n+i個(gè)64比特的擴(kuò)展密鑰;b6.重復(fù)執(zhí)行步驟b2,b3,b4,b5,i的取值從0開始直至n。
所述的步驟D中的非線性置換是指包括以下處理步驟d1.將每連續(xù)4字節(jié)放在一個(gè)寄存器上,得到4個(gè)寄存器,標(biāo)記為第1至第4個(gè)寄存器;d2.將第2個(gè)寄存器的內(nèi)容與第4個(gè)寄存器的內(nèi)容逐位取反后和第3個(gè)寄存器的內(nèi)容逐比特邏輯與的結(jié)果再逐比特異或,結(jié)果放回第2個(gè)寄存器;d3.第1個(gè)寄存器的內(nèi)容與第2個(gè)寄存器的內(nèi)容和第3個(gè)寄存器的內(nèi)容逐比特求邏輯或的結(jié)果再逐比特異或,結(jié)果放回第1個(gè)寄存器的內(nèi)容;d4.交換第2個(gè)寄存器與第4個(gè)寄存器中的內(nèi)容;d5.將4個(gè)寄存器中的內(nèi)容逐比特異或后放入第3個(gè)寄存器,將第2個(gè)寄存器中的內(nèi)容與第3個(gè)寄存器的內(nèi)容逐比特求邏輯與再和第1個(gè)寄存器中的內(nèi)容逐比特異或,結(jié)果放入第1個(gè)寄存器中,第3個(gè)寄存器的內(nèi)容逐比特求反后的值與第1個(gè)寄存器中的內(nèi)容求邏輯或,再和第2個(gè)寄存器中的內(nèi)容逐比特異或,結(jié)果放入第2個(gè)寄存器中。
所述步驟F中的輪函數(shù)是指依照以下結(jié)構(gòu)和順序進(jìn)行處理f1.將明文分組順序與步驟B中所得到的相應(yīng)密鑰分組相異或;f2.進(jìn)行步驟C,步驟D和步驟E相關(guān)的處理;f3.將明文分組與步驟B中所得到的相應(yīng)密鑰分組依次相異或;f4.將f1、f2、f 3作為本分組密碼算法中的一輪。
所述步驟A中的M值為16,所對(duì)應(yīng)的分組大小為128比特。
所設(shè)置密鑰K的每組密鑰字節(jié)數(shù)N值可以為16、24或32,所對(duì)應(yīng)的密鑰分組大小為128比特、192比特或256比特。
所述循環(huán)移位常量L包括L1、L2、L3、L4,所述的L1、L2、L3、L4依次分別取值為2,5,8,1。所述常數(shù)R為有限域GF(28)上的常數(shù),其初值取值為0X80,且每使用R一次,都將R左移1比特位再與常量0X1B逐比特異或,將所得結(jié)果作為新的R值。
所述步驟E中的多維X-點(diǎn)變換擴(kuò)散器為三維4-點(diǎn)變換擴(kuò)散器。
所述步驟F中的密碼算法的輪數(shù)大于或者等于4。
所述步驟G中的部分密鑰是指所述密鑰K的最后128比特。
本發(fā)明提供的分組密碼加密算法,其設(shè)計(jì)基于完善的數(shù)學(xué)理論,結(jié)合了數(shù)據(jù)循環(huán)移位和多維X-點(diǎn)變換擴(kuò)散器技術(shù),設(shè)計(jì)安全合理,從而具有良好的抵抗差分攻擊、線性攻擊、插值攻擊和密鑰相關(guān)等攻擊的性能;同時(shí)由于分組密碼只是通過相應(yīng)的運(yùn)算來達(dá)到較高的安全性,并沒有使用其他算法通常的查表運(yùn)算,因而其結(jié)構(gòu)清晰、簡(jiǎn)潔、嚴(yán)謹(jǐn)、易于軟硬件的快速實(shí)現(xiàn),而且在應(yīng)用中能大大節(jié)省存儲(chǔ)空間。
圖1是本發(fā)明一種分組密碼加密方法一個(gè)實(shí)施例的步驟圖;圖2是本發(fā)明一種分組密碼加密方法實(shí)施例中三維4-點(diǎn)變換擴(kuò)散器的一般結(jié)構(gòu)示意圖。
具體實(shí)施例方式
下面結(jié)合附圖詳細(xì)介紹本發(fā)明。
參考附圖1,在本發(fā)明一個(gè)實(shí)施例中,實(shí)現(xiàn)發(fā)明目的的技術(shù)方案包括如下步驟
步驟1將明文數(shù)據(jù)按每組固定128bit分組,并將每個(gè)明文分組分別依次放入4個(gè)寄存器中,每個(gè)寄存器存放4個(gè)字節(jié)。設(shè)置密鑰K的每組密鑰字節(jié)數(shù)N值為16,所對(duì)應(yīng)的密鑰分組大小為128比特。
步驟2將每個(gè)明文分組與對(duì)應(yīng)的密鑰分組逐比特逐比特異或,得到變化后的中間明文分組。
步驟3對(duì)每一個(gè)寄存器中的數(shù)據(jù),分別進(jìn)行簡(jiǎn)單的模2加(異或)和循環(huán)移位運(yùn)算。
步驟4設(shè)置密碼分組的非線性置換模型,對(duì)中間數(shù)據(jù)進(jìn)行非線性置換。
步驟5對(duì)中間數(shù)據(jù)4個(gè)寄存器中的內(nèi)容一起作三維4-點(diǎn)擴(kuò)散變換。
步驟6重復(fù)執(zhí)行步驟2、3、4、5,直至達(dá)到預(yù)設(shè)的4輪次為止。
步驟7將步驟6的結(jié)果與所設(shè)置密鑰的最后128比特密鑰逐比特異或,操作后的結(jié)果作為對(duì)該明文組加密得到的密文組。
其中,步驟3可以詳細(xì)地依如下步驟進(jìn)行步驟3a.第1個(gè)寄存器的內(nèi)容與第3個(gè)寄存器的內(nèi)容逐比特異或,再循環(huán)左移L1比特,結(jié)果放回第1個(gè)寄存器;步驟3b.第2個(gè)寄存器的內(nèi)容與第4個(gè)寄存器的內(nèi)容逐比特異或,再循環(huán)左移L2比特,結(jié)果放回第2個(gè)寄存器;步驟3c.第3個(gè)寄存器的內(nèi)容與第2個(gè)寄存器的內(nèi)容逐比特異或,再循環(huán)左移L3比特,結(jié)果放回第3個(gè)寄存器;步驟3d.第4個(gè)寄存器的內(nèi)容與第1個(gè)寄存器的內(nèi)容逐比特異或,再循環(huán)左移L4比特,結(jié)果放回第4個(gè)寄存器;步驟3e.第15字節(jié)與常數(shù)R逐比特異或;步驟3f.第2個(gè)寄存器的內(nèi)容與第3個(gè)寄存器的內(nèi)容逐比特異或的結(jié)果與第4個(gè)寄存器的內(nèi)容逐比特異或,再與第1個(gè)寄存器的內(nèi)容循環(huán)左移L1比特后的結(jié)果逐比特異或,得到一個(gè)4字節(jié)的數(shù)依序放回第1個(gè)寄存器;步驟3g.第1個(gè)寄存器的內(nèi)容與第3個(gè)寄存器的內(nèi)容逐比特異或的結(jié)果與第4個(gè)寄存器的內(nèi)容逐比特異或,再與第2個(gè)寄存器的內(nèi)容循環(huán)左移L2比特后的結(jié)果逐比特異或,得到一個(gè)4字節(jié)的數(shù)依序放回第2個(gè)寄存器;步驟3h.第1個(gè)寄存器的內(nèi)容與第2個(gè)寄存器的內(nèi)容逐比特異或的結(jié)果與第4個(gè)寄存器的內(nèi)容逐比特異或,再與第3個(gè)寄存器的內(nèi)容循環(huán)左移L3比特后的結(jié)果逐比特異或,得到一個(gè)4字節(jié)的數(shù)依序放回第3個(gè)寄存器;步驟3i.第1個(gè)寄存器的內(nèi)容與第2個(gè)寄存器的內(nèi)容逐比特異或的結(jié)果與第3個(gè)寄存器的內(nèi)容逐比特異或,再與第4個(gè)寄存器的內(nèi)容循環(huán)左移L4比特后的結(jié)果逐比特異或,得到一個(gè)4字節(jié)的數(shù)依序放回第4個(gè)寄存器;步驟3j.第4個(gè)寄存器的內(nèi)容與第1個(gè)寄存器的內(nèi)容逐比特異或,再循環(huán)左移L1比特,結(jié)果放回第4個(gè)寄存器;步驟3k.第3個(gè)寄存器的內(nèi)容與第4個(gè)寄存器的內(nèi)容逐比特異或,再循環(huán)左移L2比特,結(jié)果放回第3個(gè)寄存器;步驟31.第2個(gè)寄存器的內(nèi)容與第3個(gè)寄存器的內(nèi)容逐比特異或,再循環(huán)左移L3比特,結(jié)果放回第2個(gè)寄存器;步驟3m.第1個(gè)寄存器的內(nèi)容與第2個(gè)寄存器的內(nèi)容逐比特異或,再循環(huán)左移L4比特,結(jié)果放回第1個(gè)寄存器。
步驟3e中出現(xiàn)的R為有限域GF(28)上的常數(shù),初值為0×80(十六進(jìn)制表示)。每使用R一次,都將R左移1比特再與常量0×1B(十六進(jìn)制表示)逐比特異或,所得結(jié)果為新的R值;循環(huán)移位常量L1,L2,L3,L4依次取值為2、5、8、1。
其中,步驟4所述的非線性置換可以詳細(xì)地依如下步驟進(jìn)行將第4個(gè)寄存器的內(nèi)容逐位取反,與第3個(gè)寄存器的內(nèi)容逐比特求邏輯與,得到的結(jié)果再與第2個(gè)寄存器的內(nèi)容逐比特異或,最后將操作結(jié)果放回第2個(gè)寄存器;將第2個(gè)寄存器的內(nèi)容和第3個(gè)寄存器的內(nèi)容逐比特求邏輯或的結(jié)果,再與第1個(gè)寄存器的內(nèi)容逐比特異或,結(jié)果放回第1個(gè)寄存器;交換第2個(gè)寄存器與第4個(gè)寄存器中的內(nèi)容;將第1、2、3、4個(gè)寄存器中的內(nèi)容依次逐比特異或后放入第3個(gè)寄存器中,再將第2個(gè)寄存器中的內(nèi)容與第3個(gè)寄存器的內(nèi)容逐比特求邏輯與,然后再和第1個(gè)寄存器中的內(nèi)容逐比特異或,結(jié)果放入第1個(gè)寄存器;第3個(gè)寄存器的內(nèi)容逐比特求反后的值與第1個(gè)寄存器中的內(nèi)容逐比特求邏輯或,再和第2寄存器中的內(nèi)容逐比特異或,結(jié)果放入第2個(gè)寄存器。
步驟5中的三維4-點(diǎn)擴(kuò)散變換如圖2所示,三維-4點(diǎn)變換器的一般結(jié)構(gòu)令每個(gè)輸入都是n比特,盒子“4-TRA”是Z4n×Z4n→Z4n×Z4n的一個(gè)線性變換,這樣一個(gè)線性變換可以與Z4n上的一個(gè)可逆4×4矩陣H等價(jià)起來。
H=2111121111211111]]>由這個(gè)矩陣所決定的4-TRA為4-PHT(偽Hadamard變換),“transformshuffle”是一個(gè)從集合{1,2,...,16}到它自身的一個(gè)置換。其中變換4-TRA采用4-PHT,“transform shuffle”的置換是[96316114118521512131074]。
在本發(fā)明另外的實(shí)施例中,步驟1中的密鑰K的字節(jié)數(shù)N值也可以為24或32,所對(duì)應(yīng)的密鑰分組大小為192比特或256比特。
在本發(fā)明另外的實(shí)施例中,步驟6中的輪數(shù)也可以是大于4的整數(shù)。
本發(fā)明的分組密碼方法基于容易實(shí)現(xiàn)的基本運(yùn)算,易于軟件編程實(shí)現(xiàn),例如用C語(yǔ)言實(shí)現(xiàn)編程,在PIII550上加解密速度達(dá)到了152M比特/s。另外,該分組密碼只是通過相應(yīng)的運(yùn)算來達(dá)到高的安全性,并沒有使用其他算法通常的查表運(yùn)算,所以在應(yīng)用中也大大節(jié)省了存儲(chǔ)空間。本發(fā)明的分組密碼算法,通過對(duì)加解密過程的雪崩特性、明密文相關(guān)性、非線性度、差分特性和布爾函數(shù)表達(dá)式,以及密鑰擴(kuò)展過程的雪崩特性,頻數(shù)特性,跟隨特性,撲克特性和自相關(guān)性等安全性能的分析測(cè)試,結(jié)果表明它具有良好的抵抗差分攻擊、線性攻擊、插值攻擊和密鑰相關(guān)等攻擊的性能。本發(fā)明算法設(shè)計(jì)基于完善的數(shù)學(xué)理論,設(shè)計(jì)安全合理,結(jié)合了數(shù)據(jù)循環(huán)移位和多維n-點(diǎn)變換擴(kuò)散器技術(shù),使結(jié)構(gòu)清晰、簡(jiǎn)潔、嚴(yán)謹(jǐn),易于軟硬件的快速實(shí)現(xiàn)。本發(fā)明的分組密碼算法,加解密速度比RIJNDAEL、RC5、SAFER++、3DES等著名算法要快,且算法的邏輯結(jié)構(gòu)更加清晰簡(jiǎn)潔,易于程序的快速實(shí)現(xiàn),同樣也適合在硬件芯片上實(shí)現(xiàn)。
本發(fā)明經(jīng)過了在電子計(jì)算機(jī)上的實(shí)驗(yàn)、模擬和相關(guān)測(cè)試過程,結(jié)果表明它具有良好的抵抗差分攻擊、線性攻擊、插值攻擊和密鑰相關(guān)等攻擊的性能,是一個(gè)高效安全的分組密碼算法。
本發(fā)明提供的分組密碼加密算法,其設(shè)計(jì)基于完善的數(shù)學(xué)理論,結(jié)合了數(shù)據(jù)循環(huán)移位和多維X-點(diǎn)變換擴(kuò)散器技術(shù),設(shè)計(jì)安全合理,從而具有良好的抵抗差分攻擊、線性攻擊、插值攻擊和密鑰相關(guān)等攻擊的性能;同時(shí)由于分組密碼只是通過相應(yīng)的運(yùn)算來達(dá)到較高的安全性,并沒有使用其他算法通常的查表運(yùn)算,因而其結(jié)構(gòu)清晰、簡(jiǎn)潔、嚴(yán)謹(jǐn)、易于軟硬件的快速實(shí)現(xiàn),而且在應(yīng)用中能大大節(jié)省存儲(chǔ)空間。
以上所揭露的僅為本發(fā)明的優(yōu)選實(shí)施例而已,當(dāng)然不能以此來限定本發(fā)明之權(quán)利范圍,因此依本發(fā)明申請(qǐng)專利范圍所作的等同變化,仍屬本發(fā)明所涵蓋的范圍。
權(quán)利要求
1.一種分組密碼加密方法,用于包括有寄存器的計(jì)算機(jī)對(duì)明文數(shù)據(jù)進(jìn)行加密處理,其特征在于,所述方法包括以下處理步驟A.將明文數(shù)據(jù)按每組M字節(jié)分成明文數(shù)據(jù)組;B.設(shè)置密鑰K,并將密鑰K按照每N字節(jié)分成密鑰數(shù)據(jù)組;C.設(shè)置循環(huán)移位的比特位數(shù),及循環(huán)移位常量L和移位常數(shù)R;對(duì)明文數(shù)據(jù)組和密鑰數(shù)據(jù)組的數(shù)據(jù)進(jìn)行模2加及循環(huán)移位操作,得到第一中間數(shù)據(jù);D.設(shè)置密碼分組的非線性置換模型,對(duì)第一中間數(shù)據(jù)進(jìn)行非線性置換,得到第二中間數(shù)據(jù);E.設(shè)置多維X-點(diǎn)變換擴(kuò)散器,對(duì)第二中間數(shù)據(jù)進(jìn)行多維X-點(diǎn)變換擴(kuò)散,得到第三中間數(shù)據(jù);F.提供密碼算法的輪函數(shù),并設(shè)置該密碼算法輪函數(shù)的輪數(shù),由所述輪函數(shù)處理第三中間數(shù)據(jù),得到第四中間數(shù)據(jù);G.將所述第四中間數(shù)據(jù)與所述密鑰K的部分密鑰逐比特異或,操作后的結(jié)果即為對(duì)該明文數(shù)據(jù)組加密所得到的密文數(shù)據(jù)組。
2.如權(quán)利要求1所述的分組密碼加密方法,其特征在于,所述的步驟B進(jìn)一步包括以下處理步驟b1.將隨機(jī)N字節(jié)的初始密鑰每連續(xù)64比特分成一組,共產(chǎn)生n個(gè)64比特的初始密鑰組,標(biāo)記為第1至第n個(gè)64比特組,其中n=8*N/64;b2.將第i個(gè)64比特組分為前后32比特,后32比特加上(i+1)的值作為新的前32比特,將新得到的前32比特與后32比特異或,再循環(huán)左移新的前32比特值大小的比特位,最后將循環(huán)移位后的結(jié)果與n異或,作為第i個(gè)64比特新的后32比特,而將此新后32比特加上此前新得到的前32比特的結(jié)果循環(huán)左移新后32比特值的比特位數(shù),將此結(jié)果作為第i個(gè)64比特新的前32比特;其中,所述i的取值范圍是0≤i≤n;b3.將第i個(gè)64比特組分為前后32比特,前32比特減去(i+1)的值作為新的前32比特,將后32比特減去新得到的前32比特后,再循環(huán)左移新的前32比特值大小的比特位,最后將循環(huán)移位后的結(jié)果與n異或作為第i個(gè)64比特新的后32比特,而將此新后32比特異或上此前新得到的前32比特的結(jié)果循環(huán)左移新后32比特值的比特位數(shù),將此結(jié)果作為第i個(gè)64比特新的前32比特;b4.將n循環(huán)左移i位后,再加上1的結(jié)果作為n的新值,并標(biāo)記為n’;b5.將步驟b2獲得的第i-1個(gè)64比特與步驟b3獲得的第i個(gè)64比特異或的結(jié)果作為新的第n+i個(gè)64比特的擴(kuò)展密鑰;b6.重復(fù)執(zhí)行步驟b2,b3,b4,b5,i的取值從0開始直至n。
3.如權(quán)利要求1所述的分組密碼加密方法,其特征在于,所述的步驟D中的非線性置換是指包括以下處理步驟d1.將每連續(xù)4字節(jié)放在一個(gè)寄存器上,得到4個(gè)寄存器,標(biāo)記為第1至第4個(gè)寄存器;d2.將第2個(gè)寄存器的內(nèi)容與第4個(gè)寄存器的內(nèi)容逐位取反后和第3個(gè)寄存器的內(nèi)容逐比特邏輯與的結(jié)果再逐比特異或,結(jié)果放回第2個(gè)寄存器;d3.第1個(gè)寄存器的內(nèi)容與第2個(gè)寄存器的內(nèi)容和第3個(gè)寄存器的內(nèi)容逐比特求邏輯或的結(jié)果再逐比特異或,結(jié)果放回第1個(gè)寄存器的內(nèi)容;d4.交換第2個(gè)寄存器與第4個(gè)寄存器中的內(nèi)容;d5.將4個(gè)寄存器中的內(nèi)容逐比特異或后放入第3個(gè)寄存器,將第2個(gè)寄存器中的內(nèi)容與第3個(gè)寄存器的內(nèi)容逐比特求邏輯與再和第1個(gè)寄存器中的內(nèi)容逐比特異或,結(jié)果放入第1個(gè)寄存器中,第3個(gè)寄存器的內(nèi)容逐比特求反后的值與第1個(gè)寄存器中的內(nèi)容求邏輯或,再和第2個(gè)寄存器中的內(nèi)容逐比特異或,結(jié)果放入第2個(gè)寄存器中。
4.如權(quán)利要求1所述的分組密碼加密方法,其特征在于,所述步驟F中的輪函數(shù)是指依照以下結(jié)構(gòu)和順序進(jìn)行處理f1.將明文分組順序與步驟B中所得到的相應(yīng)密鑰分組相異或;f2.進(jìn)行步驟C,步驟D和步驟E相關(guān)的處理;f3.將明文分組與步驟B中所得到的相應(yīng)密鑰分組依次相異或;f4.將f1、f2、f3作為本分組密碼算法中的一輪。
5.如權(quán)利要求1所述的分組密碼加密方法,其特征在于所述步驟A中的M值為16,所對(duì)應(yīng)的分組大小為128比特。
6.如權(quán)利要求1或2所述的分組密碼加密方法,其特征在于,所設(shè)置密鑰K的每組密鑰字節(jié)數(shù)N值可以為16、24或32,所對(duì)應(yīng)的密鑰分組大小為128比特、192比特或256比特。
7.如權(quán)利要求1所述的分組密碼加密方法,其特征在于,所述循環(huán)移位常量L包括L1、L2、L3、L4,所述的L1、L2、L3、L4依次分別取值為2,5,8,1;所述常數(shù)R為有限域GF(28)上的常數(shù),其初值取值為0X80,且每使用R一次,都將R左移1比特位再與常量0X1B逐比特異或,將所得結(jié)果作為新的R值。
8.如權(quán)利要求1所述的分組密碼加密方法,其特征在于,所述步驟E中的多維X-點(diǎn)變換擴(kuò)散器為三維4-點(diǎn)變換擴(kuò)散器。
9.如權(quán)利要求1所述的分組密碼加密方法,其特征在于,所述步驟F中的密碼算法的輪數(shù)大于或者等于4。
10.如權(quán)利要求1所述的分組密碼加密方法,其特征在于,所述步驟G中的部分密鑰是指所述密鑰K的最后128比特。
全文摘要
一種分組密碼加密方法,用于對(duì)明文數(shù)據(jù)進(jìn)行加密處理,所述方法包括以下處理步驟分組;設(shè)置密鑰;設(shè)置循環(huán)移位常量L和移位常數(shù)R,對(duì)數(shù)據(jù)進(jìn)行模2加及循環(huán)移位操作;設(shè)置并進(jìn)行非線性置換;設(shè)置并進(jìn)行多維X-點(diǎn)變換擴(kuò)散;設(shè)置密碼算法的輪函數(shù);處理中間數(shù)據(jù),結(jié)果即為密文數(shù)據(jù)組。本發(fā)明提供的分組密碼加密算法,其設(shè)計(jì)基于完善的數(shù)學(xué)理論,結(jié)合了數(shù)據(jù)循環(huán)移位和多維X-點(diǎn)變換擴(kuò)散器技術(shù),設(shè)計(jì)安全合理,從而具有良好的抵抗差分攻擊、線性攻擊、插值攻擊和密鑰相關(guān)等攻擊的性能;由于分組密碼只是通過相應(yīng)的運(yùn)算來達(dá)到較高的安全性,因而其結(jié)構(gòu)清晰、簡(jiǎn)潔、嚴(yán)謹(jǐn)、易于軟硬件的快速實(shí)現(xiàn),而且在應(yīng)用中能大大節(jié)省存儲(chǔ)空間。
文檔編號(hào)H04L9/14GK101013938SQ20071002629
公開日2007年8月8日 申請(qǐng)日期2007年1月12日 優(yōu)先權(quán)日2007年1月12日
發(fā)明者柳毅, 汪劍, 劉金秀 申請(qǐng)人:廣州市誠(chéng)毅科技軟件開發(fā)有限公司