摘 要:理論上安全的密碼算法,其算法實(shí)現(xiàn)也容易遭受側(cè)信道攻擊,需要評(píng)估密碼算法的側(cè)信道泄露并且加以防護(hù)。系統(tǒng)介紹以Primepower為核心的能量分析攻擊仿真功耗采集平臺(tái)的搭建過程,使用該平臺(tái)采集AES密碼算法加密多組不同明文的動(dòng)態(tài)瞬時(shí)功耗,并使用這些功耗對(duì)AES算法成功實(shí)施了相關(guān)能量分析攻擊。
關(guān)鍵詞:側(cè)信道攻擊;相關(guān)能量分析攻擊;仿真平臺(tái);高級(jí)加密標(biāo)準(zhǔn)
DOI:10.16640/j.cnki.37-1222/t.2017.14.222
1 側(cè)信道攻擊與防護(hù)思路
側(cè)信道攻擊作為一種全新的密碼分析方法,突破了傳統(tǒng)密碼分析方法的局限,借助密碼芯片加解密的物理信息(功耗[1] 和電磁輻射[2]等)泄露而得以對(duì)子密鑰而非整個(gè)密鑰進(jìn)行窮盡攻擊,從而以極小的時(shí)間代價(jià)和存儲(chǔ)代價(jià)取得比傳統(tǒng)數(shù)學(xué)分析方法更好的分析結(jié)果。目前,側(cè)信道攻擊的研究主要集中在能量分析攻擊,通過采集設(shè)備加密時(shí)的功耗來分析和獲取密鑰信息[3]。研究結(jié)果表明,沒有任何防護(hù)措施的密碼芯片,是無法抵抗側(cè)信道攻擊,即使其密碼算法在理論上是安全的[4]。這要求幾乎所有的密碼算法芯片都必須研究算法可能導(dǎo)致的側(cè)信道泄露,并加上防護(hù)措施。
評(píng)估每款密碼算法的側(cè)信道泄露,需要把密碼算法的Verilog實(shí)現(xiàn)下載到功耗仿真平臺(tái)上或者基于FPGA的側(cè)信道評(píng)估板上運(yùn)行,收集對(duì)應(yīng)的功耗集,并展開側(cè)信道攻擊的安全評(píng)估。
2 能量分析攻擊仿真采集平臺(tái)搭建
由于Synopsys Primepower的專業(yè)性和精準(zhǔn)程度高,絕大部分側(cè)信道攻擊研究者都使用該仿真平臺(tái)采集算法執(zhí)行的瞬時(shí)功耗,進(jìn)行側(cè)信道攻擊與評(píng)估。圖 1描述了基于Primepower仿真功耗采集平臺(tái)的模擬功耗采集與攻擊實(shí)驗(yàn)方案。
首先使用Verilog硬件描述語言來編碼實(shí)現(xiàn)密碼算法。接著在Synopsys DC中使用工藝庫來綜合這些Verilog源文件,得到門級(jí)網(wǎng)表文件。以門級(jí)網(wǎng)表文件表示的密碼算法放入Modelsim上模擬運(yùn)行,通過testbench激勵(lì)文件調(diào)用門級(jí)網(wǎng)表文件的密碼算法模塊,同時(shí)可以把整個(gè)運(yùn)行過程的細(xì)節(jié)通過“值變存儲(chǔ)文件”VCD做記錄。最后使用Primepower程序精確計(jì)算出“值變存儲(chǔ)文件”VCD中所有操作的瞬時(shí)功耗。整個(gè)過程,都需使用真實(shí)的工藝庫來編譯、模擬運(yùn)行和計(jì)算功耗。
3 仿真平臺(tái)采集AES功耗
(1)使用硬件描述語言Verilog編寫AES密碼算法實(shí)現(xiàn),保存為AES.v。
(2)在Synopsys DC中使用臺(tái)積電tsmc-0.18um工藝庫來綜合步驟1所實(shí)現(xiàn)的Verilog密碼算法AES.v,得到以工藝庫中的電路元件描述的門級(jí)網(wǎng)表文件AES_NETLIST.v。在Synopsys DC綜合Verilog源文件的過程如下:
1)set search_path "/home/.../project/AES" //設(shè)置源文件和工藝庫文件所在目錄
2)set link_path "* slow.db fast.db dw_foundation.sldb" //指定工藝庫文件
3)read_verilog "AES.v" //讀入verilog源文件,如有多個(gè)源文件,可以讀入多次
4)current_design AES //指定編譯芯片的主模塊名
5)uniquify //實(shí)例唯一化,可選
6)compile -exact_map //編譯verilog源文件
7)write -hierarchy -format verilog -output /home/.../project/AES/AES_NETLIST.v//把綜合結(jié)果寫入門級(jí)網(wǎng)表文件AES_NETLIST.v
(3)門級(jí)網(wǎng)表文件AES_NETLIST.v在ModelSim仿真運(yùn)行,得到“值變存儲(chǔ)文件”VCD。
需要加入testbench 激勵(lì)文件來讓ModelSim正確仿真AES_NETLIST.v算法。同時(shí)通過$dumpfile("AES1.VCD")和$dumpvars命令讓ModelSim記錄下“值變存儲(chǔ)文件”VCD。
(4)把生成的一系列VCD 文件和tsmc-0.18um工藝庫放入Primepower中,計(jì)算出一條條對(duì)應(yīng)著明文的瞬時(shí)功耗曲線。使用Primepower計(jì)算一條功耗的過程如下:
1)set search_path "/home/.../project/AES" //設(shè)置源文件和工藝庫文件所在目錄
2)set link_path "* slow.db fast.db dw_foundation.sldb" //指定工藝庫文件
3)read_verilog /home/.../project/AES/AES_NETLIST.v //讀入網(wǎng)表文件
4)current_design AES //指定編譯芯片的主模塊名
5)read_vcd -strip_path AES_TB/AES AES1.VCD //讀入VCD文件
6)set_waveform -file /home/.../project/AES/AES1.out -format out //指定功耗的輸出路徑
7)calculate_power -waveform //根據(jù)網(wǎng)表和“值變存儲(chǔ)文件”VCD計(jì)算功耗
4 對(duì)功耗采集和能量分析攻擊
反復(fù)使用第3節(jié)所述的采集仿真功耗的方法,僅在步驟3的激勵(lì)文件中修改明文的值(一般采用隨機(jī)明文),可以產(chǎn)生大量對(duì)應(yīng)著不同明文的功耗曲線,對(duì)功耗曲線進(jìn)行如下所述的相關(guān)能量分析攻擊,則可以逐字節(jié)恢復(fù)出設(shè)備密鑰。
% cipher:密文數(shù)組; traces:功耗數(shù)組; key:恢復(fù)出來的128位設(shè)備密鑰
function key = aesCPA( cipher,traces )
parfor n = 1:keyWidth %并行化逐個(gè)字節(jié)猜測(cè)子密鑰
hd = calEASSt9St10HD( cipher, n ); %計(jì)算所有候選密鑰對(duì)應(yīng)的猜測(cè)功耗值
cor = calTraceHdCor( traces,hd ); %計(jì)算漢明距離與實(shí)際功耗的皮爾斯線性相關(guān)度
key(n)= maxIndex( cor ); %找出使得皮爾斯線性相關(guān)度最高對(duì)應(yīng)的猜測(cè)密鑰
end
end
在仿真平臺(tái)上采集10000組不同的隨機(jī)明文對(duì)應(yīng)的AES加密功耗,使用這些功耗曲線和明文組,使用上述相關(guān)能量分析攻擊算法,可以正確恢復(fù)出設(shè)備密鑰。圖 2給出對(duì)設(shè)備密鑰第一個(gè)字節(jié)的攻擊結(jié)果,可以看出隨著明文數(shù)增加到500條以上,正確密鑰對(duì)應(yīng)的皮爾斯相關(guān)度(黑色加粗線條)明顯大于其他錯(cuò)誤密鑰對(duì)應(yīng)的皮爾斯相關(guān)度,從而可以正確找到設(shè)備密鑰。
5 總結(jié)
本文詳細(xì)介紹了以Primepower為核心的能量分析攻擊仿真功耗采集平臺(tái)的搭建過程,演示了如何使用該平臺(tái)采集AES密碼算法加密多組不同明文的動(dòng)態(tài)瞬時(shí)功耗曲線,并使用這些功耗對(duì)AES算法成功實(shí)施了相關(guān)能量分析攻擊。
參考文獻(xiàn):
[1]P. Kocher, J. Jaffe and B. Jun. Differential power analysis[C].Advances in Cryptology – CRYPTO99, Springer Berlin Heidelberg, 1999:388-397.
[2]Gandolfi K, Mourtel C, Olivier F. Electromagnetic analysis: Concrete results[C]. Cryptographic Hardware and Embedded Systems - CHES 2001. Springer Berlin Heidelberg, 2001:251-261.
[3]E. Brier, C. Clavier and F. Olivier. Correlation Power Analysis with a Leakage Model[C].Cryptographic Hardware and Embedded Systems-CHES 2004. Springer Berlin Heidelberg, 2004:16-29.
[4]Mangard Stefan, Elisabeth Oswald, and Thomas Popp. Power analysis attacks: Revealing the secrets of smart cards[M].Springer Science & Business Media, 2008.
廣東省公益研究與能力建設(shè)專項(xiàng)資金(2016a010101030);廣東普通高校青年創(chuàng)新人才項(xiàng)目(2014KQNCX177)資助
作者簡(jiǎn)介:李偉鍵(1979-),男,廣東汕頭人,博士,講師,研究方向:密碼芯片側(cè)信道攻擊與防護(hù)。