蔡爵嵩,嚴(yán)迎建,朱春生
(戰(zhàn)略支援部隊(duì)信息工程大學(xué)密碼工程學(xué)院,鄭州 450002)
側(cè)信道分析技術(shù)[1]的提出為密碼分析學(xué)開(kāi)辟了一個(gè)新的研究領(lǐng)域[2-4],但同時(shí)對(duì)密碼算法的設(shè)計(jì)和實(shí)現(xiàn)提出了更高要求,使密碼芯片安全性準(zhǔn)則面臨挑戰(zhàn)。不同的算法設(shè)計(jì)使用的不同實(shí)現(xiàn)方式會(huì)使密碼芯片在工作時(shí)泄漏不同程度的能量,這決定了整個(gè)密碼系統(tǒng)安全性的強(qiáng)弱。因此,在利用側(cè)信道分析技術(shù)對(duì)密碼芯片進(jìn)行安全性檢測(cè)時(shí),必須評(píng)估芯片工作時(shí)的能量泄漏情況。
在目前國(guó)際認(rèn)可的信息技術(shù)安全性評(píng)估通用準(zhǔn)則(Common Criteria,CC)[5]中,對(duì)芯片安全性的評(píng)定主要是利用所有已知的側(cè)信道分析方法分析待測(cè)芯片,在此基礎(chǔ)上對(duì)耗費(fèi)時(shí)間、所用側(cè)信道分析技術(shù)、芯片工作情況、特定有效時(shí)間以及所需要的軟硬件等項(xiàng)目進(jìn)行評(píng)分[6]。然而,該過(guò)程依賴于具體的側(cè)信道分析方法評(píng)估芯片工作時(shí)的能量消耗及泄漏情況,不具備普遍性?,F(xiàn)有關(guān)于側(cè)信道能量泄漏檢測(cè)的研究多使用t 檢驗(yàn)[7-9]、連續(xù)互信息(Continuous Mutual Information,CMI)[10]和離散互信息(Discrete Mutual Information,DMI)[11]等方式進(jìn)行,但都必須掌握芯片所使用的算法和實(shí)現(xiàn)方式。
本文對(duì)能量跡進(jìn)行研究,通過(guò)結(jié)合協(xié)方差矩陣與變異系數(shù),提出一種密碼芯片能量泄漏評(píng)估模型。利用協(xié)方差矩陣[12]判斷能量跡上各點(diǎn)的能量泄漏情況,在此基礎(chǔ)上,通過(guò)引入變異系數(shù)[13]衡量矩陣內(nèi)各元素的差異程度,從而評(píng)估能量泄漏程度。
相關(guān)能量分析(Correlation Power Analysis,CPA)[4]因簡(jiǎn)單有效成為側(cè)信道分析中的一種常用方法,其基于芯片能量消耗和中間值模型之間的線性關(guān)系,通過(guò)計(jì)算兩者的相關(guān)系數(shù)評(píng)估中間值模型與實(shí)際能量消耗的匹配程度。如果密鑰猜測(cè)正確,則相關(guān)系數(shù)達(dá)到最大。
設(shè)W為芯片真實(shí)能量消耗值,H為猜測(cè)密鑰對(duì)應(yīng)的中間值,則兩者的相關(guān)系數(shù)表示為:
一般地,研究者采用的中間值模型為漢明重量(Hamming Weight,HW)模型或漢明距離(Hamming Distance,HD)模型??赏ㄟ^(guò)式(1)計(jì)算猜測(cè)密鑰對(duì)應(yīng)的中間值與芯片實(shí)際能量消耗之間的相關(guān)系數(shù),對(duì)應(yīng)相關(guān)系數(shù)最大的密鑰值即被認(rèn)為是正確密鑰。
在概率論和統(tǒng)計(jì)學(xué)中,協(xié)方差常用于描述兩個(gè)變量之間的總體誤差。假設(shè)X和Y為兩個(gè)樣本,則它們的協(xié)方差表示為:
由式(2)可以看出,X和Y的協(xié)方差表示兩個(gè)樣本總體誤差的期望,即X和Y偏離各自均值的程度。當(dāng)Cov(X,Y)=0 時(shí),說(shuō)明X和Y不相關(guān);當(dāng)Cov(X,Y)>0時(shí),說(shuō)明X和Y正相關(guān);當(dāng)Cov(X,Y)<0 時(shí),說(shuō)明X和Y負(fù)相關(guān)。對(duì)于服從正態(tài)分布的X和Y,反之也成立,即:當(dāng)X和Y不相關(guān)時(shí),Cov(X,Y)=0;當(dāng)X和Y正相關(guān)時(shí),Cov(X,Y)>0;當(dāng)X和Y負(fù)相關(guān)時(shí),Cov(X,Y)<0。
在實(shí)際應(yīng)用中,服從正態(tài)分布的X和Y對(duì)彼此的影響越大,表明X和Y的相關(guān)性越大,則Cov(X,Y)的絕對(duì)值越大。
變異系數(shù)是概率論和統(tǒng)計(jì)學(xué)中評(píng)估總體中各樣本差異程度或離散程度的指標(biāo),用于反映數(shù)據(jù)分布狀況。當(dāng)兩組數(shù)據(jù)測(cè)量方式不同導(dǎo)致數(shù)據(jù)量綱不同時(shí),研究者常用變異系數(shù)評(píng)估數(shù)據(jù)離散情況。對(duì)于一組樣本數(shù)據(jù),也可以用標(biāo)準(zhǔn)差來(lái)表示其數(shù)據(jù)離散情況,但當(dāng)需要比較兩組樣本數(shù)據(jù)或多組樣本數(shù)據(jù)的離散程度時(shí),應(yīng)當(dāng)首先消除因測(cè)量方式導(dǎo)致的量綱不同所帶來(lái)的影響,而通過(guò)變異系數(shù)即可達(dá)到此目的。變異系數(shù)定義為總體中各樣本的標(biāo)準(zhǔn)差與其均值的相對(duì)數(shù),計(jì)算公式如下:
其中,σ表示數(shù)據(jù)的標(biāo)準(zhǔn)差,μ表示數(shù)據(jù)的平均值。變異系數(shù)可消除因量綱不同而帶來(lái)的影響,客觀公正地對(duì)兩組數(shù)據(jù)進(jìn)行比較。
一般地,研究者主要利用側(cè)信道分析技術(shù)對(duì)芯片工作時(shí)的能量消耗進(jìn)行分析。采集到芯片工作時(shí)的能量消耗,將所形成的曲線稱為能量跡。一條能量跡上某點(diǎn)的能量泄漏定義為:
其中,Pop為與密碼算法操作相關(guān)的能量消耗,Pdata為與數(shù)據(jù)相關(guān)的能量消耗,Pnoise為與噪聲相關(guān)的能量消耗,Pconst為常量。
在一條能量跡中,各點(diǎn)的能量消耗是具有相關(guān)性的,對(duì)于此類關(guān)系可以進(jìn)行可視化分析[14]。分別針對(duì)具有強(qiáng)相關(guān)性兩點(diǎn)和具有弱相關(guān)性兩點(diǎn)進(jìn)行能量消耗關(guān)系的可視化分析,結(jié)果如圖1 和圖2 所示??梢钥闯?,具有強(qiáng)相關(guān)性的兩點(diǎn)能量消耗所形成的圖形呈橢圓分布且數(shù)據(jù)點(diǎn)集中,具有弱相關(guān)性的兩點(diǎn)能量消耗所形成的圖形更接近于圓形且數(shù)據(jù)點(diǎn)分散。
圖1 具有強(qiáng)相關(guān)性兩點(diǎn)的能耗散點(diǎn)圖Fig.1 Scatter diagram of energy consumption for two points with strong correlation
圖2 具有弱相關(guān)性兩點(diǎn)的能耗散點(diǎn)圖Fig.2 Scatter diagram of energy consumption for two points with weak correlation
由1.2 節(jié)分析可知,可使用協(xié)方差來(lái)刻畫(huà)能量跡上各點(diǎn)之間的相關(guān)性。因?yàn)樵诿艽a算法實(shí)現(xiàn)過(guò)程中,與密鑰值相關(guān)的操作通常需要多個(gè)時(shí)鐘周期,所以側(cè)信道能量泄漏的點(diǎn)通常包含多個(gè)與目標(biāo)中間值對(duì)應(yīng)的樣本點(diǎn)。一般將這些與中間值相關(guān)的點(diǎn)稱為特征點(diǎn)PPOI。此外,根據(jù)Nyquist-Shannon 采樣定律,信號(hào)采集設(shè)備的采樣頻率需要設(shè)置為芯片工作頻率的數(shù)倍[15]。因此,每一個(gè)時(shí)鐘周期即對(duì)應(yīng)多個(gè)測(cè)量點(diǎn)。將測(cè)量點(diǎn)內(nèi)除特征點(diǎn)PPOI以外的點(diǎn)稱為非特征點(diǎn)Pelse。PPOI為能量跡上包含泄漏信息最多的點(diǎn),Pelse為冗余無(wú)用的點(diǎn)[14]。
因?yàn)镻else是信號(hào)采集設(shè)備為采集PPOI而出現(xiàn)的點(diǎn),其各點(diǎn)間的相關(guān)性小于Pelse和PPOI之間的相關(guān)性,所以在計(jì)算特征點(diǎn)PPOI與非特征點(diǎn)Pelse的協(xié)方差時(shí),表現(xiàn)為PPOI與Pelse的協(xié)方差遠(yuǎn)大于Pelse之間的協(xié)方差,即:
從側(cè)信道分析角度來(lái)看,對(duì)協(xié)方差大的點(diǎn)進(jìn)行分析,容易對(duì)芯片實(shí)施攻擊,得到芯片密鑰;而從評(píng)估芯片抗側(cè)信道分析角度來(lái)看,如果從芯片泄漏的能量中能夠明顯找到協(xié)方差大的點(diǎn),則表明該芯片抗側(cè)信道分析的能力較弱,易于被攻擊。因此,在對(duì)能量跡上各點(diǎn)進(jìn)行能量泄漏分析時(shí),可以關(guān)注是否有明顯較大的協(xié)方差出現(xiàn)。
由式(5)可知特征點(diǎn)PPOI與非特征點(diǎn)Pelse的協(xié)方差和非特征點(diǎn)Pelse之間協(xié)方差的關(guān)系,據(jù)此得到如下推論:
推論特征點(diǎn)PPOI與能量跡上各點(diǎn)P(POI+else)的協(xié)方差之和遠(yuǎn)大于非特征點(diǎn)Pelse與能量跡上各點(diǎn)P(POI+else)的協(xié)方差之和,即:
證明:已知特征點(diǎn)PPOI包含最多能量泄漏[14],以信息論中信號(hào)的方差表示信號(hào)的能量消耗,可得Cov(PPOI,PPOI)>>Cov(Pelse,Pelse)。由于特征點(diǎn)PPOI自身相關(guān)性必定遠(yuǎn)大于特征點(diǎn)PPOI與非特征點(diǎn)Pelse之間的相關(guān)性,即Cov(PPOI,PPOI)>>Cov(PPOI,Pelse),因此可得:
證畢。
在分析能量跡上各點(diǎn)的能量泄漏情況時(shí),可以關(guān)注是否有明顯較大的協(xié)方差出現(xiàn)。結(jié)合上述推論給出的關(guān)系,本文引入概率論和統(tǒng)計(jì)學(xué)中的變異系數(shù),將求得的所有協(xié)方差組合成為協(xié)方差矩陣,通過(guò)計(jì)算變異系數(shù)得到各個(gè)協(xié)方差在矩陣中的分布情況,從而判斷是否有明顯較大的協(xié)方差出現(xiàn)。
在評(píng)估能量跡上各點(diǎn)的能耗泄漏程度時(shí),將各點(diǎn)的協(xié)方差組成一個(gè)能量跡的協(xié)方差矩陣,通過(guò)計(jì)算該矩陣的變異系數(shù)判斷能量跡的能量泄漏情況。若變異系數(shù)較大,則有明顯的能量泄漏;若變異系數(shù)較小,則沒(méi)有明顯的能量泄漏。
本文提出的能量泄漏評(píng)估模型,通過(guò)計(jì)算能量跡某點(diǎn)與能量跡各點(diǎn)的協(xié)方差之和,同時(shí)量化各點(diǎn)協(xié)方差的偏離情況來(lái)評(píng)估整條能量跡的能量泄漏情況。具體步驟如下:
1)采集大量能量跡,將能量跡集合表示為T={t1,t2,…,tn}。其中,T為N×n的矩陣(N代表能量跡條數(shù),n代表采樣點(diǎn)個(gè)數(shù)),ti(i=1,2,…,n)為一個(gè)N×1的向量,表示這N條能量跡在相同位置i處采樣點(diǎn)的值。
2)為減少協(xié)方差矩陣的計(jì)算量,對(duì)ti(i=1,2,…,n)進(jìn)行均值化處理:
3)計(jì)算ti′和tj′之間的協(xié)方差:
4)構(gòu)建采樣點(diǎn)協(xié)方差矩陣:
5)對(duì)協(xié)方差矩陣進(jìn)行變換,得到S矩陣,本文將其定義為協(xié)方差行和矩陣,即:
其中,Sum(Cov(tj′,ti′))表示N條能量跡中第j個(gè)采樣點(diǎn)與能量跡各點(diǎn)之間的相關(guān)性。根據(jù)式(6)可知,若S矩陣中各個(gè)變量的值分布均勻,即無(wú)特別大的波動(dòng),則表示能量跡中各采樣點(diǎn)的能量近似,沒(méi)有特征點(diǎn)的存在,即沒(méi)有明顯的能量泄漏;若S矩陣中存在波動(dòng)較大的值,則表示能量跡中各采樣點(diǎn)的能量會(huì)集中于波動(dòng)較大的點(diǎn),即存在明顯的能量泄漏。
6)計(jì)算協(xié)方差和矩陣S的變異系數(shù),即:
本節(jié)利用2.3 節(jié)提出的能量泄漏評(píng)估模型對(duì)4 個(gè)數(shù)據(jù)集進(jìn)行評(píng)估,具體步驟如下:
1)對(duì)協(xié)方差行和矩陣S進(jìn)行可視化分析,驗(yàn)證使用S分析得到能量泄漏情況的合理性。
2)對(duì)變異系數(shù)進(jìn)行分析,驗(yàn)證使用變異系數(shù)評(píng)估能量泄漏的有效性,即本文模型的有效性。
3)對(duì)數(shù)據(jù)集進(jìn)行側(cè)信道攻擊實(shí)驗(yàn),從攻擊角度驗(yàn)證本文模型的有效性。
本文將第1 步和第2 步設(shè)置為實(shí)驗(yàn)1,將第3 步設(shè)置為實(shí)驗(yàn)2。
3.1.1 實(shí)驗(yàn)設(shè)置
本文使用4 個(gè)數(shù)據(jù)集并設(shè)置兩個(gè)實(shí)驗(yàn)對(duì)泄漏評(píng)估模型的有效性進(jìn)行分析,將DPA contest v2[16]官方給出的能量跡作為數(shù)據(jù)集data1,將SAKURA-G 開(kāi)發(fā)板[17]上采集的能量跡作為數(shù)據(jù)集data2,將DPA contest v4[18]的能量跡作為數(shù)據(jù)集data3,將基于ATMEGA2560 芯片開(kāi)發(fā)板采集的能量跡作為數(shù)據(jù)集data4。
實(shí)驗(yàn)1對(duì)4 個(gè)數(shù)據(jù)集分別構(gòu)建協(xié)方差行和矩陣S,并按2.2 節(jié)所述的可視化分析方法驗(yàn)證其合理性。在此基礎(chǔ)上,分別求出變異系數(shù)Cdata1、Cdata2、Cdata3和Cdata4并加以分析,得到能量泄漏關(guān)系。本文在data1 和data2 上分析基于FPGA 不同實(shí)現(xiàn)方式的芯片能量泄漏情況,在data1、data2 和data4 上分析芯片串/并行的能量泄漏情況,在data1~data4 上分析芯片加入防護(hù)和未加防護(hù)的能量泄漏情況。
實(shí)驗(yàn)2對(duì)實(shí)驗(yàn)1 結(jié)果進(jìn)行攻擊驗(yàn)證。采用1.1 節(jié)所述的相關(guān)能量分析技術(shù)對(duì)data1、data2 和data4 分別進(jìn)行攻擊,以驗(yàn)證本文模型的正確性。
3.1.2 實(shí)驗(yàn)數(shù)據(jù)集
DPA contest v2 是2010 年由巴黎高科電信學(xué)院舉辦的側(cè)信道競(jìng)賽,其提供了基于SASEBO-GII 開(kāi)發(fā)板的能量跡,并分為1 個(gè)1 000 000 條的template 能量跡集和32 個(gè)20 000 條的public 能量跡集。其中,template 能量跡集,為隨機(jī)明文和隨機(jī)密鑰,public 能量跡集為同一密鑰下20 000 個(gè)隨機(jī)明文。由于相關(guān)能量分析技術(shù)只能針對(duì)同一密鑰、不同明文的情況,因此本文模型分析和攻擊驗(yàn)證均使用public 能量跡集。與基于SAKURA-G 開(kāi)發(fā)板的能量跡相比,兩個(gè)數(shù)據(jù)集均為硬件實(shí)現(xiàn)的并行AES 算法的能量泄漏曲線,其不同在于DPA contest v2 中的S 盒實(shí)現(xiàn)為布爾函數(shù)法[19],而SAKURA-G 中的S 盒實(shí)現(xiàn)為查表法[20]。
DPA contest v4 是2013 年由巴黎高科電信學(xué)院舉辦的側(cè)信道競(jìng)賽,其提供了基于ATMega-163 的SASEBO-W 開(kāi)發(fā)板的能量跡,并加入掩碼,對(duì)一階側(cè)信道分析進(jìn)行防護(hù)?;贏TMEGA2560 芯片開(kāi)發(fā)板實(shí)現(xiàn)的AES 與DPA contest v4 相比,未加入任何側(cè)信道防護(hù)措施,而與DPA contest v2 和SAKURA-G相比,使用串行實(shí)現(xiàn)方式。
3.2.1 協(xié)方差行和矩陣的合理性驗(yàn)證
本節(jié)選取data1,計(jì)算該數(shù)據(jù)集的協(xié)方差行和矩陣Sdata1,并將其可視化,利用2.1 節(jié)中的相關(guān)性可視化分析方法,驗(yàn)證是否能夠使用行和矩陣Sdata1來(lái)描述能量跡上某點(diǎn)與整條能量跡所有點(diǎn)之間的相關(guān)性。此處任意選取兩個(gè)協(xié)方差行和矩陣中不同的兩個(gè)點(diǎn)進(jìn)行分析。data1 協(xié)方差行和曲線如圖3 所示。
圖3 data1 協(xié)方差行和曲線Fig.3 Covariance row curve of data1
從圖3 可以看出,在data1 中,781 號(hào)點(diǎn)的協(xié)方差行和遠(yuǎn)小于1 380 號(hào)點(diǎn)的協(xié)方差行和。通過(guò)上文分析可知,1 380 號(hào)點(diǎn)與整條能量跡所有點(diǎn)的相關(guān)性大于781 號(hào)點(diǎn)與整條能量跡所有點(diǎn)的相關(guān)性。根據(jù)2.1節(jié)所述,選擇3個(gè)點(diǎn)(1號(hào)點(diǎn)、700號(hào)點(diǎn)和1 300號(hào)點(diǎn))對(duì)781號(hào)點(diǎn)和1 380號(hào)點(diǎn)分別進(jìn)行相關(guān)性可視化分析。選點(diǎn)依據(jù)是選擇兩個(gè)分別為781 號(hào)點(diǎn)和1 300 號(hào)點(diǎn)附近的點(diǎn),以及1 個(gè)離781 號(hào)點(diǎn)和1 300 號(hào)點(diǎn)距離都較遠(yuǎn)的點(diǎn)。
通過(guò)圖4 和圖5 可以看出,1 380 號(hào)點(diǎn)與能量跡上各點(diǎn)的能量消耗均呈橢圓分布,而781 號(hào)點(diǎn)與能量跡上各點(diǎn)的能量消耗更接近于圓形。根據(jù)1.3 節(jié)的描述可知,1 380 號(hào)點(diǎn)與能量跡上各點(diǎn)的相關(guān)性強(qiáng)于781 號(hào)點(diǎn)與能量跡上各點(diǎn)的相關(guān)性,與圖3 描述一致,這說(shuō)明通過(guò)協(xié)方差行和矩陣描述能量跡上某點(diǎn)與整條能量跡所有點(diǎn)的相關(guān)性是合理的。
圖4 781 號(hào)點(diǎn)與1 號(hào)、700 號(hào)、1 300 號(hào)點(diǎn)的能耗散點(diǎn)圖Fig.4 Scatter diagrams of energy consumption for point 781 with point 1,point 700 and point 1 300
圖5 1 380 號(hào)點(diǎn)與1 號(hào)、700 號(hào)、1 300 號(hào)點(diǎn)的能耗散點(diǎn)圖Fig.5 Scatter diagrams of energy consumption for point 1 380 with point 1,point 700 and point 1 300
3.2.2 數(shù)據(jù)集變異系數(shù)分析
本文通過(guò)Matlab 實(shí)現(xiàn)2.3 節(jié)中的模型,分別輸入data1~data4 得到變異系數(shù)Cdata1~Cdata4,如表1 所示。
表1 4 個(gè)數(shù)據(jù)集在不同能量跡數(shù)量下的變異系數(shù)Table 1 Variation coefficients of four datasets under different energy trace numbers
從表1 可以看出,4 個(gè)數(shù)據(jù)集協(xié)方差行和的變異系數(shù)大小排序?yàn)镃data4>Cdata2>Cdata1>Cdata3。由2.2 節(jié)的原理分析可知:data1 中能量跡的能量泄漏小于data2中能量跡的能量泄漏,data1 和data2 的能量泄漏小于data4 的能量泄漏,data3 的能量泄漏為4 個(gè)數(shù)據(jù)集中最小的。下面對(duì)這一結(jié)論進(jìn)行詳細(xì)分析:
對(duì)基于FPGA 硬件實(shí)現(xiàn)的密碼芯片而言,能量消耗分為動(dòng)態(tài)功耗和靜態(tài)功耗。芯片工作時(shí),能量消耗以動(dòng)態(tài)功耗為主,寄存器的變化是引起能量泄漏的主要因素。對(duì)AES 算法實(shí)現(xiàn)而言,寄存器的輸入端都是一系列布爾函數(shù)的輸出。data1 的S 盒為布爾函數(shù)實(shí)現(xiàn),與其他操作的實(shí)現(xiàn)方式相同。當(dāng)芯片工作時(shí),所有操作引起的變化相同,所以就不存在明顯的能量泄漏。data2 的S 盒為查表實(shí)現(xiàn),并不會(huì)導(dǎo)致寄存器的變化,而算法的其他操作是基于布爾函數(shù)實(shí)現(xiàn)的,所以就會(huì)存在明顯的能量泄漏。因此,data1 的能量泄漏小于data2 的能量泄漏。
對(duì)于芯片串/并行實(shí)現(xiàn)方式而言,串行實(shí)現(xiàn)的AES 算法每輪中的每個(gè)S 盒均有能量泄漏,則至少有16×10=160 個(gè)泄漏點(diǎn)存在,而并行實(shí)現(xiàn)的AES 算法每輪中的16 個(gè)S 盒均在同一個(gè)位置,即只存在16 個(gè)泄漏點(diǎn)。因此,data1 和data2 的能量泄漏小于data4 的能量泄漏。
對(duì)加入防護(hù)的芯片進(jìn)行分析可知,加入防護(hù)的目的就是為了增強(qiáng)芯片的安全性,通過(guò)無(wú)效操作掩蓋有效信息,減少芯片工作時(shí)能量泄漏包含的有效信息,因此,顯然data3 的能量泄漏應(yīng)該是最小的。
利用相關(guān)能量分析技術(shù)對(duì)data1~data4 數(shù)據(jù)集分別進(jìn)行攻擊來(lái)驗(yàn)證本文模型的有效性。攻擊前對(duì)數(shù)據(jù)集中的能量跡進(jìn)行對(duì)齊處理。
由于data1 和data2 數(shù)據(jù)集均為基于FPGA 硬件實(shí)現(xiàn)的AES 算法的能量泄漏曲線,因此模型選擇為能夠刻畫(huà)寄存器值變化的漢明距離模型。初步選擇能量跡數(shù)量為2 000 條,無(wú)法攻擊獲得正確密鑰時(shí),則增加能量跡條數(shù),最多增加至20 000 條。
對(duì)data1 的最后一輪S 盒進(jìn)行攻擊,計(jì)算最后一輪S 盒的輸入與密文之間的漢明距離同能量跡之間的相關(guān)系數(shù)。當(dāng)能量跡數(shù)量為2 000 條時(shí),無(wú)法攻擊獲得該輪子密鑰;直到14 000 條時(shí),攻擊獲得4 Byte 的子密鑰。當(dāng)能量跡條數(shù)達(dá)到最多20 000 條時(shí),使用經(jīng)典的CPA 攻擊依然只能攻擊獲得4 Byte的子密鑰。
對(duì)data2的第1輪S盒的輸入進(jìn)行攻擊,計(jì)算第1輪S 盒的輸入與上一輪密文之間的漢明距離同能量跡之間的相關(guān)系數(shù)。當(dāng)能量跡數(shù)量為2 000 條時(shí),使用經(jīng)典的CPA 攻擊便能攻擊獲得完整的密鑰值。
對(duì)data4的攻擊,中間值模型選擇為漢明重量模型,計(jì)算第1 輪S 盒輸出的漢明重量同能量跡之間的相關(guān)系數(shù),只需要48 條能量跡便能攻擊獲得完整的密鑰值。
由于data3 加入掩碼防護(hù),因此使用與data1、data2 和data4 相同的攻擊方法無(wú)法對(duì)其進(jìn)行攻擊。
攻擊實(shí)驗(yàn)結(jié)果表明,能量跡的能量泄漏從大到小依次為data4、data2、data1 和data3,與3.2.2 節(jié)分析結(jié)果一致,驗(yàn)證了本文模型的有效性。
現(xiàn)有芯片安全性評(píng)估標(biāo)準(zhǔn)依賴于具體的側(cè)信道分析方法,并且能量泄漏檢測(cè)需要掌握芯片使用的算法和實(shí)現(xiàn)方式。為避免這些前提條件,本文提出一種基于協(xié)方差矩陣變異系數(shù)的能量泄漏評(píng)估模型。該模型在評(píng)估能量跡的能量泄漏情況時(shí)無(wú)需對(duì)芯片實(shí)施具體的側(cè)信道分析,也不需要使用芯片所用算法和實(shí)現(xiàn)方式,大幅降低了芯片設(shè)計(jì)者、攻擊者和測(cè)評(píng)者對(duì)側(cè)信道分析方法的使用要求,可以在芯片設(shè)計(jì)完成時(shí)、側(cè)信道攻擊前和安全測(cè)評(píng)初期對(duì)芯片安全性進(jìn)行準(zhǔn)確評(píng)估。下一步將利用本文模型對(duì)現(xiàn)有密碼芯片進(jìn)行評(píng)估分析,研究評(píng)判實(shí)際產(chǎn)品能否通過(guò)側(cè)信道安全性評(píng)估的標(biāo)準(zhǔn)。