分析泄漏功率攻擊采用90nm CMOS技術(shù)的加密器件
泄漏電流可能被用于攻擊加密系統(tǒng)。
在電子商務(wù)與電子銀行等應(yīng)用中,安全要求越來越嚴(yán)格。雖然加密技術(shù)提供了強健的算法,但這些算法的物理實現(xiàn)一般會通過器件電氣運行中的物理現(xiàn)象,泄漏一些信息,攻擊者會利用它來探測密鑰。這些“旁路”(side-channel)攻擊利用加密實現(xiàn)硬件模塊所泄漏的信息。該信息可能包含數(shù)據(jù)與功耗或時序之間的相互關(guān)系。一種廣為報道的強大旁路攻擊方法是微分功率分析(differential-Power analysis),因為它能讓攻擊者用現(xiàn)售元件做出的測量設(shè)置探測出密鑰。攻擊者依據(jù)的事實是,標(biāo)準(zhǔn)CMOS邏輯的動態(tài)功耗主要依賴于輸入數(shù)據(jù)。例如,考慮一個簡化的CMOS反相器模型,它以一只接地電容作為自己的負(fù)載。該模型只有當(dāng)輸出從0至1的過渡時才從電源吸入電流。在1至0的過渡時,輸出電容釋放能量,而從0至0和1至1的過渡時電路不消耗能量。最近工程師們提出了很多同時采用軟件和RTL(寄存器傳輸級)的對策,以阻止通過動態(tài)功率分析的攻擊。
歷史上,CMOS電路功耗的主要來源是CMOS開關(guān)活動造成的動態(tài)功耗。動態(tài)功耗是電源電壓的二次方,而對時鐘頻率的依賴則是線性的。CMOS電路功耗的另外一個來源是CMOS器件關(guān)斷狀態(tài)下寄生電流所造成的泄漏功率。這種泄漏功率很快將達(dá)到可與動態(tài)功耗相比較的量級。CMOS設(shè)計中的泄漏電流主要取決于輸入數(shù)據(jù)的矢量,工程師使用這個特性,在電路的等待周期內(nèi)減少泄漏功耗。他們還提出了可以預(yù)測在CMOS電路中分別產(chǎn)生最大和最小泄漏電流的輸入矢量模型。
由于泄漏電流依賴于CMOS邏輯中的輸入值,你可以通過測量泄漏電流,提取出一個加密核心中有關(guān)加密數(shù)據(jù)的信息。對一個采用RTL仿真的簡單加密核心,通過分析泄漏電流與輸入數(shù)據(jù)的依賴關(guān)系,就可以用統(tǒng)計分析技術(shù)發(fā)動攻擊。這些技術(shù)類似于微分功耗分析技術(shù),可以提取出從泄漏電流測量開始的密鑰,原理上更容易實現(xiàn)。
數(shù)據(jù)依賴性
泄漏電流主要來自反向結(jié)、亞閾值以及門隧道電流。對于一個偏置在弱反向區(qū)的MOS晶體管,亞閾值電流是最重要的因素。標(biāo)準(zhǔn)CMOS門的設(shè)計者會使用串并聯(lián)連接組成的上拉和下拉網(wǎng)絡(luò)。設(shè)計者還為串并聯(lián)配置的MOS器件開發(fā)了泄漏電流模型。
為了解標(biāo)準(zhǔn)CMOS門泄漏電流對數(shù)據(jù)的依賴性,研究人員對意法半導(dǎo)體公司90 nm CMOS090工藝的標(biāo)準(zhǔn)單元作了仿真。這些仿真采用了代工廠針對Spectre晶體管級仿真器所提供的模型,用五種溫度來驗證泄漏電流與溫度的關(guān)系(表1)。如果對表中泄漏電流按升序排序,則順序與溫度的變化相同。例如,對一個雙輸入與非門,邏輯輸入0或1在所有溫度值下都產(chǎn)生最大的泄漏電流。這種功率分析方法能揭示出一個加密核心的輸入與產(chǎn)生最大或最小泄漏電流之間的關(guān)聯(lián)?,F(xiàn)在有資料描述最大、最小和其它算法,用于估算泄漏電流。
對稱密鑰算法的基本部件是S盒(substitution box)。當(dāng)使用分組密碼時,一般用S盒來掩蓋原文本與加密文本之間的關(guān)系。S盒在N位輸入字和M位輸出字之間提供了一種組合映射。這些盒子(如有四輸入和四輸出)一般都使用固定表。
Cadence公司的研究人員采用一個真值表和意法半導(dǎo)體公司的90 nm CMOS工藝庫,對一種S盒做綜合,這款S盒有四個輸入和四個輸出(表2)。然后研究人員對S盒的所有可能的輸入組合作了大量泄漏電流仿真。如果按泄漏電流的升序?qū)Ρ碇械妮斎虢M合作排列,則結(jié)果與溫度的變動無關(guān)。于是,在仿真或測量中可以使用任何熱系數(shù),只要它保持恒定不變??梢詫惢蜷T連接到一只S盒的輸入端,實現(xiàn)一個簡單加密核心的組合器件。異或門將任何原文本文字與密鑰預(yù)先混合,S盒加密結(jié)果。你可以針對一個加密核心的組合部分,對所有密鑰值和輸入值作大量的泄漏電流仿真。如果將泄漏電流值升序排列,則輸入與輸出的次序?qū)γ總€密鑰都是相同的,意味著泄漏電流與輸入值無關(guān)。這些仿真還顯示出,對不同密鑰和相同輸入值,泄漏電流值有差異。異或門對輸入變化很敏感,它是這種差異的根源。S盒不是過錯方,因為對相同的輸入,測得的電流總是相同的。
圖1,為一個組合設(shè)計增加一些電阻,就可以構(gòu)建出一個簡單的加密核心。
評論