趙毅強,曹宇文,何家驥,馬浩誠,劉燕江,葉 茂
(1.天津大學(xué) 微電子學(xué)院,天津 300072;2.中國人民解放軍戰(zhàn)略支援部隊信息工程大學(xué) 密碼工程學(xué)院,河南 鄭州 450001)
密碼算法是數(shù)據(jù)安全交互的基石,現(xiàn)場可編程門陣列(Field Programmable Gate Arrays,F(xiàn)PGA)具備可重配置特性及較短的開發(fā)周期,被廣泛用作各類密碼算法的硬件載體,然而基于現(xiàn)場可編程門陣列實現(xiàn)的密碼電路仍然面臨潛在的側(cè)信道攻擊。側(cè)信道攻擊是攻擊者利用密碼設(shè)備運行時產(chǎn)生的運算時間、功耗、電磁等物理信息[1],破解出密碼設(shè)備中密鑰等關(guān)鍵信息的攻擊方法[2]。
電磁側(cè)信道最早由QUISQUATER等[3]發(fā)現(xiàn),電路運行時,內(nèi)部邏輯單元狀態(tài)翻轉(zhuǎn)產(chǎn)生動態(tài)電流,進而引起電磁輻射。電磁側(cè)信道具備局部高信噪比、非接觸式采集、可空間定位、包含豐富頻域信息等特性,比功耗側(cè)信道攻擊更具威脅性。當前常用的電磁側(cè)信道攻擊方式包括簡單電磁分析、差分電磁分析、相關(guān)性電磁分析等,其中相關(guān)性電磁分析(Correlation ElectroMagnetic Analysis,CEMA)被廣泛用于電路的側(cè)信道安全評估[4-8]。
現(xiàn)場可編程門陣列片載的可配置邏輯主要為高層次設(shè)計單元,包含查找表(Look Up Table,LUT)、存儲塊、可編程互連陣列等,基于現(xiàn)場可編程門陣列的密碼算法電路實現(xiàn),其設(shè)計流程與專用集成電路(Application Specific Integrated Circuits,ASIC)的實現(xiàn)存在較大區(qū)別。大多數(shù)針對專用集成電路開發(fā)的抗電磁側(cè)信道攻擊的方法并不適用于現(xiàn)場可編程門陣列,因此需要針對現(xiàn)場可編程門陣列的底層硬件架構(gòu),在兼容當前現(xiàn)場可編程門陣列開發(fā)流程的基礎(chǔ)上,減弱現(xiàn)場可編程門陣列上實現(xiàn)電路的電磁側(cè)信道信息泄露,提升密碼算法硬件實現(xiàn)的安全性。
當前抗側(cè)信道攻擊防護策略主要包括掩碼[9-10]和隱藏[11-12]等,從密碼算法、硬件電路、電路安全實現(xiàn)等層級對側(cè)信道安全進行增強。其中,掩碼通過使用隨機數(shù)值加掩的方式掩蓋真正的密碼運算中間值,可以從算法、電路實現(xiàn)等層面改善信息泄露,然而硬件電路一般需要經(jīng)過專門的設(shè)計,且存在受高階側(cè)信道攻擊的隱患。隱藏則分為幅度隱藏和時域隱藏,與基于物理不可克隆函數(shù)[13-14]的狀態(tài)機隱藏不同,基于隱藏的電磁側(cè)信道防護方法在保證密碼電路正常運行的同時,隱藏邏輯單元狀態(tài)轉(zhuǎn)換產(chǎn)生的電磁信息泄露。幅度隱藏分為兩類:第1類為補償防護,通過補償動態(tài)電磁,使側(cè)信道信息泄露保持穩(wěn)定,如動態(tài)差分邏輯[11],然而在現(xiàn)場可編程門陣列上應(yīng)用時,存在邏輯門延時偏差、寄生電容失配等非對稱問題,使該防護措施對電磁側(cè)信道攻擊的防護效果有限;第2類防護側(cè)重于降低電路側(cè)信道信息泄露的信噪比,在專用集成電路防護方法中,常使用定制模塊來產(chǎn)生干擾電磁噪聲,如低壓差線性穩(wěn)壓器[4],但考慮到現(xiàn)場可編程門陣列是半定制電路,這類專用模塊難以用現(xiàn)場可編程門陣列的硬件資源實現(xiàn)。使用插入邏輯單元或運算模塊[6]來降低側(cè)信道泄露的方法易于通過現(xiàn)場可編程門陣列來實現(xiàn),如隨機預(yù)充電邏輯單元,該邏輯單元的插入能弱化組合邏輯的側(cè)信道信息泄露,而針對時序邏輯還需要級聯(lián)寄存器[15]等來提供額外的防護。此外,也能利用電磁的位置敏感性,干擾被采集電磁的幅值來降低泄露,如數(shù)據(jù)流空間隨機化[16]等。時域隱藏通過時鐘信號的隨機化[5,17],使得電磁曲線難以對齊從而增大側(cè)信道攻擊難度,然而現(xiàn)場可編程門陣列生成動態(tài)時鐘需使用大量鎖相環(huán)或混合模式時鐘管理器的端口資源,耗費多余時鐘資源且?guī)磔^大性能開銷。
為了解決傳統(tǒng)電路級側(cè)信道防護方法在現(xiàn)場可編程門陣列上難以應(yīng)用,或應(yīng)用時存在較大面積開銷和性能降低的問題,通過對現(xiàn)場可編程門陣列的底層硬件結(jié)構(gòu)進行分析,結(jié)合原始電路的設(shè)計特點,設(shè)計了一種具備通用性的隨機預(yù)混淆邏輯(Random Pre-Obfuscation Logic,RPOL)單元,顯著提高了基于現(xiàn)場可編程門陣列實現(xiàn)的密碼電路的電磁側(cè)信道安全性。首先,定位密碼算法易受側(cè)信道攻擊的薄弱點位,在對應(yīng)電路模塊的時序邏輯和組合邏輯通路中靶向插入RPOL單元,來混淆組合邏輯的輸入,進而隱藏組合邏輯網(wǎng)絡(luò)各節(jié)點的邏輯狀態(tài);其次,通過對RPOL單元的控制時序調(diào)整,掩蓋時序邏輯狀態(tài)翻轉(zhuǎn),最終實現(xiàn)密碼電路抗電磁側(cè)信道攻擊能力的提高。
當前數(shù)字芯片大多基于互補金屬氧化物半導(dǎo)體(Complementary Metal-Oxide-Semiconductor,CMOS)工藝實現(xiàn),CMOS電路運行時,邏輯單元的狀態(tài)改變會引起芯片內(nèi)部電流的變化,向芯片外釋放電磁輻射,芯片產(chǎn)生的電磁與底層邏輯運算存在相關(guān)性。在密碼電路加密數(shù)據(jù)的過程中,會產(chǎn)生與密鑰相關(guān)的密碼中間值,相關(guān)的邏輯操作產(chǎn)生的電磁,與該密碼中間值存在直接關(guān)聯(lián),導(dǎo)致信息泄露。其余與該密碼中間值運算無直接關(guān)聯(lián)的邏輯單元,狀態(tài)翻轉(zhuǎn)時引起的電磁被視為噪聲,對電磁側(cè)信道攻擊造成干擾。此外,測試設(shè)備、電磁工作環(huán)境也會引入一定的噪聲。實際測量的電磁R用如下公式表示:
R=Q+Ne+No,
(1)
其中,Q表示直接泄露電磁,No表示無關(guān)電磁噪聲,Ne表示環(huán)境噪聲。
電磁側(cè)信道攻擊通過大量采集密碼電路釋放的電磁輻射,基于側(cè)信道分析模型,使用統(tǒng)計學(xué)方法識別電磁輻射中與密鑰相關(guān)的成分,實現(xiàn)密鑰提取。漢明距離(Hamming Distance,HD)模型是常用的側(cè)信道分析模型,表征存在狀態(tài)翻轉(zhuǎn)的邏輯單元數(shù)量。使用HD模型對密碼電路做CEMA攻擊,首先需要針對密碼算法選定攻擊點,根據(jù)不同密鑰假設(shè)計算密碼中間值,基于HD模型構(gòu)建對應(yīng)的假設(shè)電磁曲線。為了降低建立泄露模型的復(fù)雜度,每次假設(shè)8比特子密鑰構(gòu)建假設(shè)電磁曲線,把m比特密鑰的假設(shè)復(fù)雜度從2m降低為28×(m/8)。
在極端條件下,攻擊者已知芯片的架構(gòu),能夠?qū)π酒斎肴我饷魑牟@取加密結(jié)果。通過HD模型構(gòu)建假設(shè)電磁曲線W,計算與實際測量電磁曲線R之間的相關(guān)系數(shù),計算方式為
(2)
C=maxρcorrect/maxρwrong,
(3)
其中,ρcorrect和ρwrong分別表示正確和錯誤假設(shè)密鑰的相關(guān)系數(shù)。C越接近0,則表明電路的側(cè)信道安全等級越高。C超過1,則表明正確密鑰被揭露,該情況下達到C=1時所需要的加密明文條數(shù)(Measurement To Disclosure,MTD)直接反映了破解密碼電路的最低曲線數(shù)量。
增加電磁輻射中的無關(guān)電磁噪聲并降低直接泄漏電磁是主要的幅度隱藏策略,其效果由電磁側(cè)信道的泄露信噪比S表示。根據(jù)實測電磁R的定義,信噪比的計算公式為
(4)
其中,V(Q)和V(Ne+No)表示直接泄露電磁和噪聲的方差。考慮噪聲影響[18],相關(guān)系數(shù)ρ(R,W)的計算方式改進為
(5)
可見,為了提高CEMA攻擊所需的實測電磁曲線數(shù)量,降低ρcorrect,需要降低電磁輻射的泄露信噪比,即信噪比越低,密碼電路的電磁側(cè)信道安全性越高。
基于現(xiàn)場可編程門陣列設(shè)計的RPOL單元由數(shù)據(jù)路徑選通(Data-Path Select,DPS)組件和振蕩環(huán)路組成,如圖1所示。該邏輯的插入位置在時序邏輯觸發(fā)器(Flip-Flop,F(xiàn)F)和組合邏輯查找表之間。數(shù)據(jù)路徑選通具備導(dǎo)通上下級邏輯單元的數(shù)據(jù)緩沖功能以及控制振蕩環(huán)路的功能。同時,作為振蕩環(huán)路的組件,數(shù)據(jù)路徑選通在振蕩環(huán)路中具備反向邏輯功能。在振蕩環(huán)路中,數(shù)據(jù)路徑選通的輸出邏輯經(jīng)過偶數(shù)個反向邏輯傳遞至數(shù)據(jù)路徑選通輸入端。
表1 RPOL單元的工作模式
RPOL單元有兩種工作模式:緩沖模式和振蕩模式。輸入端I1為數(shù)據(jù)緩沖端,與上級觸發(fā)器輸出端相連,在緩沖模式下,I1的邏輯值傳遞給輸出端O1,O1=I1;輸入端I2、I3是控制端,對RPOL單元的工作模式控制如表1所示。當I2=1且I3=0時,RPOL單元進入振蕩模式,輸出端O1為I4的取反邏輯值,即O1=~I4,振蕩環(huán)路開啟;當I2、I3處于其它狀態(tài)組合時,電路進入緩沖模式,振蕩環(huán)路邏輯狀態(tài)保持穩(wěn)定;輸入端I4為振蕩端,其邏輯狀態(tài)始終與O1保持一致,即I4=O1。
RPOL單元在振蕩模式下,振蕩周期如下式所示:
T=2(ktinv-co+tDPS-co) ,
(6)
其中,k表示取反邏輯的級聯(lián)級數(shù),且k=0,2,4,…,2n,tinv-co表示單個反向邏輯的傳播延時,tDPS-co表示數(shù)據(jù)路徑選通的傳播延時。
由于FPGA上的DPS和反向邏輯均由查找表實現(xiàn),因此對查找表的延時抖動進行分析。用di表示振蕩路徑上的單個查找表的邏輯延遲,di由多個部分組成,如下式所示:
di=Di+Δdi=Di+Δdgl-i+Δdl-i,
(7)
其中,Di表示LUTi的穩(wěn)定延時,Δdi表示延時的變化,包括全局延時抖動Δdgl-i和局部延時抖動Δdl-i,其中Δdgl-i表示由電路外界條件改變引起的延時變化。在外界條件不變時,Δdl-i是導(dǎo)致RPOL單元振蕩頻率不穩(wěn)定的主要因素。對于單個查找表而言,Δdl-i主要包括局部高斯抖動Δdlg-i以及附近電路的串擾影響Δdld-i[19],如下式所示:
Δdl-i=Δdlg-i+Δdld-i,
(8)
局部抖動對RPOL振頻影響如圖2所示。密碼電路輸入不同的數(shù)據(jù),加密過程中會對RPOL單元延時造成串擾影響,受該局部串擾以及局部高斯抖動的影響,RPOL單元振蕩環(huán)路的振蕩頻率發(fā)生抖動,RPOL單元振蕩相同時間后,輸出邏輯值不穩(wěn)定,可能為邏輯1或0。多個RPOL單元插入密碼電路,數(shù)據(jù)緩沖端輸出向量為I1,輸出端輸出向量為O1。在振蕩模式下,O1快速改變,下游組合邏輯的狀態(tài)由于輸入的改變而持續(xù)翻轉(zhuǎn)。RPOL單元的振蕩環(huán)路各組件存在局部延時抖動,輸出向量O1高度隨機化,使得下游組合邏輯中的各單元邏輯狀態(tài)均為隨機狀態(tài)。隨著RPOL單元進入緩沖模式,輸出更新為緩沖端數(shù)據(jù)I1,下游組合邏輯的狀態(tài)逐漸穩(wěn)定,此時組合邏輯輸出正確運算結(jié)果。該混淆過程,能夠降低組合邏輯的直接泄露電磁,從而降低組合邏輯的泄露電磁信噪比。
RPOL單元對組合邏輯輸入信號的混淆,減弱了組合邏輯狀態(tài)改變產(chǎn)生的電磁信息泄露與密鑰的相關(guān)性。為了掩蓋時序邏輯的電磁泄漏,基于延時鏈對RPOL單元的控制時序進行調(diào)控,用組合邏輯的狀態(tài)翻轉(zhuǎn)掩蓋時序邏輯的狀態(tài)翻轉(zhuǎn)。
基于延時鏈相移后的控制信號工作時序如圖3所示。CLK(CLocK)表示加密電路的主時鐘信號,假設(shè)密碼電路的所有觸發(fā)器均由上升沿觸發(fā),為了減小延時鏈的資源開銷,選用下降沿觸發(fā)器產(chǎn)生控制信號I2、I3,延時鏈總延時深度為t0~t3。t0時刻CLK下降沿到來后,延遲鏈中信號逐級發(fā)生0→1翻轉(zhuǎn);t1時刻,I2發(fā)生0→1翻轉(zhuǎn),RPOL單元進入振蕩模式,組合邏輯的輸入隨機翻轉(zhuǎn);t2時刻CLK上升沿到來,觸發(fā)器寄存加密中間值并發(fā)生邏輯翻轉(zhuǎn);t3時刻,RPOL單元進入緩沖模式。由于t1~t3時間段內(nèi)RPOL單元處于振蕩模式,觸發(fā)器的邏輯狀態(tài)翻轉(zhuǎn)被組合邏輯單元的隨機狀態(tài)翻轉(zhuǎn)所掩蓋。
時序邏輯的泄露電磁信噪比Z的計算方式為
(9)
其中,Nc為組合邏輯混淆過程中產(chǎn)生的電磁噪聲,該噪聲將改善時序邏輯的電磁泄露狀況。
為了滿足觸發(fā)器的時序約束,使觸發(fā)器對加密中間值OFF_clk2正確寄存,需要滿足時序要求:
tFF-hold (10) 其中,tFF-hold表示觸發(fā)器的保持時間,tmin-comb表示組合邏輯的輸入向量改變至下級觸發(fā)器輸入端數(shù)據(jù)穩(wěn)定的最短傳播時間,tDPS-co表示DPS組件的傳播延時。該時序要求使得在時鐘上升沿到來時,組合邏輯輸入向量滿足OFF_clk1→ORPOL→OFF_clk2,確保了密碼運算的功能正確。 電路正常運行的最小時鐘周期Tmin-clk的計算方式為 tmax-comb+tFF-setup+tFF-co (11) 其中,tmax-comb表示組合邏輯的最大傳播延時,tFF-co表示觸發(fā)器的傳播延時。插入RPOL單元后,密碼電路運行的最高頻率從1/Tmin-clk下降至1/(Tmin-clk+tDPS-co)。DPS組件最小可由單個查找表實現(xiàn),而相比于密碼算法組合邏輯傳輸延時,單個查找表的延時極小,因此RPOL單元的插入對性能基本無影響。 FPGA中有大量可作為延遲單元的邏輯資源,如:查找表、超前進位鏈、緩沖器等,其中超前進位鏈的延時精度最高,在45 nm工藝的FPGA中,精度可達到100 ps,能用于環(huán)振單元控制信號相位的細粒度調(diào)整。 為了驗證所提出方法的有效性,使用高級加密標準(Advanced Encryption Standard,AES)算法的AES-NIST(AES-National Institute of Standards and Technology)設(shè)計作為基準電路,插入RPOL單元后,采集FPGA的電磁輻射,使用CEMA方法來評估電磁側(cè)信道泄露。 AES-NIST是AES算法的開源寄存器傳輸級(Register Transfer Level,RTL)設(shè)計,可選用128 bit、192 bit、256 bit密鑰加密明文。實驗中,使用的明文和密鑰均為128 bit。AES電路運行時,先把密鑰擴展為輪密鑰并對明文密鑰做異或運算,再對異或結(jié)果進行10輪加密操作,前9輪加密包括字節(jié)替換、行移位、列混淆、輪密鑰加操作,第10輪僅進行字節(jié)替換、行移位、輪密鑰加操作。在字節(jié)替換操作中,將128 bit中間數(shù)據(jù)拆分為4個32 bit數(shù)據(jù),在4個時鐘周期內(nèi)分別運算。 使用已有自建的高性能電磁側(cè)信道采集系統(tǒng),如圖4所示。 圖4中使用的FPGA平臺為SAKURA-G開發(fā)板。該開發(fā)板集成了兩塊Xilinx的Spartan-6系列FPGA,分為主控和運算FPGA。運算FPGA配置為AES加密核對明文加密,通信模塊被配置在主控FPGA上,以完成上位機與AES加密核之間的明文、密文傳輸。該平臺使用LANGER公司的近場電磁探頭HH 250-75采集電磁輻射,探頭的位置通過控制系統(tǒng)固定,在運算FPGA表面的電磁輻射最強點處采集電磁,電磁探頭的感應(yīng)電壓經(jīng)30 dB放大器放大后,由Tektronix MSO 4054示波器傳遞至上位機。 示波器在平均模式下,以2.5×109/s的采樣率對電磁信號進行采樣。平均模式能去除環(huán)境和實驗設(shè)備引入的少量噪聲,并且一定程度上檢驗文中所提出防護方法對于數(shù)據(jù)預(yù)處理的抗性。 對于AES電路,S盒的字節(jié)替換操作是常用的側(cè)信道攻擊位置,因此對AES電路的第一輪字節(jié)替換操作構(gòu)建泄露模型,并對采集的電磁曲線做CEMA分析[7]。AES電路優(yōu)化前,在2 000條明文輸入下,CEMA結(jié)果如圖5(a)所示。存在泄露的采樣時間點區(qū)間為50至120,正確假設(shè)密鑰的最高相關(guān)系數(shù)為0.19,而泄露區(qū)間中錯誤假設(shè)密鑰的最高泄露相關(guān)系數(shù)為0.097,正確假設(shè)密鑰的相關(guān)性遠高于錯誤假設(shè)密鑰的相關(guān)性,C=1.96。該泄露區(qū)間內(nèi)的電磁側(cè)信道泄露MTD結(jié)果如圖5(b)所示,正確假設(shè)密鑰的相關(guān)性曲線在第94條曲線處與錯誤密鑰的相關(guān)性曲線分離,MTD=94。 通過對AES電路架構(gòu)的分析,在S盒模塊的輸出寄存器后插入RPOL單元,利用查找表和超前進位鏈串聯(lián)實現(xiàn)控制信號,使得優(yōu)化后AES電路依然滿足時序要求?;赗POL單元優(yōu)化后的AES電路在100 000條明文輸入下,CEMA結(jié)果如圖5(c)所示,正確假設(shè)密鑰被隱藏,表明該防護方法具備良好防護效果。在50~120的泄露區(qū)間內(nèi),正確假設(shè)密鑰的最高泄露相關(guān)系數(shù)為0.015,錯誤假設(shè)密鑰的最高泄露相關(guān)系數(shù)為0.032,C=0.47,相比防護前降低了76%。在相關(guān)系數(shù)最高采樣時刻74處,MTD計算結(jié)果如圖5(d)所示,在100 000條曲線處,仍有大量錯誤假設(shè)密鑰相關(guān)性高于正確密鑰相關(guān)性,優(yōu)化后AES電路的MTD>100 000,泄露下降超過1 063倍。 表2列出了AES電路優(yōu)化前后的資源、功耗和性能開銷比較。 表2 優(yōu)化前后的AES資源及性能開銷 在電路優(yōu)化后,觸發(fā)器的使用數(shù)目減少1.2%,查找表使用開銷增加4.3%。寄存器的減少可能是由于RPOL單元插入后,PlanAhead工具在綜合過程中自動優(yōu)化的結(jié)果。盡管Slice的使用數(shù)目較多,然而Slice中存在大量空余邏輯未使用,觸發(fā)器和查找表的總邏輯資源開銷僅增加1.1%。得益于基于延時鏈的控制信號生成,RPOL單元處于振蕩模式的時間極短,使得該防護方法引入的額外功耗開銷僅為1.47%。防護后AES電路的最高運行頻率增加2.1%,表明該防護方法不影響電路性能。 表3比較了不同電磁側(cè)信道防護方法的開銷和效果,可見基于RPOL單元的防護方法相比于其他文獻,以較低的資源開銷和功耗開銷,使得密碼電路的安全性能有較高提升,在綜合性能上具有明顯優(yōu)勢。 表3 與相關(guān)文獻的防護效果與開銷對比 為了驗證筆者提出的防護方法在不同工藝制程的FPGA中的適用性,選用28 nm工藝的Kintex-7 XC7K160T FPGA重復(fù)上述實驗,AES電路的時鐘頻率保持為48 MHz,電磁數(shù)據(jù)的采集使用了32次平均模式去除環(huán)境噪聲影響。AES電路優(yōu)化前,在2 000條明文輸入下,攻擊單個字節(jié)所需的最少曲線數(shù)目為25條,對應(yīng)字節(jié)的CEMA相關(guān)系數(shù)為0.269。優(yōu)化后的AES電路,在50 000條明文輸入下,未能分析出對應(yīng)密鑰的字節(jié),且相關(guān)系數(shù)降低至0.011,MTD>50 000。防護后所需MTD的數(shù)量增加2 000倍以上,泄露的下降同樣達到千倍量級,表明筆者提出的防護方法在不同F(xiàn)PGA上仍然具備良好的防護效果。電路優(yōu)化后,使用查找表和寄存器的邏輯資源總數(shù)從4 170提升至4 427,增長了約6.2%,增長的資源開銷主要用于RPOL單元的時序調(diào)控。防護后電路的最大運行頻率從194.5 MHz變化至187.8 MHz,降低了約3.44%,表明筆者提出的防護方法對電路性能基本無影響。 針對現(xiàn)場可編程門陣列實現(xiàn)密碼電路面臨的電磁側(cè)信道安全威脅,筆者提出一種基于隨機預(yù)混淆邏輯單元的抗電磁側(cè)信道攻擊方法,通過靶向插入RPOL單元來降低泄露電磁的信噪比。實驗結(jié)果表明,該方法在不影響時序性能的同時,以較低的資源和功耗開銷,有效地抵御了電磁側(cè)信道攻擊,大幅提高了現(xiàn)場可編程門陣列實現(xiàn)密碼電路的安全性能。3 實驗結(jié)果與分析
3.1 實驗環(huán)境
3.2 泄露優(yōu)化結(jié)果及開銷分析
3.3 防護方法的延展性驗證
4 結(jié)束語