專利名稱::一種實現(xiàn)s-盒線性變換的方法
技術(shù)領(lǐng)域:
:本發(fā)明屬于信息安全領(lǐng)域,具體涉及到密碼算法中一種實現(xiàn)s-盒線性變換的方法。
背景技術(shù):
:密碼算法是實現(xiàn)信息安全的重要基礎(chǔ),一種加密算法可以在一定環(huán)境下提供數(shù)據(jù)內(nèi)容的機密性保護,實現(xiàn)數(shù)據(jù)完整性保護以及消息來源的認(rèn)證。但密碼算法的設(shè)計存在安全性和實現(xiàn)性能的折衷。安全性反映攻擊該算法所花的代價,通常用破譯所需要的計算量和數(shù)據(jù)量等來描述,當(dāng)然與破譯方法直接相關(guān),而實現(xiàn)性能則從兩個方面反映出來硬件實現(xiàn)性能和軟件實現(xiàn)性能。硬件實現(xiàn)性能除了算法實現(xiàn)速度外,還考慮硬件實現(xiàn)代價,這些都是硬件實現(xiàn)的性能指標(biāo)。軟件實現(xiàn)時主要考慮算法實現(xiàn)速度和存儲要求,當(dāng)然有時候還對可執(zhí)行代碼以及源代碼的大小有要求。密碼算法的設(shè)計在近年來得到很大的發(fā)展,國際上的學(xué)者們已經(jīng)設(shè)計出多種密碼算法,有些被發(fā)現(xiàn)存在某些安全漏洞,有些具有較好的安全性和實現(xiàn)性能。中國的商業(yè)需求也對具有自主知識產(chǎn)權(quán)的密碼算法有很大需求。中國自主研發(fā)的SMS4密碼算法就是一種為無線局域網(wǎng)產(chǎn)品使用所設(shè)計的分組密碼算法,也是國內(nèi)第一個公布的商用分組密碼算法。目前密碼算法設(shè)計的常用方法是使用S-盒變換。S-盒是一個滿足一定密碼學(xué)性質(zhì)的非線性變換,其目的是對輸入消息進行置亂,使之充分混合。在設(shè)計中,s-盒通常對一個消息組進行置亂,而輸入消息組的大小直接決定s-盒設(shè)計和實現(xiàn)的困難程度。顯然,處理大消息塊的s-盒實現(xiàn)起來代價很大,無論硬件還是軟件實現(xiàn)都需要耗費很大資源,因此在具體設(shè)計這種大s-盒時,通常是劃分為多個小的s-盒,然后將這些小s-盒的輸出結(jié)果在線性變換混合器中進行一定程度的混合(如圖1所示)。在SMS4分組密碼加密方法中,其輪變換所使用的就是一個32X32階S-盒,但因為這仍然是個不容易實現(xiàn)的大S-盒,因此具體實現(xiàn)時使用了4個8X8階S-盒,然后通過線性變換混合器混將這幾個S-盒的輸出結(jié)果混合到一起。不僅在分組密碼的設(shè)計中使用S-盒變換,在許多流密碼的設(shè)計中也使用了s-盒。同樣為了使用小的s-盒來達到整體上類似于大s-盒變換的目的,一種常用手段是使用一種快速的線性變換將這些小s-盒的輸出結(jié)果混合在一起。這種線性變換的作用就是一個線性混合器。在選擇線性變換時,試驗表明,對32比特字的線性變換,形如L(x)=xe(x〈〈〈a)④(x〈《b)0(x<〈〈c)④(x〈<〈d)的變換可以達到字節(jié)級的最佳差分分支數(shù),而且實現(xiàn)簡單。這里的變元x是一固定長度為n比特的整數(shù)變量,a,b,c,(1為小于!1的不同正整數(shù),運算符號"<<<"表示左循環(huán)移位算子,""為整數(shù)的對應(yīng)比特異或運算。在SMS4分組密碼中,所使用的線性模塊是一種對32比特字的線性變換,其輸入是來自4個8X8階S-盒的輸出。該線性變換可具體表示為L(x)=x@(x《〈2)@(x《〈10)十(x〈《18)④(x《〈24)。但是要要實現(xiàn)線性模塊4<formula>formulaseeoriginaldocumentpage5</formula>的運算,如果直接從變換的表達式上看,需要4次循環(huán)移位和4次整數(shù)的異或運算。在硬件實現(xiàn)時需要4個循環(huán)移位電路和4個異或門。
發(fā)明內(nèi)容本發(fā)明提供了一種實現(xiàn)S-盒線性變換的方法,本發(fā)明給出4種不同的方法來實現(xiàn),使之通過3次循環(huán)移位和3次整數(shù)的異或運算就可以完成線性變換,使得實現(xiàn)S-盒的方法變的更為高效。本發(fā)明的技術(shù)方案概述如下—種實現(xiàn)S-盒線性變換的方法,其步驟包括1)將S-盒劃分為多個小S-盒,將S-盒的輸入數(shù)據(jù)也分為多個塊,分別為小S-盒輸入數(shù)據(jù);2)將上述小S-盒的輸出結(jié)果合并為一個n比特的數(shù)據(jù)塊x,作為線性變換混合器L(x)=x@(x《〈a)0(x〈《b)@(x〈〈<c)④&<〈〈(1)的輸入,其中參數(shù)a、b、c和d可以互換,且均為小于n的不同正整數(shù),<<<表示左循環(huán)移位算子,e表示比特異或運算符;3)當(dāng)L(x)的參數(shù)a、b、c和d滿足其中兩個數(shù)之和等于另外兩個數(shù)之和時,使用下述方法一進行計算(1)計算71=乂0&〈〈<11);(2)計算y2二yl0(yl〈《v);(3)計算"乂)=乂@^2〈〈^);所述u,v,w均為小于n的不同正整數(shù),且滿足下列方程組,其中,u和v可以互換a=w6=wwc=vw當(dāng)L(x)的參數(shù)a、b、c和d滿足其中一個數(shù)是另外兩個數(shù)之和時,使用下述方法二進行計算,其中,u和v可以互換(1)計算yl-x0(x〈《u);(2)計算y2,ie(yl《〈v);(3)計算L(x)二y20(x〈《w);所述u,v,w均為小于n的不同正整數(shù),且滿足下列方程組a=wZ=vc=w=M十V4)計算出L(x)結(jié)果即為完成線性變換,實現(xiàn)S-盒輸出。進一步,L(x)的參數(shù)a、b、c和d滿足其中兩個數(shù)之和等于另外兩個數(shù)之和在模n算下成立:(2)計算y2:x④(yl《〈v);(3)計算L(x)=y1@(y2《〈w);所述u,v,w均為小于n的不同正整數(shù),且滿足下列方程組當(dāng)L(x)的參數(shù)a、b、c和d滿足其中兩個數(shù)之和等于另外兩個數(shù)之和時,使用下述方法四計算(1)計算ytxe(xK(u);(2)計算y2二x④(yl〈《v);(3)計算L(x)^y20(yl《〈w);所述u,v,w均為小于n的不同正整數(shù),且滿足下列方程組<formula>formulaseeoriginaldocumentpage6</formula>4)計算出L(x)結(jié)果即為完成線性變換,實現(xiàn)S-盒輸出。進一步,L(x)的參數(shù)a、b、c和d滿足其中兩個數(shù)之和等于另外兩個數(shù)之和在模n運算下成立:進一步,L(x)的參數(shù)a、b、c和d滿足其中一個數(shù)是另外兩個數(shù)之和在模n(運算所述方法三對n比特長整數(shù)進行左循環(huán)移k位時,可以等價于右循環(huán)移n-k位,其中k為小于n的正整數(shù)。所述方法四對n比特長整數(shù)進行左循環(huán)移k位時,可以等價于右循環(huán)移n-k位,其中k為小于n的正整數(shù)。本發(fā)明上述的實現(xiàn)S盒線性變換的方法能夠帶來如下的技術(shù)效果1、本發(fā)明通過對現(xiàn)有技術(shù)的線性變換混合器中的4次循環(huán)移位和4次整數(shù)的異或運算,簡化為本發(fā)明的3次循環(huán)移位和3次整數(shù)的異或運算來完成,在硬件實現(xiàn)時由原來的4個循環(huán)移位電路和4個異或門減少為3個循環(huán)移位電路和3個異或門,在效率上節(jié)省開支25%。在軟件實現(xiàn)上也同樣節(jié)省計算代價。2、采用多個小S-盒和線性變換混合器來實現(xiàn)大S-盒加密的功能,在硬件實現(xiàn)和軟件實現(xiàn)上都節(jié)約大量資源,而對密碼學(xué)性質(zhì)卻可以很大程度地保留。圖1現(xiàn)有技術(shù)中S-盒實現(xiàn)方法的流程示意圖;圖2本發(fā)明在線性變換混合器中采用方法一實現(xiàn)線性混合的流程示意圖;圖3本發(fā)明在線性變換混合器中采用方法二實現(xiàn)線性混合的流程示意圖;圖4本發(fā)明在線性變換混合器中采用方法三實現(xiàn)線性混合的流程示意圖;圖5本發(fā)明在線性變換混合器中采用方法四實現(xiàn)線性混合的流程示意圖。具體實施例以下結(jié)合附圖對本發(fā)明進行詳細(xì)說明,但不構(gòu)成對本發(fā)明的限制。實現(xiàn)S-盒的方法流程如圖1所示,包括如下步驟1)根據(jù)S-盒所滿足的密碼學(xué)性質(zhì),將大S-盒劃分為多個小S-盒;所述S-盒的輸入數(shù)據(jù)也分為多個塊,分別為這些小s-盒的輸入數(shù)據(jù)。2)將上述小S-盒的輸出結(jié)果合并為一個n比特的數(shù)據(jù)塊x,然后通過線性變換混合器L(x)=x(x〈《a)@(x《〈b)④(x《〈c)@&〈〈<01)進行混合,線性變換中的參數(shù)a、b、c和(1是可以互換的,均為小于11的不同正整數(shù),<<<是左循環(huán)移位算子,0為比特異或運算符,n理論上可以取任意整數(shù)值,在實際計算機應(yīng)用上取計算機容易處理的數(shù)值,如8、32、64、128、256等。針對上述線性變換L(x),當(dāng)其中的參數(shù)a、b、c和d滿足其中兩個數(shù)之和等于另外兩個數(shù)之和時,可使用本發(fā)明的方法一或方法四,當(dāng)滿足其中一個數(shù)是另外兩個數(shù)之和時,可使用本發(fā)明的方法二或方法三。注意上述參數(shù)所滿足的關(guān)系只要在模n運算下(除n取余)成立即可。具體地,本發(fā)明的"方法一"如圖2所示,包括如下步驟(1)計算y^x④(x〈《u);(2)計算72=71出^1<〈〈¥);(3)計算1^&)^@^2<<<^),該結(jié)果即為最終5-盒輸出。在上述方法中,首先根據(jù)a,b,c,d的值計算u,v,w的取值。在本方法中,u,v,w與a,b,c,d的關(guān)系滿足下列方程組7<formula>formulaseeoriginaldocumentpage8</formula>上述方程組可能沒有解,也可能解不唯一。但當(dāng)有解時,任意一組解都可以。實驗表明,只要數(shù)組a,b,c,d滿足關(guān)系a+d=b+c,上述方程組總存在關(guān)于u,v,w的解。顯然當(dāng)存在解時,u和v可以互換,即上述方程組的解總是成對出現(xiàn)的(除非b=c)。注意a,b,c,d是沒有次序的,而且關(guān)系a+d=b+c只要在模n運算下成立即可。本發(fā)明的"方法二"如圖3所示,包括如下步驟(1)計算yl:x0(x《〈u);(2)計算72=71@^1〈〈<^;(3)計算[^00,2@("〈〈\0,該結(jié)果即為最終S-盒輸出。在上述方法中,首先根據(jù)a,b,c,d的值計算u,v,w的取值。在本方法中,u,v,w與a,b,c,d的關(guān)系滿足下列方程組a=w6=vc=w=w十v上述方程組可能沒有解,也可能解不唯一。很明顯,上述方程組總存在關(guān)于u,v,w的解的充分必要條件是滿足d=a+b。注意數(shù)組a,b,c,d是不分次序的,因此只要它們中的某個數(shù)是另外兩個數(shù)的和,上述方程組都有關(guān)于u,v,w的解。注意關(guān)系d=a+b只要在模n運算下成立即可。同樣可以看到,當(dāng)上述方程組有解時,u和v可以互換,即上述方程組的解總是成對出現(xiàn)的(除非a=b)。本發(fā)明的"方法三"如圖4所示,包括如下步驟(1)計算71=乂&〈〈〈11);(2)計算72=乂@^1〈《^);(3)計算1&)=乂1@(72〈〈),該結(jié)果即為最終S-盒輸出。在上述方法中,首先根據(jù)a,b,c,d的值計算u,v,w的取值。在本方法中,u,v,w與a,b,c,d的關(guān)系滿足下列方程組a=w6=wC=Vw乂=WVw上述方程組可能沒有解,也可能解不唯一。很明顯,上述方程組總存在關(guān)于u,v,w的解的充分必要條件是滿足d=a+c。注意數(shù)組a,b,c,d是不分次序的,因此只要它們中的某個數(shù)是另外兩個數(shù)的和,上述方程組都有關(guān)于u,v,w的解。注意關(guān)系d=a+c只要在模n運算下成立即可。同樣可以看到,當(dāng)上述方程組有解時,通過將a和c對換,可以得到關(guān)于u,v,w的另一組解,即上述方程組的解總是成對出現(xiàn)的。本發(fā)明的"方法四"如圖5所示,包括如下步驟8(1)計算ytx0(x〈《u);(2)計算72=乂出^1〈〈<¥);(3)計算"^=72@^1《^),該結(jié)果即為最終5-盒輸出。在上述方法中,首先根據(jù)a,b,c,d的值計算u,v,w的取值。在本方法中,u,v,w與a,b,c,d的關(guān)系滿足下列方程組a=v6=vv述方程組可能沒有解,也可能解不唯一。實驗表明,當(dāng)滿足a+d=b+c時,上述方程組總存在關(guān)于u,v,w的解。注意數(shù)組a,b,c,d是不分次序的,而且關(guān)系a+d=b+c只要在模n運算下成立即可。同樣可以看到,當(dāng)上述方程組有解時,可以將v和w對換,即上述方程組的解總是成對出現(xiàn)的。對使用上述方法中的任何一種完成的線性變換,將其應(yīng)用于幾個小s-盒的輸出,則線性變換的最終輸出可以看作一個由多個小S-盒實現(xiàn)的大S-盒的輸出,這樣就完成了s-盒實現(xiàn)的全過程。下面舉例說明在SMS4分組密碼的加密方法中,線性變換混合器是一種對32比特字的線性變換,其輸入是來自4個8X8階小S-盒的輸出。下面主要列舉S-盒實現(xiàn)方法的線性變換混合器中實現(xiàn)線性變換的方法,前兩個線性模塊的最小差分分支數(shù)均為5,后兩個線性模塊的最小差分分支數(shù)均為4。實施例1:假定4個8X8階的小S-盒的輸出結(jié)果為4個8比特數(shù)組,它們合并成為32比特的數(shù)組x。該數(shù)組作為線性變換混合器L(x)=x(x《<2)@(x《<10)(x〈<<18)(x《〈24)的輸入,因為線性變換中的參數(shù)滿足10=18+24mod32,則可以使用本發(fā)明的如圖3所示的方法二,通過下列步驟實現(xiàn)(1)計算yl:x④(x《〈18);(2)計算y2,10(y1《〈24);(3)計算"力=72@"〈《10),該結(jié)果即為最終5-盒輸出。因方法二中u和v可以互換,因此也可以通過下列步驟實現(xiàn)(1)計算y^x0(x《〈24);(2)計算y2:yl④(yK《18);(3)計算L(x^y2e(x《〈10),該結(jié)果即為最終S-盒輸出。上述線性變換式也可使用本發(fā)明的如圖4所示的第3種線性變換方法來實現(xiàn),其步驟為(1)計算y^x④(x〈《18);(2)計算y2二x④(yK《22);(3)計算L(x)=yl@(y2〈《2),該結(jié)果即為最終S-盒輸出。因方法三中a和c可以互換,也可以通過下列線性變換步驟實現(xiàn)(1)計算yl^x④(x〈《24);(2)計算y2:x④(yl《〈16);(3)計算L(x)=yl@(y2《〈2),該結(jié)果即為最終S-盒輸出。9實施例2:假定4個8X8階的小S-盒的輸出結(jié)果為4個8比特數(shù)組,它們合并成為32比特的數(shù)組x。該數(shù)組作為線性變換混合器L(x)=x0(x<〈〈8)e(x《<10)@(x《〈18)e(x《〈26)的輸入,因為線性變換中的參數(shù)滿足關(guān)系18=8+10,則可以使用本發(fā)明的如圖3所示的方法二,通過下列步驟實現(xiàn)(1)計算yl:xe(X《〈8);(2)計算y2二yl①(yl《〈10);(3)計算1^00=72@&〈〈〈26),該結(jié)果即為最終5-盒輸出。因為方法二中U和V可以互換,因此也可以通過下列步驟實現(xiàn)(1)計算71=乂@&〈<〈10);(2)計算乂2=乂1@"1〈<〈8);(3)計算L(x^y2④(x《〈26),該結(jié)果即為最終S-盒輸出。上述線性變換也可使用本發(fā)明的如圖4所示的第三種方法來實現(xiàn),其步驟為(1)計算71^@&〈<〈18);(2)計算y2二x0(yl〈《16);(3)計算L(x^yl④(y2《〈26),該結(jié)果即為最終S-盒輸出。方法三中a和c可以互換,因此也可以通過下列步驟實現(xiàn)(1)計算yl^x④(x〈《10);(2)計算y2二x十(yl《〈14);(3)計算L(x),10(y2〈《26),該結(jié)果即為最終S-盒輸出。實施例3:假定4個8X8階的小S-盒的輸出結(jié)果為4個8比特數(shù)組,它們合并成為32比特的數(shù)組x。該數(shù)組作為線性變換混合器L(x)(x《<3)④(x《<l1)@(x〈〈<17)④(x《〈25)的輸入,因為線性變換中的參數(shù)滿足3+25=11+17,則可以使用本發(fā)明的如圖2所示的方法一,通過下列步驟實現(xiàn)(1)計算y^x④(x《〈8);(2)計算y2:yl十(yK《14);(3)計算L(x)^x④(y2《〈3),該結(jié)果即為最終S-盒輸出。因方法一中u和v可以互換,因此也可以通過下列步驟實現(xiàn)(1)計算y^x0(x《〈14);(2)計算y2^yl④(yl《〈8);(3)計算1^00^@^2〈〈<3),該結(jié)果即為最終3-盒輸出。上述線性變換也可使用本發(fā)明的如圖5方法四來實現(xiàn),其步驟為(1)計算71=乂&〈〈〈14);(2)計算y2:x④(yl<<<3);(3)計算")0=72@^1〈〈<11),該結(jié)果即為最終5-盒輸出。因方法四中可以將V和W對換,因此也可以通過下列步驟實現(xiàn)(1)計算71=乂@&<<〈14);(2)計算乂2=乂(71〈<〈11);(3)計算")0,2@(71〈〈<3),該結(jié)果即為最終5-盒輸出。實施例4:假定4個8X8階的小S-盒的輸出結(jié)果為4個8比10特數(shù)組,它們合并成為32比特的數(shù)組x。該數(shù)組作為線性變換混合器L(x)=x(x〈《3)出(x《<8)@(x《<15)(x《〈28)的輸入,因為線性變換中的參數(shù)滿足關(guān)系3+8=15+28mod32,則使用本發(fā)明的方法一,我們可以通過下列步驟實現(xiàn)(1)計算y^x0(x《〈20);(2)計算乂2=乂1@(乂1<〈<25);(3)計算L(x)^④(y2《〈15),該結(jié)果即為最終S-盒輸出。方法一中的u和v可以互換,因此也可以通過下列步驟實現(xiàn)(1)計算y^xe(x〈《25);(2)計算72=乂10^1〈〈〈20);(3)計算")()=^^2〈<〈15),該結(jié)果即為最終5-盒輸出。上述線性變換也可使用本發(fā)明的如圖5方法四來實現(xiàn),其步驟為(1)計算yPxe(x〈《25);(2)計算y2:x0(y1《〈3);(3)計算1^00=72@^1<〈<15),該結(jié)果即為最終5-盒輸出。方法四中v和w可以對換,因此也可以通過下列步驟實現(xiàn)(1)計算yl:x④(x〈《25);(2)計算72=乂@^1《〈15);(3)計算L(x^y2④(yl《〈3),該結(jié)果即為最終S-盒輸出。以上通過具體實施例詳細(xì)描述了本發(fā)明所提供的方法,本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,在不脫離本發(fā)明實質(zhì)的范圍內(nèi),可以對上述的方法進行各種修改或變形。比如對32比特長整數(shù)進行左循環(huán)移k位時,可以等價于右循環(huán)移32-k位,因此x<<<25等價于x>>>7,yl<<<3等價于yl>>>29。但顯然本發(fā)明的具體實現(xiàn)形式并不局限于此,在n取其他值如64、128的時候也可以實現(xiàn),在不背離本發(fā)明所述方法的精神和權(quán)利要求范圍的情況下對它進行的各種顯而易見的改變都在本發(fā)明的保護范圍之內(nèi)。權(quán)利要求一種實現(xiàn)S-盒線性變換的方法,其步驟包括1)將S-盒劃分為多個小S-盒,將S-盒的輸入數(shù)據(jù)也分為多個塊,分別為小S-盒輸入數(shù)據(jù);2)將上述小S-盒的輸出結(jié)果合并為一個n比特的數(shù)據(jù)塊x,作為線性變換混合器的輸入,其中n為正整數(shù),參數(shù)a、b、c和d能夠互換,且均為小于n的不同正整數(shù),<<<表示左循環(huán)移位算子,表示比特異或運算符;3)當(dāng)L(x)的參數(shù)a、b、c和d滿足其中兩個數(shù)之和等于另外兩個數(shù)之和時,使用下述方法一進行計算(1)計算<mrow><mi>y</mi><mn>1</mn><mo>=</mo><mi>x</mi><mo>⊕</mo><mrow><mo>(</mo><mi>x</mi><mo><</mo><mo><</mo><mo><</mo><mi>u</mi><mo>)</mo></mrow><mo>;</mo></mrow>(2)計算<mrow><mi>y</mi><mn>2</mn><mo>=</mo><mi>y</mi><mn>1</mn><mo>⊕</mo><mrow><mo>(</mo><mi>y</mi><mn>1</mn><mo><</mo><mo><</mo><mo><</mo><mi>v</mi><mo>)</mo></mrow><mo>;</mo></mrow>(3)計算<mrow><mi>L</mi><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>=</mo><mi>x</mi><mo>⊕</mo><mrow><mo>(</mo><mi>y</mi><mn>2</mn><mo><</mo><mo><</mo><mo><</mo><mi>w</mi><mo>)</mo></mrow><mo>;</mo></mrow>所述u,v,w均為小于n的不同正整數(shù),且滿足下列方程組,其中,u和v能夠互換<mrow><mfencedopen='{'close=''><mtable><mtr><mtd><mi>a</mi><mo>=</mo><mi>w</mi></mtd></mtr><mtr><mtd><mi>b</mi><mo>=</mo><mi>u</mi><mo>⊕</mo><mi>w</mi></mtd></mtr><mtr><mtd><mi>c</mi><mo>=</mo><mi>v</mi><mo>⊕</mo><mi>w</mi></mtd></mtr><mtr><mtd><mi>d</mi><mo>=</mo><mi>u</mi><mo>⊕</mo><mi>v</mi><mo>⊕</mo><mi>w</mi></mtd></mtr></mtable></mfenced><mo>;</mo></mrow>當(dāng)L(x)的參數(shù)a、b、c和d滿足其中一個數(shù)是另外兩個數(shù)之和時,使用下述方法二進行計算,其中,u和v能夠互換(1)計算<mrow><mi>y</mi><mn>1</mn><mo>=</mo><mi>x</mi><mo>⊕</mo><mrow><mo>(</mo><mi>x</mi><mo><</mo><mo><</mo><mo><</mo><mi>u</mi><mo>)</mo></mrow><mo>;</mo></mrow>(2)計算<mrow><mi>y</mi><mn>2</mn><mo>=</mo><mi>y</mi><mn>1</mn><mo>⊕</mo><mrow><mo>(</mo><mi>y</mi><mn>1</mn><mo><</mo><mo><</mo><mo><</mo><mi>v</mi><mo>)</mo></mrow><mo>;</mo></mrow>(3)計算<mrow><mi>L</mi><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>=</mo><mi>y</mi><mn>2</mn><mo>⊕</mo><mrow><mo>(</mo><mi>x</mi><mo><</mo><mo><</mo><mo><</mo><mi>w</mi><mo>)</mo></mrow><mo>;</mo></mrow>所述u,v,w均為小于n的不同正整數(shù),且滿足下列方程組<mrow><mfencedopen='{'close=''><mtable><mtr><mtd><mi>a</mi><mo>=</mo><mi>u</mi></mtd></mtr><mtr><mtd><mi>b</mi><mo>=</mo><mi>v</mi></mtd></mtr><mtr><mtd><mi>c</mi><mo>=</mo><mi>w</mi></mtd></mtr><mtr><mtd><mi>d</mi><mo>=</mo><mi>u</mi><mo>⊕</mo><mi>v</mi></mtd></mtr></mtable></mfenced><mo>;</mo></mrow>4)計算出L(x)結(jié)果即為完成線性變換,實現(xiàn)S-盒輸出。F2009102369823C0000011.tif,F2009102369823C0000012.tif2.如權(quán)利要求1所述的方法,其特征在于,L(x)的參數(shù)a、b、c和d滿足其中兩個數(shù)之和等于另外兩個數(shù)之和在模n運算下成立。3.如權(quán)利要求1所述的方法,其特征在于,L(x)的參數(shù)a、b、c和d滿足其中一個數(shù)是另外兩個數(shù)之和在模n運算下成立。4.如權(quán)利要求1所述的方法,其特征在于,所述方法一對n比特長整數(shù)進行左循環(huán)移k位時,等價于右循環(huán)移n-k位,其中k為小于n的正整數(shù)。5.如權(quán)利要求1所述的方法,其特征在于,所述方法二對n比特長整數(shù)進行左循環(huán)移k位時,等價于右循環(huán)移n-k位,其中k為小于n的正整數(shù)。6.—種實現(xiàn)S-盒線性變換的方法,其步驟包括1)將S-盒劃分為多個小S-盒,將S-盒的輸入數(shù)據(jù)也分為多個塊,分別為小S-盒輸入數(shù)據(jù);2)將上述小S-盒的輸出結(jié)果合并為一個n比特的數(shù)據(jù)塊x,作為線性變換混合器L(x)=x@(x《〈a)@(x〈〈〈b)④(x《〈c)(x《〈d)的輸入,其中n為正整數(shù),參數(shù)a、b、c和d能夠互換,且均為小于n的不同正整數(shù),<<<表示左循環(huán)移位算子,0表示比特異或運算符;3)當(dāng)L(x)的參數(shù)a、b、c和d滿足其中一個數(shù)是另外兩個數(shù)之和時,使用下述方法三計算(1)計算y^x出(x《〈u);(2)計算y2二x十(yl《〈v);(3)計算1^(力=71@^2<〈^);所述u,v,w均為小于n的不同正整數(shù),且滿足下列方程組,其中,a和c能夠互換a=w6=wc=v十w當(dāng)L(x)的參數(shù)a、b、c和d滿足其中兩個數(shù)之和等于另外兩個數(shù)之和時,使用下述方法四計算(1)計算71^0&〈〈〈11);(2)計算72^@^1〈<^);(3)計算L(x)二y2十(yl《〈w);所述u,v,w均為小于n的不同正整數(shù),且滿足下列方程組,其中,v和w能夠互換<formula>formulaseeoriginaldocumentpage0</formula>4)計算出L(x)結(jié)果即為完成線性變換,實現(xiàn)S-盒輸出。7.如權(quán)利要求6所述的方法,其特征在于,L(x)的參數(shù)a、b、c和d滿足其中兩個數(shù)之和等于另外兩個數(shù)之和在模n運算下成立。8.如權(quán)利要求6所述的方法,其特征在于,L(x)的參數(shù)a、b、c和d滿足其中一個數(shù)是另外兩個數(shù)之和在模n運算下成立。9.如權(quán)利要求6所述的方法,其特征在于,所述方法三對n比特長整數(shù)進行左循環(huán)移k位時,等價于右循環(huán)移n-k位,其中k為小于n的正整數(shù)。10.如權(quán)利要求6所述的方法,其特征在于,所述方法四對n比特長整數(shù)進行左循環(huán)移k位時,等價于右循環(huán)移n-k位,其中k為小于n的正整數(shù)。全文摘要本發(fā)明公開了一種實現(xiàn)S-盒線性變換的方法,其實現(xiàn)的過程為將S-盒劃分為多個小S-盒,將S-盒的輸入數(shù)據(jù)也分為多個塊,分別為小S-盒輸入數(shù)據(jù);將上述小S-盒的輸出結(jié)果合并為一個n比特的數(shù)據(jù)塊x,作為線性變換混合器的輸入;然后給出4種不同的方法來實現(xiàn)上述過程,使之通過3次循環(huán)移位和3次整數(shù)的異或運算完成線性變換;計算出L(x)結(jié)果即為完成線性變換,實現(xiàn)S-盒輸出。本發(fā)明在硬件實現(xiàn)時由原來的4個循環(huán)移位電路和4個異或門減少為3個循環(huán)移位電路和3個異或門,在效率上節(jié)省開支25%。在軟件實現(xiàn)上同樣節(jié)省了計算代價。文檔編號H04L9/00GK101719823SQ20091023698公開日2010年6月2日申請日期2009年10月30日優(yōu)先權(quán)日2009年10月30日發(fā)明者吳文玲,武傳坤申請人:中國科學(xué)院軟件研究所