專利名稱:演化s盒對抗旁路式攻擊的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及密碼安全性應(yīng)用技術(shù)領(lǐng)域,尤其涉及一種演化S盒對抗旁路式攻擊的 方法。
背景技術(shù):
密碼是信息安全的關(guān)鍵所在,如何設(shè)計安全的密碼應(yīng)用系統(tǒng)是密碼學(xué)所研究的重 點。密碼算法可分為對稱密碼和非對稱密碼,對稱密碼又可以分為流密碼、分組密碼、hash 算法。S盒在流密碼、分組密碼以及hash函數(shù)等對稱密碼的設(shè)計里均具有重要安全作用,是 主要的或唯一的非線性變換部件。動態(tài)的S盒設(shè)計方法應(yīng)用于對抗DPA等一系列旁路式攻 擊,會使攻擊復(fù)雜度水平成指數(shù)級提升,結(jié)果是,通過適當(dāng)?shù)念l率改變,最終使得攻擊所需 的復(fù)雜度達到或超過窮舉的級別,進而達到免疫。旁路式攻擊包括TA、DFA、DPA、SPA等一系列攻擊方法,產(chǎn)生的主要原因是安全機 制與其實現(xiàn)之間的分隔。DPA(Differential Power Analysis)即差分功耗攻擊,絕大多數(shù)現(xiàn)代密碼設(shè)備是 通過半導(dǎo)體邏輯門實現(xiàn)的,更準(zhǔn)確的說,就是由晶體管構(gòu)成的。當(dāng)邏輯門充、放電時,電子流 流過硅質(zhì)基底,消耗能量(功耗)、產(chǎn)生電磁輻射。使用特定的統(tǒng)計函數(shù),仍能用來攻擊密碼 系統(tǒng)。能量攻擊范圍廣,易于實施且成本低、不需人工干預(yù),使它難于被檢測到。不需芯片 實現(xiàn)的具體信息;不僅僅是理論,也不局限與智能卡(已成功攻擊將近50種不同產(chǎn)品)。DFA(Differential Fault Analysis)是差分錯誤(故障)攻擊或差分錯誤(故 障)分析的縮寫,將正確的與錯誤的密碼編碼相比較,從而析出秘藏的密鑰,智能卡中的微 處理器要求在穩(wěn)定的電壓下工作,能量供應(yīng)的中斷就好像突然沖擊程序運行或復(fù)位電路。 然而,一個短而巧妙的脈沖可以引起單步的程序錯誤而微處理器仍能繼續(xù)執(zhí)行程序。旁路攻擊較其它攻擊方式具有更實用、更隱蔽、更快速等特點。在密碼應(yīng)用領(lǐng)域, 特別是密碼算法硬件實現(xiàn)方法中,旁路式攻擊的效果較為明顯,自提出以來,對很多密碼系 統(tǒng)的安全性構(gòu)成了嚴(yán)重的威脅。目前,許多安全應(yīng)用和主要認(rèn)證標(biāo)準(zhǔn)都應(yīng)增加旁路攻擊防 范對策。目前國內(nèi)相關(guān)的產(chǎn)品比較少,而該類攻擊對于智能卡等領(lǐng)域的效果尤其明顯。一 旦攻擊設(shè)備流入境內(nèi),其后果將非常嚴(yán)重。
發(fā)明內(nèi)容
針對上述存在的技術(shù)問題,本發(fā)明的目的是提供一種演化S盒對抗旁路式攻擊的 方法,以對抗旁路式攻擊對密碼系統(tǒng)帶來的安全隱患。為達到上述目的,本發(fā)明采用如下的技術(shù)方案利用隨機數(shù)發(fā)生器產(chǎn)生隨機數(shù);根據(jù)隨機數(shù)的取值,決定緩存器的內(nèi)容送入常數(shù)乘法變換部件、加1變換部件、逆 變換部件中的哪一個部件;經(jīng)過上述變換后,送入緩存器;
在下一節(jié)拍送入常數(shù)乘法變換部件、加1變換部件、逆變換部件,并同時送入判別器以判斷盒子的指標(biāo)是否合格;如果是一個合格的盒子,則計數(shù)器清零,如果盒子不合格,則計數(shù)器加1,如果計數(shù) 器的值達到某一閾值,則重置緩存器的內(nèi)容為恒等置換。本發(fā)明具有以下優(yōu)點和積極效果1)以動態(tài)的S盒設(shè)計對于DPA等一系列旁路式攻擊,會使攻擊復(fù)雜度成倍的提 升;2)通過適當(dāng)?shù)念l率改變,最終使得攻擊所需的復(fù)雜度達到或超過窮舉的級別,即 達到攻擊免疫的效果;3)演化S盒及動態(tài)S盒對于標(biāo)準(zhǔn)DPA等旁路式攻擊的效果是比較明顯的。
圖1是本發(fā)明提出的S盒快速演化算法的總體結(jié)構(gòu)圖。圖2是本發(fā)明提出的演化S盒對抗旁路式攻擊的方法的流程圖。圖3是在AES中利用本發(fā)明提出的演化S盒對抗旁路式攻擊的方法的結(jié)構(gòu)示意 圖。
具體實施例方式
下面以具體實施例結(jié)合附圖對本發(fā)明作進一步說明本發(fā)明提出的演化S盒對抗旁路式攻擊的方法,具體采用以下技術(shù)方案,如圖1所 示附圖1是S盒快速演化算法的總體結(jié)構(gòu)圖。部件11是隨機源,隨機生成隨機數(shù)0、 1、2 ;部件12是常數(shù)乘法變換,常數(shù)為相應(yīng)域的一個本原元;部件13是加1變換;部件14是 逆變換;部件15是一個判別器,用來計算盒子的密碼學(xué)指標(biāo),并根據(jù)設(shè)定的閾值對盒子進 行取舍;部件16是緩存器,用來緩存生成的S盒,也是初始化部件;附圖2是本發(fā)明提出的演化S盒對抗旁路式攻擊的方法的流程圖,具體步驟如 下步驟1 部件11產(chǎn)生隨機數(shù),根據(jù)隨機數(shù)的取值,決定緩存器部件16的內(nèi)容送入 部件12,13或14。步驟2 根據(jù)隨機數(shù)的取值,決定緩存器的內(nèi)容送入乘變換部件,加變換部件,逆 變換部件中的一個部件,之后送入緩存部件16。步驟3 在下一節(jié)拍送入變換部件12,13或14,并同時送入部件15進行密碼學(xué)性 質(zhì)的計算并判斷盒子的指標(biāo)是否合格,如果是一個合格的盒子,則計數(shù)器清零,如果盒子不 合格,則計數(shù)器加1,如果計數(shù)器的值達到某一閾值,則重置緩存器的內(nèi)容為恒等置換。S盒的密碼性質(zhì)有很多,這些密碼性質(zhì)從不同層次、不同角度來描述該S盒抗各種 密碼攻擊的能力。具體來說,這些密碼性質(zhì)有正交性、非線性度、自相關(guān)性、代數(shù)次數(shù)、代數(shù) 表達式項數(shù)、差分均勻性、魯棒度等。1.正交性這個密碼性質(zhì)用于刻畫S盒輸出的分布狀態(tài),也稱為等概性或均衡性,SP型等密碼網(wǎng)絡(luò)結(jié)構(gòu)中的S盒必須正交,否則解密時所用的S盒就不唯一。一般地,當(dāng)S盒滿足η > =m時,強密碼性質(zhì)的S盒必須具備正交性,否則在隨機均勻輸入下,S盒的某些輸出向量 將頻繁出現(xiàn),密碼分析者可以利用這一不平衡性攻擊基于此S盒的密碼體制。不過,顯然這 個定義只有η > = m時有意義,對cast類密碼算法的S盒來說,正交性是沒有定義的。2.非線性度S盒的非線性度用于刻畫抗線性攻擊能力,它的定義是根據(jù)布爾函數(shù)的非線性度 得出,而布爾函數(shù)的非線性度又與其循環(huán)Walsh譜相關(guān)。nXm(n 進 m 出的)S 盒 F= (f1 f2, . . . , fm)的非線性度為 =2n-1-2-1maxmax|W(xi)(x)|該性質(zhì)的取值范圍為0 ZHj^H ([]為取整符號),且值越大則S盒抗線性攻 擊能力越強,但在正交的S中,最大值是不可能達到的,因為非線性度為0 廣L2MH的 布爾函數(shù)不平衡,由這些布爾函數(shù)組成的S盒肯定不正交,因此正交的S盒一定小于0 ^L2MH,并且當(dāng)n>=2時為偶數(shù)。3.自相關(guān)性S盒自相關(guān)性再次借助了布爾函數(shù)的描述特征,它主要用于刻畫抗差分攻擊能力。Snxm 盒 F = (f1; f2,· · ·,fm)的自相關(guān)性為 其中,gi= Bi · (U2,...,fm),ai = (ai,a2,···,am),| 其中分量不全為 0,且為 0-1變量,fi,f2,...,乙為S盒對應(yīng)的m個布爾函數(shù),I I指取絕對值。這個量化值的取值范 圍為0 2n,不過其值越小則表明S盒抗差分攻擊能力越強。4.代數(shù)次數(shù)代數(shù)次數(shù)是用于刻畫S盒的抗線性攻擊能力的一方面。上面S盒的密碼性質(zhì)計算 都是基于布爾函數(shù)的真值表,而要計算代數(shù)次數(shù),則必須借助于布爾函數(shù)的代數(shù)正規(guī)型表
7J\ ο5.代數(shù)表達式項數(shù)S盒的代數(shù)表達式項數(shù)主要刻畫抗插值攻擊能力。前面定義的代數(shù)次數(shù)是S盒中 的布爾函數(shù)的代數(shù)表達式次數(shù)的最小值,而這里所說的代數(shù)表達式是指S盒作為一個整體 的輸入輸出關(guān)系,稱為S盒的代數(shù)表達式,一般地,求取此代數(shù)表達式可采用拉格朗日插值 法,而該方法要求輸入大小等于輸出,因此,這里的定義僅對置換盒有意義。6.差分均勻性S盒的差分均勻性是S盒的一個重要密碼性質(zhì),用于刻畫抗差分攻擊能力。Snxm 盒 F(X) = (x),...,fffl(x))的差分均勻性定義為 該性質(zhì)的取值范圍為2n_m 2n(n ^ m),取值越小則S盒抗差分攻擊能力越強。7.魯棒度
S盒的魯棒度用于刻畫S盒的抗高階差分攻擊能力。給定Snxm盒的差分分布矩陣A(F) = (λη)和差分均勻度δ (F),記
JMI'l f Λ· i 0'·"ρ·、, ρ;
=則記氺 FW1—為 Snxm 盒的魯棒度。下表為主要密碼學(xué)性質(zhì)表 附圖3是一輪AES加密方法的結(jié)構(gòu)圖。共有Addroundkey,Sbox,Shiftrow, Mixcolumn四個部件和四個寄存器。輸入,輸出以及密鑰均為128bit。Addroundkey即圈密鑰加變換;Sbox (S盒變換)是AES的唯一的非線性變換,是AES安全的關(guān)鍵。在原始AES中 使用16個相同的Sbox,在本發(fā)明中,使用動態(tài)生成的Sbox代替原AES種的Sbox ;Shiftrow (行移位)對狀態(tài)的行進行循環(huán)移位,行移位變換屬于置換,本質(zhì)在于把 數(shù)據(jù)打亂重排;MiXC0lumn(列混淆)變換把狀態(tài)的列視為GF(28)上的多項式a(x),乘以一個固 定的多項式c(x),并模x4+l。工作過程如下將動態(tài)生成的Sbox替換原AES中的Sbox,具體實現(xiàn)時可以在采用 在線更新或離線更新兩種方式更新硬件設(shè)計電路,目前這兩種方式都是芯片開發(fā)商所支持 的。上述實例用來解釋說明本發(fā)明,而不是對本發(fā)明進行限制,在本發(fā)明的精神和權(quán) 利要求的保護范圍內(nèi),對本發(fā)明做出任何的修改和改變,都落入本發(fā)明的保護范圍。
權(quán)利要求
一種演化S盒對抗旁路式攻擊的方法,其特征在于,包括以下步驟利用隨機數(shù)發(fā)生器產(chǎn)生隨機數(shù);根據(jù)隨機數(shù)的取值,決定緩存器的內(nèi)容送入常數(shù)乘法變換部件、加1變換部件、逆變換部件中的哪一個部件;經(jīng)過上述變換后,送入緩存器;在下一節(jié)拍送入常數(shù)乘法變換部件、加1變換部件、逆變換部件,并同時送入判別器以判斷盒子的指標(biāo)是否合格;如果是一個合格的盒子,則計數(shù)器清零,如果盒子不合格,則計數(shù)器加1,如果計數(shù)器的值達到某一閾值,則重置緩存器的內(nèi)容為恒等置換。
全文摘要
本發(fā)明涉及密碼安全性應(yīng)用技術(shù)領(lǐng)域,尤其涉及一種演化S盒對抗旁路式攻擊的方法。本發(fā)明利用隨機數(shù)發(fā)生器產(chǎn)生隨機數(shù),根據(jù)隨機數(shù)的取值,決定緩存器的內(nèi)容送入常數(shù)乘法變換部件、加1變換部件、逆變換部件中的哪一個部件,經(jīng)過上述變換后,送入緩存器,在下一節(jié)拍送入常數(shù)乘法變換部件、加1變換部件、逆變換部件,并同時送入判別器以判斷盒子的指標(biāo)是否合格,如果是一個合格的盒子,則計數(shù)器清零,如果盒子不合格,則計數(shù)器加1,如果計數(shù)器的值達到某一閾值,則重置緩存器的內(nèi)容為恒等置換。本發(fā)明通過適當(dāng)?shù)念l率改變,最終使得攻擊所需的復(fù)雜度達到或超過窮舉的級別,演化S盒及動態(tài)S盒對于標(biāo)準(zhǔn)DPA等旁路式攻擊的效果是比較明顯的。
文檔編號G06F21/00GK101866401SQ20101018123
公開日2010年10月20日 申請日期2010年5月17日 優(yōu)先權(quán)日2010年5月17日
發(fā)明者伍前紅, 唐明, 李渡, 沈菲, 竇青, 高思 申請人:武漢大學(xué)