国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      強(qiáng)化錯(cuò)亂的分組密碼加密方法

      文檔序號(hào):6463915閱讀:263來(lái)源:國(guó)知局
      專利名稱:強(qiáng)化錯(cuò)亂的分組密碼加密方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及信息加密技術(shù)領(lǐng)域,更確切地說(shuō)是涉及一種利用電子計(jì)算機(jī)技術(shù)及編碼技術(shù),形成動(dòng)態(tài)電子密碼的方法。
      分組加密方法是以現(xiàn)代電子密碼形式實(shí)現(xiàn)信息保密的重要技術(shù)方案之一,分組密碼開(kāi)始于(據(jù)公開(kāi)資料)七十年代中期出現(xiàn)的DES。與序列密碼相比,分組密碼的一個(gè)突出優(yōu)點(diǎn)是用戶的密鑰可以重復(fù)使用。分組加密算法的實(shí)現(xiàn)技術(shù)是先將明文數(shù)據(jù)分成若干個(gè)長(zhǎng)度為n比特的明文組,再將每一個(gè)n比特的明文組用別的n比特的符號(hào)來(lái)代替,從而形成n比特的密文(即密文組),因此分組加密方法的基本特征是一種代替作業(yè)。解密過(guò)程則是將n比特的密文組逆代為原始的n比特的明文組。目前,國(guó)際上公認(rèn)的分組大小n為128和64。
      隨著分組密碼技術(shù)的發(fā)展,特別是近年來(lái)開(kāi)展的征集密碼加密標(biāo)準(zhǔn)的活動(dòng),陸續(xù)公開(kāi)了一些分組密碼算法。如1997年4月NIST發(fā)起征集AES(AdvancedEncryption Standard)后,有15個(gè)分組密碼方案獲得了候選資格;2000年1月,歐洲開(kāi)始征集歐洲標(biāo)準(zhǔn),共有17個(gè)分組密碼方案參選。目前,韓國(guó)、日本和俄羅斯等國(guó)家都已制定了各自的加密標(biāo)準(zhǔn),中國(guó)制定自已的加密標(biāo)準(zhǔn)已經(jīng)事在必行。
      當(dāng)然,如果能設(shè)計(jì)出一種優(yōu)良的加密方案,并將其廣泛地服務(wù)于社會(huì),將有利于推動(dòng)國(guó)民經(jīng)濟(jì)各個(gè)重要領(lǐng)域的信息基礎(chǔ)設(shè)施建設(shè),自然是利國(guó)利民之舉,因此,發(fā)明性能優(yōu)良且擁有技術(shù)特色的加密方案成為我們的心愿。
      在AES和歐洲加密標(biāo)準(zhǔn)征集中,共征集了30多個(gè)分組密碼方案,如RIJNDAEL、RC6、MARS、TWOFISH、IDEA、SAFER++等等。這些方案基本代表了當(dāng)前國(guó)際分組密碼算法的水平、特點(diǎn)、風(fēng)格和基本方向。當(dāng)然,除了上述30多個(gè)方案外,還有一些其它的方案。
      分組密碼算法設(shè)計(jì)的基本前提是確保和提高安全性能。綜觀已有的分組密碼方案,存在的問(wèn)題主要是算法的邏輯結(jié)構(gòu)較復(fù)雜,不易利用程序?qū)崿F(xiàn)或難以在微型電路芯片上實(shí)現(xiàn),因而,有必要發(fā)掘這方面的潛力。另一方面,雖然有很多分組加密方法在加密過(guò)程中采用了錯(cuò)亂變換,但錯(cuò)亂序是固定不變的。也就是說(shuō)還沒(méi)有哪個(gè)分組加密方法將錯(cuò)亂序的不可預(yù)測(cè)性做為密鑰因素。
      實(shí)現(xiàn)本發(fā)明目的的技術(shù)方案是這樣的一種強(qiáng)化錯(cuò)亂的分組密碼加密方法,其特征在于包括以下處理步驟A.由密鑰決定的錯(cuò)亂序?qū)γ魑慕M數(shù)據(jù)進(jìn)行強(qiáng)錯(cuò)亂;B.對(duì)強(qiáng)錯(cuò)亂后明文組數(shù)據(jù)做非線性可逆置換;C.由密鑰決定的錯(cuò)亂序?qū)χ脫Q后的數(shù)據(jù)再次進(jìn)行強(qiáng)錯(cuò)亂,得到對(duì)該明文組加密的密文組。
      所述的步驟A,進(jìn)一步包括以下處理步驟a1.將明文數(shù)據(jù)按每組128比特的長(zhǎng)度分成明文組;a2.將128比特明文組按每4比特劃分,組成32個(gè)半字符;a3.按第1錯(cuò)亂序?qū)Σ襟Ea2中的32個(gè)半字符進(jìn)行錯(cuò)亂;a4.將步驟a3錯(cuò)亂后的32個(gè)半字符與一32個(gè)半字符固定序列進(jìn)行對(duì)位模2加;a5.按第2錯(cuò)亂序?qū)Σ襟Ea4所得的32個(gè)半字符進(jìn)行錯(cuò)亂移位。
      所述的步驟B中的非線性可逆置換實(shí)際是用128比特代替128比特,是一種與密鑰無(wú)關(guān)的置換邏輯,滿足輸入輸出之間有嚴(yán)格的明文雪崩效應(yīng)、且輸入到輸出間的相關(guān)優(yōu)勢(shì)、差分優(yōu)勢(shì)相當(dāng)弱。
      所述的步驟B中的置換進(jìn)一步包括以下步驟b1.設(shè)置一個(gè)Z/(24)環(huán)上的32級(jí)移位寄存器,32級(jí)移位寄存器的狀態(tài)是步驟a5錯(cuò)亂后的32個(gè)半字;b2.進(jìn)行右移反饋,將32級(jí)移位寄存器的各級(jí)內(nèi)容由左到右順序反饋,并將左邊第一級(jí)內(nèi)容經(jīng)過(guò)S盒后所得的替換值與右邊最后一級(jí)的內(nèi)容兩者模16加后反饋到左邊第一級(jí);b3.重復(fù)執(zhí)行步驟b2共V步,得到置換結(jié)果,48≤V≤128。
      所述步驟b2中的經(jīng)過(guò)S盒,是指當(dāng)輸入分別是0 1 2 3 4 5 6 7 8 9 A B CD E F時(shí),對(duì)應(yīng)的輸出值分別為9 F 6 7 C B 2 3 E 0 D 5 4 A B 1。
      所述的步驟C,進(jìn)一步包括以下處理步驟c1.按第2錯(cuò)亂序的逆表對(duì)步驟B最終獲得的32個(gè)半字符進(jìn)行錯(cuò)亂;c2.將步驟c1錯(cuò)亂后的32個(gè)半字符與一32個(gè)半字符固定序列進(jìn)行對(duì)位模2加;c3.按第1錯(cuò)亂序的逆表對(duì)步驟c2所得的32個(gè)半字符進(jìn)行錯(cuò)亂;c4.將步驟c3錯(cuò)亂后的結(jié)果作為密文組,以128比特或16字節(jié)的形式輸出。
      所述步驟a4、c2中的由32個(gè)半字符構(gòu)成的固定序列恰好是16個(gè)半字符號(hào)在序列中各出現(xiàn)兩次。
      所述的半字符固定序列是9 F 6 7 C B 2 3 E 0 D 5 4 A 8 1 9 F 6 7C B 2 3 E 0 D 5 4 A 8 1。
      所述的第一、第二錯(cuò)亂序表,其生成步驟包括
      (1).建立編號(hào)為0至31的地址單元,將數(shù)值0至31隨機(jī)放入0至31編號(hào)的地址單元中,形成第一原始移位表;(2).建立編號(hào)為0至31的地址單元,將數(shù)值0至31隨機(jī)放入0至31編號(hào)的地址單元中,形成第二原始移位表;(3).將長(zhǎng)度為260比特的密鑰按每5比特分組,組成數(shù)值為0至31的五單位密鑰字,并將構(gòu)成的52個(gè)密鑰字編號(hào)為0至51;(4).設(shè)置一個(gè)第一記憶單元m、一個(gè)第二記憶單元n和一個(gè)計(jì)數(shù)單元i,并約定m、n的初始值為0;(5).以i計(jì)數(shù)單元中的值為編號(hào)的密鑰字的值,以第二記憶單元n中的數(shù)值查詢第一原始移位表后所獲得的內(nèi)容,并與第一記憶單元m的數(shù)值三者加和,再對(duì)該和數(shù)模32后作為第一記憶單元m的新值;(6).將第二記憶單元n中的數(shù)值減去以i計(jì)數(shù)單元中的值為編號(hào)的密鑰字的值,再與以第一記憶單元m中的新值查詢第二原始移位表后所獲得的內(nèi)容相加,對(duì)和數(shù)模32后作為第二記憶單元n的新值;(7).將第一原始移位表中地址為新值m的單元中的數(shù)值與地址為新值n的單元中的數(shù)值交換,也將第二原始移位表中地址為新值m的單元中的數(shù)值與地址為31減新值n的單元中的數(shù)值交換;(8).重復(fù)執(zhí)行步驟(5)、(6)、(7),直至i計(jì)數(shù)單元中的值由0計(jì)滿51時(shí),繼續(xù)執(zhí)行下述步驟;(9).以i計(jì)數(shù)單元中的值為編號(hào)的密鑰字的值,以第一記憶單元m中的數(shù)值查詢第二原始移位表后所獲得的內(nèi)容,并與第二記憶單元n的數(shù)值三者加和,再對(duì)該和數(shù)模32后作為第一記憶單元m的新值;(10).將第一記憶單元m中的新值減去以i計(jì)數(shù)單元中的值為編號(hào)的密鑰字的值,再與以第二記憶單元n中的值查詢第一原始移位表后獲得的值相加,對(duì)和數(shù)模32后作為第二記憶單元n的新值;(11).將第一原始移位表中地址為新值m的單元中的數(shù)值與地址為新值n的單元中的數(shù)值交換,也將第二原始移位表中地址為新值m的單元中的數(shù)值與地址為31減新值n的單元中的數(shù)值交換;(12)重復(fù)執(zhí)行步驟(9)、(10)、(11),直至i計(jì)數(shù)單元中的值由0計(jì)滿51時(shí),獲得用于錯(cuò)亂的第一錯(cuò)亂表和第二錯(cuò)亂表。
      所述步驟(3)中,在密鑰長(zhǎng)度只有N比特時(shí),若N<260比特,要將其派生成260比特,包括(31).設(shè)N個(gè)密鑰比特的編號(hào)為0--N-1,i=N,N+1,...,259,取出第i-N位密鑰比特、第i-N+8位密鑰比特、第i-N+17位密鑰比特、第i-N+29位密鑰比特,四者模二加和作為第i位的密鑰比特;(32).重復(fù)執(zhí)行上述步驟,直至使密鑰比特長(zhǎng)度派生到260比特時(shí)停止。
      本發(fā)明強(qiáng)化錯(cuò)亂的分組密碼加密方法,是以移位變換為核心的分組密碼加密方法。其算法的分組長(zhǎng)度為目前流行的128比特,密鑰長(zhǎng)度(N)可變。其加解密算法的基本結(jié)構(gòu)可歸結(jié)為在密鑰控制下對(duì)明文組做強(qiáng)錯(cuò)亂變換、進(jìn)行擁有良好雪崩效應(yīng)的非線性可逆置換、和在密鑰控制下對(duì)置換結(jié)果再次做強(qiáng)錯(cuò)亂變換。算法邏輯結(jié)構(gòu)簡(jiǎn)潔規(guī)范,易于在軟、硬件及多種環(huán)境下實(shí)現(xiàn),而且擁有相當(dāng)可靠的安全性。
      本發(fā)明強(qiáng)化錯(cuò)亂的分組密碼加密方法的基本原理是加密流程的輸入端和輸出端的強(qiáng)錯(cuò)亂變換由密鑰決定,中間是抗線性分析和差分分析的128比特到128比特的固定可逆置換,該置換與密鑰無(wú)關(guān)而且混合與擴(kuò)散性較好,不知錯(cuò)亂序的攻擊者,是難以從明密對(duì)應(yīng)中獲知在加密或解密過(guò)程中,進(jìn)行置換操作時(shí)的輸入或輸出狀態(tài),從而不能有效地推斷兩個(gè)錯(cuò)亂序。
      本發(fā)明強(qiáng)化錯(cuò)亂的分組密碼加密方法中采用了以錯(cuò)亂為變化因素的“強(qiáng)錯(cuò)亂-置換-強(qiáng)錯(cuò)亂”雙錯(cuò)亂變化結(jié)構(gòu),以移位錯(cuò)亂表為密鑰因素;輸入端和輸出端強(qiáng)錯(cuò)亂的具體實(shí)施方式
      是“錯(cuò)亂-加固定序列-錯(cuò)亂”,這是具有流序列作用的復(fù)合錯(cuò)亂,故稱其為強(qiáng)錯(cuò)亂;還發(fā)明了一種由密鑰生成兩個(gè)32元隨機(jī)錯(cuò)亂序的基本方法。
      在本發(fā)明強(qiáng)化錯(cuò)亂的分組密碼加密方法中,中間的置換是通過(guò)非線性反饋移位寄存器的若干拍狀態(tài)變換實(shí)現(xiàn)的,這是一種實(shí)施混合與擴(kuò)散的好方法。實(shí)施時(shí)也可以采取其它的方式來(lái)實(shí)現(xiàn)這種相當(dāng)于一個(gè)固定大S盒功能和性能的置換。
      在本發(fā)明強(qiáng)化錯(cuò)亂的分組密碼加密方法中,分組大小為128比特,密鑰長(zhǎng)度可變。實(shí)施時(shí),可以根據(jù)自己的意愿選擇密鑰長(zhǎng)度,如128比特、160比特、192比特或256比特等,最大有效密鑰長(zhǎng)度可達(dá)235比特。
      步驟11,形成明文組,按128比特分組,包括第1步由密鑰初始化產(chǎn)生第1、第2錯(cuò)亂序表(移位表)T1、T2;第2步將128比特明文組按4比特一組分組,組成32個(gè)分組即32個(gè)半字(本發(fā)明方法中,要將一個(gè)字節(jié)按高四位和低四位分成兩個(gè)4比特,并多次對(duì)4比特進(jìn)行操作,將這樣的4比特稱為半字)。
      步驟12,用密鑰決定的兩個(gè)錯(cuò)亂序T1、T2對(duì)明文組進(jìn)行錯(cuò)亂,包括第1步,按錯(cuò)亂序表T1對(duì)32個(gè)半字符進(jìn)行錯(cuò)亂;第2步,將上述32個(gè)半字符與半字固定序列9 F 6 7 C B 2 3 E 0 D 5 4A 8 1 9 F 6 7 C B 2 3 E 0 D 5 4 A 8 1作對(duì)位模2加,在這個(gè)長(zhǎng)為32的半字固定序列中,每個(gè)半字符均出現(xiàn)了兩次。
      第3步,按錯(cuò)亂序表T2對(duì)32個(gè)半字符進(jìn)行錯(cuò)亂。
      步驟13,進(jìn)行性能良好的可逆置換(R)。
      結(jié)合參見(jiàn)圖2,置換(R)是一個(gè)128比特到128比特的可逆非線性變換,由兩部分組成,即圖中的S盒和非線性移位寄存器狀態(tài)變換。S盒是一個(gè)半字到半字的置換,其具體邏輯關(guān)系為輸入 0 1 2 3 4 5 6 7 8 9 A B C D E F輸出 9 F 6 7 C B 2 3 E 0 D 5 4 A 8 1。
      非線性移位寄存器狀態(tài)變換,是通過(guò)環(huán)Z/(24)上移位寄存器的狀態(tài)變化來(lái)達(dá)到混合與擴(kuò)散功能的,具體實(shí)施方法是將32個(gè)半字看作是環(huán)Z/(24)上32級(jí)移位寄存器的狀態(tài),移位寄存器的反饋邏輯如圖中所示,其中“田”為模16加, 為經(jīng)過(guò)S盒。
      進(jìn)行右移反饋,將32級(jí)移位寄存器的各級(jí)由左至右依次編號(hào)為31至0,將原第31級(jí)的內(nèi)容反饋到第30級(jí),將原第30級(jí)的內(nèi)容反饋到第29級(jí),...,直到將原第1級(jí)的內(nèi)容反饋到第0級(jí),原第31級(jí)的內(nèi)容經(jīng)過(guò)S盒后所得的替換值與原第0級(jí)內(nèi)容兩者加和并模16后反饋到第31級(jí)。
      以圖中所示的移位寄存器邏輯步進(jìn)96步,即實(shí)現(xiàn)可逆置換(R)。
      步驟14,用密鑰決定的兩個(gè)錯(cuò)亂序的逆表對(duì)置換后得到的32個(gè)半字進(jìn)行錯(cuò)亂,包括第1步,按錯(cuò)亂序表T2的逆表對(duì)32個(gè)半字符進(jìn)行移位;第2步,將上述32個(gè)半字符與半字固定序列9 F 6 7 C B 2 3 E 0 D 5 4A 8 1 9 F 6 7 C B 2 3 E 0 D 5 4 A 8 1作對(duì)位模2加;第3步,按錯(cuò)亂序表T1的逆表對(duì)32個(gè)半字符進(jìn)行移位。
      步驟15,將32個(gè)半字作為該組明文的密文,以128比特(或16字節(jié))形式輸出。
      本發(fā)明方法中,T1、T2是由密鑰決定的32元錯(cuò)亂序表。生成這兩個(gè)32元隨機(jī)錯(cuò)亂序的基本步驟如下1).取T1={T1
      ,T1[1],T1[2],……,T1[31]}
      ={5,2,4,29,27,15,14,20,23,24,3,21,28,10,6,26,30,17,7,19,11,16,25,9,22,13,8,18,12,1,31,0}其中T1
      =5,T1[1]=2,T1[2]=4,……T1[31]=0,它們的實(shí)用意義在于T1變換是將第0、1、2、……、31位置上的符號(hào)分別移到第5、2、4、……、0位置處取T2={T2
      ,T2[1],T2[2],……,T2[31]}={0,31,1,12,18,8,13,22,9,25,16,11,19,7,17,30,26,6,10,28,21,3,24,23,20,14,15,27,29,4,2,5}其中T2
      =0,T2[1]=31,T2[2]=1,……T2[31]=5,它們的實(shí)用意義在于T2變換是將第0、1、2、……31位置上的符號(hào)分別移到第0、31、1、……、5位置處;2).令密鑰長(zhǎng)度為N,如果N<260,令密鑰序列KEY={KEY0,KEY1,……,KEYN-1},設(shè)i是N-1位后派生的比特位,由KEYi=KEYi-NKEYi-N+8KEYi-N+17KEYi-N+29,i=N,N+1,……,259,可將密鑰長(zhǎng)度派生為260比特;將260比特密鑰按每組5比特劃分,構(gòu)成52個(gè)數(shù)值為0至31的五單位符,記作K={K0,K1,K2,……,K51}。
      3).改變T1、T2移位表,初始設(shè)置第一記憶單元m=0,第二記憶單元n=0,對(duì)計(jì)數(shù)單元i=0到51做{給m賦新值m←(m+Ki+T1[n])mod 32;給n賦新值n←(n-Ki+T2[m])mod 32;交換T1[m]與T1[n];交換T2[m]與T2[31-n];}對(duì)計(jì)數(shù)單元i=0到51做{給m賦新值m+(n+Ki+T2[m])mod 32;給n賦新值n←(m-Ki+T1[n])mod 32;交換T1[m]與T1[n];交換T2[m]與T2[31-n];
      }至此,得到移位表T1和T2。
      下面以密鑰為十六進(jìn)制符號(hào)“61 62 63 64 65 67 68 69 6a”(即鍵盤輸入八單位ASC II字符abcdefghij)為例說(shuō)明密碼加密過(guò)程。
      (1)生成移位表,首先將密鑰派生為260比特如下01100001011000100110001101100100011001010110011001100111011010000110100101101010010010010110010100000001001000001100000011111100100101001111100100110001110011010011011000111010001100101000011000110011101000111010100010010101110101101101111110101111011100001010轉(zhuǎn)化成下述52個(gè)五單位符12 5 17 6 6 25 3 5 12 25 19 22 16 26 11 10 9 5 18 162 8 6 0 31 18 10 15 18 12 14 13 6 24 29 3 5 1 17 1920 14 20 9 11 21 22 31 21 29 24 10計(jì)數(shù)52拍后,完成一個(gè)循環(huán),T1、T2被變?yōu)門1={11 27 1 7 29 3 5 31 15 17 22 18 8 24 10 16 9 14 13 12 25 2019 28 2 6 21 26 30 0 4 23}T2={26 11 1 4 6 28 2 31 14 3 7 12 29 24 8 27 16 23 13 0 22 195 10 21 17 25 30 15 9 18 20}再走52拍后得T1、T2如下T1={17 21 29 12 25 23 4 11 14 1 24 26 8 27 7 5 22 0 6 13 30 218 10 16 19 28 20 31 15 9 3}T2={27 25 16 8 17 9 7 13 26 28 20 21 6 18 30 22 10 12 0 14 2 41 24 11 23 3 31 29 15 19 5}(2)加密一組密文設(shè)用十六進(jìn)制表示的一明文組為41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f 50按T1錯(cuò)亂序移位后得
      9 5 b 0 4 8 4 4 4 5 c 4 2 a 4 f 4 4 4 d e 1 4 3 4 4 6 7 4 4 4 4加固定序列后得0 a d 7 8 3 6 7 a 5 1 1 6 0 c e d b 2 a 2 a 6 0 a 4 b 2 0 e c 5按T2錯(cuò)亂序移位后得2 6 2 b a 5 6 6 7 3 d a b 7 a e d 8 0 c 1 1 e 4 0 a a 0 5 0 c 2作置換(R)后變?yōu)閎 0 c e 6 e e 6 5 a 9 3 a f 6 c f 6 6 a 0 c d 4 6 3 c 1 4 c 4 a按T2逆錯(cuò)亂序移位后得1 3 f 5 6 a f c 4 0 c e 6 4 d 9 a b 6 c 6 0 6 3 4 e a c c a e加固定序列后得8 c 9 2 a 1 4 c 2 4 d 9 a c c c 0 5 d 1 0 d 2 5 d 4 3 f 8 6 2 f按T1逆錯(cuò)亂序移位后得密文5d 5a 45 a9 cc d3 2f c1 28 4c 29 dd 01 80 fc 42。
      采用軟件編程實(shí)現(xiàn)本發(fā)明的強(qiáng)化錯(cuò)亂的分組密碼加密方法是非常方便的,如用C語(yǔ)言編程實(shí)現(xiàn)時(shí),在PII 300微機(jī)上加解密速度可達(dá)40Mb/s。由于需要存儲(chǔ)的固定表只有S盒和移位表T1、T2,僅需RAM空間100字節(jié)左右,而且運(yùn)算多為4比特的加、減、模運(yùn)算,所以極易在微型電路芯片上實(shí)現(xiàn)。
      權(quán)利要求
      1.一種強(qiáng)化錯(cuò)亂的分組密碼加密方法,其特征在于包括以下處理步驟A.由密鑰決定的錯(cuò)亂序?qū)γ魑慕M數(shù)據(jù)進(jìn)行強(qiáng)錯(cuò)亂;B.對(duì)強(qiáng)錯(cuò)亂后明文組數(shù)據(jù)做非線性可逆置換;C.由密鑰決定的錯(cuò)亂序?qū)χ脫Q后的數(shù)據(jù)再次進(jìn)行強(qiáng)錯(cuò)亂,得到對(duì)該明文組加密的密文組。
      2.根據(jù)權(quán)利要求1所述的一種強(qiáng)化錯(cuò)亂的分組密碼加密方法,其特征在于所述的步驟A,進(jìn)一步包括以下處理步驟a1.將明文數(shù)據(jù)按每組128比特的長(zhǎng)度分成明文組;a2.將128比特明文組按每4比特劃分,組成32個(gè)半字符;a3.按第1錯(cuò)亂序?qū)Σ襟Ea2中的32個(gè)半字符進(jìn)行錯(cuò)亂;a4.將步驟a3錯(cuò)亂后的32個(gè)半字符與一32個(gè)半字符固定序列進(jìn)行對(duì)位模2加;a5.按第2錯(cuò)亂序?qū)Σ襟Ea4所得的32個(gè)半字符進(jìn)行錯(cuò)亂移位。
      3.根據(jù)權(quán)利要求1所述的一種強(qiáng)化錯(cuò)亂的分組密碼加密方法,其特征在于所述的步驟B中的非線性可逆置換實(shí)際是用128比特代替128比特,是一種與密鑰無(wú)關(guān)的置換邏輯,滿足輸入輸出之間有嚴(yán)格的明文雪崩效應(yīng)、且輸入到輸出間的相關(guān)優(yōu)勢(shì)、差分優(yōu)勢(shì)相當(dāng)弱。
      4.根據(jù)權(quán)利要求1或2所述的一種強(qiáng)化錯(cuò)亂的分組密碼加密方法,其特征在于所述的步驟B中的置換進(jìn)一步包括以下步驟b1.設(shè)置一個(gè)Z/(24)環(huán)上的32級(jí)移位寄存器,32級(jí)移位寄存器的狀態(tài)是步驟a5錯(cuò)亂后的32個(gè)半字;b2.進(jìn)行右移反饋,將32級(jí)移位寄存器的各級(jí)內(nèi)容由左到右順序反饋,并將左邊第一級(jí)內(nèi)容經(jīng)過(guò)S盒后所得的替換值與右邊最后一級(jí)的內(nèi)容兩者模16加后反饋到左邊第一級(jí);b3.重復(fù)執(zhí)行步驟b2共V步,得到置換結(jié)果,48≤V≤128。
      5.根據(jù)權(quán)利要求4所述的一種強(qiáng)化錯(cuò)亂的分組密碼加密方法,其特征在于所述步驟b2中的經(jīng)過(guò)S盒,是指當(dāng)輸入分別是0 1 2 3 4 5 6 7 8 9 A B CD E F時(shí),對(duì)應(yīng)的輸出值分別為9 F 6 7 C B 2 3 E 0 D 5 4 A B 1。
      6.根據(jù)權(quán)利要求1所述的一種強(qiáng)化錯(cuò)亂的分組密碼加密方法,其特征在于所述的步驟C,進(jìn)一步包括以下處理步驟c1.按第2錯(cuò)亂序的逆表對(duì)步驟B最終獲得的32個(gè)半字符進(jìn)行錯(cuò)亂;c2.將步驟c1錯(cuò)亂后的32個(gè)半字符與一32個(gè)半字符固定序列進(jìn)行對(duì)位模2加;c3.按第1錯(cuò)亂序的逆表對(duì)步驟c2所得的32個(gè)半字符進(jìn)行錯(cuò)亂;c4.將步驟c3錯(cuò)亂后的結(jié)果作為密文組,以128比特或16字節(jié)的形式輸出。
      7.根據(jù)權(quán)利要求2或6所述的一種強(qiáng)化錯(cuò)亂的分組密碼加密方法,其特征在于所述步驟a4、c2中的由32個(gè)半字符構(gòu)成的固定序列恰好是16個(gè)半字符號(hào)在序列中各出現(xiàn)兩次。
      8.根據(jù)權(quán)利要求7所述的一種強(qiáng)化錯(cuò)亂的分組密碼加密方法,其特征在于所述的半字符固定序列是9 F 6 7 C B 2 3 E 0 D 5 4 A 8 1 9 F 67 C B 2 3 E 0 D 5 4 A 8 1。
      9.根據(jù)權(quán)利要求1所述的一種強(qiáng)化錯(cuò)亂的分組密碼加密方法,其特征在于所述的第一、第二錯(cuò)亂序表,其生成步驟包括(1).建立編號(hào)為0至31的地址單元,將數(shù)值0至31隨機(jī)放入0至31編號(hào)的地址單元中,形成第一原始移位表;(2).建立編號(hào)為0至31的地址單元,將數(shù)值0至31隨機(jī)放入0至31編號(hào)的地址單元中,形成第二原始移位表;(3).將長(zhǎng)度為260比特的密鑰按每5比特分組,組成數(shù)值為0至31的五單位密鑰字,并將構(gòu)成的52個(gè)密鑰字編號(hào)為0至51;(4).設(shè)置一個(gè)第一記憶單元m、一個(gè)第二記憶單元n和一個(gè)計(jì)數(shù)單元i,并約定m、n的初始值為0;(5).以i計(jì)數(shù)單元中的值為編號(hào)的密鑰字的值,以第二記憶單元n中的數(shù)值查詢第一原始移位表后所獲得的內(nèi)容,并與第一記憶單元m的數(shù)值三者加和,再對(duì)該和數(shù)模32后作為第一記憶單元m的新值;(6).將第二記憶單元n中的數(shù)值減去以i計(jì)數(shù)單元中的值為編號(hào)的密鑰字的值,再與以第一記憶單元m中的新值查詢第二原始移位表后所獲得的內(nèi)容相加,對(duì)和數(shù)模32后作為第二記憶單元n的新值;(7).將第一原始移位表中地址為新值m的單元中的數(shù)值與地址為新值n的單元中的數(shù)值交換,也將第二原始移位表中地址為新值m的單元中的數(shù)值與地址為31減新值n的單元中的數(shù)值交換;(8).重復(fù)執(zhí)行步驟(5)、(6)、(7),直至i計(jì)數(shù)單元中的值由0計(jì)滿51時(shí),繼續(xù)執(zhí)行下述步驟;(9).以i計(jì)數(shù)單元中的值為編號(hào)的密鑰字的值,以第一記憶單元m中的數(shù)值查詢第二原始移位表后所獲得的內(nèi)容,并與第二記憶單元n的數(shù)值三者加和,再對(duì)該和數(shù)模32后作為第一記憶單元m的新值;(10).將第一記憶單元m中的新值減去以i計(jì)數(shù)單元中的值為編號(hào)的密鑰字的值,再與以第二記憶單元n中的值查詢第一原始移位表后獲得的值相加,對(duì)和數(shù)模32后作為第二記憶單元n的新值;(11).將第一原始移位表中地址為新值m的單元中的數(shù)值與地址為新值n的單元中的數(shù)值交換,也將第二原始移位表中地址為新值m的單元中的數(shù)值與地址為31減新值n的單元中的數(shù)值交換;(12)重復(fù)執(zhí)行步驟(9)、(10)、(11),直至i計(jì)數(shù)單元中的值由0計(jì)滿51時(shí),獲得用于錯(cuò)亂的第一錯(cuò)亂表和第二錯(cuò)亂表。
      10.根據(jù)權(quán)利要求9所述的一種強(qiáng)化錯(cuò)亂的分組密碼加密方法,其特征在于所述步驟(3)中,在密鑰長(zhǎng)度只有N比特時(shí),若N<260比特,要將其派生成260比特,包括(31).設(shè)N個(gè)密鑰比特的編號(hào)為0--N-1,i=N,N+1,...,259,取出第i-N位密鑰比特、第i-N+8位密鑰比特、第i-N+17位密鑰比特、第i-N+29位密鑰比特,四者模二加和作為第i位的密鑰比特;(32).重復(fù)執(zhí)行上述步驟,直至使密鑰比特長(zhǎng)度派生到260比特時(shí)停止。
      全文摘要
      本發(fā)明涉及一種強(qiáng)化錯(cuò)亂的分組密碼加密方法,其核心變換是對(duì)數(shù)據(jù)的強(qiáng)錯(cuò)亂。分組長(zhǎng)度為當(dāng)前流行的128比特,密鑰長(zhǎng)度可變。主要包括三大處理步驟用由密鑰決定的錯(cuò)亂序?qū)γ魑慕M數(shù)據(jù)進(jìn)行強(qiáng)錯(cuò)亂,即由密鑰控制的錯(cuò)亂序?qū)斎霠顟B(tài)進(jìn)行錯(cuò)亂移位、加固定序列、再錯(cuò)亂移位;對(duì)強(qiáng)錯(cuò)亂后的明文組做一個(gè)128比特到128比特的非線性可逆置換,是與密鑰無(wú)關(guān)的、混合與擴(kuò)散性較好的可逆置換;再次用由密鑰決定的錯(cuò)亂序?qū)Φ玫降?28比特?cái)?shù)據(jù)進(jìn)行強(qiáng)錯(cuò)亂,得到與該明文組對(duì)應(yīng)的密文組。本發(fā)明方法以錯(cuò)亂表為密鑰因素,以一種由移存器狀態(tài)推移所確定的置換為實(shí)施混合與擴(kuò)散的基本手段,有安全性好,邏輯結(jié)構(gòu)簡(jiǎn)潔規(guī)范,易于在軟、硬件及多種環(huán)境下實(shí)現(xiàn)等特點(diǎn)。
      文檔編號(hào)G06F12/16GK1425987SQ0114047
      公開(kāi)日2003年6月25日 申請(qǐng)日期2001年12月10日 優(yōu)先權(quán)日2001年12月10日
      發(fā)明者馮登國(guó), 張玉安 申請(qǐng)人:中國(guó)科學(xué)院軟件研究所
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1