針對DES密碼芯片的CPA攻擊仿真設(shè)計方案
3 功耗分析仿真平臺
在系統(tǒng)的設(shè)計階段,人們大多利用計算機進行數(shù)學(xué)仿真實驗,因為修改、變換模型比較方便和經(jīng)濟。在部件研制階段,可用已研制的實際部件或子系統(tǒng)去代替部分計算機仿真模型進行半實物仿真實驗,以提高仿真實驗的可信度。在個別情況下,可進行全物理的仿真實驗,這時計算機仿真模型全部被物理模型或?qū)嵨锼妗?p> 建立的仿真平臺如圖2所示。仿真平臺主要由邏輯模擬器、功耗估算器和功耗分析模塊組成??驁D中應(yīng)用Mentor公司提供的ModelSim作為邏輯模擬器,邏輯模擬器輸入有:所設(shè)計密碼電路的硬件語言描述代碼、電路的激勵文件和一些反標延遲信息等。輸出的密碼電路的功耗仿真結(jié)果是以vcd格式存儲的文本文件,這個vcd文件包含了所有的信號模擬變化以及相應(yīng)的仿真時刻標簽,然后用VisualC++對vcd文本文件進行處理,得到模擬功耗數(shù)據(jù),最后用MatLab對模擬功耗數(shù)據(jù)進行統(tǒng)計分析,推測密鑰信息。
要統(tǒng)計DES密碼芯片中每個時鐘周期的模擬功耗值,可以通過統(tǒng)計關(guān)鍵寄存器中在相鄰時鐘周期內(nèi)0、1的變化情況。根據(jù)式(2)所示已經(jīng)建立的功耗模型,將電路所處理的數(shù)據(jù)變化轉(zhuǎn)換為模擬功耗變化即可。
基于所建立的功耗分析仿真平臺,結(jié)合分組密碼算法DES算法進行功耗分析攻擊實驗。下面是CPA攻擊的詳細步驟及結(jié)果分析。
?。?)用仿真的方法進行攻擊的第1步是產(chǎn)生1個仿真功耗文件
任意選擇1 000個隨機明文和1個固定但隨機的密鑰。每輪加密之后,記錄下寄存器中數(shù)據(jù)二進制序列的變化情況,根據(jù)建立的功耗泄漏模型,統(tǒng)計模擬功耗值。這樣仿真器就產(chǎn)生1個包含N×16的矩陣M1。
?。?)選擇寄存器中M個最高位,用與步驟(1)相同的明文及密鑰進行仿真實驗
仿真器統(tǒng)計寄存器中位的變化數(shù)目,結(jié)果存儲在矩陣1 000×1的矩陣M2中,在這個驗證實驗中,選擇M為8,然后計算M1的所有列和M2的相關(guān)系數(shù),如下:
ci=C(M1(1:1000,1),M2) ?。?)
式中,i=1,…10, M1(1:1000), i代表矩陣M1的第i列向量。步驟(1)和步驟(2)都用了同樣的明文的密鑰,所不同的是它們考慮的位變化的數(shù)目不同。第(2)步產(chǎn)生的值是第(1)步初始化密鑰加操作計算值的預(yù)測。如果計算是正確的,M2和M1的第一列的相關(guān)系數(shù)比其他列要高得多。圖3為預(yù)測的情況。
?。?)重復(fù)步驟(2),但使用一個不同的密鑰
這時產(chǎn)生1個功耗文件矩陣M3。與第(2)步一樣計算M3和M1所有列的相關(guān)系數(shù):
式中,i=1,…10。由于實驗中使用了一個不同的密鑰產(chǎn)生M3,所以M3和M1所有列的相關(guān)系數(shù)將是很小的(或者說是沒有相關(guān)性),包括第1列。通過計算得出如圖4所示的相關(guān)系數(shù)圖,圖中的曲線表明其結(jié)果和預(yù)測的相同。
評論