專利名稱:一種高效的電子數(shù)據(jù)置亂方法
技術(shù)領(lǐng)域:
本發(fā)明屬于信息處理技術(shù)領(lǐng)域,特別涉及對數(shù)據(jù)分組選代加密置亂方法的改進(jìn)設(shè)計。
在當(dāng)今信息時代中,計算機(jī)和網(wǎng)絡(luò)信息的使用、交換和處理以成為廣泛和頻繁的事。在這個過程中對敏感數(shù)據(jù)的保護(hù)已成為一個普遍關(guān)注的問題。為達(dá)到提供數(shù)據(jù)安全的目的,采用的主要技術(shù)措施之一是使用秘密控制塊的分組密碼。當(dāng)今世界上廣泛使用的分組密碼方法是美國國家標(biāo)準(zhǔn)局1977年公布的“數(shù)據(jù)加密標(biāo)準(zhǔn)”(即DES)。這種用戶控制塊長56比特的DES在九十年代已顯得不夠安全。1992年有人提出了分組加密方法IDEA(其在歐洲獲得專利EP0482154B1,在美國獲得專利US005214703),其已實(shí)際應(yīng)用于PGP電子郵件加密軟件包中,DES、IDEA均屬分組迭代加密方法。
所謂加密是一個數(shù)據(jù)處理過程,在此過程中明文P在控制塊K的控制下依照特定的方法將其處理成密文C,解密者再利用控制塊K和相應(yīng)的解密方法將密文C恢復(fù)成明文P。而對外人來說,由于他不知道控制塊K,所以他無法從密文C得到關(guān)于明文P的任何信息。不同的加密方法,就是指不同的數(shù)據(jù)處理方法。它決定這種加密方法安全保密性。
加密是指加密時將明文分成固定大小的組P=(p(1),p(2)…,p(n))。
其中p(i)為固定大小的分組。然后對各個分組進(jìn)行加密,用特定的方法在控制塊控制下將p(i)處理成c(i),i=1..n。然后在將各密文組相連組成密文C=(c(1),c(2)…,c(n))。解密時類似反向處理。
迭代密碼是指加密過程是有若干次相同子過程迭代組成。即處理過程為將明文P在子控制塊Z[1]的控制下經(jīng)過一個簡單的子過程生成中間密文C[1],再將中間密文C[1]在子控制塊Z[2]的控制下經(jīng)過一個簡單的子過程生成中間密文C[2],如此類推,最后中間密文C[n-1]在子控制塊Z[n]的控制下經(jīng)過一個簡單的子過程生成密文C[n],把C[n]就作為最終的密文C。其中Z[i],i=1…n,是工作子控制塊組,它是由用戶控制塊Z在一定方法處理下生成的。每個子過程是簡單的,實(shí)現(xiàn)是容易的,通過子過程的迭代構(gòu)成一個復(fù)雜的過程,實(shí)現(xiàn)混亂和擴(kuò)散的目的,最終達(dá)到安全的效果。
IDEA作為迭代類型的分組密碼。其構(gòu)成加密的圈結(jié)構(gòu)處理為基于群的代數(shù)結(jié)構(gòu)的圈結(jié)構(gòu)處理,f(X,Z)=P(In(X⊙ZA,ZB),其中X是被加密數(shù)據(jù),Z=(ZA,ZB)是工作控制塊子塊,⊙是群變換結(jié)構(gòu),In是卷積結(jié)構(gòu),P是對合置換結(jié)構(gòu)。IDEA由于其方法強(qiáng)調(diào)加密與解密的結(jié)構(gòu)上的嚴(yán)格相似,并且由于它選用的變換結(jié)構(gòu),造成了以下幾個不足1.IDEA的群密碼結(jié)構(gòu)⊙中包含了模216+1的乘法變換結(jié)構(gòu),使得在解密時要特別對ZA的操作;2.IDEA中未包含非對稱群變換結(jié)構(gòu),使得群運(yùn)算的差分矩陣的性質(zhì)不好。
3.IDEA中只選用了異或、加和乘法變換結(jié)構(gòu)。加法和乘法的合痕性質(zhì)與加法和異或的線性性質(zhì)皆使置亂效果不好。
4.IDEA中的卷積結(jié)構(gòu)有使加密過程退化的可能。
5.IDEA的線性置換過于簡單使得置亂不足。
6.IDEA的工作控制塊生成方式過于簡單,無法對付相關(guān)控制塊攻擊。
本發(fā)明的目的在于避免上述已有技術(shù)的不足,提出一種新的分組迭代加密方法(簡稱TUC),對已有技術(shù)的圈結(jié)構(gòu)處理進(jìn)行了改進(jìn),提出了新的工作子控制塊的生成過程,以及設(shè)計了新的數(shù)據(jù)組與工作子控制塊的處理方式,使用本方法不但提高了數(shù)據(jù)的置亂效果,加強(qiáng)了數(shù)據(jù)的安全性和相關(guān)密鑰攻擊的能力,而且該方法易操作,處理結(jié)構(gòu)緊湊,且采用便于軟件實(shí)現(xiàn)的面向字與字節(jié)的變換結(jié)構(gòu),使該方法能快速實(shí)現(xiàn)。
本發(fā)明提出了一種高效的電子數(shù)據(jù)置亂方法,其特征在于包括以下操作步驟1)將待置亂的明文數(shù)據(jù)分成等比特長的數(shù)據(jù)組;2)將用戶控制塊z按設(shè)置的程序生成多個工作子控制塊;3)將所說各數(shù)據(jù)組作為輸入與所說相當(dāng)個數(shù)的工作子控制塊進(jìn)行多次圈結(jié)構(gòu)處理,每一次處理均使用不同的工作子控制塊,每次的輸出作為下一次處理的輸入;4)將最后一次圈結(jié)構(gòu)處理的輸出數(shù)據(jù)組分別再與其余的工作子控制塊進(jìn)行輸出變換處理,得到已置亂的數(shù)據(jù)組;5)將置亂的數(shù)據(jù)組連接得到置亂的密文數(shù)據(jù);待置亂的數(shù)據(jù)順序通過上述第一、三、四、五步驟,順序進(jìn)行處理,第二步的處理應(yīng)在第三步的處理開始之前;所說的第三個步驟中的圈結(jié)構(gòu)處理由群密碼變換結(jié)構(gòu)處子操作,廣義卷積結(jié)構(gòu)處理子操作和非線性對合置換結(jié)構(gòu)處理子操作所組成,所說的群密碼變換結(jié)構(gòu)處理子操作采用兩種以上的各組數(shù)據(jù)與工作子控制塊處理方式。
本發(fā)明所說的相鄰兩組數(shù)據(jù)的群密碼變換結(jié)構(gòu)處理子操作的處理方式可分別為一個可交換群操作處理和0變換處理,所說的0變換處理為若數(shù)據(jù)組兩個存儲單元x、y中y的末位為1則作y-x,否則作x+y,這里所說的加減法是指模2的n次方的加減法,n為x和y的比特長度。
所說的廣義卷積結(jié)構(gòu)處理子操作可為將數(shù)據(jù)組通過一個由多個工作子控制塊控制的網(wǎng)狀結(jié)構(gòu),處理后得到新的輸出數(shù)據(jù)組,包括多個由兩個輸入得到兩個輸出的操作,一個數(shù)據(jù)組通過每一層網(wǎng)狀結(jié)構(gòu)的操作后得到下一層的輸入數(shù)據(jù),其與上一層數(shù)據(jù)是非合痕的或合痕關(guān)系是復(fù)雜的。
所說的非線性的對合置換結(jié)構(gòu)處理子操作可包括兩對以上的互逆操作,和一個高度非線性的雙輸入雙輸出操作組成。
所說的第四步驟的輸出變換處理可為將最后一圈結(jié)構(gòu)處理后的輸出數(shù)據(jù)組與對應(yīng)的工作子控制塊進(jìn)行群密碼變換處理,且每組處理方式不全相同。
所說的非合痕關(guān)系可以通過以下操作達(dá)到1)兩個存儲器的內(nèi)容做逐比特異或;2)兩個存儲器的內(nèi)容做加法,溢出部分舍棄;3)兩個存儲單元內(nèi)容做模2的n次方加1乘法,全零處理為2的n次方,n為存儲單元的比特長;4)兩個存儲單元內(nèi)容的左右兩部分分別做模2的m次方加1乘法,全零處理為2的m次方,存儲單元的比特長為2m;5)兩個存儲單元內(nèi)容作如下處理,若第二個存儲單元內(nèi)容的最低位為1,用第二個存儲單元內(nèi)容減第一個存儲單元內(nèi)容,否則用第二存儲單元內(nèi)容加第一個存儲單元內(nèi)容,溢出部分舍棄。
本發(fā)明所說的步驟二生成工作子控制塊的操作可包括以下步驟1)將一定長度的用戶控制塊z的線性組合填充所需長度的存儲單元M;2)將一非線性散列操作作用于M的內(nèi)容,結(jié)果放入存儲單元N;3)將N加上M和固定的偏移量T,結(jié)果放入存儲單元P;4)將P逐段賦給工作子控制塊,生成工作子控制塊組。
本發(fā)明的技術(shù)特點(diǎn)如下第一、提供了一種基于群變換結(jié)構(gòu)的,且含有廣義卷積結(jié)構(gòu)、非線性對合結(jié)構(gòu)和群密碼結(jié)構(gòu)的圈處理方式。
第二、本密碼還給出了一種特殊的由用戶密碼生成工作子控制塊的方式。
第三、重新改進(jìn)了圈結(jié)構(gòu)處理結(jié)構(gòu)中的基本變換結(jié)構(gòu)設(shè)計。除了含有已有技術(shù)的一般處理方式外,還采用了兩個存儲單元內(nèi)容的左右兩部分分別做模2的m次方加1乘法,全零處理為2的m次方,存儲單元的比特長為2m;兩個存儲單元內(nèi)容作如下處理,若第二個存儲單元內(nèi)容的最低位為1,用第二個存儲單元內(nèi)容減第一個存儲單元內(nèi)容,否則用第二存儲單元內(nèi)容加第一個存儲單元內(nèi)容,溢出部分舍棄。它來自于一個非交換群一二面體群的群變換結(jié)構(gòu)。
本發(fā)明具有如下優(yōu)點(diǎn)第一、TUC的群密碼結(jié)構(gòu)⊙中不包含乘法變換結(jié)構(gòu),使得在解密時要不必計算ZA的逆,特殊變換的逆可由它的逆變換結(jié)構(gòu)實(shí)現(xiàn)。特殊變換的非對稱性增加了加密過程的置亂性。
第二、TUC中包含非對稱群變換結(jié)構(gòu),使得群變換結(jié)構(gòu)的差分矩陣的性質(zhì)很好。
第三、TUC中選用了兩個存儲器的內(nèi)容做逐比特異或;兩個存儲器的內(nèi)容做加法,溢出部分舍棄;兩個存儲單元內(nèi)容做模2的n次方加1乘法,全零處理為2的n次方,n為存儲單元的比特長;兩個存儲單元內(nèi)容的左右兩部分分別做模2的m次方加1乘法,全零處理為2的m次方,存儲單元的比特長為2m;兩個存儲單元內(nèi)容作如下處理,若第二個存儲單元內(nèi)容的最低位為1,用第二個存儲單元內(nèi)容減第一個存儲單元內(nèi)容,否則用第二存儲單元內(nèi)容加第一個存儲單元內(nèi)容,溢出部分舍棄。它來自于一個非交換群的群變換結(jié)構(gòu)。其中所包含的群變換結(jié)構(gòu)所對應(yīng)的群,兩兩之間不是合痕的或是合痕關(guān)系是復(fù)雜的。
第四、TUC中的卷積結(jié)構(gòu)沒有是加密過程退化的可能。同時它提供了一種靈活的變換構(gòu)成方式。由于多種來自不同群的變換結(jié)構(gòu)的組合及離散對數(shù)和冪結(jié)構(gòu)處理的運(yùn)用和網(wǎng)狀結(jié)構(gòu)的使用提供了安全性所要求的混亂和擴(kuò)散。
第五、TUC的非線性置換使得置亂充分。
第六、TUC的工作控制塊生成方式,即先對用戶控制塊作線性擴(kuò)充,再用單向散列結(jié)構(gòu)處理作用,最后加上偏移量的方式使得子控制塊間相關(guān)性復(fù)雜。可以抵抗相關(guān)控制塊攻擊的威脅。
第七、TUC的廣義卷積密碼結(jié)構(gòu)和非線性置換結(jié)構(gòu),特別是諸多變換(從變換1到變換9)的選取方式的自由性使本方法可以提供豐富的分組密碼子模式。這使得用戶有更大的選擇不同子模式的自由,也使設(shè)計具有更高密碼安全性的子模式的工作成為理所當(dāng)然的事情。
第八、本密碼中所用到的變換結(jié)構(gòu)皆可用軟件快速實(shí)現(xiàn)。并無由于特殊變換結(jié)構(gòu)的引入增加軟件實(shí)現(xiàn)的復(fù)雜度。
第九、數(shù)據(jù)的混亂程度比已有技術(shù)有所提高。
對本發(fā)明的測試,結(jié)果表明本方法的操作體制的安全性和速度于與國外受專利保護(hù)的較為通用方法的操作體制相當(dāng),在一些指標(biāo)上甚至超過了它們。
附圖的簡要說明。
圖1為本發(fā)明方法實(shí)施例的總體操作步驟框圖。
圖2為本實(shí)施例中的圈結(jié)構(gòu)處理操作示意圖。
圖3為本實(shí)施例中的工作子控制塊生成步驟框圖。
本發(fā)明提出一種高效的計算機(jī)數(shù)據(jù)置亂方法實(shí)施例,其處理結(jié)構(gòu)及操作步驟如圖1~3所示結(jié)合附圖描述如下本實(shí)施例的總體操作步驟如圖1所示,它由8次圈結(jié)構(gòu)處理和最后的一個輸出處理組成。首先讀入密文分組X_in,再讀入用戶控制塊Z,依照子控制塊生成步驟生成52個工作子控制塊z(1)..z(52),接著作初始化,將圈數(shù)計數(shù)器r置1,第一圈的輸入Y(0)設(shè)置為X_in,然后開始迭代過程,在子控制塊的控制下對Y(r-1)處理,將子控制塊與Y(r-1)混合生成Y(r)。具體描述為圖2中的第一圈迭代,它可表述為如下的處理過程,Y(r)=f(Y(r-1),ZA(r),ZB(r))=NLP(GIn(Y(r-1)⊙ZA(r),ZB(r))),其中NLP(○)表示一個特殊的非線性對合結(jié)構(gòu)處理,GIn(○1,○2)表示一個特殊的廣義對合結(jié)構(gòu)處理,○1⊙○2表示一個特殊的群密碼結(jié)構(gòu)處理,ZA(r)=(z(6(r-1)+1),z(6(r-1)+2),z(6(r-1)+3),z(6(r-1)+4)),ZB(r)=(z(6(r-1)+5),z(6(r-1)+6))。處理完畢后將圈數(shù)計數(shù)器r加1,看r是否已超過總?cè)?shù)8,若沒有則開始新的一圈迭代,若已超過則開始作輸出變換。將Y(r)與子控制塊組(z(49),z(50),z(51),z(52))作輸出處理。其結(jié)果作為密文輸出。
每次迭代處理的具體過程如圖2所示。共分三個子過程,群密碼變換處理,廣義卷積結(jié)構(gòu)處理,非線性對合結(jié)構(gòu)處理。以第一圈為例,首先將輸入的明文分組x順序分為四個等大的子塊,x1,x2,x3,x4,每塊16比特,然后進(jìn)行群密碼處理,將x1與子控制塊z(1)進(jìn)行群變換結(jié)構(gòu),生成中間變量tmp11,x2與子控制塊z(2)進(jìn)行群變換結(jié)構(gòu),生成中間變量tmp12,x3與控制塊z(3)進(jìn)行群變換結(jié)構(gòu),生成中間變量tmp13,x4與子控制塊z(4)進(jìn)行群變換結(jié)構(gòu),生成中間變量tmp14。這里群變換結(jié)構(gòu)的選取方式是使得這四個群變換結(jié)構(gòu)不全相同。具體實(shí)現(xiàn)子模式可以為,將x1與子控制塊z(1)進(jìn)行可交換群操作(異或),生成中間變量tmp11,x2與子控制塊z(2)進(jìn)行變換0處理,生成中間變量tmp12,x3與控制塊z(3)進(jìn)行異或,生成中間變量tmp13,x4與子控制塊z(4)進(jìn)行變換0,生成中間變量tmp14。其中變換0是指兩個存儲單元x與y作如下變換結(jié)構(gòu),若y的末位為1,作y-x,否則作x+y,這里的加減都是指模216的加減法。
接著讓tmp11、tmp12、tmp13、tmp14通過一個由子控制塊控制的網(wǎng)狀結(jié)構(gòu),作廣義卷積變換處理,具體方法為,將tmp11與z(5)輸入變換1生成中間變量tmp21與tmp24;將tmp21與tmp12輸入變換2生成中間變量tmp22與tmp25;將tmp13與tmp22輸入變換3生成中間變量tmp23與tmp26;將tmp23與tmp14輸入變換4生成中間變量tmp27;將tmp27與z(6)輸入變換8生成中間變量tmp210與tmp34;將tmp210與tmp26輸入變換7生成中間變量tmp29與tmp33;將tmp29與tmp25輸入變換6生成中間變量tmp32與tmp28;將tmp28與tmp24輸入變換1生成中間變量tmp31。其中變換1、變換2、變換3、變換6、變換7、變換8為雙輸入雙輸出的變換,變換4和變換5為雙輸入單輸出的變換,它們的構(gòu)成原則是雙輸入雙輸出的變換的兩個輸出結(jié)構(gòu)處理是不同的,一個變換的輸出結(jié)構(gòu)處理與它的下一個變換的輸出結(jié)構(gòu)處理是在群的意義上非合痕的或合痕關(guān)系是復(fù)雜的。下面是一個子模式構(gòu)成的例子。
在這個子模式中幾個不同的群變換結(jié)構(gòu)作用于16比特的存儲單元,將高度非線性的冪與對數(shù)變換結(jié)構(gòu)作用于8比特的字節(jié)。并由它們構(gòu)成以下若干變換。
(1)兩個(字)存儲單元內(nèi)容做逐比特異或,下面用xor(x,y)表示。它是群Z216上的群變換結(jié)構(gòu),它不與其他幾個群有合痕關(guān)系。
(2)兩個做加法溢出部分舍棄,下面用add(x,y)表示。它是群Zp,p=216,上的群變換結(jié)構(gòu)。它不與除(3)外的幾個群有合痕關(guān)系。
(3)兩個做模乘法,全零字處理為,下面用mul(x,y)表示。它是群Z*p+1,p=216,上的群變換結(jié)構(gòu)。它與add(x,y)的合痕關(guān)系是復(fù)雜的。它不與其他幾個群有合痕關(guān)系。
(4)兩個做逐字節(jié)模乘法,全零字節(jié)處理為,下面用mul2(x,y)表示。它是群Z*p+1×Z*p+1,p=28,上的群變換結(jié)構(gòu)。它不與其他幾個群有合痕關(guān)系。
(5)1兩個x、y做如下變換結(jié)構(gòu),若y的最低位為1,做y-x;否則做x+y.下面用bh(x,y)表示。它是非交換的二面體群上的群變換結(jié)構(gòu)。它不與其他幾個群有合痕關(guān)系。此外還有(1)對一個的兩個字節(jié)分別做45的冪,并交換高低字節(jié),下面用pow(x)表示。
(2)對一個的兩個字節(jié)分別求45為底的對數(shù),并交換高低字節(jié),下面用log(x)表示。
它們是高度非線性的映射。
由這幾個變換結(jié)構(gòu)組成如下變換變換1tmp21=mul(z(5),tmp11);tmp24=log(add(z(5),tmp11))變換2tmp22=mul2(tmp12,tmp21);tmp25=log(add(tmp12,tmp21))變換3tmp23=mul(tmp22,tmp13);tmp26=log(add(tmp13,tmp22))變換4tmp27=log(add(tmp14,tmp23))變換5tmp31=xor(tmp24,tmp28)變換6tmp28=mul(tmp29,tmp25);tmp32=xor(tmp29,tmp25)變換7tmp29=pow(bh(tmp210,tmp26);tmp33=xor(tmp210,tmp26)變換8tmp210=mul(z(6),tmp27);tmp34=xor(z(6),tmp27)
在進(jìn)行廣義卷積變換處理之后,將tmp31、tmp32、tmp33、tmp34輸入非線性對合置換結(jié)構(gòu),將tmp31與tmp33進(jìn)行“相加1”變換結(jié)構(gòu)生成tmp35,將tmp32與tmp34進(jìn)行“相加2”變換結(jié)構(gòu)生成tmp36,將tmp35與tmp36輸入變換9生成中間變量tmp37與tmp38,將tmp31與tmp38異或生成中間變量tmp41,將tmp32與tmp37異或tmp42,將tmp41與tmp35進(jìn)行“相減1”變換結(jié)構(gòu)生成tmp43,將tmp42與tmp36進(jìn)行“相減2”變換結(jié)構(gòu)生成tmp44,tmp41、tmp42、tmp43、tmp44作為第一圈的輸出,第二圈的輸入。這里的“相加1”和“相減1”,“相加2”和“相減2”是兩對獨(dú)立的互逆變換結(jié)構(gòu),可選取為相加和相減,或是異或和它本身,相乘和它的逆,變換9是一個雙輸入雙輸出的變換,由任意選取的非線性變換結(jié)構(gòu)組成。下面是一個子模式構(gòu)成的例子。
選取相加1和相加2就為模216的相加,相減1和相減2就為模216的相減。選取變換9為tmp38=mul(mul(tmp35,tmp36),tmp35);tmp37=mul(tmp35,tmp36);(符號同前)。
在進(jìn)行8次迭代后,將tmp41、tmp42、tmp43、tmp44輸入到輸出變換中,將它們分別與子控制塊z(49)、z(50)、z(51)、z(52)作群變換結(jié)構(gòu),將tmp41與子控制塊z(49)進(jìn)行群變換結(jié)構(gòu),生成中間變量y1,tmp42與子控制塊z(50)進(jìn)行群變換結(jié)構(gòu),生成中間變量y2,tmp43與控制塊z(51)進(jìn)行群變換結(jié)構(gòu),生成中間變量y3,tmp44與子控制塊z(52)進(jìn)行群變換結(jié)構(gòu),生成中間變量y4。這里群變換結(jié)構(gòu)的選取方式是使得這四個群變換結(jié)構(gòu)不全相同。具體實(shí)現(xiàn)子模式可以為,將tmp41與子控制塊z(49)進(jìn)行異或,生成中間變量y1,tmp42與子控制塊z(50)進(jìn)行變換0,生成中間變量y2,tmp43與控制塊z(51)進(jìn)行異或,生成中間變量tmp13,tmp44與子控制塊z(52)進(jìn)行變換0,生成中間變量y4。其中變換0的意義同前。
本實(shí)施例中,加密過程由用戶控制塊Z生成52個子控制塊組z(1)-z(52)的方法如圖3所示,首先讀入用戶給出的128比特(16個字節(jié))控制塊Z,用Z填充長為104字節(jié)的M的前16個字節(jié),將M的前16個字節(jié)看作16個變量,用它們的各種不同的線性組合填充M的第17到第104字節(jié),選取一個非線性的單向散列結(jié)構(gòu)處理作用于M,生成長度為832比特(52個16比特字)的N,將N加上M和固定偏移量T生成832比特(52個16比特字)的P,其中T的選取是自由的,如取作T的第i個字為65535×Sin(i)的整數(shù)部分。最后將52個16比特字長的P分成16段,逐段賦給52個單字長的子控制塊z(1)-z(52)。
權(quán)利要求
1.一種高效的電子數(shù)據(jù)置亂方法,其特征在于包括以下操作步驟1)將待置亂的明文數(shù)據(jù)分成等比特長的數(shù)據(jù)組;2)將用戶控制塊z按設(shè)置的程序生成多個工作子控制塊;3)將所說各數(shù)據(jù)組作為輸入與所說相當(dāng)個數(shù)的工作子控制塊進(jìn)行多次圈結(jié)構(gòu)處理,每一次處理均使用不同的工作子控制塊,每次的輸出作為下一次處理的輸入;4)將最后一次圈結(jié)構(gòu)處理的輸出數(shù)據(jù)組分別再與其余的工作子控制塊進(jìn)行輸出變換處理,得到已置亂的數(shù)據(jù)組;5)將置亂的數(shù)據(jù)組連接得到置亂的密文數(shù)據(jù);待置亂的數(shù)據(jù)順序通過上述第一、三、四、五步驟,順序進(jìn)行處理,第二步的處理應(yīng)在第三步的處理開始之前;所說的第三個步驟中的圈結(jié)構(gòu)處理由群密碼變換結(jié)構(gòu)處子操作,廣義卷積結(jié)構(gòu)處理子操作和非線性對合置換結(jié)構(gòu)處理子操作所組成,所說的群密碼變換結(jié)構(gòu)處理子操作采用兩種以上的各組數(shù)據(jù)與工作子控制塊處理方式。
2.如權(quán)利要求1所述的方法,其特征在于所說的相鄰兩組數(shù)據(jù)的群密碼變換結(jié)構(gòu)處理子操作的處理方式分別為一個可交換群操作處理和0變換處理,所說的0變換處理為若數(shù)據(jù)組兩個存儲單元x、y中y的末位為1則作y-x,否則作x+y,里所說的加減法是指模2的n次方的加減法,n為x和y的比特長度。
3.如權(quán)利要求1所說的方法,其特征在于所說的廣義卷積結(jié)構(gòu)處理子操作為將數(shù)據(jù)組通過一個由多個工作子控制塊控制的網(wǎng)狀結(jié)構(gòu),處理后得到新的輸出數(shù)據(jù)組,包括多個由兩個輸入得到兩個輸出的操作,一個數(shù)據(jù)組通過每一層網(wǎng)狀結(jié)構(gòu)的操作后得到下一層的輸入數(shù)據(jù),其與上一層數(shù)據(jù)是非合痕的或合痕關(guān)系是復(fù)雜的。
4.如權(quán)利要求1所說的方法,其特征在于所說的非線性的對合置換結(jié)構(gòu)處理子操作包括兩對以上的互逆操作,和一個高度非線性的雙輸入雙輸出操作組成。
5.如權(quán)利要求1所說的方法,其特征在于所說的第四步驟的輸出變換處理為將最后一圈結(jié)構(gòu)處理后的輸出數(shù)據(jù)組與對應(yīng)的工作子控制塊進(jìn)行群密碼變換處理,且每組處理方式不全相同。
6.如權(quán)利要求書3所述的方法,其特征在于所說的非合痕關(guān)系是通過以下操作達(dá)到的1)兩個存儲器的內(nèi)容做逐比特異或;2)兩個存儲器的內(nèi)容做加法,溢出部分舍棄;3)兩個存儲單元內(nèi)容做模2的n次方加1乘法,全零處理為2的n次方,n存儲單元的比特長;4)兩個存儲單元內(nèi)容的左右兩部分分別做模2的m次方加1乘法,全零處理為2的m次方,存儲單元的比特長為2m;5)兩個存儲單元內(nèi)容作如下處理,若第二個存儲單元內(nèi)容的最低位為1,用第二個存儲單元內(nèi)容減第一個存儲單元內(nèi)容,否則用第二存儲單元內(nèi)容加第一個存儲單元內(nèi)容,溢出部分舍棄。
7.如權(quán)利要求1所述的方法,其特征在于所說的步驟二生成工作子控制塊的操作包括以下步驟1)將一定長度的用戶控制塊z的線性組合填充所需長度的存儲單元M;2)將一非線性散列操作作用于M的內(nèi)容,結(jié)果放入存儲單元N;3)將N加上M和固定的偏移量T,結(jié)果放入存儲單元P;4)將P逐段賦給工作子控制塊,生成工作子控制塊組。
全文摘要
本發(fā)明涉及對數(shù)據(jù)分組選代加密方法的改進(jìn),其技術(shù)關(guān)鍵是提供了一種基于特殊圈結(jié)構(gòu)的數(shù)據(jù)置亂方法,這個圈結(jié)構(gòu)由一個特殊的群密碼結(jié)構(gòu)、一個特殊的網(wǎng)狀廣義卷積密碼結(jié)構(gòu)和一個特殊的非線性對合置換構(gòu)成,這種基于特殊圈結(jié)構(gòu)的數(shù)據(jù)處理方法包括基于幾個選自特殊群的群變換結(jié)構(gòu)。在此圈結(jié)構(gòu)處理結(jié)構(gòu)中采用了便了軟件實(shí)現(xiàn)的面向字與字節(jié)的變換結(jié)構(gòu),這使得該密碼算法能快速實(shí)現(xiàn)。本發(fā)明的置亂效果比已有技術(shù)有所提高。
文檔編號G06F12/14GK1158453SQ9612058
公開日1997年9月3日 申請日期1996年11月22日 優(yōu)先權(quán)日1996年11月22日
發(fā)明者朱峰, 郭寶安 申請人:清華大學(xué)