胡江溢,杜新綱,孫樂昊,胡曉波
(1.南京南瑞集團(tuán)公司,江蘇南京211106;2.國家電網(wǎng)公司營銷部,北京100031;
3.武漢大學(xué),湖北武漢430072;4.北京南瑞智芯微電子科技有限公司,北京100192)
SOPC型芯片的側(cè)信道安全性分析*
胡江溢1,杜新綱2,孫樂昊3,胡曉波4
(1.南京南瑞集團(tuán)公司,江蘇南京211106;2.國家電網(wǎng)公司營銷部,北京100031;
3.武漢大學(xué),湖北武漢430072;4.北京南瑞智芯微電子科技有限公司,北京100192)
側(cè)信道分析方法已成為不同類型密碼芯片的主要威脅,現(xiàn)有國際上及國內(nèi)針對側(cè)信道分析提出的測試平臺主要基于智能卡和FPGA芯片兩種,且這些測試平臺只針對某種特定芯片進(jìn)行安全性測試。面對軟件、硬件及軟硬件協(xié)同的密碼芯片設(shè)計(jì),文中提出一種基于SOPC芯片的側(cè)信道測試平臺,可以同時在一塊芯片上模擬以上三種類型的密碼芯片設(shè)計(jì),極大降低了測試成本。同時,文中針對AES加密算法,對軟件、硬件及軟硬件協(xié)同設(shè)計(jì)下的密碼實(shí)現(xiàn)安全性進(jìn)行較詳細(xì)分析,其分析結(jié)果對密碼芯片設(shè)計(jì)者是一個有力的輔助。
側(cè)信道分析 SOPC芯片 密碼芯片
現(xiàn)如今,嵌入式系統(tǒng)軟件和硬件的聯(lián)系越來越緊密,其應(yīng)用對功能和性能的需求也越來越高[1]。SOPC型芯片通過把ARM處理器嵌入到傳統(tǒng)的FPGA芯片中,形成一個軟硬件協(xié)同的芯片平臺,能夠充分發(fā)揮軟硬件各自的優(yōu)勢,有效緩解了市場日益增長的需求。但是芯片在運(yùn)行過程中往往會泄露與敏感數(shù)據(jù)相關(guān)的功耗、電磁輻射等信息[2],所以作為密碼芯片而言,其抗側(cè)信道分析能力格外重要。美國聯(lián)邦信息處理標(biāo)準(zhǔn)FIPS 140-3[3-4]定義了5個級別的安全要求,其中明確了安全芯片必須具備抗側(cè)信道分析能力。SOPC型芯片作為一種新型加密
芯片的載體,有必要對其抗側(cè)信道能力進(jìn)行分析和評估。
1.1 AES加密算法
AES算法[5]是一種分組算法,其明文長度固定為128比特,密鑰長度則可以128,192或256比特。對于長為128比特的明文,AES會將它視為以8比特為單位的4×4的矩陣,操作都會在這個矩陣上進(jìn)行。在加密的過程中,AES首先進(jìn)行密鑰擴(kuò)展(Key Expansion)操作,產(chǎn)生每一輪的輪密鑰;之后進(jìn)行輪變換,AES每一輪的加密循環(huán)(除最后一輪外)均由4個不同的操作組成:
1)S盒變換(SubBytes)通過一個非線性的替換函數(shù),每一個字節(jié)被替換成對應(yīng)的字節(jié)。
2)行移位(ShiftRows)將矩陣中的每一行進(jìn)行循環(huán)移位。
3)列混合(MixColumns)對矩陣的每一列進(jìn)行線性變換,產(chǎn)生混合的效果。
4)子密鑰加(AddRoundKey)矩陣的每一個字節(jié)都與該輪相應(yīng)的輪密鑰進(jìn)行異或運(yùn)算。
AES最后的一個加密循環(huán)中省略MixColumn步驟。根據(jù)不同的密鑰長度,AES加密循環(huán)的輪數(shù)也有所不同,密鑰長度分別為128,192或256比特時,循環(huán)次數(shù)分別為10,12或14。具體流程見圖1。
圖1 AES加密流程Fig.1 Flow diagram of AES algorithm
1.2 Xilinx的SOPC芯片結(jié)構(gòu)
本文使用了Xilinx公司推出的ZYBO開發(fā)板作為研究平臺。ZYBO開發(fā)板上搭載有Zynq-7000平臺[6],該平臺將專用的嵌入式處理器PowerPC、Cortex-A9硬核處理器嵌入到FPGA芯片中,形成一個SOPC型的FPGA芯片,如圖2所示。
圖2 Zynq-7000平臺結(jié)構(gòu)Fig.2 Structure of Zynq-7000 platform
這種結(jié)構(gòu)使得一塊芯片上同時具有多核處理器的處理系統(tǒng)(PS,Processing System)和可編程邏輯(PL,Programmable Logic)。此外,Xilinx還引入了AXI接口協(xié)議,用來描述處理器系統(tǒng)和可編程邏輯之間的數(shù)據(jù)傳輸方式。AXI總線作為一種高性能、高帶寬、低延遲的片內(nèi)總線,在經(jīng)過開發(fā)人員簡單地配置之后,可以實(shí)現(xiàn)芯片內(nèi)部器件的互聯(lián),并且解決了ARM核與FPGA通信的瓶頸問題。
1.3 SOPC編程工具和設(shè)計(jì)流程
Xilinx公司提供了基于Vivado的一整套軟件和硬件協(xié)同處理和設(shè)計(jì)的工具[6]。硬件設(shè)計(jì)主要使用Vivado HLS工具。HLS可以把開發(fā)人員編寫的C語言代碼轉(zhuǎn)換成硬件描述語言,從而快速地完成HDL設(shè)計(jì)輸入、綜合、仿真和實(shí)現(xiàn),以及處理器與可編程邏輯接口的配置。軟件設(shè)計(jì)主要使用Xilinx SDK工具,在這個工具中,開發(fā)人員可以完成軟件代碼的編寫、編譯和鏈接過程。此外,Xilinx SDK工具能將軟件代碼生成的ELF文件代碼插入到生成的FPGA比特流文件中,供開發(fā)板下載使用。
1.4 SOPC軟硬件協(xié)同設(shè)計(jì)結(jié)構(gòu)
根據(jù)SOPC型芯片內(nèi)部構(gòu)造的特點(diǎn),本文采用了如圖3所示的軟硬件協(xié)同的AES算法結(jié)構(gòu)。芯片通過內(nèi)部的UART模塊接收從上位機(jī)發(fā)送過來的16個字節(jié)的明文數(shù)據(jù);數(shù)據(jù)在處理器上完成AES (除S盒變換之外)正常的加密操作;S盒變換的操作在FPGA中進(jìn)行,整個操作以查找表的方式實(shí)現(xiàn), S盒查找表存儲在FPGA芯片的BRAM資源中; ARM核與FPGA通過芯片內(nèi)部的AXI總線完成數(shù)據(jù)交換;加密的結(jié)果再次通過內(nèi)部的UART模塊回傳給上位機(jī)。
圖3 AES算法的軟硬件協(xié)同設(shè)計(jì)結(jié)構(gòu)Fig.3 Structure of co-designed AESalgorithm
2.1 PA分析原理
側(cè)信道分析方法是一種利用設(shè)備運(yùn)算過程可能泄露的物理信息(如功耗、聲音、電磁輻射等),分析并獲取設(shè)備敏感信息的方法。常見的側(cè)信道分析方法主要分為差分功耗分析(DPA,Differential Power Analysis)[7]和相關(guān)功耗分析(CPA,Correlation Power Analysis)[8]兩種。
DPA會確定一種選擇函數(shù),然后根據(jù)猜測密鑰將采集到的功耗曲線劃分為兩個不同的集合。對兩個集合中的數(shù)據(jù)分別計(jì)算其平均功耗曲線,將平均功耗曲線作差得到采集數(shù)據(jù)的差分功耗曲線。若差分曲線上會出現(xiàn)明顯的尖峰,說明此時猜測密鑰與真實(shí)密鑰相同。
CPA是對DPA方法的一種改進(jìn),CPA會對已知明文和猜測密鑰進(jìn)行計(jì)算,形成一個中間值矩陣,之后按照相應(yīng)的泄露模型(漢明重量、漢明距離等)得到假設(shè)功耗曲線。由于假設(shè)功耗曲線是對設(shè)備實(shí)際功耗曲線的一種預(yù)測,兩者存在一定的相關(guān)性,所以通過比對兩條曲線可以分析出目標(biāo)密鑰。
2.2 曲線預(yù)處理
在實(shí)際采集的過程中,功耗曲線由于種種原因(電路噪聲信號較大,門電路延時不固定等)會出現(xiàn)時域上無法對齊的現(xiàn)象。對于沒有對齊的功耗曲線直接實(shí)施側(cè)信道分析方法,其分析效果往往并不理想。為此,在實(shí)施正式的側(cè)信道分析之前,我們需要把采集到的功耗曲線進(jìn)行預(yù)處理。
常見的曲線預(yù)處理方法主要有曲線靜態(tài)對齊和傅里葉變換兩種方法。曲線靜態(tài)對齊方法首先確定分析區(qū)間,然后會將采集到的功耗曲線所有位置與分析區(qū)間內(nèi)的基準(zhǔn)曲線依次進(jìn)行匹配。選定位置后,分析者平移功耗曲線以確保在相同的時間點(diǎn)上,功耗曲線與基準(zhǔn)曲線所對應(yīng)操作相同。
而傅里葉變換FFT則是一種將功耗曲線從時域上轉(zhuǎn)換到頻域的方法。根據(jù)信息理論可知,信號經(jīng)傅立葉變換,其總能量保持不變,符合能量守恒定律。因此,利用傅里葉變換可以在把功耗信號從時域變換到頻域的同時,使得信號依然存在且不受到時域信號中隨機(jī)時延的影響,即DPA和CPA的時域信號差異在頻域信號中一樣能夠得到體現(xiàn)[9]。
2.3 安全性評測指標(biāo)
本文研究的重點(diǎn)主要集中于SOPC型芯片的抗側(cè)信道分析能力,根據(jù)相關(guān)論文和研究成果[10-13],選擇了以下4種評價指標(biāo):曲線消耗(CT,Consumption of Trace)、攻擊時間(AT,Attack Time)、攻擊成功率(SR, Success Rate)以及猜測熵(GE,Guessing Entropy)。
對于側(cè)信道分析,本文定義實(shí)際加密操作為EK={Ek(.)}k∈κ,K為密鑰,(EK,L)表示實(shí)際運(yùn)算的與泄漏函數(shù)L的關(guān)系。一般而言,攻擊者會將密鑰拆分成子密鑰進(jìn)行攻擊,子密鑰空間遠(yuǎn)小于原始密鑰空間。假設(shè)攻擊者所進(jìn)行的攻擊為AEK,L,時間復(fù)雜度為τ,空間復(fù)雜度為m,攻擊需要的功耗曲線數(shù)為q,對應(yīng)的數(shù)據(jù)集合為1q=[l1,l2,…,],候選密鑰集合為gq=[g1,g2,…,](如果子密鑰長度為8,則為256)。在攻擊中,攻擊者可能會選取多個密鑰作為攻擊結(jié)果,如對于CPA攻擊者則選擇相關(guān)性系數(shù)前o個最大值對應(yīng)的子密鑰作為攻擊結(jié)果,將這樣的攻擊結(jié)果集合定義為[g1,g2,…,go],最佳攻擊結(jié)果即為g1。這樣的密鑰恢復(fù)實(shí)驗(yàn)稱為o階密鑰恢復(fù)實(shí)驗(yàn)。
(1)曲線消耗
攻擊成功意味著最佳攻擊結(jié)果g1與目標(biāo)密鑰相同,而曲線消耗是指g1為目標(biāo)密鑰且穩(wěn)定時所消耗的最少曲線數(shù)量。
(2)攻擊時間
攻擊時間是最基本的評價指標(biāo),即從攻擊開始到攻擊結(jié)束所消耗的時間,是攻擊效率的直觀的體現(xiàn)。
(3)攻擊成功率
攻擊成功率和猜測熵相比之下比較復(fù)雜,為了更加清楚地說明兩個指標(biāo)的含義,本文定義如表1的兩組實(shí)驗(yàn):對o階子密鑰恢復(fù)實(shí)驗(yàn)為,密鑰猜測實(shí)驗(yàn)。
表1 密鑰恢復(fù)與猜測實(shí)驗(yàn)對比Table 1 Comparison of key recovery and guess
根據(jù)上文的說明,對于攻擊結(jié)果集合[g1,g2,…,go]和子密鑰的候選集合S,o階攻擊成功率為:
(4)猜測熵
猜測熵決定了抵抗有針對性的密碼猜測攻擊的能力,主要用來衡量完成一次攻擊的剩余工作量。根據(jù)密鑰猜測實(shí)驗(yàn),將猜測熵定義為:
當(dāng)攻擊成功率不高時,猜測熵直接說明攻擊者的平均剩余工作量。
2.4 針對SOPC加密芯片側(cè)信道分析
對于一個嵌入式應(yīng)用而言,其許多功能既可以由軟件完成也可以由硬件完成,而我們知道硬件的運(yùn)行速度快,軟件的開發(fā)成本低,所以SOPC型芯片可以兼顧軟件和硬件的優(yōu)勢,實(shí)現(xiàn)嵌入式應(yīng)用的最優(yōu)化。然而要想實(shí)現(xiàn)軟硬件的協(xié)同設(shè)計(jì),處理器和FPGA之間必須進(jìn)行數(shù)據(jù)的傳輸和交換,從而有可能產(chǎn)生側(cè)信道信息的泄露問題。
如圖4所示,本文采用了軟硬件協(xié)同的AES算法的設(shè)計(jì)方案。待查表的數(shù)據(jù)(以AES第一輪加密操作為例,data1=plaintext⊕key)從處理器通過AXI總線傳輸?shù)紽PGA中。之后,FPGA將查表的結(jié)果(data2=Sbox(plaintext⊕key))通過AXI總線返回到處理器中進(jìn)行后續(xù)的操作。包含有密鑰的敏感信息在片內(nèi)的AXI總線上不加保護(hù)地進(jìn)行傳輸,很有可能存在側(cè)信道信息的泄露,本文著重對這個可能的側(cè)信道信息泄露點(diǎn)進(jìn)行分析。
圖4 SOPC型加密芯片的側(cè)信道泄露點(diǎn)Fig.4 Side-channel leakage point of SOPC crypto chip
3.1 實(shí)驗(yàn)平臺的介紹
本文實(shí)驗(yàn)使用Xilinx公司的ZYBO開發(fā)板作為AES算法的實(shí)現(xiàn)平臺,來分析軟硬件協(xié)同設(shè)計(jì)的
AES算法可能的側(cè)信道信息泄露情況。
實(shí)驗(yàn)平臺如圖5所示,可分為三大模塊。SOPC型芯片模塊由ZYBO板構(gòu)成,能夠正常運(yùn)行AES算法。ZYBO板通過串行接口與上位機(jī)相連,完成接發(fā)數(shù)據(jù)的功能;通過GPIO端口為示波器提供采集數(shù)據(jù)的觸發(fā)信號。側(cè)信道信息采集模塊主要有示波器和近場探頭組成,采集芯片周圍的電磁輻射信號,并傳輸給上位機(jī)。通用PC模塊由上位機(jī)和側(cè)信道分析程序組成,能夠控制示波器和ZYBO板工作,并對采集到的數(shù)據(jù)進(jìn)行分析。本次實(shí)驗(yàn)中,上位機(jī)控制ZYBO執(zhí)行AES算法10000次,并控制示波器采集完整的10個輪次的加密操作。
圖5 實(shí)驗(yàn)平臺示意Fig.5 Structure of experimental platform
3.2 實(shí)驗(yàn)結(jié)果的分析
本文對實(shí)驗(yàn)平臺采集得到的功耗曲線進(jìn)行了分析。這里我們以AES算法第一輪加密操作的第一個字節(jié)的S盒變換為例說明側(cè)信道分析結(jié)果。圖6是該字節(jié)的DPA分析的差分曲線。從圖6中,可以明顯地看到曲線出現(xiàn)明顯的尖峰,對應(yīng)第一輪密鑰的第一個字節(jié)0x00。
圖6 AES第一輪第一個密鑰字節(jié)k1的DPA差分曲線Fig.6 DPA differential curve ofk1in the first round
根據(jù)上面的說明,差分功耗曲線上存在尖峰則說明此時的猜測密鑰和正確密鑰相同。由此可知, DPA對該AES算法設(shè)計(jì)的側(cè)信道有效,也就是說這種軟硬件協(xié)同的AES算法設(shè)計(jì)存在著側(cè)信道信息的泄露問題。
整個實(shí)驗(yàn)中,本文還嘗試了CPA、靜態(tài)對齊之后CPA和傅里葉變換FFT之后CPA的密鑰恢復(fù)效果(AES算法第一輪加密操作的第一個字節(jié)的S盒變換)。圖7和圖8分別是在不同分析方法下的攻擊成功率和猜測熵對比圖,兩幅圖橫坐標(biāo)表示使用的功耗曲線條數(shù),縱坐標(biāo)分別對應(yīng)了攻擊成功率和猜測熵??梢钥吹?隨著曲線條數(shù)增加,攻擊成功率呈上升趨勢,猜測熵呈下降趨勢,說明了側(cè)信道分析方法的有效性。
圖7 不同分析方法的攻擊成功率Fig.7 Success rate under differentanalyses
圖8 不同分析方法的猜測熵Fig.8 Guess entropy under different analyses
本文針對應(yīng)用前景廣闊的SOPC型芯片,首次實(shí)現(xiàn)了ARM處理器與FPGA芯片之間數(shù)據(jù)總線上的側(cè)信道信息分析工作。對于嵌入式應(yīng)用而言,為了充分提升板卡的性能,系統(tǒng)開發(fā)者需要進(jìn)行合理的軟硬件的協(xié)同設(shè)計(jì),而速度、成本以及安全是其考
慮的關(guān)鍵因素。本文在ZYBO開發(fā)板上對軟硬件協(xié)同設(shè)計(jì)的AES算法進(jìn)行了側(cè)信道信息的分析。實(shí)驗(yàn)結(jié)果表明,常規(guī)的側(cè)信道分析方法可以有效地提取芯片內(nèi)部數(shù)據(jù)總線上的敏感信息,并且選擇合適的預(yù)處理方法,能提高分析的效率。
[1] 熊光澤,詹瑾瑜.嵌入式系統(tǒng)軟/硬件協(xié)同設(shè)計(jì)技術(shù)綜述[J].計(jì)算機(jī)應(yīng)用,2006,26(04):757-760.
XIONG Guang-ze,ZHAN Jin-yu.Survey on Techniques of SoC Hardware/Software Co-design[J].Journal of Computer Applications,2006,26(4):757-760.
[2] 王松,陳曼,韓煉冰,等.FPGA上抗側(cè)信道攻擊的密碼算法實(shí)現(xiàn)[J].通信技術(shù),2014,47(09):1100-1103.
WANG Song,CHEN Man,HAN Lian-bin,et al.Side-Channel Resistance Implementation for FPGA[J].Communications Technology,2014,47(09):1100-1103.
[3] National Institute of Standards and Technology.FIPS PUB 140-3,Security Requirements for Cryptographic Modules[S].USA:NIST,2014:39-40.
[4] Ravi S,Raghunathan A,Kocher P,et al.Security in Embedded Systems:Design Challenges[J].ACM Transactions on Embedded Computing Systems(TECS), 2004,3(3):461-491.
[5] 張煥國,王張宜.密碼學(xué)引論[M].武漢:武漢大學(xué)出版社,2009:69-89.
ZHANG Huan-guo,WANG Zhang-yi.Introduction to Cryptology[M].Wuhan:Wuhan University Press, 2009:69-89.
[6] 何賓.Xilinx All Programmable Zynq-7000 SoC設(shè)計(jì)指南[M].北京:清華大學(xué)出版社,2013:15-20.
HE Bin.Xilinx All Programmable Zynq-7000 SoC design guide[M].Beijing:Tsinghua University Press,2013: 15-20.
[7] Kocher P,Jaffe J,Jun B.Differential power analysis [C]//Advances in Cryptology—CRYPTO'99.Berlin Heidelberg:Springer,1999:388-397.
[8] Brier E,Clavier C,Olivier F.Correlation Power Analysis with a Leakage Model[M].Cryptographic Hardware and Embedded Systems-CHES 2004.Berlin Heidelberg: Springer,2004:16-29.
[9] Agrawal D,Archambeault B,Rao JR,et al.The EM side—channel(s)[M].Cryptographic Hardware and Embedded Systems-CHES 2002.Berlin Heidelberg: Springer,2003:29-45.
[10] MacéF,Standaert FX,Quisquater JJ.Information Theoretic Evaluation of Side-Channel Resistant Logic Styles [M].Berlin Heidelberg:Springer,2007:427-442.
[11] Regazzoni F,Cevrero A,Standaert F X,et al.A Design Flow and Evaluation Framework for DPA-Resistant Instruction Set Extensions[M].Cryptographic Hardware and Embedded Systems-CHES 2009.Berlin Heidelberg:Springer,2009:205-219.
[12] Standaert F X,Archambeau C.Using Subspace-based Template Attacks to Compare and Combine Power and Electromagnetic Information Leakages[M].Cryptographic Hardware and Embedded Systems-CHES 2008.Berlin Heidelberg:Springer,2008:411-425.
[13] Veyrat-Charvillon N,Gérard B,Standaert F X.Security Evaluations beyond Computing Power[C]//EUROCRYPT.Berlin Heidelberg:Springer,2013:126-141.
胡江溢(1960—),男,博士,高級工程師,主要研究方向?yàn)殡娏I銷管理技術(shù),信息安全;
HU Jiang-yi(1960-),male,Ph.D., senior engineer,mainly engaged in powermarketing management technology and information security.
杜新綱(1966—),男,碩士,高級工程師,主要研究方向?yàn)殡娏I銷管理技術(shù),信息安全;
DU Xin-gang(1966-),male,M.Sci.,senior engineer, mainly engaged in power marketing management technology and information security;
孫樂昊(1992—),男,在讀本科,主要研究方向?yàn)橛?jì)算機(jī)技術(shù);
SUN Le-hao(1992-),male,undergraduate,majoring in computer technology;
胡曉波(1977—),女,學(xué)士,工程師,主要研究方向?yàn)閼?yīng)用密碼學(xué),密碼芯片。
HU Xiao-bo(1977-),female,B.Sci.,engineer,majoring in applied cryptography,crypto chip.
Side-Channel Security Analysis of SOPC Chip
HU Jiang-yi1,DU Xin-gang2,SUN Le-hao3,HU Xiao-bo4**
(1.NARIGroup Corporation,Nanjing Jiangsu 211106,China;2.China State Grid Corp Marketing Department,Beijing100031,China;3.Wuhan University,Wuhan Hubei430072,China;
4.Beijing NARISmartChip Microelectronics Company Limited,Beijing100192,China)
Side-channel security analysis now becomes themajor threatof different cipher chips.The exist testing platform of side-channel analysis athome and abroad ismainly based on the smart card and FPGA chip,and this platform merely evaluates the security of certain chips.Duo to thatno test platform could evaluate the software,hardware and software and hardware co-designed cipher chip,the side-channel test platform based on SOPC chip is proposed,and the proposed platform could simulate the design of above three different cipher chips at the same time on a chip,and thus greatly reduce the testing cost.Moreover, aiming at AESencryption algorithm,this paper analyzes in detail the security of these three different implementations,and the analysis result is beneficial to cipher-chip designers.
side-channel analysis;SOPC chip;cipher chip
TP309.7
A
1002-0802(2014)12-1445-06
10.3969/j.issn.1002-0802.2014.12.020
2014-09-20;
2014-11-13 Received date:2014-09-20;Revised date:2014-11-13
北京市科技計(jì)劃(No.Z111104062210001),國家自然科學(xué)基金(No.61472292,No.61202386)
Foundation Item:Project supported by Beijing Science and Technology Plan(Z111104062210001);National Natural Science Foundation of China(No.61472292,No.61202386)