何衛(wèi)國,饒金濤,李 軍,李雨勵(lì),黃金金
(成都三零嘉微電子有限公司,四川 成都 610041)
傳統(tǒng)的密碼分析側(cè)重于密碼算法本身的數(shù)學(xué)特征,而忽略了密碼設(shè)備在運(yùn)行密碼算法過程中泄露的物理信號(hào)。自1996 年P(guān)aul Kochers 首次提出利用時(shí)間分析密碼設(shè)備中的敏感信息的思想以來[1-2],側(cè)信道分析受到了人們的極大關(guān)注,且相關(guān)研究已經(jīng)成為密碼學(xué)研究的一個(gè)重要分支,被廣泛應(yīng)用在密碼芯片的攻擊檢測(cè)領(lǐng)域。側(cè)信道攻擊的基本原理是用過采集密碼設(shè)備在運(yùn)行過程中的能量信息或者電磁信息,通過統(tǒng)計(jì)分析的方法恢復(fù)密鑰信息。
在進(jìn)行側(cè)信道攻擊的過程中,需要對(duì)采集到的密碼設(shè)備的側(cè)信道信號(hào)進(jìn)行預(yù)處理。采集到的側(cè)信道信號(hào)是非平穩(wěn)、時(shí)變、離散性大、信息量大的復(fù)雜信號(hào),對(duì)于攻擊檢測(cè)人員來講處理難度較大。因?yàn)閭?cè)信道信號(hào)攜帶各種信息,是一個(gè)未知的信號(hào)。目前的研究表明,采集到的側(cè)信道泄露信號(hào)與密碼設(shè)備運(yùn)行的時(shí)鐘頻率、處理的數(shù)據(jù)、進(jìn)行的操作有較大關(guān)系[3-5]。
本文針對(duì)目前側(cè)信道信號(hào)預(yù)處理的方法不夠靈活、需要大量的參數(shù)配置等缺點(diǎn),提出了一種具有普適性的側(cè)信道信號(hào)預(yù)處理方法,有效提高了側(cè)信道攻擊的效率。
短時(shí)分析技術(shù)主要處理語音信號(hào),基本原理是用平穩(wěn)信號(hào)的處理方法處理非平穩(wěn)信號(hào)。側(cè)信道信號(hào)雖然具有時(shí)變特性,由于電容的充放電在一個(gè)短時(shí)間范圍內(nèi)基本特性基本保持不變,因此側(cè)信道信號(hào)也具有短時(shí)平穩(wěn)性。類比分析可以得知,運(yùn)用短時(shí)分析技術(shù)對(duì)側(cè)信道信號(hào)進(jìn)行預(yù)處理完全可行。
常見的短時(shí)處理方法有短時(shí)平均能量分析、短時(shí)平均幅度分析以及短時(shí)過零檢測(cè)等基本方法,本文主要利用短時(shí)平均能量對(duì)側(cè)信道信號(hào)進(jìn)行預(yù)處理。短時(shí)平均能量分析主要用于非平穩(wěn)信號(hào)的處理,基本定義如下:
En代表一個(gè)分段信號(hào)的能量,通過式(1)可以得知。短時(shí)平均能量相當(dāng)于信號(hào)的平方通過一個(gè)單位函數(shù)響應(yīng)為h(n)的線性濾波器的輸出。同時(shí),不同窗口的選擇將決定短時(shí)能量的特性。常見的窗口有漢寧窗、海明窗、直角窗以及高斯窗等。直角窗的譜平滑較好,但波形細(xì)節(jié)丟失,與海明窗剛好相反。另外,窗口長度對(duì)于能否反映信號(hào)的幅度變化起決定作用。如果窗口很大,等效于帶寬很窄的低通濾波器,此時(shí)En隨時(shí)間的變化很小,不能反映信號(hào)的幅度變化,波形的變化細(xì)節(jié)無法觀測(cè);反之,窗口太小,濾波器的通帶變寬,短時(shí)能量隨時(shí)間有急劇變化,不能得到平滑的能量函數(shù)。
能量攻擊分析是側(cè)信道攻擊中最有效的方法之一,其中相關(guān)性能量攻擊最具代表性。本節(jié)主要對(duì)相關(guān)性能量分析攻擊進(jìn)行描述。2004 年,Eric Brier等提出了相關(guān)性攻擊分析[3]。相關(guān)性攻擊分析主要利用了統(tǒng)計(jì)學(xué)中的皮爾遜相關(guān)系數(shù)ρ,攻擊流程如下:
(1)在密碼設(shè)備中,將N組不同的輸入數(shù)據(jù)和存儲(chǔ)在密碼設(shè)備中的敏感信息(密鑰等)進(jìn)行運(yùn)算,同時(shí)獲取密碼設(shè)備在運(yùn)算過程中的能量消耗記為H;
(2)通過猜測(cè)敏感信息,產(chǎn)生相應(yīng)的假設(shè)中間值,然后根據(jù)假設(shè)中間值的漢明重量或者漢明距離,計(jì)算得到假設(shè)的能量消耗記為W;
(3)計(jì)算H和W之間的線性相關(guān)系數(shù):
式中,E(·)表示期望,Var(·)表示方差。當(dāng)ρ的絕對(duì)值最大時(shí),對(duì)應(yīng)的猜測(cè)敏感信息即為正確的敏感信息。
利用短時(shí)能量分析對(duì)側(cè)信道信號(hào)進(jìn)行預(yù)處理。采集的側(cè)信道信號(hào)主要以電壓信號(hào)為主,令某段時(shí)間采集到的電壓信號(hào)為U=(u1,u2,…,ut),利用短時(shí)分析的方法實(shí)現(xiàn)電壓的平方操作,將其轉(zhuǎn)化為功率信號(hào),同時(shí)進(jìn)行窗口函數(shù)的濾波操作,具體的思路如圖1 所示。
圖1 短時(shí)域側(cè)信道信號(hào)處理流程
(1)設(shè)置側(cè)信道信號(hào)采集的基本環(huán)境。設(shè)示波器當(dāng)前采樣頻率為f,密碼設(shè)備運(yùn)行的時(shí)鐘頻率為fs,采集到的側(cè)信道信號(hào)的點(diǎn)數(shù)為M,條數(shù)為N。信號(hào)矩陣為TN*M;
(2)確定選擇所用窗函數(shù)窗的大小,窗的大小以密碼設(shè)備的運(yùn)行時(shí)鐘為單位,計(jì)算方法為n=f/fs;
(3)根據(jù)窗的大小n對(duì)信號(hào)矩陣進(jìn)行短時(shí)能量分析,直到信號(hào)矩陣的每行計(jì)算完成;
(4)完成所有行的短時(shí)能量分析后,得到新矩陣T′。
實(shí)測(cè)環(huán)境主要采用SASEBO-G 側(cè)信道測(cè)試評(píng)估分析板,如圖2 所示。SAKURA-G 能量分析評(píng)估板主要是對(duì)實(shí)現(xiàn)的算法模塊進(jìn)行側(cè)信道信息泄露進(jìn)行評(píng)估測(cè)試。它由兩塊FPGA 芯片構(gòu)成:一塊實(shí)現(xiàn)算法,型號(hào)為XC6SLX75;另一塊實(shí)現(xiàn)控制邏輯,型號(hào)為XC6SLX9。在實(shí)現(xiàn)算法的FGPA 芯片的VCC端串接一個(gè)1 Ω 的電阻,通過差分探頭可以監(jiān)測(cè)電阻上電壓信號(hào)的改變,從而可以測(cè)試運(yùn)算邏輯在運(yùn)行過程中的能耗信息。
圖2 SAKURA-G 側(cè)信道能量分析評(píng)估板
在FPGA 上實(shí)現(xiàn)SM4 算法,利用示波器采集SM4 密碼算法在運(yùn)算過程中產(chǎn)生的能量消耗。實(shí)驗(yàn)中,測(cè)試的目標(biāo)主要是分析SM4 算法的攻擊測(cè)試,對(duì)比分析使用短時(shí)能量分析和沒有使用短時(shí)能量分析的情況。
圖3 為采集的SM4 密碼算法在運(yùn)行過程中產(chǎn)生的功耗,圖4 為經(jīng)過滑動(dòng)平均處理后的曲線,圖5為經(jīng)過短時(shí)域三角窗處理后的曲線,圖6 為經(jīng)過漢明窗短時(shí)域處理后的曲線,圖7 為經(jīng)過矩形窗短時(shí)域預(yù)處理的曲線,圖8 為經(jīng)過高斯窗短時(shí)域預(yù)處理的曲線,表1 為在不同條件下處理后進(jìn)行攻擊獲取第一輪子密鑰所對(duì)應(yīng)的相關(guān)性系數(shù)。
圖3 SM4 算法原始曲線
圖4 滑動(dòng)平均處理后的曲線
圖5 三角窗短時(shí)時(shí)域處理后的曲線
圖6 漢明窗短時(shí)時(shí)域處理后的曲線
圖7 矩形窗短時(shí)時(shí)域處理后的曲線
圖8 高斯窗短時(shí)時(shí)域處理后的曲線
表1 實(shí)際的攻擊結(jié)果對(duì)比
實(shí)驗(yàn)結(jié)果分析表明,經(jīng)過短時(shí)時(shí)域預(yù)處理的曲線信號(hào)輪廓更加清晰,其中高斯窗對(duì)信號(hào)處理的效果最好,攻擊后所得正確的密鑰對(duì)應(yīng)的相關(guān)性系數(shù)最高,具有較高的辨識(shí)度,從而進(jìn)一步提高攻擊正確性和效率。
本文提出了一種基于短時(shí)時(shí)域分析的側(cè)信道信號(hào)預(yù)處理的方法,并進(jìn)行實(shí)測(cè)攻擊分析。實(shí)驗(yàn)結(jié)果表明,所提預(yù)處理方法大大提高了攻擊信號(hào)的信噪比,從而大大提高了攻擊成功率。