側信道分析教學科研實驗套件成果展示

  側信道分析教學科研實驗套件提供的配套分析軟件面向用戶開源,功能包括計時分析、簡單能量分析、相關能量分析、差分能量分析、模板攻擊、二階相關能量分析、電磁分析等多種經典方法。
  在該套件的前期測試中,部分用戶已將其廣泛應用于多種密碼算法的側信道分析場景,產生了一系列代表性研究成果。下面列舉出基于側信道分析教學科研實驗套件完成的若干已發表或待發表的論文中的實驗結果示意圖。
  > 針對MOV指令的AES算法相關能量分析實驗
  AES算法在8051單片機上實現時,第一輪第一個S-box輸出值的存儲會泄露AES源密鑰首字節信息,該存儲操作為一條名為MOV的匯編指令。作者針對該指令,采集若干條能量波形,并執行相關能量分析,得到下圖所示結果。每條原始波形包含2000個點,在每種密鑰猜測下,對每個點均進行相關系數計算,因而得到密鑰猜測—樣本點—相關系數的三維圖像。實驗表明,密鑰字節30被成功恢復。相關論文發表于LNCS系列國際會議ISPEC 2012。

圖1 針對一條MOV指令的AES算法相關能量分析實驗(密鑰字節key=30)

  > 針對MOV指令的AES算法模板建立實驗
  本例仍研究AES算法首輪第一個S-box輸出值在一條MOV指令的泄露。作者選用0,1,3,7,...,255(漢明重量遍歷0到8)這9個有代表性的數值,共采集9組能量波形,每組進行平均降噪后,得下圖所示的9條平均波形來作為模板,并在隨后的模板匹配與密鑰恢復階段成功恢復了密鑰。該模板建立實驗表明,在MOV指令所需的12個時鐘周期中,第5/6/9/10周期的漢明重量信息泄露非常明顯。相關論文發表于LNCS系列國際會議ISPEC 2012。

圖2 針對一條MOV指令的AES算法模板建立實驗

  > 基于列混合的后向錯誤檢測機制的測試實驗
  當AES算法首輪16個字節的密鑰被恢復出來后,可能存在1個未被正確恢復的情況。首先對列混合處的波形做歸一化處理,并用恢復出的密鑰計算出列混合處的輸出值,隨后計算列混合波形和列混合輸出值之間的相關性,以判斷錯誤出現在了哪段密鑰中。下圖紅色柱狀圖代表中間值漢明重量,藍色圓圈代表波形點,顯然(b)圖中二者相關性更差,從而驗證出它所對應的4個密鑰字節可能發生了錯誤。相關論文發表于SCI期刊Science China Information Sciences。

圖3 基于列混合的后向錯誤檢測機制的測試實驗

  > 對帶防護的NTRU算法的差分能量分析與碰撞攻擊實驗
  針對NTRU算法現有的抗側信道防護對策,給出了差分能量分析和碰撞攻擊,二者均能夠有效攻破現有NTRU抗側信道攻擊的防護對策。基于8051單片機實現NTRU并獲得能量波形后,采用差分能量分析,只需對兩條平均波形執行一次減法即可恢復密鑰信息,相關論文發表于SCI期刊KSII Transactions on Internet and Information Systems。此外,也可以利用多項式乘法的行間碰撞來獲得密鑰信息,相關論文發表于SCI期刊Microprocessors and Microsystems。

圖4 對NTRU算法的差分能量分析(前兩幅子圖相減得第三幅子圖,正確密鑰為1, 4, 5, 7, 12, 15, ...)


圖5 對NTRU算法的碰撞攻擊(正確密鑰段03所對應的碰撞由圖中紅色尖峰確定)

  > 適應性選擇明文的相關能量分析實驗
  針對漢明重量分布不均衡特點,通過適應性選擇明文來增加有效信息的利用率,從而使相關能量分析效率顯著提高。基于8051單片機軟件實現的AES算法,可對該適應性選擇明文方案的參數選取進行研究和驗證,并選取出了最優參數,如下圖。相關論文發表于國際會議CIS 2014。

圖6 適應性選擇明文的相關能量分析中的參數選取實驗

  > 對縱向重用型掩碼的二階相關能量分析實驗
  針對AES算法的一種縱向重用型掩碼,給出了其二階相關能量分析方案。基于8051單片機軟件實現的AES掩碼,可在能量波形上剪輯出兩段波,分別對應首輪第一個S-box輸入和第一列列混合輸入。隨后利用二階相關能量分析直接恢復AES第一字節密鑰。此外,在進行相關能量分析之前,通常也可對波形進行泄露分析,以準確選定泄露點來進行后續的高效分析。相關論文發表于中文核心期刊《密碼學報》。

圖7 對縱向重用型掩碼的二階相關能量分析實驗(正確密鑰字節為70)


圖8 相關能量分析中的信息泄露分析實驗

  > 適應性選擇明文碰撞攻擊中的效率評估實驗
  給出了一種邊分析邊采波的適應性選擇明文碰撞攻擊方法,可在碰撞攻擊過程中大跨步地找到碰撞。針對8051單片機AES軟件實施了一次攻擊,共五步可找到碰撞,下圖為評估每一步的正確性與所需波形條數之間的關系。實驗表明,每一步采用1000條波進行模板匹配,可確保以很高的概率正確找到碰撞。相關論文發表于SCI期刊IEEE Access。

圖9 適應性選擇明文碰撞攻擊中的效率評估實驗

  > DES算法簡單能量分析實驗
  基于8051單片機實現了DES算法的PC-1置換,實現方法如下:設Y = PC1(X),先將56比特Y清零,隨后對于X的每一比特進行索引。若X的當前比特是0,則不執行任何操作(因為查表后寫到Y里,該比特仍為0),跳轉到下一個比特;若X當前比特為1,當前分支語句不跳轉,執行下一步寫操作,把1寫入Y的對應比特。因此,在能量波形可以反映操作的基礎上,可通過觀測能量波形,直接恢復X的值,也就是DES的源密鑰。

圖10 DES算法簡單能量分析實驗(密鑰為0x7CD9B3E7CD9B3E)