亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一種基于門限與感染技術(shù)的SM4算法綜合防護(hù)實(shí)現(xiàn)

        2022-07-07 08:02:38焦志鵬匡曉云黃開天
        電子學(xué)報 2022年5期
        關(guān)鍵詞:安全性故障

        焦志鵬,姚 富,陳 華,王 艦,匡曉云,黃開天

        (1.中國科學(xué)院軟件研究所可信計算與信息保障實(shí)驗室,北京 100190;2.中國科學(xué)院大學(xué),北京 100049;3.南方電網(wǎng)科學(xué)研究院,廣東廣州 510663)

        1 引言

        物聯(lián)網(wǎng)等技術(shù)的發(fā)展便利了人們各方面的生活,與此同時也使得個人隱私等秘密信息的保護(hù)面臨著巨大的挑戰(zhàn).灰盒模型攻擊的出現(xiàn)使得密碼設(shè)備的實(shí)現(xiàn)安全性受到了嚴(yán)重的威脅.側(cè)信道攻擊[1~4]和故障攻擊[5]是灰盒模型攻擊中兩種主流攻擊方法.能量分析攻擊是應(yīng)用最廣泛的側(cè)信道攻擊手段之一,其中差分能量分析[6]因其實(shí)現(xiàn)簡單、成本低廉以及功能強(qiáng)大等優(yōu)點(diǎn),被廣泛用于對實(shí)際密碼設(shè)備的攻擊過程.針對于側(cè)信道攻擊的威脅,不同的防護(hù)理論陸續(xù)被提出,其中門限實(shí)現(xiàn)防護(hù)理論[7]因其兼具可證明安全以及實(shí)現(xiàn)代價相對低廉的優(yōu)點(diǎn)得到了學(xué)術(shù)界更為廣泛的研究和應(yīng)用.除了側(cè)信道攻擊之外,故障攻擊同樣是密碼設(shè)備實(shí)現(xiàn)安全性的重要威脅,差分故障攻擊是故障攻擊中經(jīng)典的攻擊方法[8].乘法感染技術(shù)通過隨機(jī)化故障密文對于故障攻擊進(jìn)行防護(hù),其具有較好的故障攻擊防護(hù)效果,但是存在著隨機(jī)數(shù)為0時易通過功耗曲線區(qū)分的缺陷[9].僅僅添加能量攻擊防護(hù)的電路面對故障攻擊時是不安全,反之亦然.目前,針對兩類攻擊的防護(hù)方案往往是兩類防護(hù)策略的簡單疊加,不僅會帶來實(shí)現(xiàn)代價的大量增加,也可能產(chǎn)生未知的安全漏洞,因此在實(shí)現(xiàn)密碼算法時應(yīng)綜合考慮能量和故障攻擊方法,并對相應(yīng)的防護(hù)方法進(jìn)行結(jié)合.為達(dá)到綜合防護(hù)的目的,目前已有一些綜合防護(hù)方案被提出[10~14],但都存在著一定的問題.目前還沒有一種通用的兼具安全性與實(shí)現(xiàn)代價的綜合防護(hù)方案,仍需要針對具體的密碼算法以及實(shí)現(xiàn)特點(diǎn)去具體構(gòu)造防護(hù)方案.

        SM4 算法是我國公布的第一個商用密碼算法標(biāo)準(zhǔn),在我國各個領(lǐng)域的信息保護(hù)中起著重要的作用[15].SM4 算法同樣面臨著能量攻擊和故障攻擊的威脅.針對能量攻擊的威脅,相應(yīng)的防護(hù)方案也隨之出現(xiàn),譚銳能等基于多路徑掩碼技術(shù)構(gòu)造了SM4 算法抗能量攻擊的防護(hù)實(shí)現(xiàn)[16],裴超等針對SM4 算法S 盒查表實(shí)現(xiàn)提出了一種掩碼方案[17],李新超等提出并實(shí)現(xiàn)了SM4 算法S-box 的門限實(shí)現(xiàn)防護(hù)[18],魏曼等提出了一種SM4 算法的門限實(shí)現(xiàn)防護(hù)方法[19].在故障攻擊防護(hù)方面,辛小霞等基于“校驗-阻止”原理提出了SM4算法的一種故障防護(hù)方法[20].但是對于SM4 算法目前還缺乏綜合防護(hù)方案.本文基于門限實(shí)現(xiàn)與乘法感染的原理提出并實(shí)現(xiàn)了針對SM4算法的綜合防護(hù)方案,該方法可以抵抗2階差分能量攻擊,與此同時也可以抵抗差分故障攻擊,并且對于能量與故障的組合攻擊也具有對應(yīng)的抵抗能力.

        2 SM4算法二階綜合防護(hù)實(shí)現(xiàn)

        2.1 綜合防護(hù)方案

        本文基于門限實(shí)現(xiàn)和乘法感染的思想構(gòu)造了一種綜合防護(hù)方案并以SM4 算法為例對于綜合防護(hù)方案進(jìn)行了實(shí)現(xiàn),其整體框架如圖1 所示,對于原始SM4 進(jìn)行門限實(shí)現(xiàn),在此基礎(chǔ)上實(shí)現(xiàn)一路完全相同的冗余SM4門限實(shí)現(xiàn),最終通過乘法感染對故障密文進(jìn)行隨機(jī)化,從而實(shí)現(xiàn)對于側(cè)信道攻擊和故障攻擊的綜合防護(hù).

        圖1 SM4算法綜合防護(hù)方案

        為抵抗d階差分能量攻擊,需要進(jìn)行d階的門限實(shí)現(xiàn)防護(hù).關(guān)于d階門限實(shí)現(xiàn),基于不同的考慮有多重變種,其中實(shí)現(xiàn)的面積消耗與劃分的份額(share)個數(shù)正相關(guān),為了達(dá)到降低面積消耗的目的,本文選取最低的也就是d+1 個share 進(jìn)行門限實(shí)現(xiàn),具體理論可以參考文獻(xiàn)[21].d+1 share 實(shí)現(xiàn)的d階門限防護(hù)帶來實(shí)現(xiàn)面積優(yōu)化的同時也對具體的門限實(shí)現(xiàn)有一些細(xì)節(jié)性的要求,如果實(shí)現(xiàn)不當(dāng)可能會帶來一些安全隱患.

        對于線性運(yùn)算來說,d+1 share的d階門限實(shí)現(xiàn)是直接的.對于非線性運(yùn)算的d+1 share 的d階門限防護(hù),其實(shí)現(xiàn)方法如下所示,單比特的乘法運(yùn)算是綜合防護(hù)實(shí)現(xiàn)的基本組成單元,因此這里以單比特乘法y=ab為例介紹d+1 share的d階門限實(shí)現(xiàn).

        (1)輸入變量的分解

        使用布爾掩碼將函數(shù)輸入a和b分解為d+1份;首先利用2d份隨機(jī)數(shù)生成前d份輸入:(a1,b1,…,ad,bd),第d+1份輸入可以由前d份輸入和原始輸入的異或生成,具體可以表示為(ad+1,bd+1)=最終構(gòu)成需要的輸入(a1,b1,…,ad+1,bd+1),由于隨機(jī)數(shù)的存在,d+1份輸入滿足輸入均勻性,也就是說每一種輸入掩碼都是均勻出現(xiàn)的.

        (2)目標(biāo)運(yùn)算的分解

        將步驟(1)中分解好的函數(shù)輸入帶入到目標(biāo)運(yùn)算y=ab中可以得到由掩碼輸入構(gòu)成的新的函數(shù)表達(dá)式,由其組成項aibj,1≤i,j≤d+1,構(gòu)成相應(yīng)的輸出函數(shù)需要滿足正確性:y=,其中Sout表示輸出函數(shù)的個數(shù).另外為了達(dá)到安全防護(hù)的目的,d階門限實(shí)現(xiàn)需要滿足d階不完整性,這里需要使得每個輸出函數(shù)yk只包含一個組成項aibj,即輸出函數(shù)的個數(shù)滿足Sout=(d+1)(d+1).待防護(hù)的密碼算法往往包含多輪的運(yùn)算,因此會出現(xiàn)本階段運(yùn)算輸出作為下一階段輸入的情況,為滿足下一階段的輸入均勻性的要求,需要對輸出函數(shù)進(jìn)行重掩碼,另外為了防止毛刺的影響需要在輸出之前用寄存器進(jìn)行存儲;最后將(d+1)(d+1)份額的輸出通過相互異或的方式壓縮為d+1份作為下一階段門限防護(hù)的輸入.

        針對故障攻擊的威脅,綜合防護(hù)方案利用乘法感染技術(shù)實(shí)現(xiàn)相應(yīng)的防護(hù).感染防護(hù)思想包括多重感染防護(hù)和只針對密文輸出的單層感染防護(hù),考慮到只針對末輪運(yùn)算進(jìn)行故障注入攻擊的情況下多重感染將會失效,因此使用單重感染技術(shù)從而實(shí)現(xiàn)更少的資源占用.具體的實(shí)現(xiàn)方法是在原始SM4門限實(shí)現(xiàn)的基礎(chǔ)上,冗余實(shí)現(xiàn)一路完全相同的SM4門限實(shí)現(xiàn),將原始實(shí)現(xiàn)的輸出和冗余實(shí)現(xiàn)的輸出相互異或,然后利用感染函數(shù)將異或結(jié)果進(jìn)行隨機(jī)化,最后將感染函數(shù)的輸出異或上原始加密的密文形成最終輸出.在感染函數(shù)中,為了達(dá)到對于故障注入位置以及傳播方式的防護(hù),采用了一個隨機(jī)數(shù)控制的置換操作以使得故障注入的錯誤隨機(jī)擴(kuò)散,增加攻擊者的攻擊難度,然后使用乘法感染技術(shù)達(dá)到對于故障密文隨機(jī)化的目的.此外為了防止乘法感染部分側(cè)信道信息的泄露,在乘法感染部分也進(jìn)行了門限實(shí)現(xiàn)的防護(hù),這種門限實(shí)現(xiàn)的方式也有助于改善乘法感染中隨機(jī)數(shù)為0時的缺陷,達(dá)到了更好的故障防護(hù)效果,具體的更詳盡的安全性分析見2.4節(jié).

        考慮到側(cè)信道攻擊技術(shù)的發(fā)展和相應(yīng)設(shè)備的更新,針對密碼算法實(shí)現(xiàn)能量分析攻擊的代價越來越低廉,一階門限實(shí)現(xiàn)的防護(hù)能力是有限的,因此本文在SM4算法綜合防護(hù)實(shí)例中采用二階門限實(shí)現(xiàn),也就是3-share 的2 階門限實(shí)現(xiàn)方案進(jìn)行側(cè)信道方面的防護(hù),在實(shí)際的應(yīng)用中可以根據(jù)不同的安全需求擴(kuò)展到更高階的門限實(shí)現(xiàn).SM4 算法的綜合防護(hù)實(shí)現(xiàn)主要由SM4 算法二階門限實(shí)現(xiàn)部分和乘法感染部分組成,下面分別進(jìn)行詳細(xì)的介紹.

        2.2 二階門限實(shí)現(xiàn)

        SM4 算法是32 輪Feistel 結(jié)構(gòu)的分組算法,分組長度和密鑰長度都是128 bit,加密結(jié)構(gòu)和解密結(jié)構(gòu)相同,只是加密密鑰和解密密鑰逆序,并且密鑰擴(kuò)展部分和加密結(jié)構(gòu)類似,因此本文著重關(guān)注加密運(yùn)算的防護(hù)實(shí)現(xiàn),其防護(hù)實(shí)現(xiàn)可以方便地擴(kuò)展到解密算法和密鑰擴(kuò)展結(jié)構(gòu).SM4以字為單位進(jìn)行加密運(yùn)算,包含32輪相同的輪運(yùn)算,首輪輸入的四個字可以表示為:(X0,X1,X2,X3);每輪迭代的輪函數(shù)可以表示為:Xi+4=F(Xi,Xi+1,Xi+2,Xi+3,rki)=Xi⊕T(Xi+1⊕Xi+2⊕Xi+3⊕rki),其中rki為輪密鑰,0≤i≤31,由初始密鑰擴(kuò)展得到的,T由兩部分組成,包括非線性運(yùn)算部分和線性運(yùn)算部分,非線性部分由四個相同的S盒運(yùn)算組成,線性部分為移位操作,本實(shí)現(xiàn)中為了減少面積的消耗只實(shí)現(xiàn)一個S 盒,每輪執(zhí)行4 次S 盒運(yùn)算得到我們的輸出.SM4 算法2 階門限實(shí)現(xiàn)的步驟如下:

        (1)使用隨機(jī)數(shù)將輸入明文從128 bit擴(kuò)展為128×3 bit 的輸入,分別存儲在3 個128 bit 的寄存器中,(X0,X1,X2,X3)代表原始輸入4 個字的3-share,也就是分別為32×3 bit,整個SM4 加密包括32 輪的運(yùn)算,每一輪的運(yùn)算需要11 個時鐘周期,下面詳細(xì)介紹第i輪運(yùn)算,0≤i≤31.

        (2)第0 個時鐘周期,Xi+1,Xi+2,Xi+3與本輪的輪密鑰相互異或生成32×3 bit結(jié)果.

        (3)第0 到第3 個時鐘周期將步驟(2)生成的32×3 bit 的結(jié)果構(gòu)造為本輪所需的4 個S 盒運(yùn)算的輸入賦給S 盒,每個時鐘的輸入為8×3 bit,5 個時鐘后產(chǎn)生輸出,具體的S盒實(shí)現(xiàn)在下文將詳細(xì)描述.

        (4)第6 到第9 個時鐘周期依次取出4 個S 盒的輸出,每個S盒的輸出為8×3 bit.

        (5)第10 個時鐘周期將得到的4 次S 盒的輸出組合為32×3 bit 的數(shù)據(jù),其中每個份額32 bit 分別執(zhí)行線性移位操作,將線性移位后的32×3 bit數(shù)據(jù)與Xi相互異或得到輪運(yùn)算結(jié)果.

        (6)經(jīng)過32 輪輪運(yùn)算后,逆序輸出即可得到最終的加密結(jié)果.

        本方案中基于有限域的方式實(shí)現(xiàn)SM4算法的S盒.AES算法S-box可以看作是f(x)=x8+x4+x3+x+1上的求逆運(yùn)算和仿射運(yùn)算的組合,本文同樣參考文獻(xiàn)[22]的原理將SM4算法S盒運(yùn)算看作為此不可約多項式上求逆運(yùn)算和仿射運(yùn)算的組合,從而可以方便地將AES S盒的構(gòu)造應(yīng)用到SM4 S 盒運(yùn)算中去,具體可以得到SM4 算法S盒的代數(shù)表達(dá)式為:S(X)=A2(A1X+C1)-1+C2)其中A1、A2是仿射矩陣,C1=(0 0 0 0 0 0 0 1),C2=(1 1 0 1 0 0 1 1),A1、A2表示如下.

        通過代數(shù)表達(dá)式可以看到,S 盒的非線性運(yùn)算為GF(28)上的求逆運(yùn)算,為方便門限實(shí)現(xiàn),本文對其進(jìn)行復(fù)合域分解.參考文獻(xiàn)[23]的復(fù)合域?qū)崿F(xiàn)方式,將GF(28)上的求逆運(yùn)算轉(zhuǎn)換為GF(2)上的運(yùn)算.為結(jié)構(gòu)圖表述更加清晰,將其表示為GF(24)上的運(yùn)算,其大致結(jié)構(gòu)如圖2 所示,主體部分包含非線性的3 個GF(24)上乘法器運(yùn)算和一個GF(24)上的求逆運(yùn)算(圖中虛線部分),以及由常數(shù)乘運(yùn)算以及平方運(yùn)算組成的線性運(yùn)算L1;對于乘法運(yùn)算,最終被轉(zhuǎn)換為GF(2)上的乘法運(yùn)算;對于求逆運(yùn)算,首先將GF(24)上的求逆運(yùn)算轉(zhuǎn)換為GF(22)上的運(yùn)算,其包含3個GF(22)上的乘法運(yùn)算以及由常數(shù)乘以及平方運(yùn)算組合的線性運(yùn)算L2,GF(22)上的求逆運(yùn)算是線性運(yùn)算,表示為L3,GF(22)上的乘法運(yùn)算同樣轉(zhuǎn)換為GF(2)上的乘法運(yùn)算.M1和M2代表仿射運(yùn)算和逆仿射運(yùn)算.

        本文的S盒門限實(shí)現(xiàn)在圖2復(fù)合域?qū)崿F(xiàn)的基礎(chǔ)上參考文獻(xiàn)[24]進(jìn)行防護(hù)設(shè)計,為了防止毛刺的影響以及保持門限實(shí)現(xiàn)的2階不完整性,需要使用寄存器存儲相應(yīng)運(yùn)算的輸出結(jié)果,根據(jù)安全需要S盒的2階門限實(shí)現(xiàn)需要分為6個階段進(jìn)行處理,每個階段進(jìn)行的操作如下所述.

        圖2 SM4算法S盒復(fù)合域?qū)崿F(xiàn)

        階段1此階段包含兩個線性操作,首先是A1X+C1仿射操作,其次是基轉(zhuǎn)換的轉(zhuǎn)置矩陣,為了降低實(shí)現(xiàn)電路的復(fù)雜度,這里兩種線性操作合二為一,為了安全性的需要,本階段的輸出需要使用寄存器存儲以供下一階段運(yùn)算的使用.

        階段2此階段主要包含一個GF(24)上的乘法運(yùn)算以及一個線性運(yùn)算,線性運(yùn)算包含乘以常數(shù)操作以及平方操作兩個運(yùn)算,這里將線性運(yùn)算和非線性運(yùn)算相結(jié)合以減少輸出份額的個數(shù),從而減少存儲所需寄存器的個數(shù);這里輸入為3-share 的,輸出是9-share,L1代表這一階段的線性運(yùn)算,以(a1,a2,a3),(b1,b2,b3)代表此階段輸入a,b的 3-share 隨機(jī)掩碼,以(c1,c2,c3,c4,c5,c6,c7,c8,c9)代表門限輸出,那么此階段的運(yùn)算可以表示為如下的表達(dá):

        其中⊕代表4bit的異或運(yùn)算,?代表4bit的乘法運(yùn)算,由GF(2)上的乘法組合而成.一方面為了滿足下一階段輸入的均勻性,另一方面為了達(dá)到抵抗多變量攻擊的目的,這里對于(c1,c2,c3,c4,c5,c6,c7,c8,c9)使用隨機(jī)數(shù)(r1,…,r6)進(jìn)行重掩碼,形成輸出(O1,…,O9),掩碼方式如圖3所示,并且對于輸出使用寄存器暫存.

        圖3 重掩碼

        階段3此階段在GF(22)上進(jìn)行運(yùn)算,類似于階段2 的運(yùn)算,不過參與相應(yīng)運(yùn)算的數(shù)值從4bit變?yōu)榱?bit.這里需要對上一階段產(chǎn)生的9-share 輸出壓縮為3-share,這里需要小心操作,避免出現(xiàn)脫掩碼情況的出現(xiàn),本文實(shí)現(xiàn)中以O(shè)1?O4?O7,O2?O5?O8和O3?O6?O9的形式構(gòu)造3-share 的輸入,此階段的輸出同樣需要進(jìn)行類似于階段2的重掩碼,并對于輸出使用寄存器進(jìn)行暫存.

        階段4此階段包含兩個GF(22)乘法運(yùn)算,首先需要將上階段的9-share 壓縮為3-share,然后經(jīng)過一個GF(22)上的求逆運(yùn)算L3,GF(22)上的求逆運(yùn)算是線性運(yùn)算只需要拉線操作計算產(chǎn)生3-share輸出作為乘法運(yùn)算的一個公共輸入,另外結(jié)合階段3 的輸入構(gòu)造兩個GF(22)乘法的其他輸入,兩個乘法運(yùn)算的9-share輸出相互結(jié)合形成9-share的4 bit輸出,對這個9-share輸出進(jìn)行與階段2相同的重掩碼,并將掩碼結(jié)果存儲在寄存器中.

        階段5此階段類似于階段4,只不過相應(yīng)運(yùn)算從GF(22)上的乘法運(yùn)算變?yōu)镚F(24)上的乘法運(yùn)算;首先需要將上階段的9-share 按照階段3 的方式壓縮為3-share 作為兩個乘法的公共輸入,另外結(jié)合階段2 的輸入構(gòu)造兩個GF(24)上的乘法的其他輸入,兩個乘法運(yùn)算的9-share 輸出相互結(jié)合形成9-share 的8 bit 輸出,對這個9-share 輸出進(jìn)行階段2 相同的重掩碼,存儲在寄存器中.

        階段6此階段包含三個線性運(yùn)算,首先將上階段的9-share 輸出按照階段3 的方式壓縮為3-share,其次是基的轉(zhuǎn)置矩陣,最后是SM4 算法S 盒的仿射運(yùn)算,類似于階段1,本階段同樣將轉(zhuǎn)置操作和仿射運(yùn)算相互結(jié)合以降低實(shí)現(xiàn)電路的復(fù)雜度.

        2.3 感染防護(hù)

        在SM4 算法原始二階門限實(shí)現(xiàn)的基礎(chǔ)上實(shí)現(xiàn)一路與原始門限實(shí)現(xiàn)完全相同的冗余SM4 算法二階門限實(shí)現(xiàn),冗余實(shí)現(xiàn)的輸入和采用的隨機(jī)數(shù)與原始實(shí)現(xiàn)完全相同.將原始實(shí)現(xiàn)的輸出和冗余實(shí)現(xiàn)的輸出相互異或形成128×3 bit 的輸出.如果沒有故障注入時,異或輸出為0,經(jīng)過感染結(jié)構(gòu)后的輸出為0,最后異或到原始密文形成最終輸出,不改變密文輸出結(jié)果,保證了無故障注入時算法的正確性.當(dāng)有故障注入時,異或輸出不為0,然后將128×3 bit 的輸出以32×3 bit 為一組分為4 組,分別進(jìn)行感染防護(hù),其中被故障注入影響的字節(jié)表現(xiàn)為隨機(jī)數(shù),與原始實(shí)現(xiàn)的輸出相互異或形成最終的密文輸出,相應(yīng)的可被利用的故障密文也被隨機(jī)化了,從而實(shí)現(xiàn)了相應(yīng)的故障防護(hù).其中感染防護(hù)由隨機(jī)置換和乘法感染兩部分組成,具體結(jié)構(gòu)如圖4所示.

        圖4 感染函數(shù)

        為了隱藏故障注入的位置以及故障的傳播路徑,在進(jìn)行感染操作之前進(jìn)行一個32 bit的隨機(jī)置換操作.具體的在進(jìn)行乘法感染操作之前,先進(jìn)行32 bit 的置換操作,初始置換操作(位置標(biāo)號從0開始)如下:

        此置換由一個5 bit的隨機(jī)數(shù)R控制,以此增加其隨機(jī)性,具體是在每一次感染的時候?qū)⒊跏贾脫Q進(jìn)行一個隨機(jī)的循環(huán)移位操作后作為此次感染的置換操作.

        經(jīng)過置換操作后的32×3 bit 的輸出以8×3 bit 為一組和隨機(jī)數(shù)(r1,r2,r3,r4)進(jìn)行GF(28)上的以f(x)=x8+x4+x3+x+1 為不可約多項式的有限域乘法運(yùn)算,這里的乘法運(yùn)算為了防止側(cè)信道信息的泄露也使用了二階門限實(shí)現(xiàn)進(jìn)行防護(hù),能夠有效改善乘法感染中隨機(jī)數(shù)為0 時的缺陷.此外感染防護(hù)中的隨機(jī)置換對于故障傳播途徑進(jìn)行了隨機(jī)化,使得攻擊者無法直接進(jìn)行攻擊,從而進(jìn)一步增強(qiáng)了故障防護(hù)效果.

        2.4 安全性分析

        2.4.1 針對側(cè)信道攻擊的安全性

        綜合防護(hù)方案對于側(cè)信道攻擊的防護(hù)能力繼承于門限實(shí)現(xiàn).一個d階的門限實(shí)現(xiàn)滿足輸入的均勻性,d階不完整性;d階能量攻擊可以同時利用d個綜合防護(hù)方案的中間值的能量信息進(jìn)行攻擊,而門限實(shí)現(xiàn)的d階不完整性使得這d個中間值至少和原始中間值的一個分量相互獨(dú)立,也就是和原始中間值成相互獨(dú)立的關(guān)系,使得d 階能量攻擊者能夠利用的信息與原始中間狀態(tài)相互獨(dú)立,從而實(shí)現(xiàn)了d階能量攻擊下安全性.

        具體到本文的SM4 算法的綜合防護(hù)實(shí)現(xiàn),本文的綜合防護(hù)實(shí)現(xiàn)中加密部分和乘法感染部分都基于2 階門限實(shí)現(xiàn)進(jìn)行了防護(hù),其滿足2 階不完整性,一個2 階能量攻擊者可以同時利用2 個綜合防護(hù)的中間值的能量信息,這2個中間值和原始中間值呈現(xiàn)相互獨(dú)立的關(guān)系,使得2階能量攻擊者能夠利用的信息與原始中間狀態(tài)相互獨(dú)立,從而實(shí)現(xiàn)了2階能量攻擊的安全性.

        2.4.2 針對故障攻擊的安全性

        數(shù)值類的故障攻擊如差分故障攻擊,其攻擊條件首先是需要知道故障密文,其次需要分析故障傳播路徑,因此可以從這兩方面實(shí)現(xiàn)相應(yīng)的防護(hù).在本文綜合防護(hù)中,一方面隨機(jī)置換的添加使得故障密文擴(kuò)散呈現(xiàn)隨機(jī)性,增加了攻擊者對于故障攻擊位置以及傳播邏輯分析的難度,另一方面乘法感染技術(shù)使得輸出的故障密文呈現(xiàn)隨機(jī)性,破壞了輸出的故障密文和原始故障密文的相關(guān)性,使得需要故障密文的故障攻擊無法順利進(jìn)行,從而實(shí)現(xiàn)了對于數(shù)值類故障攻擊的防護(hù).

        2.4.3 針對組合攻擊的安全性

        如前文提到的乘法感染在隨機(jī)數(shù)為0 時存在缺陷,此時能耗信息較小,然后攻擊者可以依據(jù)這一點(diǎn)判斷出隨機(jī)數(shù)為0時的故障注入,篩選出故障攻擊需要的故障密文,從而實(shí)施正常的依賴故障密文的故障攻擊,此類攻擊方法屬于一種組合攻擊.普通的GF(28)的乘法運(yùn)算中,只有8 bit 的隨機(jī)數(shù)參與運(yùn)算,找到一個8 bit 的為0 隨機(jī)數(shù)的情況,相對容易,在本文的綜合防護(hù)中對于乘法感染同樣實(shí)現(xiàn)了門限實(shí)現(xiàn)防護(hù),由于進(jìn)行3-share 的門限實(shí)現(xiàn)防護(hù),只有在3×8 bit 的隨機(jī)數(shù)同時為零的情況下,功耗才容易被分辨出來,實(shí)現(xiàn)的困難性大大增加;同時即使找到了3×8 bit 隨機(jī)數(shù)為0 的情況,其故障攻擊仍然存在困難性,因為本文的綜合防護(hù)的乘法感染防護(hù)中進(jìn)行了隨機(jī)置換操作,隨機(jī)化了故障傳播的路徑,使得實(shí)際的故障攻擊的邏輯分析仍然存在著困難性,因此可以實(shí)現(xiàn)對于此類組合攻擊的防護(hù).

        另外本文的綜合防護(hù)方案對于故障注入-探測類型的組合攻擊同樣有著抵抗能力,在此類攻擊中,攻擊者通常先通過故障注入的方式將某些中間值置位為0,然后通過探測的方式實(shí)現(xiàn)對于原始中間值的獲取.在本文的綜合防護(hù)方案中,即使注入了對應(yīng)的故障,如將某些中間值分量置位為0,這同樣不會導(dǎo)致敏感信息的泄露,因為門限實(shí)現(xiàn)的d階不完整性使得d階探測的攻擊者仍然無法獲取原始中間值的有效信息.

        3 實(shí)驗結(jié)果

        3.1 實(shí)驗環(huán)境

        本文在SAKURA-X 評估板上實(shí)現(xiàn)了我們的綜合防護(hù)方案,SAKURA-X 是一種專門用來進(jìn)行側(cè)信道防護(hù)方案實(shí)現(xiàn)和評估的開發(fā)板,主要包含兩個FPGA(Field Programmable Gate Array),一個是評估FPGA,用于實(shí)現(xiàn)待測方案,我們的綜合防護(hù)方案實(shí)現(xiàn)在其中;另一個是控制FPGA,用來控制評估FPGA 和上位機(jī)的通信,為避免噪聲的影響,隨機(jī)數(shù)發(fā)生器實(shí)現(xiàn)在其中,使用時傳輸相應(yīng)的隨機(jī)數(shù)到評估FPGA中.

        3.2 安全性評估

        3.2.1 側(cè)信道安全性評估實(shí)驗

        在評估環(huán)境設(shè)置方面,我們采用便于側(cè)信道攻擊的方式進(jìn)行評估實(shí)驗,比如:(1)為了降低采集到的功耗信息的噪聲,提高信噪比,本文將隨機(jī)數(shù)的產(chǎn)生邏輯和綜合防護(hù)的實(shí)現(xiàn)放在了不同的FPGA 中;(2)為了能夠使得采集到的功耗曲線更加清晰,我們使得綜合防護(hù)實(shí)現(xiàn)工作在低頻狀態(tài),具體在本文的實(shí)現(xiàn)是工作在375 kHz 的時鐘下.在如此便利于攻擊者的情況下,如果可以驗證本文防護(hù)方案的安全性,那么在實(shí)際的攻擊環(huán)境中,綜合防護(hù)的安全性是可以得到保障的.

        我們采用測試向量泄露評估技術(shù)(Test Vector Leakage Assessment,TVLA)[25]進(jìn)行側(cè)信道安全性的評估,它是一種從信息泄露角度評估防護(hù)方案安全性的一種技術(shù).其中不針對具體中間值的non-specific TVLA 評估技術(shù)是應(yīng)用最廣泛的評估技術(shù),需要收集兩組分別是固定輸入和隨機(jī)輸入的功耗曲線,當(dāng)評估高階泄露時,需要進(jìn)行合適的預(yù)處理,預(yù)處理后的曲線作為TVLA 待測曲線;其通過t-test 技術(shù)評估兩組曲線分布均值的差異性,從而判斷是否有泄露的產(chǎn)生.本文選擇正負(fù)4.5 作為統(tǒng)計量的閾值,其置信度大于99.999%,當(dāng)其統(tǒng)計值低于閾值時,則表明通過了測試,當(dāng)統(tǒng)計值超過閾值時,則表明其存在泄露點(diǎn),相應(yīng)的防護(hù)方案可能存在易損點(diǎn),d階TVLA 與d階差分能量分析相對應(yīng),當(dāng)其通過TVLA,則可認(rèn)為相應(yīng)的防護(hù)方案是d階差分能量分析安全的.S 盒是防護(hù)方案中主要的非線性組件,S 盒的側(cè)信道安全性可以反映整個防護(hù)方案的安全性,本文主要測試S 盒的側(cè)信道安全性.

        本文使用PicoScope 3206D 示波器在125 MHz 的時鐘下對于待測方案進(jìn)行功耗采集,分別在隨機(jī)數(shù)關(guān)閉(無防護(hù))和隨機(jī)數(shù)開啟(有防護(hù))狀態(tài)下采集100 萬功耗曲線進(jìn)行了TVLA 安全性評估.其一階TVLA 評估結(jié)果如圖5 所示,其二階TVLA 評估結(jié)果如圖6 所示.

        圖5 一階TVLA測試結(jié)果

        圖6 二階TVLA測試結(jié)果

        圖中橫軸代表S 盒執(zhí)行過程中不同時刻采集到的樣本點(diǎn),縱軸代表t測試統(tǒng)計量.從實(shí)驗結(jié)果中,我們看到未添加防護(hù)的情況下,統(tǒng)計量都超過了4.5,添加防護(hù)后統(tǒng)計量都未超過4.5,驗證了我們的防護(hù)方案在側(cè)信道安全方面具備抵抗一階差分能量攻擊和二階差分能量攻擊的防護(hù)能力.

        3.2.2 故障攻擊安全性評估

        我們通過對SM4 算法的最后一輪的S-box 輸入注入故障來檢測綜合防護(hù)方案的故障防護(hù)的安全性,通過分析經(jīng)過感染結(jié)構(gòu)的故障密文的隨機(jī)性驗證綜合防護(hù)方案的故障防護(hù)的能力.具體的,選擇SM4 算法最后一輪運(yùn)算中的任意一個S-box 運(yùn)算,在綜合防護(hù)實(shí)現(xiàn)代碼中將選定的S-box 輸入置位為常數(shù),從而實(shí)現(xiàn)對于故障注入的模擬,然后將此代碼生成的流文件下載到FPGA 中去,然后執(zhí)行100 萬次明文、密鑰相同的運(yùn)算,然后記錄密文輸出中被故障注入影響到的故障密文,也就是共400 萬字節(jié)的故障密文,最后統(tǒng)計故障密文的隨機(jī)性,如果故障密文呈現(xiàn)良好的隨機(jī)性,那么證明本文的防護(hù)方案起到了針對故障攻擊的防護(hù)效果.

        對于記錄的故障密文使用NIST SP800-22 給出的項目和參數(shù)進(jìn)行隨機(jī)性檢測,檢測中單樣本大小是20000 B,總樣本數(shù)是200,其檢測結(jié)果如表1所示.

        表1 隨機(jī)性檢測的統(tǒng)計結(jié)果如下(通過檢測的百分比:閾值下限96.889)

        檢測結(jié)果表明故障密文通過了隨機(jī)性檢測,經(jīng)過感染后的故障密文具有良好的隨機(jī)性,可以達(dá)到相應(yīng)的防護(hù)效果,驗證了綜合防護(hù)方案對于故障攻擊的安全性.

        3.3 實(shí)現(xiàn)代價評估

        我們使用ISE 14.7 驗證了SM4 算法綜合防護(hù)實(shí)現(xiàn)的功能性,使用Synopsys 2016.03 在NanGate 45 nm 公開元件庫下評估了相應(yīng)的面積消耗,無防護(hù)情況下的SM4 算法的面積消耗如表2 所示;SM4 算法綜合防護(hù)的面積消耗如表3 所示,其中“SM4 原始門限實(shí)現(xiàn)”與“SM4 冗余門限實(shí)現(xiàn)”完全相同,面積消耗完全一樣,因此只展開列出了“SM4 原始門限實(shí)現(xiàn)”組成部分的面積消耗情況.

        表2 SM4算法無防護(hù)實(shí)現(xiàn)面積消耗

        表3 SM4算法綜合防護(hù)實(shí)現(xiàn)面積消耗

        本文中SM4算法綜合防護(hù)方案每輪使用11個時鐘周期,共32 輪,所以整個防護(hù)方案使用了352 個時鐘周期;在隨機(jī)數(shù)方面,每個S 盒運(yùn)算使用了108 bit 的隨機(jī)數(shù),感染結(jié)構(gòu)中的隨機(jī)置換部分使用了20 bit 的隨機(jī)數(shù),乘法感染部分使用了384 bit的隨機(jī)數(shù).

        4 結(jié)論

        考慮到灰盒模型攻擊的巨大威脅,本文結(jié)合門限實(shí)現(xiàn)和感染防護(hù)的思想提出了一種綜合防護(hù)方案,通過門限實(shí)現(xiàn)彌補(bǔ)了乘法感染故障防護(hù)中隨機(jī)數(shù)為0 時的缺陷,另外通過添加隨機(jī)置換的方式掩蓋了故障注入位置和故障傳播邏輯,進(jìn)一步強(qiáng)化了對于故障攻擊的防護(hù)能力.并且本文以SM4 算法為例在FPGA 上實(shí)際實(shí)現(xiàn)了一個二階綜合防護(hù)方案,為SM4 算法針對側(cè)信道攻擊和故障攻擊的綜合防護(hù)提供了一種方案.最后本文通過安全性分析以及實(shí)際的實(shí)驗驗證了SM4 防護(hù)方案的有效性,并評估了相應(yīng)的實(shí)現(xiàn)代價.

        猜你喜歡
        安全性故障
        兩款輸液泵的輸血安全性評估
        既有建筑工程質(zhì)量安全性的思考
        某既有隔震建筑檢測與安全性鑒定
        米氮平治療老年失眠伴抑郁癥的療效及安全性
        故障一點(diǎn)通
        ApplePay橫空出世 安全性遭受質(zhì)疑 拿什么保護(hù)你,我的蘋果支付?
        奔馳R320車ABS、ESP故障燈異常點(diǎn)亮
        故障一點(diǎn)通
        故障一點(diǎn)通
        故障一點(diǎn)通
        成年女人毛片免费视频| 精品国产a一区二区三区v| 亚洲av永久无码精品一福利| 曝光无码有码视频专区| 国产爆乳无码一区二区在线 | 亚洲人成国产精品无码果冻| 亚洲粉嫩高潮的18p| 精品91精品91精品国产片| 精品国产一区二区av麻豆不卡| 国产精品毛片无遮挡高清| 欧洲女人性开放免费网站| 久久中文字幕无码一区二区| 国产亚洲精品高清视频| 日本一区二区三区高清在线视频 | 国产人妻久久精品二区三区老狼| 亚洲夜夜性无码| 一本一本久久a久久精品综合麻豆| 日韩精品永久免费播放平台| 国产精品国产三级国产an不卡| 国产成人精品久久亚洲高清不卡| 亚洲午夜福利在线观看| 蜜桃一区二区三区在线看| 中文字幕中文字幕三区| 欧美性生交活xxxxxdddd| 亚洲精品久久久久久动漫| 亚洲AV无码成人精品区日韩密殿| 午夜理论片日本中文在线| 色婷婷五月综合久久| 亚洲人成影院在线无码观看| 亚洲精品国产一区av| 久久半精品国产99精品国产| 蜜桃av噜噜噜一区二区三区| 欧美群妇大交群| 久久99久久99精品免观看| 亚洲区精选网址| 中国亚洲av第一精品| 三级全黄的视频在线观看| 国产精品video| 国产精品白浆无码流出| 亚洲精品中文字幕一二三| 亚洲熟妇av一区|