專利名稱:一種s盒構(gòu)造方法及s盒的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種信息傳輸與處理的方法,尤其涉及一種S盒構(gòu)造方法及S盒,屬于 通信技術(shù)領(lǐng)域。
背景技術(shù):
密碼技術(shù)歷史悠久,最初用于保護(hù)軍事和外交通信安全。但是,隨著通信網(wǎng)絡(luò)和計 算機(jī)網(wǎng)絡(luò)的普及,現(xiàn)代密碼學(xué)的應(yīng)用不再局限于政治、軍事和外交,其商業(yè)價值和社會價值 得到了廣泛的認(rèn)同。保密是密碼學(xué)的核心,而加密是獲得信息保密的實用工具。密碼算法分為公鑰密碼算法和私鑰密碼算法。私鑰密碼算法又分為分組密碼算法 和序列密碼算法。分組密碼算法一般對消息進(jìn)行分塊加密,算法運行一次加密一個較大的 消息塊。序列密碼算法一般用一個短的密鑰,用特定的密鑰流生成算法,生成與要加密的消 息長度相當(dāng)?shù)拿荑€流序列,將密鑰流序列與明文按位異或達(dá)到加密的目的。而解密方生成 同樣的密鑰流序列,與密文異或,即可得到明文。
設(shè)計安全、高效的密碼算法,一直是各國爭相研究的熱點。在已有的許多分組密碼 算法和序列密碼算法中,S盒是必不可少的非線性組件。如美國加密標(biāo)準(zhǔn)中的AES分組密 碼算法,歐洲通信標(biāo)準(zhǔn)中的SNOW 3G序列密碼算法中,S盒是提供整個算法非線性性的主要 部分。因此,設(shè)計好的S盒,是設(shè)計一個密碼算法的基礎(chǔ)。同時,S盒的高效硬件實現(xiàn),對于 密碼算法的實現(xiàn)至關(guān)重要。尤其對于硬件資源受限的加、解密設(shè)備,要求S盒的硬件實現(xiàn)門 數(shù)盡可能的少。S盒的設(shè)計,一般基于某種結(jié)構(gòu)的運算,例如AES的S盒是基于有限域上的求逆運 算。由于有限域上的運算,要消耗大量的資源,所以實現(xiàn)這種S盒,通常通過查表來實現(xiàn)。對 于8進(jìn)8出的S盒,一般需要500門的電路規(guī)模。為此,我們提出了一個基于結(jié)構(gòu)構(gòu)造S盒的方法,該結(jié)構(gòu)利用簡單的易于硬件實 現(xiàn)的置換和非置換變換,構(gòu)造具有良好密碼學(xué)性質(zhì)的S盒。同時我們基于這種結(jié)構(gòu)構(gòu)造了 一種高效的S盒硬件模塊,其硬件規(guī)模是查表實現(xiàn)的1/5。
發(fā)明內(nèi)容
本發(fā)明的技術(shù)方案的目的在于提供一種S盒構(gòu)造方法及S盒,本方法是一種基于 結(jié)構(gòu)構(gòu)造S盒的方法,利用三個4進(jìn)4出的變換,構(gòu)造8進(jìn)8出的置換S盒。這種S盒易于 軟硬件實現(xiàn)且能夠提供良好的代數(shù)、差分、非線性性等密碼學(xué)性質(zhì),在分組密碼算法和序列 密碼算法的設(shè)計中都有著重要的作用,是不可缺少的組件。本發(fā)明的另一目的在于提供一 種S盒硬件模塊,該模塊規(guī)模較一般S盒模塊小。本發(fā)明的技術(shù)方案為一種S盒構(gòu)造方法,其步驟為1)選定一整數(shù)m以及三個η進(jìn)η出的變換單元斤、P2> P3 ;其中P2為置換單元,η 為大于等于2的整數(shù)數(shù);
2)將輸入的2η比特信息χ分為兩部分,記為Xl、x2,其中,X1為輸入信息的高η位、 X2為輸入信息的低η位;3)將X2經(jīng)過P1變換后與X1異或,輸出結(jié)果記作、;4)將、經(jīng)過P2變換后與X2異或,輸出結(jié)果記作t2;5)將、經(jīng)過P3變換后與、異或,輸出結(jié)果記作t3;6)將t3作為高η位,t2作為低η位連接成為一個2η比特的信息,記作t ;7)將信息t循環(huán)左移m位輸出。進(jìn)一步的,所述整數(shù)m的取值為1 2n-l ;所述Pp P3為η進(jìn)η出的映射;所述η 為大于等于2的整數(shù)。進(jìn)一步的,采用一個線序置換單元將信息t循環(huán)左移m位輸出。 進(jìn)一步的,所述步驟3) 5)中的變換采用組合邏輯電路實現(xiàn);其中組合邏輯電路 的關(guān)鍵路徑為X2 — P1 —異或一P2 —異或一P3 —異或。進(jìn)一步的,所述步驟3) 5)中的變換采用時序電路實現(xiàn)。進(jìn)一步的,所述采用時序電路實現(xiàn)變換的方法為1)將Pp P2, P3中的信息分別存儲在一存儲器中;2)根據(jù)P1的基地址,以X2為偏移地址讀出所述存儲器中存儲的P1信息,將其與X1 進(jìn)行異或后更新到一 η比特寄存器L中;3)根據(jù)P2的基地址,以該寄存器L的輸出作為偏移地址,讀取所述寄存器中存儲 的P2信息,將其與X2進(jìn)行異或后更新到一 η比特寄存器R中;4)根據(jù)P3的基地址,以該寄存器R的輸出作為偏移地址,讀取所述寄存器中存儲 的P3信息,將其與該寄存器L進(jìn)行異或。一種S盒,其特征在于包括三個異或單元Α、B、C,三個變換單元P^ P2、P3, 一個線 序置換單元;其中異或單元A的兩輸入端分別與一 η比特信息數(shù)據(jù)端和變換單元P1的輸出 端連接,異或單元A的輸出端分別與變換單元P2的輸入端和異或單元C的輸入端連接;另 一 η比特信息數(shù)據(jù)端分別與變換單元P1的輸入端和異或單元B的輸入端連接;異或單元B 的另一輸入端與變換單元P2的輸出端連接;異或單元B的輸出端分別與所述線序置換單元 的輸入端和變換單元P3的輸入端連接;異或單元C的輸出端與所述線序置換單元的輸入端 連接;變換單元P3的輸出端與異或單元C的輸入端連接;其中P2為置換單元,η為自然數(shù)。進(jìn)一步的,S盒為8比特輸入接口和8比特輸出接口 ;所述η取值為4 ;所述PpP3 為4進(jìn)4出的變換。一種S盒,其特征在于包括三個異或單元Α、B、C,三個變換單元P^ P2、P3, 一個線 序置換單元,兩個寄存器L、R,一存儲器;其中變換單元Pp P2、P3分別通過基地址線與所述 存儲器連接;異或單元A的兩輸入端分別與一 η比特信息數(shù)據(jù)端和變換單元P1的輸出端連 接,且其輸出端與所述寄存器L的輸入端連接;另一η比特信息數(shù)據(jù)端分別與變換單元P1W 輸入端和異或單元B的輸入端連接;異或單元B的另一輸入端與變換單元P2的的輸出端連 接,且其輸出端與所述寄存器R的輸入端連接;所述寄存器R的輸出端分別與變換單元P3的 輸入端和所述線序置換單元的輸入端連接;所述寄存器L的輸出端分別與異或單元C的輸 入端和變換單元P2的輸入端連接;異或單元C的另一輸入端與變換單元P3的輸出端連接,且其輸出端與所述線序置換單元的輸入端連接,其中P2為置換單元,η為自然數(shù)。進(jìn)一步的,S盒為8比特輸入接口和8比特輸出接口 ;所述η取值為4 ;所述P1J3 為4進(jìn)4出的變換。具體的,針對于8進(jìn)8出的S盒具體構(gòu)造方法為a.選定4進(jìn)4出的變換P^ P2、P3,其中P2為置換;b.選定一個整數(shù)m。對于任意給定的8比特信息xeF28,經(jīng)S盒變換后的信息y = S(χ)計算過程如下1)取χ的高4位為X1,低4位為x2,Xl、X2作為下一步的輸入;2)令X2經(jīng)過P1變換后與X1異或,結(jié)果記作、,輸出、、X2作為下一步的輸入;
3)令、經(jīng)過P2變換后與X2異或,結(jié)果記作t2,輸出、、t2作為下一步的輸入;4)令t2經(jīng)過P3變換后與、異或,結(jié)果記作t3,輸出t3、t2作為下一步的輸入;5)將t3作為高4位,t2作為低4位連接成為一個8比特的信息記做t ;將t循環(huán) 左移m位輸出。所述S盒結(jié)構(gòu)分為三層,將輸入的8比特分做兩部分,在三層中依次對兩部分值進(jìn) 行更新。在最后一步中,將兩部分值組合后輸出。所述步驟a中,選取的變換應(yīng)由易于計算機(jī)實現(xiàn)、硬件實現(xiàn)的基本運算構(gòu)造。所述步驟a中,P2為置換,P” P3可以是置換,也可以是非置換。所述步驟b中,m的取值范圍為1到7之間的整數(shù)。所述步驟2-4中,接收之前步驟的輸出作為輸入,對兩個輸入的值中的一個進(jìn)行更新。所述步驟2-4中,更新方法為將不需更新的數(shù)值經(jīng)4進(jìn)4出的變換作用后異或到 需要被更新的數(shù)值上,得到的值替換原來的數(shù)值。所述步驟5中,將前一步驟的輸出兩部分值組合后輸出。S盒的設(shè)計方法有很多種,例如AES的S盒是利用有限域&上的多項式/(X) = +構(gòu)造。這種方法構(gòu)造的S盒如果硬件實現(xiàn)的時候用有限域運算來實現(xiàn),效率非常低,所 以通常用查表的方法實現(xiàn),一般需要500門電路。而本發(fā)明方法構(gòu)造的8進(jìn)8出的S盒,由實現(xiàn)代價較小的小規(guī)模變換多層組合而 成,只需大約100門電路即可。使用本發(fā)明方法構(gòu)造的S盒構(gòu)造算法,不僅能夠提供良好的 密碼學(xué)性質(zhì),并且硬件實現(xiàn)效率比其它方法更高。本發(fā)明的另一目的為一種高效的S盒硬件模塊,接口為8比特輸入和8比特輸出。 包括3層運算和一個線序置換單元,其中每一層包括一個4比特到4比特的變換和兩個4 比特數(shù)的按位異或運算。其硬件實現(xiàn)結(jié)構(gòu)分為兩種對于方式1)純組合邏輯電路實現(xiàn)方式,模塊內(nèi)包括三個異或單元和三個查表單 元(即4比特到4比特的變換單元)P^ P2、P3和一個線序置換單元<<< m。所述異或單元完成4比特的二輸入異或,異或單元的電路實現(xiàn)簡單,是硬件設(shè)計 的基本組件,不是本發(fā)明所強(qiáng)調(diào)的內(nèi)容。所述查表單元完成對4比特查表運算,相當(dāng)于對4比特索引值進(jìn)行檢索。例如2個非門(非邏輯電路)可對2比特信息實現(xiàn)一種查表,即輸入為二進(jìn)制“00”時輸出為“11”; 輸入為二進(jìn)制“01”時輸出為“10”;輸入為二進(jìn)制“10”時輸出為“01”;輸入為二進(jìn)制“11” 時輸出為“00”。依次該查表運算可表示為二進(jìn)制形式 對應(yīng)的十進(jìn)制形式為 對于4比特查表可依此類推。實際上,當(dāng)前的硬件電路設(shè)計普遍采用硬件描述語 言,如Ve rilog或VHDL等,只需對輸出進(jìn)行定義后,如Case (input)OO :out <= 11 ;Ol :out <= 10 ;10 :out <= Ol ;11 :out <= OO ;Endcase即可進(jìn)一步通過綜合工具得到實際邏輯結(jié)構(gòu)得到ΡρΡ2、Ρ3的電路結(jié)構(gòu)。在硬件實現(xiàn)時,電路是否滿足時序約束的一個重要指標(biāo)就是最長組合邏輯路徑時 延,也稱為關(guān)鍵路徑。該方式關(guān)鍵路徑為χ2 — P1 —異或一P2 —異或一P3 —異或。通常一 個邏輯門的時間延遲遠(yuǎn)小于ns級。所以,對于方式1)純組合邏輯電路的實現(xiàn),可以在遠(yuǎn)小 于一個時鐘周期的時間內(nèi)保證所有門電路翻轉(zhuǎn)完畢,從而完成整個查表過程。對于方式2)時序電路實現(xiàn)方式,則需要設(shè)計有限狀態(tài)機(jī)以多個時鐘周期完成查 表。模塊中包括存儲Pi、p2、P3內(nèi)容的存儲器,用于存儲中間計算結(jié)果的寄存器資源(至少 為8個1比特,如果為η比特,且能被q整除(n、q為自然數(shù)),則硬件描述時可以定義為任 意n/q個q比特寄存器,無論如何劃分,在工作時須保證η/2比特寄存器同時更新),三個異 或單元、以及寄存器更新控制邏輯。所述查表步驟至少分為三個時鐘周期。設(shè)輸入為X,高4位為X1,低4位為χ2,設(shè)寄存器資源為8比特,分為一個4比特的 L和一個4比特的R分別進(jìn)行定義,則查表處理步驟為1) SP1內(nèi)容存在的基地址為P1J3ase,以X2偏移地址讀出相應(yīng)地址中的內(nèi)容,與X1 進(jìn)行異或后更新到4比特寄存器L中;2)將寄存器L的輸出作為偏移地址,選中P2中相應(yīng)的內(nèi)容(基地址為P2 base), 讀出數(shù)據(jù)后與X2進(jìn)行異或后更新到4比特寄存器R中;3)將寄存器R的輸出作為偏移地址,選中P3中相應(yīng)的內(nèi)容(基地址為P3 base), 讀出的數(shù)據(jù)與4比特寄存器L進(jìn)行異或后與R的輸出拼接為T,對T按左循環(huán)移位m進(jìn)行線 序排列,輸出y。根據(jù)上述步驟中各操作輸入、輸出的依存關(guān)系,可知方式2)的實現(xiàn)至少需3個時 鐘周期。由于各步驟間采用寄存器存儲中間結(jié)果,如此電路實現(xiàn)代價約80門,關(guān)鍵路徑相 比方式1)更短,但執(zhí)行時間相對長許多,不適合用于高速實現(xiàn)場合。與現(xiàn)有技術(shù)相比,本發(fā)明具有的積極效果為
該結(jié)構(gòu)利用簡單的易于硬件實現(xiàn)的置換和非置換變換,構(gòu)造具有良好密碼學(xué)性質(zhì) 的S盒。同時基于這種結(jié)構(gòu)構(gòu)造了一種高效的S盒硬件模塊,其硬件規(guī)模是通常查表實現(xiàn) 方法的1/5。
圖1、本發(fā)明的S盒結(jié)構(gòu)圖;圖2、實現(xiàn)方式1)的電路結(jié)構(gòu)示意圖;圖3、實現(xiàn)方式2)的電路結(jié)構(gòu)示意圖;圖4、實現(xiàn)方式2)的各步實現(xiàn)電路結(jié)構(gòu)示意圖; (a)方式2)的步驟1的實現(xiàn)數(shù)據(jù)路徑,(b)方式2)的步驟2的實現(xiàn)數(shù)據(jù)路徑,(c)方式2)的步驟3的實現(xiàn)數(shù)據(jù)路徑。
具體實施例方式現(xiàn)結(jié)合附圖,以8進(jìn)8出的置換S盒為例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)描述本發(fā)明基于結(jié)構(gòu)設(shè)計的S盒具體結(jié)構(gòu)如附圖1所示。S盒結(jié)構(gòu)分為三層,將輸入的 8比特分做兩部分,在三層中依次對兩部分值進(jìn)行更新。最后將兩部分值組合后輸出。利用本發(fā)明的S盒結(jié)構(gòu)構(gòu)造S盒,首先要選定3個4進(jìn)4出的變換ΡρΡ2、Ρ3,其中 P2為置換。3個變換均采用計算機(jī)基本運算復(fù)合構(gòu)造即可。第二,選定整數(shù)值m。在選定上述參數(shù)后,對于輸入為X,則輸出y = S(X)具體計算過程如下χ = X1 Il X2ti = X1 P1 (X2)t2 = X2 P2 (ti)t3 = ti P3 (t2)y = (t3 Il t2) <<< m其中II表示比特串的連接操作,X1為χ的高4比特,X2為χ的低4比特。下面,給出一個具體實施例并分析它的硬件實現(xiàn)效率及密碼學(xué)性質(zhì)。1.參數(shù)選取令m = 5。非置換P1對于輸入χ = (x3, x2, X1, χ。),輸出y = (y3,y2,Y1, y0)的代數(shù)表達(dá)式為y3 = χ3Χι+ΧιΧ0+Χ3+χι+1 ;J2 = x2x1+x2x0+x0+x2 ;Y1 = x3x0+x2x0+x0+x2 ;y0 = x3x1+x3x2+x3+xI+1 ο即 P1 = {9,15,0,14,15,15,2,10,0,4,0,12,7,5,3,9}。置換P2對于輸入χ = (x3,x2 x1 X0),輸出y = (y3,y2,y” y0)的代數(shù)表達(dá)式為y3 = X2X1X0+X3XiXo+X3X0+X3X1+X3X2+X2+X1 + 1 ;Y2 = Χ3Χ2Χ0+Χ3Χ2Χ1+Χ3Χ0+Χ1Χ0+Χ2Χ1+Χ0+Χ1+Χ2 ;J1 = Χ3Χ2Χι+ΧιΧ0+Χ2Χ0+Χ3Χ0+Χ3Χ1+Χ3Χ2+Χ1+Χ2+Χ3 ;
y。= X^^o + X^^XgX^XgXo + XgX^Xg + X^Xg ;即卩2= {8,13,6,5,7,0,12,4,11,1,14,10,15,3,9,2}。非置換P3對于輸入χ = (x3, x2, X1, xQ),輸出ι = (y3,J2, J1, y0)的代數(shù)表達(dá)式為y3 = X1XfX2Xc^X1 ;J2 = X3Xo+X3Xi+X0 ;J1 = x2x1+x3x1+x2+l ;y0 = x2x0+x3x2+x3 ;即 P3= {2,6,10,6,0,13,10,15,3,3,13,5,0,9,12,13}。
2. S盒表格選定上述變換及m后,對于所有xeF28,以χ的高4位為行號,低4位為列號,可計 算S盒輸出并構(gòu)造表1:表1、S盒輸出表 表格中數(shù)字采用16進(jìn)制表示。3. S盒各項密碼學(xué)指標(biāo)上述S盒的各項密碼學(xué)指標(biāo)為差分均勻性為8,非線性度為96,代數(shù)免疫度為2。 對于輸入 X = (x7, X6, X5, X4, X3, X2, X1, X0),輸出 y = (y7, y6, y5, y4, y3, y2, Y1, y0), 輸出的每一個分量關(guān)于所有輸入分量的表達(dá)式為J7 — X4X3X2Xi xO
+XgXi^X 1乂0+乂3乂5義1義0+義6義5義3義1+義7義2 X 1義0+義7義3義1義0+義7義3義2義0X0+X7X4X2 X1+X7X5X2X0+X7X5X2 X1+義7義6義2 義0+義7義6義3義0 +X^XgXgX 1+乂7義6義3義2+義3義2 X 1+義4義1義0+義4義2義1+義4義3義2+義4義3義1
+X7X4+X7X6 X7X3+X7Xι+X2+X7Ye — X5X3X2X1X0+X6X3X2X1X0+X7X3X2X1X0+X3X2X1X0+X7X5X2X0+X7X5X2X1+X5X3X2Xc^X5X3X1 Xc^X5X3X2X1+X7X6X2Xc^X6X2X1XoiX6X3X2Xo+X6X3X2X^X6X5X1 Xc^X6X5X3X1+X7X6X3Xc^X2X1XoiX7X2XoiX3X1 X0+^^^^3義0+義4義1義0+義4義2義1+義4義3義1+義5義1義0+義7義5義0+義7義5義2+義5義2義0+X5X2X1+X7X6X5+X6X5X3+X6X5X1+X7X3X1+X7X3X2+X7X0+X7X1+X1X0
+X2X2+X7X2 X2X0+X7X4+X4X3+X4X1+X7X5+X5X0+X5X2
+X5X4+X7X6+X6X0+X6X2 + X6X4+X6X5+X7X3+X0+X1+X2+X4+X5+X6y5 — X4X3X2X1X0+X5X3X2X1X0+X6X3X2X1X0+X5X2X1X0+X5X3X1X0+X5X3X2X0
+X5X4X2Xc^X5X4X2XAX6X2X1XoiX6X3X1 Xc^X6X5X3X1+X6X3X2Xi+X6X4X3Xo+X6X4X2Xo~^X6X5X3X2~^X5X3X1~^X5X4X0~^X4X1X0~^X4X2X0+X4X2X1+X4X3Xo+X4X3Xi+X5X3Xo~^X5X4X2~^X6X5X1~^X6X2X1~^X6X5X3
+X2X2+X5X3+X3X1+X5X1+X2X1+X2X0+X4X0+X4X1+X4X2
+1y4 — XsXgXgXiXo+XsXqXgXiXo+XgXsXgXiXo+XgXqXgXiXo+XgXqXsXgXo+XTXgXgXiXo+17^^12乂1乂()+乂7乂5乂3乂1乂()+乂7乂5乂3乂2義0+義4義2義1義0+義4義3義2義1+義4義3義1義0+X4X3X2Xo+X5X2X1X0~^X5X3X2X1~^X5X3X1X0~^X5X4X2X1~^X5X4X3X1
+X6X4X3XoiX6X3X2Xc^X6X3X2X1+X6X4X2X^X6X4X3X1+X6X5X2Xi+XgXgX^Xg+XgXgX^^X 1+X7X2 X1 義0+義7義6義3義0+義7義3義2 義0+義7義6義3義2+X^XgX^X ι+X7X3X2 X ι+X7X4X2X ι+X7X4X3X0+X7X5X3X2+X7X5X3X ι
+Χ6Χ4+Χ6Χ3+Χ7Χ4+Χ7Χ6+Χ7Χ3+Χ7Χ5+Χ2+Χ5+Χ3+1y3 — ^^^χ^χο+χ^χ^χ^χ^χο+χ^χ^χι^χο+χ^χ^χ^χ^χ^+χ^χ^χ^χ^χο+χ^χ^χ^χ^χο
+X6X4X3X1Xc^X6X4X3X2XoiX6X5X3X2XoiX6X5X3X2X1+X7X4X2xI X0+X7X4X3X1 xO+Χ7Χ5Χ3Χ1Χ0+Χ7Χ6Χ3Χ2ΧΟ^Χ4^2Χ1Χ0^Χ4Χ3Χ2Χ0^Χ5Χ4-^3Χ2~'~^-5Χ4Χ1Χ0+χ
+Xfi
+Xfi+X+Xk Χ^,ΧβΧι +X+X6X5X1 Χ0+Χ6Χ5Χ3Χο+Χ6Χ5Χ3Χ2^Χ6Χ5Χ4Χ0~^Χ6Χ5Χ4Χ1^Χ6Χ5Χ4Χ3+乂7^^2義1乂0+義7乂3義2義0+義7義3義1義0+義7義4義1義0+義7乂5義3義1+義7義5義4義1
〔0165]+χ Xq+X ^XgX! +叉4Χ3Χ0+Χ4Χ3Χ2+Χ5Χ1X0+X5X2X0+X5X2X1 +X5X4X1
+X7X2X0+X7X3X2+X7X3X0+X7X4X1+X7X5X4+X7X5X3+X7X6X0+X7X6X4+Χ7Χ6Χ3+^3Χ0+Χ7Χ0+Χ6Χ3+Χ2Χ1+Χ3Χ2+Χ4Χ0+Χ4Χ3+Χ5Χ2+Χ5Χ1+Χ5Χ0+Χ5Χ3+Χ6Χ2+Χ6Χ5+Χ7Χ2+Χ7Χ5+Χ0+Χ6+Χ7+Χ3+1Y2 —+X6X5X3X1Xc^X7X4X3X1 Xc^X7X5X2X1 XoiX7X5X3X2X0^X7X6X2X1 Xc^X7X6X3X1 X0+X^XgX^XgX Ι+Χ3Χ') X 1義0+義4義2義1義0+^^4義3義2義0+義4義3義1義0+義5義2義1義0
〔0175]+Χ7Χ2Χ2Χ1+Χ7Χ4Χ3Χ0+Χ7Χ5Χ3Χ0+Χ7Χ5Χ1Χ0+Χ7Χ5Χ4Χ1+Χ7Χ5Χ2Χ1
〔01 76]+X^XgXgX 1+義7義6義1義0+義7義6義2義1+義7義6義3義1+義7義6義4義1+義7義6義5義3
+XgX^Xg+Χ6Χ5Χ1+Χ7Χ1Χ0+Χ7Χ3Χ0+Χ7Χ4Χ2+Χ7Χ4Χ3+Χ7Χ5Χ4+Χ7Χ6Χ4
+ X4XQ+X2X0+X7X2+X4X1+X2X1+X3X1+X5X0+X5X1+X5X2+X5X4+X6X5J1 — XsXjaXiXo+XsX^XsX^Xi+x^xggXiXo+x^xgi^Xi+x^XsXsXgXo+XTXsX^XiXo+X4X3X2XAX5X3X2X1^X5X3X2X1+X5WXc^X5X4X2X1+X5X^X3X2
+X^XgXl ^^0+^^^^2義2乂0+義7義6義3義0+義7義6義3義1+義7義6義3^^2+義7義6義4義3
C。1 9θ1+Xi^XgX ]_+乂5乂4乂1+乂4乂1義0+"^5義1乂0+義5乂4乂0+乂5兄)乂0+叉5乂3乂2+乂5乂4叉2
+X6X1Xq+X6X2Xo+X6X2X1^X6X3X2^X6X4X3^X6X4X0~'~X6X4X1~'~X6X5X2
+XgXgXi+XyXgX 1+X7X5X1+X7X2X0+X7X5X4+X7X4X3+X7X4X2+X7X6X0
+X7X4+X7X6+X7+X5+X
Yo —
+X6X2X1 +^^^^!}^2乂1+乂7乂2義1義0+義7義3義1義0+義7義3義2義1+義7義4義2義0+義7義4義3義0 +X7X5X2X1+X7X5X3X2+X2X1X0+X3X1X0+X3X2X0+X3X2X1+X4X1X0 +X4X3X1+X4X3X2+X5X2XO~^X5X2X1~^X5X3X0~^X5X4X1~^X5X4X0~^X5X4X2
+X5X4X3+X6X2Xo^X6X2X1^X6X3X0^X6X5X3^X6X3X1~'~X6X4X0~'~X6X4X2+XgXgXl+XgXgX^^+XyXgXQ+XyXgXg+XyXgXi+XyXiXQ+XyXgXg+XyXsXA+^^7^^4^^0+^^^^4^^2+乂7乂5乂1+乂3乂1+乂5乂1+乂2義1+義3義0+義3義2+義4義3+x4x1+x5x0+x5x2+x6x5+x5x4+x6x0+x6x2+x6x3+x7x0
+X7X2+X7X6+X7X3+X7X1+X7X4+X1+X4+X5+X7表2給出了 S盒的每一個分量函數(shù)中各個次數(shù)的項出現(xiàn)的個數(shù)及數(shù)學(xué)期望值。表2、S盒的每一個分量函數(shù)中各個次數(shù)的項出現(xiàn)的個數(shù)及數(shù)學(xué)期望值表 4. S盒硬件實現(xiàn)效率分析所述一種高效的S盒硬件模塊可采用兩種方式實現(xiàn)1)純組合邏輯電路實現(xiàn)方式;2)時序電路實現(xiàn)方式。對于實現(xiàn)方式1),所述接口為8比特輸入和8比特輸出,模塊內(nèi)包括三個異或單元 Α、B、C和三個查表單元P1、P2、P3和一個線序置換單元“< < < m”。如圖2所示。在硬件實現(xiàn)時,電路是否滿足時序約束的一個重要指標(biāo)就是最長組合邏輯路徑時 延,也稱為關(guān)鍵路徑。該方式關(guān)鍵路徑為χ2 — P1 —異或一P2 —異或一P3 —異或。通常一 個邏輯門的時間延遲遠(yuǎn)小于ns級。所以,對于方式1)純組合邏輯電路的實現(xiàn),可以在遠(yuǎn)小 于一個時鐘周期的時間內(nèi)保證所有門電路翻轉(zhuǎn)完畢,從而完成整個查表過程。該電路的查表時間小于一個時鐘周期,若輸出在每個時鐘周期當(dāng)即寄存,則在 80MHz時鐘下,實現(xiàn)吞吐率為640Mbps (8*80MHz),實現(xiàn)面積約100門,查表過程全部采為組 合邏輯實現(xiàn)。對于方式2)Pp P2, P3內(nèi)容存儲在存儲器中的時序電路實現(xiàn)方式,則需要設(shè)計有限 狀態(tài)機(jī)以多個時鐘周期完成查表。設(shè)輸入為X,高4位為X1,低4位為X2,則查表處理過程 如圖3所示,至少需要三次寄存,每次需一個時鐘周期來更新相應(yīng)的寄存器,具體工作電路 如圖4所示。作為一種實施例,如P” P2、P3內(nèi)容存放在RAM介質(zhì)中,則處理步驟如下1)圖4(a),設(shè)P1內(nèi)容存在的基地址為P1J3ase,以X2偏移地址讀出相應(yīng)地址中的 內(nèi)容,與X1進(jìn)行異或后更新到4比特寄存器L中;2)圖4(b),設(shè)P2內(nèi)容存在的基地址為P2 base,以L的內(nèi)容為偏移地址讀出相應(yīng)地 址中的內(nèi)容,與X2進(jìn)行異或后更新到4比特寄存器R中;3)圖4(c),將寄存器R的輸出作為偏移地址,選中P3中相應(yīng)的內(nèi)容(基地址為P3 base),讀出數(shù)據(jù)后與4比特寄存器L進(jìn)行異或后與R拼接為T,對T按左循環(huán)移位m進(jìn)行線 序排列,輸出y。方式2)的實現(xiàn)至少需3個時鐘周期。由于各步驟間采用寄存器存儲中間結(jié)果,如 此電路邏輯部分實現(xiàn)代價約80門(不包括RAM單元),關(guān)鍵路徑相比方式1)更短,但執(zhí)行 時間相對長許多,例如在80MHz時鐘下,實現(xiàn)吞吐率最高為213Mbps (8比特*80MHz/3),采用 時序邏輯電路實現(xiàn)。
權(quán)利要求
一種S盒構(gòu)造方法,其步驟為1)選定一整數(shù)m以及三個n進(jìn)n出的變換單元P1、P2、P3;其中P2為置換單元,n為自然數(shù);2)將輸入的2n比特信息x分為兩部分,記為x1、x2,其中,x1為輸入信息的高n位、x2為輸入信息的低n位;3)將x2經(jīng)過P1變換后與x1異或,輸出結(jié)果記作t1;4)將t1經(jīng)過P2變換后與x2異或,輸出結(jié)果記作t2;5)將t2經(jīng)過P3變換后與t1異或,輸出結(jié)果記作t3;6)將t3作為高n位,t2作為低n位連接成為一個2n比特的信息,記作t;7)將信息t循環(huán)左移m位輸出。
2.如權(quán)利要求1所述的方法,其特征在于所述整數(shù)m的取值為1 2n-l;所述Ρ”Ρ3* η進(jìn)η出的映射;所述η為整數(shù)、且η彡2。
3.如權(quán)利要求1或2所述的方法,其特征在于采用一個線序置換單元將信息t循環(huán)左 移m位輸出。
4.如權(quán)利要求1或2所述的方法,其特征在于所述步驟3) 5)中的變換采用組合邏 輯電路實現(xiàn);其中組合邏輯電路的關(guān)鍵路徑為x2 — P1 —異或一P2 —異或一P3 —異或。
5.如權(quán)利要求1或2所述的方法,其特征在于所述步驟3) 5)中的變換采用時序電 路實現(xiàn)。
6.如權(quán)利要求5所述的方法,其特征在于所述采用時序電路實現(xiàn)變換的方法為1)將?工、‘。中的信息分別存儲在一存儲器中;2)根據(jù)P1的基地址,以X2為偏移地址讀出所述存儲器中存儲的P1信息,將其與X1進(jìn) 行異或后更新到一 η比特寄存器L中;3)根據(jù)P2的基地址,以該寄存器L的輸出作為偏移地址,讀取所述寄存器中存儲的P2 信息,將其與X2進(jìn)行異或后更新到一 η比特寄存器R中;4)根據(jù)P3的基地址,以該寄存器R的輸出作為偏移地址,讀取所述寄存器中存儲的P3 信息,將其與該寄存器L進(jìn)行異或。
7.一種S盒,其特征在于包括三個異或單元Α、B、C,三個變換單元Pp P2、P3, 一個線序 置換單元;其中異或單元A的兩輸入端分別與一 η比特信息數(shù)據(jù)端和變換單元P1的輸出端 連接,異或單元A的輸出端分別與變換單元P2的輸入端和異或單元C的輸入端連接;另一 η比特信息數(shù)據(jù)端分別與變換單元P1的輸入端和異或單元B的輸入端連接;異或單元B的 另一輸入端與變換單元P2的輸出端連接;異或單元B的輸出端分別與所述線序置換單元的 輸入端和變換單元P3的輸入端連接;異或單元C的輸出端與所述線序置換單元的輸入端連 接;變換單元P3的輸出端與異或單元C的輸入端連接;其中P2為置換單元,η為自然數(shù)。
8.如權(quán)利要求7所述的S盒,其特征在于S盒為8比特輸入接口和8比特輸出接口; 所述η取值為4 ;所述Pp P3為4進(jìn)4出的變換。
9.一種S盒,其特征在于包括三個異或單元Α、B、C,三個變換單元Pp P2、P3, 一個線序 置換單元,兩個寄存器L、R,一存儲器;其中變換單元Pp P2、P3分別通過基地址線與所述存 儲器連接;異或單元A的兩輸入端分別與一η比特信息數(shù)據(jù)端和變換單元P1W輸出端連接, 且其輸出端與所述寄存器L的輸入端連接;另一 η比特信息數(shù)據(jù)端分別與變換單元P1的輸入端和異或單元B的輸入端連接;異或單元B的另一輸入端與變換單元P2的的輸出端連接, 且其輸出端與所述寄存器R的輸入端連接;所述寄存器R的輸出端分別與變換單元P3的輸 入端和所述線序置換單元的輸入端連接;所述寄存器L的輸出端分別與異或單元C的輸入 端和變換單元P2的輸入端連接;異或單元C的另一輸入端與變換單元P3的輸出端連接,且 其輸出端與所述線序置換單元的輸入端連接,其中P2為置換單元,η為整數(shù)、且η ^ 2。
10.如權(quán)利要求9所述的S盒,其特征在于S盒為8比特輸入接口和8比特輸出接口 ; 所述η取值為4 ;所述P” P3為4進(jìn)4出的變換。
全文摘要
本發(fā)明公開了一種S盒構(gòu)造方法及S盒,屬于通信技術(shù)領(lǐng)域。本方法為1)選定一整數(shù)m以及三個n進(jìn)n出的變換單元P1、P2、P3;其中P2為置換單元,n為大于等于2的整數(shù);2)取輸入的2n比特信息x的高n位記為x1、低n位記為x2;3)將x2經(jīng)P1變換后與x1異或,輸出記作t1;4)將t1經(jīng)P2變換后與x2異或,輸出記作t2;5)將t2經(jīng)P3變換后與t1異或,輸出記作t3;6)將t3作為高n位,t2作為低n位連接成為一個2n比特的信息,記作t;7)將信息t循環(huán)左移m位輸出。本發(fā)明的S盒包括三個異或單元A、B、C,三個變換單元P1、P2、P3,一個線序置換單元。與現(xiàn)有技術(shù)相比,本發(fā)明的S盒方法易于實現(xiàn),且所構(gòu)造的S盒具有良好密碼學(xué)性質(zhì)、運行效率高。
文檔編號H04L9/06GK101848081SQ201010204508
公開日2010年9月29日 申請日期2010年6月11日 優(yōu)先權(quán)日2010年6月11日
發(fā)明者馮秀濤, 吳文玲, 周春芳 申請人:中國科學(xué)院軟件研究所