專利名稱:用于對(duì)稱密鑰密碼的替換盒的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及基于一組排列以替換盒(S盒)的形式使用非線性操作將一個(gè)輸入數(shù)據(jù)塊加密轉(zhuǎn)換成一個(gè)輸出數(shù)據(jù)塊。
加密在數(shù)字音頻和/或視頻的版權(quán)保護(hù)領(lǐng)域的應(yīng)用變得尤為重要。這些應(yīng)用包括內(nèi)容加密/解密和訪問(wèn)管理功能。對(duì)于這些應(yīng)用,可以使用公知的分組密碼DES。DES是一個(gè)包含16個(gè)循環(huán)的Feistel密碼。在每一循環(huán)中,數(shù)據(jù)右半部的前32個(gè)比特被擴(kuò)展成48個(gè)比特。使用調(diào)度算法從一個(gè)56比特的DES密鑰計(jì)算出的一個(gè)48比特循環(huán)密鑰被逐比特地與上述48比特模2相加。然后,S盒層對(duì)數(shù)據(jù)執(zhí)行一個(gè)非線性操作。在DES中,S盒層包括八個(gè)并行6至4比特S盒,即每個(gè)S盒使用它的一個(gè)固定映射表將一個(gè)6比特的輸入塊轉(zhuǎn)換成一個(gè)4比特的輸出塊。S盒層的輸出是一個(gè)32比特的數(shù)據(jù)塊,對(duì)其執(zhí)行一個(gè)比特排列。S盒替換是DES中唯一的非線性操作,對(duì)其安全性產(chǎn)生很大貢獻(xiàn)。DES的缺點(diǎn)在于其56比特的短密鑰長(zhǎng)度,現(xiàn)在認(rèn)為它不足以提供更高的安全性。然而,通過(guò)使用與用于計(jì)算16個(gè)48比特循環(huán)密鑰的一個(gè)不同的密鑰調(diào)度算法相組合的一個(gè)更長(zhǎng)的密鑰,可以避免窮盡密鑰搜索。在所公布的公開(kāi)文獻(xiàn)中對(duì)DES最強(qiáng)大的兩種攻擊是差分和線性密碼分析,它們是可廣泛應(yīng)用于分組密碼的普通攻擊。已經(jīng)表明不能通過(guò)修改密鑰長(zhǎng)度和/或密鑰調(diào)度算法來(lái)增強(qiáng)DES對(duì)抗這些攻擊的能力。然而,改變算法的循環(huán)函數(shù)(例如在S盒中)能夠明顯影響其對(duì)抗這些攻擊的強(qiáng)度。
一個(gè)目的是設(shè)計(jì)具有優(yōu)良加密特性的S盒。進(jìn)一步的目的是這種S盒可以通過(guò)硬件和軟件被有效地實(shí)現(xiàn),允許在用戶電子應(yīng)用中的廣泛使用。
為了滿足本發(fā)明的目的,用于S盒的排列被從一組預(yù)定的排列中動(dòng)態(tài)地選擇。該組中的每一排列最好被選擇以提供對(duì)抗已知攻擊,尤其是差分和線性密碼分析的最佳抵抗力。通過(guò)(偽)隨機(jī)地選擇排列,系統(tǒng)的加密性可以強(qiáng)于每個(gè)S盒僅包含一個(gè)固定排列的系統(tǒng)??梢钥焖儆行У貓?zhí)行從一組中選擇一個(gè)排列。
如在從屬權(quán)利要求2中定義的方法,并且在從屬權(quán)利要求3和6中被進(jìn)一步地描述,一個(gè)排列的加密弱點(diǎn)通過(guò)該組中至少一個(gè)其它排列的相應(yīng)強(qiáng)度來(lái)補(bǔ)償。弱點(diǎn)例如可以通過(guò)具有一個(gè)預(yù)定最大概率的非普通差分和/或線性特性來(lái)反映。這種方法的優(yōu)點(diǎn)在于在不對(duì)未知(循環(huán))密鑰進(jìn)行假設(shè)的情況下,對(duì)手不能基于這些特性的差分或線性攻擊。
如從屬權(quán)利要求4中所定義的方法,弱點(diǎn)被完全補(bǔ)償。
如從屬權(quán)利要求10中所定義的方法,最好在一個(gè)循環(huán)密鑰的控制下執(zhí)行排列的選擇。生成循環(huán)密鑰的算法(即密鑰調(diào)度算法)可以被選擇以獲得所需要的偽隨機(jī)度。使用循環(huán)密鑰進(jìn)行選擇的優(yōu)點(diǎn)在于在計(jì)算循環(huán)密鑰的過(guò)程中從組中選擇排列。為了效率,通常并最好為每個(gè)密鑰和必須使用這個(gè)密碼處理(例如加密)的所有數(shù)據(jù)執(zhí)行一次操作。以這種方式,該加密/解密算法可以與基于S盒的僅包括用于每個(gè)S盒的一個(gè)固定排列的系統(tǒng)同樣有效。
參考附圖中圖示的實(shí)施例,本發(fā)明的這些和其它特征將很明顯。
圖1圖示結(jié)合非線性操作的密碼的一個(gè)循環(huán);圖2圖示循環(huán)函數(shù)的步驟;和圖3提供循環(huán)函數(shù)的S盒層的細(xì)節(jié)。
為了解釋本發(fā)明,加密系統(tǒng)被描述為電子密碼本(ECB)模式中的一個(gè)分組密碼。本領(lǐng)域的技術(shù)人員將能夠在其它模式中使用該系統(tǒng)。這些模式包括用于DES操作的標(biāo)準(zhǔn)FIPS模式,即操作的密碼塊鏈接(CBC)、密碼反饋(CFB)和輸出反饋(OFB)模式。另外,該系統(tǒng)也可以在用于偽隨機(jī)數(shù)發(fā)生器、消息鑒別碼(MAC)和操作檢測(cè)碼(MDC)的公知結(jié)構(gòu)中使用。
該加密設(shè)備包括一個(gè)輸入,用于獲得一個(gè)數(shù)字輸入塊。數(shù)字輸入塊M可以是任意合適的長(zhǎng)度。該設(shè)備還包括一個(gè)加密處理器,用于將數(shù)字輸入塊轉(zhuǎn)換成一個(gè)數(shù)字輸出塊。有利地,數(shù)字輸出塊的長(zhǎng)度與數(shù)字輸入塊基本相同。該設(shè)備包括一個(gè)輸出,用于輸出數(shù)字輸出塊。在一個(gè)優(yōu)選實(shí)施例中,加密處理器通過(guò)合并數(shù)字輸入塊和密鑰比特,生成非線性地取決于輸入塊和密鑰的輸出塊,將數(shù)字輸入塊轉(zhuǎn)換成數(shù)字輸出塊。為了獲得密鑰(或輸入密鑰調(diào)度器的一個(gè)初始密鑰),該加密設(shè)備包括第二輸入。顯然,該加密設(shè)備可以使用常規(guī)計(jì)算機(jī),例如PC,或使用一個(gè)專用加密/解密設(shè)備來(lái)實(shí)現(xiàn)。數(shù)字輸入塊可以通過(guò)各種方式來(lái)獲得。例如通過(guò)通信網(wǎng)絡(luò),從數(shù)據(jù)存儲(chǔ)介質(zhì),例如硬盤或軟盤,或者由用戶直接輸入。類似地,數(shù)據(jù)輸出塊可以以各種方式被輸出,例如通過(guò)一個(gè)通信網(wǎng)絡(luò)、存儲(chǔ)在一個(gè)數(shù)據(jù)存儲(chǔ)介質(zhì)上、或者顯示給用戶。為此,最好使用安全裝置。加密處理器可以是一個(gè)常規(guī)處理器,例如在個(gè)人計(jì)算機(jī)中使用,但是也可以是一個(gè)專用加密處理器。處理器通常在一個(gè)合適程序(固件)的控制下操作以執(zhí)行根據(jù)本發(fā)明的算法的步驟。這個(gè)計(jì)算機(jī)程序產(chǎn)品通常從一個(gè)后臺(tái)存儲(chǔ)器,例如硬盤或ROM加載。在已經(jīng)在諸如CD-ROM的存儲(chǔ)介質(zhì)上或者通過(guò)諸如公共互聯(lián)網(wǎng)的網(wǎng)絡(luò)被分布之后,計(jì)算機(jī)程序產(chǎn)品可以被存儲(chǔ)在后臺(tái)存儲(chǔ)器上。敏感信息,例如加密密鑰最好以一種安全的方式被分布和存儲(chǔ)。這些技術(shù)是公知的,不進(jìn)行進(jìn)一步的描述。加密設(shè)備可以部分或全部地在一個(gè)智能卡上實(shí)現(xiàn)。
由加密處理器執(zhí)行的根據(jù)本發(fā)明的S盒的非線性操作將以作為一個(gè)示例性應(yīng)用的分組密碼中的循環(huán)函數(shù)f的形式被描述。本領(lǐng)域的技術(shù)人員完全能夠使用其它加密系統(tǒng)和除了下面詳細(xì)描述的密碼之外的其它密碼中的非線性函數(shù)。
標(biāo)記和定義下述標(biāo)記在示例性算法的描述中被使用。假設(shè)Z2n是長(zhǎng)度為n(n≥1)的所有二進(jìn)制向量的組,和相加Z2n×Z2n→Z2n,它被定義為模2的坐標(biāo)方式相加(也被稱作異或,或XOR)。例如,(1,0,1,0)和(0,1,1,0)是Z24的元素,(1,0,1,0)(0,1,1,0)=(1,1,0,0)。如果n為7和x∈Z2n,則x(L)∈Z2n/2和x(R)∈Z2n/2被分別定義為x的左半部和右半部。例如,如果x=(1,0,1,1,0,0,1,0)∈Z28,則x(L)=(1,0,1,1)∈Z24和x(R)=(0,0,1,0)∈Z24。符號(hào)‖被用于標(biāo)識(shí)向量的級(jí)聯(lián),例如x=(x(L)‖x(R))。向量x∈Z2n的元素(也稱作比特)被從左到右從0到n-1排序,即x=(X0,X1,X2,...,Xn-1)。內(nèi)積*Z2n×Z2n→Z2被定義為x*y=∑i=0,1,...,n-1xiyi∈Z2,所有的x,y∈Z2n。
分組密碼結(jié)構(gòu)示例性的分組密碼是一個(gè)Feistel密碼并包括16個(gè)循環(huán)(類似于DES)。分組長(zhǎng)度等于64比特和密鑰長(zhǎng)度等于128比特。在密鑰K∈Z2128期間將明文X∈Z264以電子密碼本(ECB)模式加密成密文C∈Z264用C=E(K,X)表示。
循環(huán)函數(shù)用f表示并且是從Z240×Z232到Z232的一個(gè)映射。這個(gè)循環(huán)函數(shù)結(jié)合本發(fā)明的非線性S盒操作,下面將詳細(xì)描述。循環(huán)函數(shù)的第一輸入變量是循環(huán)密鑰Ki∈Z240(其中i表示循環(huán)數(shù),i=1,2,...,16)。這些循環(huán)密鑰使用所謂的密鑰調(diào)度算法根據(jù)128比特的密鑰K計(jì)算出??梢允褂萌我夂线m的密鑰調(diào)度算法,不詳細(xì)描述。第二輸入變量是循環(huán)i之后的中間結(jié)果的右半部。這個(gè)中間結(jié)果被表示為Xi∈Z264(i=0,1,...,16),X=(x0(R)‖x0(L))。
使用這些標(biāo)記,密文C∈Z264的計(jì)算包括下述步驟,如圖1所示1.計(jì)算Xi(R)=Xi-1(L)⊕f(Ki,Xi-1(R)),]]>并設(shè)置Xi(L)=Xi-1(R),]]>i=1,2,...,15。
2.計(jì)算X16(L)=X15(L)f(K16,X15(R)),并設(shè)置X16(R)=X15(R)。密文被定義為C=(X16(L)‖X16(R))。
圖1A表示用于前十五個(gè)循環(huán)的密碼結(jié)構(gòu)(i=1,2,...,15)。圖1B表示最后一個(gè),第16個(gè)循環(huán)。注意與圖1A的先前循環(huán)的相比,圖1B中的不規(guī)則交換。這通常以Feistel結(jié)構(gòu)來(lái)實(shí)現(xiàn),因?yàn)樵谶@種情況下,解密算法(即計(jì)算X=E-1(K,C))與加密算法相同(使用相反順序的循環(huán)密鑰)。沒(méi)有加密上的意義。
循環(huán)函數(shù)圖2表示循環(huán)函數(shù)f的優(yōu)選實(shí)施例的整體方框圖。首先,在步驟210,循環(huán)密鑰的一部分,例如32個(gè)比特被相加給數(shù)據(jù)比特。接著,在步驟220,S盒執(zhí)行一個(gè)非線性替換,最好提供一個(gè)對(duì)差分和線性密碼分析的最佳(本地)抵抗。另外,最好使具有預(yù)定最大概率的非普通(本地)特性獨(dú)立于(循環(huán))密鑰,如下面更詳細(xì)地描述。最后,在步驟230,一個(gè)線性轉(zhuǎn)換被用于提供在多個(gè)循環(huán)上的高度擴(kuò)散??梢允褂萌我夂线m的線性轉(zhuǎn)換。線性轉(zhuǎn)換并非本發(fā)明的主題,將不進(jìn)行詳細(xì)描述。
Feistel結(jié)構(gòu)不對(duì)循環(huán)函數(shù)的滿射性進(jìn)行任何限制。然而,循環(huán)函數(shù)對(duì)于固定(循環(huán))密鑰的每種選擇最好是雙射的。這避免了基于循環(huán)函數(shù)非一致性的攻擊。
圖3提供了根據(jù)本發(fā)明結(jié)合S盒的最佳結(jié)構(gòu)的更多細(xì)節(jié)。在這一示例性系統(tǒng)中,循環(huán)函數(shù)f是從Z240×Z232到Z232的一個(gè)映射。第一輸入變量是循環(huán)函數(shù)Ki∈Z240,第二變量是中間結(jié)果Xi-1的右半部。輸出用f(Ki,Xi-1(R))∈Z232表示。在該圖中,Ki(1)∈Z232和Ki(2)∈Z28被定義為Ki=:(Ki(1)||Ki(2)).]]>在步驟210中,進(jìn)行密鑰相加,繼之以步驟220,通過(guò)使用一個(gè)密鑰相關(guān)替換盒(S盒)層。在這個(gè)例子中,S盒層包括八個(gè)更小的S盒(S0,S1,S2,...,S7),每個(gè)對(duì)數(shù)據(jù)塊的1/8進(jìn)行操作。S盒轉(zhuǎn)換是從Z28×Z232到Z232的一個(gè)映射,循環(huán)I中的第一輸入變量是循環(huán)密鑰Ki(2),第二輸入變量是密鑰相加的結(jié)果,即Xi-1(R)Ki(l)。S盒轉(zhuǎn)換的32比特輸出被表示為S(Ki(2),Xi-1(R)Ki(l))。下面將給出這一映射的詳細(xì)描述。最后,在步驟230,應(yīng)用一個(gè)從Z232到Z232的合適的線性轉(zhuǎn)換。輸入是S(Ki(2),Xi-1(R)Ki(l)),其輸出用L(S(Ki(2),Xi-1(R)Ki(l)))表示。使用這種標(biāo)記,函數(shù)f表示為f(Ki,Xi-1(R))=L(S(Ki(2),Xi-1(R)⊕Ki(1))).]]>S盒根據(jù)本發(fā)明,S盒執(zhí)行數(shù)據(jù)的替換。在在此所述的優(yōu)選實(shí)施例中,S盒對(duì)一個(gè)4比特的子塊進(jìn)行操作。顯然也可以使用其它長(zhǎng)度的子塊。根據(jù)本發(fā)明,對(duì)于每個(gè)S盒,使用一組至少兩個(gè)預(yù)定排列,其中在每次使用S盒之前,以(偽)隨機(jī)方式選擇這些排列中的一個(gè)。最好將循環(huán)密鑰用于這一選擇。在優(yōu)選實(shí)施例中,每個(gè)S盒與兩個(gè)排列相關(guān),其中循環(huán)密鑰的一個(gè)預(yù)定比特被用于選擇使用兩個(gè)排列中的哪一個(gè)排列。使用較小的S盒,例如對(duì)4比特子塊進(jìn)行操作的S盒,通常將需要一行的并行S盒,每個(gè)S盒與一組相應(yīng)的至少兩個(gè)非線性排列相關(guān)。在對(duì)32比特塊進(jìn)行操作并使用4比特S盒的分組密碼的優(yōu)選實(shí)施例中,并行使用八個(gè)S盒,每個(gè)S盒包括兩個(gè)排列。對(duì)于該實(shí)施例,使用下述標(biāo)記。假設(shè)S盒轉(zhuǎn)換的第一輸入變量Ki(2)的比特用Kj(i)(j=0,1,...,7)表示,即Ki(2)=(k0(i),k1(i),...,k7(i)。向量Nj(i)∈Z24(j=0,1,...,7)被定義為Xi-1(R)Ki(l)=(N0(i)‖N1(i)‖...‖N7(i))。S盒映射包括八個(gè)映射Sj的級(jí)聯(lián)Z2×Z24→Z24(j=0,1,...,7)。第一輸入變量是密鑰比特kj(i),它選擇使用Sj的兩個(gè)排列中的哪一個(gè)排列。第二輸入變量是Nj(i),它是用于Sj的選定4比特排列的輸入。這個(gè)排列的相應(yīng)4比特輸出也是S盒的輸出,并被表示為Sj(kj(i)Nj(i))。使用這種標(biāo)記,函數(shù)S被表示為S(Ki(2),Xi-1(R)Ki(1)=(S0(k0(i),N0(i))‖S1(k1(i),N1(i)‖...‖S7(k7(i),N7(i))),排列的差分和線性特性下述設(shè)計(jì)標(biāo)準(zhǔn)最好被用于各個(gè)排列
1.對(duì)差分加密分析的抵抗力XOR分布表中的最大非普通值等于一個(gè)預(yù)定最大值。假設(shè)為4比特排列,這個(gè)最大值為4,即每個(gè)非普通差分特性具有最多1/4的概率。差分特性的概念和XOR分布表是公知的。已經(jīng)由Biham和Shamir于1990年首次公開(kāi)描述,例如加密學(xué)期刊,1991年,卷4(1),3至72頁(yè)“類似DES加密系統(tǒng)的差分加密分析(Differential Cryptoanalysis of DES-LikeCryptosystems)”。
2.對(duì)線性加密分析的抵抗力線性近似表中的最大非普通絕對(duì)值等于一個(gè)預(yù)定最大值。假設(shè)為4比特的排列,這個(gè)最大值為4,即每個(gè)非普通線性特性具有1/4和3/4之間的概率。線性特性的概念和線性近似表是公知的。已經(jīng)由Matsui首次公開(kāi)描述。在E.Biham的“Matsui’s的線性加密分析(On Matsui’s LinearCryptoanalysis)”,EUROCRYPT’94,LNCS 950,Springer,1995,341至355頁(yè)中給出了描述。
每個(gè)排列最好符合這兩個(gè)規(guī)格。針對(duì)4比特非線性排列,上述標(biāo)準(zhǔn)被詳細(xì)描述??梢宰C明這些標(biāo)準(zhǔn)對(duì)于4比特排列是最佳的,即不存在最大非普通XOR分布表值小于4的4比特排列,并且不存在其線性近似表中的最大非普通絕對(duì)值小于4的4比特排列。
符合上述標(biāo)準(zhǔn)的排列可以通過(guò)隨機(jī)生成一個(gè)排列,并測(cè)試所生成的排列是否符合該標(biāo)準(zhǔn)來(lái)創(chuàng)建。也可以使用其它合適的技術(shù),例如窮盡搜索直到發(fā)現(xiàn)一個(gè)合適的排列或使用(數(shù)學(xué))構(gòu)建方法。構(gòu)建方法的一個(gè)具體例子是基于在具有2n個(gè)元素的有限域中的逆映射,零映射到其自身,并可以在K.Nyberg的“用于加密的差分均勻映射(Differentially uniform mappingsfor cryptography)”,EUROCRYPT’93,LNCS 765,Springer,1994,55至64頁(yè)中發(fā)現(xiàn)。根據(jù)該方法構(gòu)建的n比特S盒所滿足的相應(yīng)標(biāo)準(zhǔn),其中n為偶數(shù),如下給出1.對(duì)差分加密分析的抵抗力XOR分布表中的最大非普通值等于4,即,每個(gè)非普通差分特性具有最大4/2n的概率。
2.對(duì)線性加密分析的抵抗力線性近似表中的最大非普通絕對(duì)值等于2n/2,即每個(gè)非普通線性特性具有1/2-1/2n/2和1/2+1/2n/2之間的一個(gè)概率。
容易看出這些標(biāo)準(zhǔn)概括了上述用于4比特排列的標(biāo)準(zhǔn)。公知將任意可逆仿射映射(在Z2n上)應(yīng)用于一個(gè)n比特S盒的所有輸入元素和/或所有輸出元素并不影響其最大非普通XOR值或其線性近似表中的最大非普通絕對(duì)值。以這種方式,可以從單個(gè)S盒構(gòu)建滿足上述標(biāo)準(zhǔn)的多個(gè)S盒。
根據(jù)本發(fā)明,一個(gè)S盒與至少兩個(gè)非線性排列相關(guān)。選擇該組中的排列以便它們補(bǔ)償彼此的弱點(diǎn)。這將針對(duì)差分和線性特性分別進(jìn)行更詳細(xì)地描述。其它標(biāo)準(zhǔn)將使用一個(gè)S盒來(lái)說(shuō)明,例如具有下述兩個(gè)排列的S0
第0行和第1行表示兩個(gè)排列的輸出,對(duì)應(yīng)于用列號(hào)定義的輸入。在下文中,這兩個(gè)排列將分別用P0和P1表示。輸入和輸出都用十六進(jìn)制表示法給出。例如,如果選擇第一個(gè)排列)即(K0(i)=0),和N0(i)=3,則輸出等于9,即S0(0,3)=9。類似地,S0(1,3)=f。假設(shè)8個(gè)并行S盒,每個(gè)與專用于該盒的兩個(gè)排列相關(guān),需要產(chǎn)生總共16個(gè)不同的排列。這些排列每一個(gè)最好都符合上述標(biāo)準(zhǔn)。根據(jù)本發(fā)明,作為一組,屬于一個(gè)S盒的排列也符合下面給出的至少一個(gè)標(biāo)準(zhǔn),并且最好符合下面給出的兩個(gè)標(biāo)準(zhǔn)。
一組排列的差分特性用于一個(gè)S盒的一組排列滿足下述標(biāo)準(zhǔn)如果一個(gè)排列中的非普通差分特性具有最大概率,則這個(gè)差分特性在其它排列中的至少一個(gè)排列中具有較低的概率。
將理解以這種方式使一個(gè)排列中的弱點(diǎn)由一個(gè)其它排列的強(qiáng)度來(lái)補(bǔ)償。較低的概率最好為零,最佳地補(bǔ)償一個(gè)弱點(diǎn)。因此,用于一個(gè)S盒的一對(duì)4比特排列的最佳標(biāo)準(zhǔn)是如果兩個(gè)排列之一的非普通差分特性具有概率1/4,則這個(gè)差分特性在另一個(gè)排列中概率為零,即一個(gè)S盒的每個(gè)獨(dú)立于非普通(循環(huán))密鑰的差分特性具有最大1/8的概率。
為了說(shuō)明上述兩個(gè)排列P0和P1符合該標(biāo)準(zhǔn),它們的XOR分布表如下。在Pi的異或分布表中的行α和列β的條目(α,β∈Z24)表示為Xiα,β,并被定義為Xiα,β:=#{x∈Z24|Pi(x)⊕Pi(x⊕α)=β},i=0,1.]]>即Xiα,β等于具有差值α的輸入對(duì)的數(shù)目,差值α導(dǎo)致在相應(yīng)排列Pi的輸出對(duì)中的差值β。
P0的異或分布表
對(duì)于一個(gè)給定(本地)差分特性的概率,即一個(gè)輸入差值α導(dǎo)致一個(gè)輸出差值β(表示為α→β)的概率可以通過(guò)將相應(yīng)條目除以具有給定輸入差值的輸入對(duì)的總數(shù)來(lái)找到。對(duì)于4比特排列,輸入對(duì)的這個(gè)總數(shù)等于16,所以α→β的概率等于Xiα,β/16。注意這些表中第一行和第一列中的條目表示普通特性,即概率為0→0,它對(duì)于排列始終保持。容易看出所有其它的(非普通)差分特性的概率小于或等于1/4,因?yàn)閷?duì)于這兩個(gè)排列,所有其它條目上的最大值等于4。
P1的異或分布表
補(bǔ)償效果例如可以通過(guò)針對(duì)兩個(gè)排列考慮特性7→5看出。對(duì)于P0,7→5的概率等于X07,5/16=1/4,對(duì)于P1,這一概率等于X17,5/16=0。這種補(bǔ)償最好為盡可能多的元素出現(xiàn)。在該例子中,對(duì)于最大異或差值為4的所有元素,這保持不變。使用用于生成和測(cè)試排列的公知技術(shù),本領(lǐng)域的技術(shù)人員可以在幾天內(nèi)創(chuàng)建八對(duì)這樣的排列用于4比特排列。另外,滿足標(biāo)準(zhǔn)的一對(duì)不同的排列P0*和P1*可以從P0和P1構(gòu)建出,例如通過(guò)將一個(gè)仿射轉(zhuǎn)換應(yīng)用于這兩個(gè)排列的輸出。這可以通過(guò)選擇Z2上的一個(gè)非奇異4×4矩陣A和一個(gè)矢量b∈Z24并為所有的x∈Z24定義P0*(x):=P0(x)A⊕b]]>和P1*(x):=P1(x)A⊕b.]]>很容易驗(yàn)證以這種方式可以構(gòu)建322560對(duì)不同的(有序)排列,每個(gè)排列滿足所有上述標(biāo)準(zhǔn)。注意這些轉(zhuǎn)換之一是從Z24→Z24的恒等映射,即P0*=P0和P1*=P1。
一組排列的線性特性用于一個(gè)S盒的一組排列滿足下述標(biāo)準(zhǔn)
如果一個(gè)排列中的非普通線性特性具有不同于1/2的最大絕對(duì)差值的概率,則在至少一個(gè)其它的排列中,這一線性特性具有接近于1/2的概率。
將理解以這種方式,一個(gè)排列中的弱點(diǎn)可以通過(guò)一個(gè)其它排列中的強(qiáng)度來(lái)補(bǔ)償。一個(gè)其它排列中的對(duì)應(yīng)概率最好等于1/2,最佳地補(bǔ)償一個(gè)弱點(diǎn)。因此,對(duì)于用于一個(gè)S盒的一對(duì)4比特排列的最佳標(biāo)準(zhǔn)是如果兩個(gè)排列之一的線性特性的概率為1/4或3/4,則這一線性特性在另一排列中的概率為1/2,即S盒的每個(gè)獨(dú)立于(循環(huán))密鑰的線性特性的概率在3/8和5/8之間。
為了說(shuō)明上述兩個(gè)排列P0和P1滿足這一標(biāo)準(zhǔn),它們的線性近似表如下。在Pi的線性近似表中的行α和列β的條目(α,β∈Z24)表示為L(zhǎng)iα,β,并被定義為L(zhǎng)iα,β:=#{x∈Z24|x·α=Pi(x)*β}-8,i=0,1.]]>即對(duì)于排列Pi,Liα,β表示輸入數(shù)減8,對(duì)于該輸入數(shù),用α定義的輸入比特的線性關(guān)系等于用β定義的相應(yīng)輸出比特的線性關(guān)系,這是對(duì)于4比特排列的理想數(shù)目(更普遍地,對(duì)于n比特排列,理想值為2n-1)。
P0的線性近似表
對(duì)于一個(gè)給定(本地)線性特性的概率,即用α定義的輸入比特的線性關(guān)系等于用β定義的輸出比特的線性關(guān)系(表示為α→β)的概率等于1/2+Liα,β/16。注意這些表中的第一行和第一列中的條目表示普通特性,即概率為零的0→0,它對(duì)于任何映射保持恒定。容易看出所有其它的(非普通)差分特性的概率在1/4和3/4之間,因?yàn)閷?duì)于這兩個(gè)排列,所有其它條目上的最小值和最大值分別等于負(fù)4和正4。
P1的線性近似表
補(bǔ)償效果例如可以通過(guò)針對(duì)兩個(gè)排列考慮線性特性2→3看出。對(duì)于P0,2→3的概率等于1/2+L02,3/16=3/4]]>,對(duì)于P1,這一概率等于1/2+L12,3/16=1/2]]>。這種補(bǔ)償最好為盡可能多的元素出現(xiàn)。在該例子中,對(duì)于最大絕對(duì)值為4的所有元素,這保持不變。使用用于生成和測(cè)試排列的公知技術(shù),本領(lǐng)域的技術(shù)人員可以在幾天內(nèi)創(chuàng)建八對(duì)這樣的排列用于4比特排列。另外,滿足標(biāo)準(zhǔn)的一對(duì)不同的排列P0*和P1*可以從P0和P1構(gòu)建出,例如通過(guò)將一個(gè)仿射轉(zhuǎn)換應(yīng)用于這兩個(gè)排列的輸出。這可以通過(guò)選擇Z2上的一個(gè)非奇異4×4矩陣A和一個(gè)矢量b∈Z24并為所有的x∈Z24定義P0*(x):=P0(x)A⊕b]]>和P1*(x):=P1(x)A⊕b]]>。很容易驗(yàn)證以這種方式可以構(gòu)建322560對(duì)不同的(有序)排列,每個(gè)排列對(duì)滿足所有上述標(biāo)準(zhǔn)。注意這些轉(zhuǎn)換之一是從Z24→Z24的恒等映射,即P0*=P0和P1*=P1。
權(quán)利要求
1.一種用于將一個(gè)輸入數(shù)據(jù)塊加密轉(zhuǎn)換成一個(gè)輸出數(shù)據(jù)塊的方法,該方法包括使用基于一個(gè)排列的一個(gè)S盒在輸入數(shù)據(jù)塊上執(zhí)行非線性操作,其中該方法包括在每次使用S盒之前,(偽)隨機(jī)地從與該S盒相關(guān)的一組預(yù)定的至少兩個(gè)排列選擇排列。
2.如權(quán)利要求1所述的方法,其中形成該組排列,以便該組中的一個(gè)排列的加密弱點(diǎn)被該組中的至少一個(gè)其它排列中的相應(yīng)加密強(qiáng)度來(lái)至少部分地補(bǔ)償。
3.如權(quán)利要求1所述的方法,其中數(shù)據(jù)塊包括n個(gè)數(shù)據(jù)比特,并且該組排列的每個(gè)元素是一組2n個(gè)元素的一個(gè)排列,用Z2n表示,其中該組中的每個(gè)排列的每個(gè)非普通差分特性具有最大pdiff的概率;該組排列由已被選擇的排列形成,以便對(duì)于在任一排列中的概率為pdiff的每個(gè)非普通差分特性,這個(gè)差動(dòng)特性在該組中的至少一個(gè)其它排列中具有低于Pdiff的概率。
4.如權(quán)利要求3所述的方法,其中差分特性在至少一個(gè)排列中具有等于零的概率。
5.如權(quán)利要求4所述的方法,其中n=4,和Pdiff=1/4。
6.如權(quán)利要求1的方法,其中數(shù)據(jù)塊包括n個(gè)數(shù)據(jù)比特,該組排列的每個(gè)元素是一組2n個(gè)元素的一個(gè)排列,用Z2n表示,其中該組中的每個(gè)排列的每個(gè)非普通線性特性具有最少1/2-plin和最多1/2+plin的概率,該組排列由被選擇的排列形成,以便對(duì)于在任一排列中的概率為1/2-plin或1/2+plin的每個(gè)非普通線性特性,這個(gè)線性特性在該組中的至少一個(gè)其它排列中具有接近于1/2的概率。
7.如權(quán)利要求5所述的方法,其中線性特性在至少一個(gè)排列中具有等于1/2的概率。
8.如權(quán)利要求6所述的方法,其中n=4和plin=1/4。
9.如權(quán)利要求1所述的方法,其中該組排列由兩個(gè)排列組成。
10.如權(quán)利要求1所述的方法,包括在一個(gè)加密密鑰的控制下執(zhí)行排列的選擇。
11.如權(quán)利要求9和10所述的方法,其中在加密密鑰的一個(gè)比特的控制下執(zhí)行排列的選擇。
12.一種計(jì)算機(jī)程序產(chǎn)品,其中操作該程序產(chǎn)品使一個(gè)處理器執(zhí)行權(quán)利要求1的方法。
13.一種用于將一個(gè)輸入數(shù)據(jù)塊加密轉(zhuǎn)換成一個(gè)輸出數(shù)據(jù)塊的系統(tǒng),該方法系統(tǒng)包括-一個(gè)輸入端,用于接收輸入數(shù)據(jù)塊;-一個(gè)存儲(chǔ)器,用于存儲(chǔ)與一個(gè)S盒相關(guān)的一組預(yù)定的至少兩個(gè)排列;-一個(gè)加密處理器,用于使用基于一個(gè)排列的一個(gè)S盒對(duì)輸入數(shù)據(jù)塊執(zhí)行一個(gè)非線性操作;操作該處理器,每次在使用S盒之前,(偽)隨機(jī)地從與S盒相關(guān)的所存儲(chǔ)的該組排列中選擇排列;和-一個(gè)輸出端,用于輸出處理后的輸入數(shù)據(jù)塊。
全文摘要
一個(gè)輸入數(shù)據(jù)塊被加密轉(zhuǎn)換成一個(gè)輸出數(shù)據(jù)塊;通過(guò)使用一個(gè)基于排列的S盒對(duì)輸入數(shù)據(jù)塊執(zhí)行一個(gè)非線性操作。該S盒與一組至少兩個(gè)排列相關(guān)。在每次使用S盒之前,一個(gè)排列被(偽)隨機(jī)地從該組排列組中選擇出,并用于該轉(zhuǎn)換。
文檔編號(hào)G09C1/00GK1383648SQ01801888
公開(kāi)日2002年12月4日 申請(qǐng)日期2001年6月25日 優(yōu)先權(quán)日2000年7月4日
發(fā)明者P·L·A·雷爾斯 申請(qǐng)人:皇家菲利浦電子有限公司