亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

密碼S盒評(píng)估新方法與流程

文檔序號(hào):12490883閱讀:1053來源:國(guó)知局
密碼S盒評(píng)估新方法與流程

本發(fā)明涉及信息安全領(lǐng)域,具體是一種密碼S盒評(píng)估新方法。



背景技術(shù):

密碼S盒是對(duì)稱密碼算法的關(guān)鍵部件,其代數(shù)性質(zhì)和代數(shù)結(jié)構(gòu)很大程度上決定了整個(gè)密碼算法的安全強(qiáng)度。關(guān)于S盒的代數(shù)性質(zhì)研究較多,目前最常見的S盒度量指標(biāo)列舉如下:非線性度、差分均勻性、平衡性、擴(kuò)散性和可逆性、代數(shù)次數(shù)及項(xiàng)數(shù)分布、正交性、相關(guān)免疫性。對(duì)于代數(shù)性質(zhì)較好的S盒,為了抵抗線性密碼分析,一般都會(huì)具有較高的非線性度;為了抵抗差分密碼分析,需要較大的差分均勻性;為了抵抗代數(shù)攻擊和立方攻擊,需要較高的代數(shù)次數(shù),并且不同的代數(shù)次數(shù)的項(xiàng)數(shù)分布較均勻。

1991年,Biham和Shamir在密碼分析體制中提出了差分攻擊的概念。從那之后,學(xué)者在設(shè)計(jì)S盒時(shí)開始考慮其抵抗差分攻擊的能力。Dawson和Tavares進(jìn)一步擴(kuò)展了S盒的安全性指標(biāo),詳細(xì)說明了設(shè)計(jì)S盒怎樣很好地抵抗差分攻擊。2005年,Chen等提出了關(guān)于S盒的偏差檢測(cè)。他們利用這種新的統(tǒng)計(jì)測(cè)試性能指標(biāo)對(duì)Rijndael和Crypton結(jié)構(gòu)中的S盒進(jìn)行測(cè)試,得到在這種新指標(biāo)下Rijndael的安全性能優(yōu)于Crypton。2009年,LIU和XIAO提出k-k獨(dú)立的概念,給出了S盒和組件函數(shù)線性組合的反演公式,這個(gè)工具在一定程度下反映了S盒的安全性。2013年,Boura等根據(jù)布爾函數(shù)中的Maiorana-McFarland構(gòu)造理論提出了一個(gè)針對(duì)非線性S盒新的度量指標(biāo):(v,w)線性。這個(gè)指標(biāo)可以反映S盒線性關(guān)系的擴(kuò)散能力。他們利用這個(gè)新指標(biāo)優(yōu)化了針對(duì)Hamsi算法的Fuhr攻擊。

利用這些關(guān)于S盒的安全性檢測(cè)技術(shù),對(duì)于設(shè)計(jì)性質(zhì)較好的S盒具有很大的幫助。但是,這些方法一般都是在代數(shù)性質(zhì)上對(duì)S盒進(jìn)行評(píng)估,而使用當(dāng)今的S盒設(shè)計(jì)方法得到的S盒是否存在代數(shù)結(jié)構(gòu)上的缺陷還不為人知,所以,迫切需要一種可以在代數(shù)結(jié)構(gòu)上對(duì)S盒進(jìn)行評(píng)估的方法。



技術(shù)實(shí)現(xiàn)要素:

針對(duì)上述不足,本發(fā)明所要解決的技術(shù)問題是提供一種在代數(shù)結(jié)構(gòu)上對(duì)密碼S盒進(jìn)行評(píng)估的新方法,引入S盒的局部線性關(guān)系分解以及局部二次關(guān)系分解概念,深入研究了S盒的代數(shù)結(jié)構(gòu),提出了一個(gè)針對(duì)S盒的代數(shù)結(jié)構(gòu)的新的評(píng)估方法。

為解決上述問題,本發(fā)明密碼S盒評(píng)估新方法,包括全排列產(chǎn)生模塊、隨機(jī)數(shù)產(chǎn)生模塊、局部線性檢測(cè)模塊、局部二次檢測(cè)模塊,評(píng)估方法包括以下步驟:

S1:利用全排列產(chǎn)生模塊產(chǎn)生一組數(shù)的全排列,該模塊輸出為一個(gè)4維或8維的數(shù)組,將其定義為排列C;

S2:利用隨機(jī)數(shù)產(chǎn)生模塊產(chǎn)生3組,每組60個(gè)隨機(jī)數(shù),并且這三組隨機(jī)數(shù)在相同的位置的值是不能相同的,該模塊的輸出為三個(gè)60維的數(shù)組,將其定義為A1,A2,A3;

S3:將數(shù)組A1,A2和排列C輸入到局部線性檢測(cè)模塊;

局部線性檢測(cè)模塊按照某一個(gè)順序?qū)盒的輸入進(jìn)行固定后,可以得到的線性表達(dá)式的個(gè)數(shù),該模塊的輸入為A1,A2,C,輸出為兩個(gè)數(shù)組C1,C2,其中,C1中存儲(chǔ)的為此時(shí)固定的順序,C2中存儲(chǔ)的為對(duì)應(yīng)的線性關(guān)系的個(gè)數(shù);

S4:將數(shù)組A1,A2,A3和排列C輸入到局部二次檢測(cè)模塊;

局部二次檢測(cè)模塊按照某一個(gè)順序?qū)盒的輸入進(jìn)行固定后,可以得到的最高代數(shù)次數(shù)為二次的表達(dá)式的個(gè)數(shù),該模塊的輸入為A1,A2,A3,C,輸出為兩個(gè)數(shù)組C,D2,其中,C中存儲(chǔ)的為此時(shí)固定的順序,D2中存儲(chǔ)的為對(duì)應(yīng)的二次關(guān)系的個(gè)數(shù);

S5:根據(jù)局部線性檢測(cè)模塊的輸出和局部二次檢測(cè)模塊的輸出對(duì)S盒進(jìn)行評(píng)估,如果對(duì)于局部線性檢測(cè)模塊的輸出C2中存儲(chǔ)的數(shù)的和與2n-1相差較少,說明S盒的代數(shù)結(jié)構(gòu)較好;如果局部線性檢測(cè)模塊的輸出C2中存儲(chǔ)的數(shù)的和與2n-1相差較大,說明S盒的代數(shù)結(jié)構(gòu)較差;對(duì)于局部二次檢測(cè)模塊的輸出D2,如果D2[i]的值較大,而i的值較小,如i=4或5,說明S盒的代數(shù)結(jié)構(gòu)較差;如果D2[i]的值較大,但是i的值也較大,如i=6,說明S盒的代數(shù)結(jié)構(gòu)較好。

與現(xiàn)有的密碼S盒的評(píng)估方法相比,本發(fā)明公開了一種密碼S盒評(píng)估新方法,對(duì)密碼S盒的代數(shù)結(jié)構(gòu)進(jìn)行了評(píng)估。這種新的評(píng)估方法如果應(yīng)用到密碼算法S盒的設(shè)計(jì)中,將會(huì)避免S盒在代數(shù)結(jié)構(gòu)上的缺陷,對(duì)設(shè)計(jì)安全性較高的S盒具有很重要的意義。

附圖說明

圖1為實(shí)施例密碼S盒評(píng)估方法的流程框圖。

圖2為實(shí)施例中S3.1步驟的說明圖。

圖3為實(shí)施例中S3.2步驟的說明圖。

圖4為實(shí)施例中S3.3步驟的說明圖。

圖5為實(shí)施例中S3.4步驟的說明圖。

具體實(shí)施方式

下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明內(nèi)容作進(jìn)一步的說明,但不是對(duì)本發(fā)明的限定。

實(shí)施例

參照?qǐng)D1,密碼S盒評(píng)估方法的流程框圖,以8位的密碼S盒為例,評(píng)估方法包括如下的步驟:

S1:利用全排列產(chǎn)生模塊產(chǎn)生一個(gè)[1,2,3,4,5,6,7,8]的排列C。

S2:利用隨機(jī)數(shù)產(chǎn)生模塊產(chǎn)生三個(gè)不同的數(shù)組A1,A2,A3。

S3:將數(shù)組A1,A2和排列C輸入到局部線性檢測(cè)模塊;

S3.1:在這個(gè)模塊中,首先,對(duì)于密碼S盒的輸入X,先固定X[C[1]]為0,將X[C[2]],X[C[3]],X[C[4]],X[C[5]],X[C[6]],X[C[7]],X[C[8]]賦值為A1[1]中對(duì)應(yīng)的十進(jìn)制數(shù)的二進(jìn)制形式,得到了一個(gè)密碼S盒的輸出Out1,參照?qǐng)D2;

S3.2:再將X[C[2]],X[C[3]],X[C[4]],X[C[5]],X[C[6]],X[C[7]],X[C[8]],賦值為A2[1]中對(duì)應(yīng)的十進(jìn)制數(shù)的二進(jìn)制形式,得到了另一個(gè)密碼S盒的輸出Out2,參照?qǐng)D3;

S3.3:將X[C[2]],X[C[3]],X[C[4]],X[C[5]],X[C[6]],X[C[7]],X[C[8]]賦值為A1[1]與A2[1]的二進(jìn)制異或后的值,得到的密碼S盒的輸出為Out3,參照?qǐng)D4;

S3.4:最后,將X[C[2]],X[C[3]],X[C[4]],X[C[5]],X[C[6]],X[C[7]],X[C[8]]賦值為全零,得到密碼S盒的一個(gè)輸出Out4,參照?qǐng)D5,并利用公式

f(x1+x2)=f(x1)+f(x2)+f(0)

判斷密碼S盒的每一位的輸出是否都是滿足上面的關(guān)系,即

Out3[i]=Out1[i]+Out2[i]+Out4[i](1<=i<=8)

S3.5:按照S3.1,S3.2,S3.3,S3.4,再將A1[2]-A1[60]以及A2[2]-A2[60]分別帶入到X[C[2]],X[C[3]],X[C[4]],X[C[5]],X[C[6]],X[C[7]],X[C[8]],如果輸出都是滿足上面的關(guān)系,將C2[1]加1;

S3.6:之后再固定X[C[1]]為1,并按照S3.1,S3.2,S3.3,S3.4,S3.5,判斷此時(shí)得到的表達(dá)式是否滿足線性關(guān)系,如果是滿足的,將C2[1]加1;

S3.7:擴(kuò)大固定的位數(shù)i,按照S3.1,S3.2,S3.3,S3.4,S3.5,S3.6,判斷此時(shí)得到的表達(dá)式是否是滿足線性關(guān)系,如果是滿足的,將C2[i]加1;

S3.8:當(dāng)固定的位數(shù)i從1-7跑完后,得到了一個(gè)數(shù)組C2后,用C2[i]=C2[i]-2C2[i-1]計(jì)算C2,如果C[i](i<7)至少有一個(gè)不為0,將C,C2輸出,此時(shí)得到的C2[i]的值才是固定i位后,得到的線性關(guān)系的個(gè)數(shù);得到的C2[i]為按照C的順序固定i位后得到的線性關(guān)系的個(gè)數(shù)。

對(duì)于S3的偽代碼如下:

函數(shù)Linear(i,num,C,A1[k],Out1)表示按照C中的順序,固定i位,并將固定的位置賦值為num的二進(jìn)制的形式,非固定的位置賦值為A1[k]的二進(jìn)制的形式,得到的輸出為Out1。

S4:如果,C2[i]=0(i<7),則表示沒有通過局部線性檢測(cè),此時(shí),將數(shù)組A1,A2,A3和排列C輸入到局部二次檢測(cè)模塊;

S4.1:在這個(gè)模塊中,首先,對(duì)于密碼S盒的輸入X,先固定X[C[1]]為0,將X[C[2]],X[C[3]],X[C[4]],X[C[5]],X[C[6]],X[C[7]],X[C[8]]分別賦值為A1[1],A2[1],A3[1]中對(duì)應(yīng)的十進(jìn)制數(shù)的二進(jìn)制形式,得到了一個(gè)密碼S盒的輸出分別為Out1,Out2,Out3;

S4.2:將X[C[2]],X[C[3]],X[C[4]],X[C[5]],X[C[6]],X[C[7]],X[C[8]]賦值為全零,得到密碼S盒的一個(gè)輸出Out4;

S4.3:最后,將A1[1]^A2[1]、A1[1]^A3[1]、A2[1]^A3[1]、A1[1]^A2[1]^A3[1]對(duì)應(yīng)的二進(jìn)制的形式分別賦值到X[C[2]],X[C[3]],X[C[4]],X[C[5]],X[C[6]],X[C[7]],X[C[8]],得到對(duì)應(yīng)的密碼S盒的輸出分別為Out5,Out6,Out7,Out8;并利用公式

f(x1+x2+x3)=f(x1+x2)+f(x1+x3)+f(x2+x3)+f(x1)+f(x2)+f(x3)+f(0)Out8[i]=Out1[i]+Out2[i]+Out3[i]+Out4[i]+Out5[i]+Out6[i]+Out7[i](1<=i<=8)判斷密碼S盒的每一位的輸出是否都是滿足上面的關(guān)系,

S4.4:按照S4.1,S4.2,S4.3,再將A1[2]-A1[60]以及A2[2]-A2[60]分別帶入到X[C[2]],X[C[3]],X[C[4]],X[C[5]],X[C[6]],X[C[7]],X[C[8]],如果輸出都是滿足上面的關(guān)系,將D2[1]加1;

S4.5:之后再固定X[C[1]]為1,并按照S4.1,S4.2,S4.3,S4.4,判斷此時(shí)得到的表達(dá)式是否滿足二次關(guān)系,如果是滿足的,將D2[1]加1;

S4.6:擴(kuò)大固定的位數(shù)i,并按照S4.1,S4.2,S4.3,S4.4,S4.5,判斷此時(shí)得到的表達(dá)式是否是滿足二次關(guān)系,如果是滿足的,將D2[i]加1;

S4.7:最后,當(dāng)固定的位數(shù)i從1-7跑完后,得到了一個(gè)數(shù)組D2,如果D2[i](i<6)至少有一個(gè)不為零,將C,D2輸出,得到的D2[i]為按照C的順序固定i位后得到的二次關(guān)系的個(gè)數(shù)。

對(duì)于S4的偽代碼的形式如下:

S5:根據(jù)局部線性檢測(cè)模塊和局部二次檢測(cè)模塊的輸出,對(duì)S盒進(jìn)行評(píng)估。如果對(duì)于局部線性檢測(cè)模塊的輸出C2中存儲(chǔ)的數(shù)的和與2n-1相差較少,說明S盒的代數(shù)結(jié)構(gòu)性質(zhì)較好;如果局部線性檢測(cè)模塊的輸出C2中存儲(chǔ)的數(shù)的和與2n-1相差較大,說明S盒的代數(shù)結(jié)構(gòu)較差;對(duì)于局部二次檢測(cè)模塊的輸出D2,如果D2[i]的值較大,而i的值較小,如i=4或5,說明S盒的代數(shù)結(jié)構(gòu)較差;如果D2[i]的值較大,但是i的值也較大,如i=6,說明S盒的代數(shù)結(jié)構(gòu)較好。

在隨機(jī)數(shù)產(chǎn)生模塊中,使用了C語言中自帶的函數(shù)rand()模2n-i,產(chǎn)生了數(shù)組A1,數(shù)組A2為在數(shù)組A1的基礎(chǔ)上,A2[i]=(A1[i]+11)mod(2n-i),數(shù)組A3為在A1,A2的基礎(chǔ)上,A3[i]=(A1[i]+A2[i])mod(2n-i)。這樣做可以使每一個(gè)數(shù)組對(duì)應(yīng)的位置的值是不同的,并且能夠達(dá)到隨機(jī)的效果。

對(duì)于S3,如果在C2[4],C2[5],C2[6]的位置至少有一個(gè)不為零,則此時(shí)不用再執(zhí)行S4,這樣可以很好的提高程序運(yùn)行的速度。

本發(fā)明提出的S盒評(píng)估新方法,對(duì)于今后設(shè)計(jì)性質(zhì)更好的S盒也具有很大的參考價(jià)值。

下面通過對(duì)一些算法的測(cè)試,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)的說明:

利用本發(fā)明的評(píng)估方法,對(duì)AES,SMS4,以及ZUC算法的S盒的代數(shù)結(jié)構(gòu)進(jìn)行評(píng)估,具體步驟如下:

步驟一:將AES,SMS4,和ZUC算法的S盒放到評(píng)估方法中;

步驟二:按照評(píng)估方法中S1和S2,分別產(chǎn)生一個(gè)固定的順序C和三個(gè)隨機(jī)數(shù)組A1,A2,A3;

步驟三:按照評(píng)估方法中S3,對(duì)AES,SMS4以及FOX算法的S盒進(jìn)行測(cè)試,如果對(duì)于固定的位數(shù)i<7時(shí),存在線性關(guān)系,則將對(duì)應(yīng)的固定的順序C以及得到的線性關(guān)系的個(gè)數(shù)C2打印出來;

步驟四:如果對(duì)于某一個(gè)固定順序,i<7時(shí)不存在線性關(guān)系,則利用評(píng)估方法中的S4進(jìn)行二次檢測(cè);如果存在二次關(guān)系,則將固定的順序以及得到的二次關(guān)系的個(gè)數(shù)打印出來。

步驟五:利用評(píng)估方法中的S5對(duì)得到的數(shù)據(jù)進(jìn)行分析。測(cè)試得到的結(jié)果為表1-1。

表1-1

通過測(cè)試,可以發(fā)現(xiàn)AES的S盒以及AES的S逆盒的為128,SMS4的S盒的為127,這些算法的值與128相差不大,說明其S盒的設(shè)計(jì)具有很好的代數(shù)結(jié)構(gòu)。而FOX算法的為121與128相差較大,說明其代數(shù)結(jié)構(gòu)較差,可以利用它的這種性質(zhì)構(gòu)造區(qū)分器,對(duì)其進(jìn)行分析。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1