999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

針對分組密碼的攻擊方法研究

2020-01-16 07:32:20朱文鋒劉軍榮
計算機工程 2020年1期
關鍵詞:分類方法

朱文鋒,王 琴,郭 箏,2,劉軍榮,2

(1.上海交通大學 微電子學院,上海 200240; 2.智巡密碼(上海)檢測技術有限公司,上海 201100)

0 概述

近年來,信息安全問題逐漸成為人們關注的焦點。由于密碼算法的計算依賴物理載體(如CPU和密碼芯片),在運算過程中,物理器件總會泄露各種與密碼系統相關的物理信息,如運行時間、能量消耗和電磁輻射等[1],攻擊者可以采集和利用這些旁路信息,根據它們與密鑰信息間的關聯性來進行密鑰恢復[2]。一些先進的攻擊手段可以繞開數學推理過程而通過其他途徑獲得秘密信息,其中的典型代表就是旁路攻擊(Side Channel Attacks,SCAs)[3]。

文獻[4]提出了一種旁路功耗攻擊方法,該方法通過采集密碼設備運行時的瞬時功耗,分析它們與算法處理的數據和進行的操作之間的關聯,進而獲取設備存儲的秘密信息。功耗攻擊一般分為2種,一種為簡單功耗分析(Simple Power Analysis,SPA),另一種為差分功耗分析(Differential Power Analysis,DPA)[4]。SPA通過直接觀測少量曲線形態的方式獲取與密鑰相關的信息,而DPA則采集大量功耗信息,運用數理統計分析恢復密鑰,該攻擊也是目前比較流行和常見的旁路攻擊方式[5]。文獻[6]提出了一種模板攻擊方法,模板是描述設備能量消耗特征的最優方法。文獻[7]指出基于相關性系數的差分功耗分析(CPA)相比傳統DPA的優勢。文獻[8]討論了基于互信息和線性回歸的通用DPA(對攻擊的密鑰模板不做任何假設)具有一定局限性,并提出了一種近似通用DPA的概念[8]。近年來,基于深度學習的攻擊方法也得到學者們的廣泛關注[9-11]。

由于分組密碼算法在硬件實現過程中存在大量的并行計算,噪聲中和中間值相關的真實功耗信息難以被區分出來。現有針對硬件實現的分組密碼算法攻擊大多具有一定的局限性,如SPA適合信噪比很大且已知功耗模型的情況[12],DPA能利用的功耗占總功耗的比例較小,當信噪降低到原先信噪的1/θ時,攻擊成功所需的曲線數則降為原先的1/θ2,模板攻擊在噪聲特別大的情況下所描述的設備能量消耗特征也并非很準確[13]。

在實際攻擊中,可以將與中間值不相關的噪聲近似看成是隨機的,并根據中間值對這一部分功耗進行分類,使每一類的功耗平均值都近似相等。本文以充分利用與中間值相關的功耗、消除和中間值無關的功耗分量為出發點,提出一種針對分組密碼的攻擊方法,即功耗最小分類方法。該方法通過盡可能多地利用和中間值相關的功耗分量來增大信噪比并提升攻擊效果。

1 旁路功耗分析的基本原理

能夠實現旁路功耗分析的原因在于,芯片產生的功耗與芯片在運算過程中進行的操作和處理的中間值數據存在關聯[14]。

1.1 密碼設備的電路基礎

現代密碼設備通常由數字電路構成,數字電路(包括ASIC和FPGA)的基本單元是邏輯元件[15]。數字電路本質上由電子開關組成,通常通過晶體管或MOS管實現。CMOS晶體管的NMOS管和PMOS管不會在同一時刻一起導通,因此,能夠保證CMOS晶體管的輸出電壓具有穩定的邏輯1電平或者邏輯0電平。CMOS電路能構造出復雜的組合邏輯和時序邏輯電路,最終形成完整電路。

1.2 功耗的產生與組成

數字CMOS邏輯單元的功耗主要由2個部分組成,一部分為負載電容充放電時引起的功耗,稱為動態功耗,另一部分為漏電流引起的功耗,稱為靜態功耗。動態功耗在電路總功耗中占主要部分[16]。

在某一個固定的時刻,CMOS器件輸出端的電平會出現4種情況:保持原先的0不變,保持原先的1不變,發生0→1的變化,發生1→0的變化。這4種情況對應的動態功耗種類如圖1所示。

圖1 CMOS器件輸出端4種情況對應的功耗種類Fig.1 Power consumption types corresponding to 4 cases of CMOS device output

由于數字電路中所用到的CMOS電路的寬長比都一樣,因此可以簡單地用輸出端是否發生翻轉來近似模擬CMOS電路的動態功耗,若發生翻轉則將功耗記為1,否則將功耗記為0。

1.3 旁路功耗的統計特征

旁路功耗分析的主要依據是密碼芯片的瞬時功耗值與執行的操作和處理的數據間有一定的關聯[17]。對這2種依賴性進行細分,將功耗曲線上的每個點對操作的依賴分量記為Pop,對數據的依賴分量記為Pdata。另外,在現實中的每次功耗測量中均會存在電子噪聲,從而對功耗分析造成干擾,本文將該分量記為Pel.noise。還有一些功耗與操作和數據都無關,相對于操作和數據都是隨機的,將該功耗分量記為Prandom。除此之外,每個點還包含一些功耗常量部分,記為Pconst。將上述分量疊加,可得到每個點的總功耗,如下:

Ptotal=Pop+Pdata+Pel.noise+Prandom+Pconst

(1)

電子噪聲Pel.noise服從正態分布,通過平均可以去除Pel.noise和Prandom的影響。用Pexp表示給定攻擊場景中可以利用的功耗分量,將該場景中除電子噪聲外而無法利用的功耗分量表示為Psw.noise(稱為轉換噪聲),則有:

Pdata=Pexp+Psw.noise

(2)

在數字電路中,信噪比(Signal to Noise Ratio,SNR)是一個重要的參數,其表示電子系統中信號與噪聲的比例。信噪比的一般定義如式(3)所示。

(3)

其中,V(·)表示方差。

對于一個給定的攻擊場景,功耗曲線中某一點的信噪比如式(4)所示[18]。信噪比越高,攻擊者能利用的有用信息就越多。

(4)

2 最小功耗分類方法

2.1 DPA攻擊與零值攻擊

DPA的目標是記錄密碼設備對大量不同數據分組進行加密或解密時的能量跡,并基于能量跡恢復出密碼設備中的密鑰。其攻擊過程描述為[19]:

1)在密碼芯片系統中,將N組不同的明文(密文)數據和密鑰進行加密或解密,并獲取密碼設備的能耗,將其記為T。

2)基于猜測的密鑰和明文(密文),通過密碼算法產生相應的中間值,根據功耗模型(漢明重量模型或者漢明距離模型),將中間值映射為能量消耗值H。

3)計算假設的能量消耗與實測能量跡間的線性相關系數。

一個操作數為0的乘法器往往需要很少的功耗,可以假設一個操作數為0的乘法器,其能量消耗就為0[20]。利用該特性,能夠通過類似DPA攻擊的方法攻擊出算法密鑰,這種攻擊方式稱為零值攻擊。

2.2 功耗分類方法

功耗最小分類方法具有通用的攻擊策略,與DPA攻擊的步驟類似,但兩者選取中間值時依據的功耗模型有很大差別。功耗最小分類方法分為以下5個步驟:

1)選擇算法硬件實現電路中的某個寄存器變化量作為中間值,要求該寄存器變化前后的值都可以通過已知的非常量數據和猜測的少量密鑰而獲得,且要求該寄存器值改變的同時能引起足夠多的組合邏輯電路中間值發生改變,產生盡量多的功耗,在該寄存器值不變的情況下,這些組合邏輯電路中間值也不發生改變。

2)測量密碼設備在加密或解密D個不同數據分組時產生的瞬時功耗。

3)對于每一個可能的密鑰k值和D次加密過程,根據密碼算法計算出假設的中間值矩陣V。

4)對于猜測密鑰kj對應的矩陣V中的列,將中間值為0的曲線放入猜測密鑰kj對應的曲線集合中,每一個猜測密鑰kj都得到一組曲線集合,如圖2所示。在中間值為0的情況下,寄存器沒有翻轉功耗,組合邏輯功耗也相對較小

5)對于曲線上每一個確定的位置,都存在一個曲線集合Tj,其在該位置上的功耗平均值最小(相對于其他密鑰對應的曲線集合在該點上的功耗平均值),則這個平均值最小的集合對應的密鑰就是該位置攻擊出的密鑰結果。

圖2 功耗曲線分類示意圖Fig.2 Classification diagram of power consumption curve

2.3 最小功耗分類方法優勢

本文最小功耗分類方法優勢分析如下:

1)具有足夠大的Pexp。從2.2節可以看出,在中間值不為0的情況下,有足夠大的寄存器翻轉功耗和組合邏輯電路計算功耗,而在中間值為0的情況下,這些功耗都為0,從而保證了該方法具有足夠大的Pexp,在給定攻擊場景中能利用更多的功耗分量。

2)能夠消除和中間值無關的功耗的影響。將功耗曲線組的功耗進行平均之后,能夠消除電子噪聲Pel.noise、與操作和數據都無關的功耗Prandom、固定功耗Pconst,這些功耗和中間值沒有關聯,在曲線集合中,它們的平均值近似相等。

3)正確密鑰和錯誤密鑰之間的系數差異很大。當中間值為非線性函數(不是密鑰)時,DPA方法應用相關性系數的方法求正確密鑰的相關系數,正確密鑰和錯誤密鑰間的區分度較小。而在最小功耗分類方法下,如果密鑰正確,寄存器和組合邏輯電路的中間值都未發生改變,變量的改變引起的功耗最小,即分類方法中可以利用到的功耗分量Pexp當前值最小;如果密鑰錯誤,任何一個錯誤密鑰對應的中間值為0曲線的Pexp值遠大于正確密鑰對應的中間值為0曲線的Pexp。

3 針對AES的最小功耗分類方法

在分組密碼中,AES具有代表性且攻擊難度較高,其首輪運算在全隨機明文的情況下很難攻擊,因此,本文選取AES進行攻擊。

3.1 AES硬件實現

AES算法可在不同的軟硬件平臺上進行實現,由于FPGA具有配置硬件資源可重構、運算速度快等優點,因此,本文選擇在FPGA上實現AES硬件電路,如圖3所示[21],其中,陰影部分為寄存器,每一輪執行SubBytes、ShiftRows、MixColumns及AddRoundKey后將新生成的AES狀態存入寄存器。圖3為AES硬件實現時的一種通用架構,能夠節省電路面積,且運算速度較快。

圖3 AES硬件實現原理圖Fig.3 Schematic diagram of AES hardware implementation

3.2 AES每輪的整體功耗拆分

AES每一輪的SubBytes、ShiftRows、MixColumns及AddRoundKey計算,可以近似拆分成16個單獨的功耗模塊。如圖4所示,每個模塊的功耗由其輸入所決定。上述功耗模塊分別用模塊1~模塊16表示,模塊1對應AES狀態寄存器的第1個字節state[127:120]和密鑰的第1個字節key[127:120]。

圖4 一個功耗模塊對應的硬件架構Fig.4 Hardware architecture of a power consumption module

3.3 最小功耗分類方法應用

在應用最小功耗分類方法時,首先選擇攻擊算法的中間值。本文選擇的寄存器是AES狀態(8位)寄存器,時間節點為第1輪。在攻擊密鑰的第1個字節時,中間值的表達式如下:

v=Ttext_out(D-1,0)⊕Ttext_in(D,0)⊕Kkey

(5)

其中,Ttext_out(D-1,0)表示第D-1條曲線的密文的第1個字節,Ttext_in(D,0)表示第D條曲線的明文的第1個字節,Kkey表示猜測的8位密鑰。

由圖4可以看出,該寄存器的變化也會引起中間變量表s1~s4的變化,且s1、s2、s3只會隨X的變化而變化,s4會受到X變化的影響。s1~s4的變化會引起較大的組合邏輯電路功耗,當寄存器變化前后的值一樣,即異或值為0時,寄存器翻轉功耗為0,s1~s3保持不變,此時產生的動態功耗分量較小。

然后,參照2.2節的內容完成余下步驟。選擇AES功耗曲線的第2個尖峰附近的點進行分類和平均,攻擊出密鑰,中間值V引起的寄存器翻轉泄露和組合邏輯泄露都發生在該時刻附近。

3.4 算法偽代碼

針對AES的最小功耗分類方法的實現偽代碼如算法1所示。其中,Ttrace為二維數組,存儲曲線上各個點的功耗信息,Ddata存儲曲線的明密文信息。算法輸出選定位置各密鑰對應的曲線集合的功耗平均值。

算法1最小功耗分類方法

輸入Ttrace,Ddata

輸出r4

for ti=1:tracenum

sample (ti)=trace(ti,point );

end

for byte=1:16

for k0=0:255

r2=0;

r3=0;

for ti=2:tracenum

a=data(ti,byte)⊕data(ti-1,byte +16)⊕k0;

if a==0

r2(k0+1)=r2(k0+1)+sample(ti);

r3(k0+1)=r3(k0+1)+1;

end

end

r4(k0+1)=r2(k0+1)/r3(k0+1);

end

figure:plot(r4);

end

4 實驗結果與分析

本文通過一款專門用于研究硬件電路旁路安全的開發板SAKURA-G來模擬AES功耗曲線,以進行實驗對比與分析。

4.1 針對AES的最小功耗分類方法性能分析

對不帶防護的AES算法硬件實現電路的首輪運算進行攻擊,在100萬條全隨機明文的功耗曲線數量下(功耗曲線的密鑰為0x012345789abcdef、0x012345789 abcdef),攻擊結果如圖5所示,其中,縱坐標表示猜測密鑰對應的曲線集合的平均功耗和全部曲線的平均功耗的差值,曲線的縱坐標越高,表示平均功耗越小,(X,Y)為最高點坐標。從圖5可以看出,各猜測密鑰對應的曲線集合的平均功耗差異較大,且正確密鑰與錯誤密鑰區分明顯。圖5只選取了4個字節的攻擊結果,在實際實驗中攻擊出了AES算法的全部密鑰。

圖5 最小功耗分類方法攻擊結果Fig.5 Attack results of minimum power consumption classification method

4.2 與DPA攻擊的比較

對不帶防護的AES算法硬件實現電路的20萬條全隨機明文功耗曲線,分別應用最小功耗分類方法和基于中間值的漢明重量模型DPA方法進行首輪攻擊,密鑰第1個字節的攻擊結果對比如圖6所示,全部密鑰的攻擊結果對比如表1所示。其中,圖6(a)中的縱坐標是猜測密鑰中間值矩陣和功耗矩陣的相關性,圖6(b)中的縱坐標是猜測密鑰對應的曲線集合的平均功耗。在表1中,系數差百分比為負數表示正確密鑰未排名第一,值的大小為正確密鑰相對排名第一的錯誤密鑰的系數差百分比。從圖6和表1可以看出,最小功耗分類方法相比DPA方法具有更好的區分度,前者排名第二的錯誤密鑰相對正確密鑰的系數差百分比大多都超過10%,平均超過20%,而DPA方法排名第二的錯誤密鑰相對正確密鑰的系數差百分比都在0.2%以內,兩者相差100個數量級。

圖6 2種方法對密鑰第1個字節的攻擊結果對比Fig.6 Comparison of attack results of 2 methods on the first byte of key

表1 2種方法對全部密鑰的攻擊結果對比Table 1 Comparison of attack results of 2 methods on all keys

5 結束語

本文提出一種針對分組密碼的最小功耗分類方法。相對DPA攻擊方法,該方法能利用更多的組合邏輯功耗和寄存器翻轉功耗,提高有用功耗的比例。實驗結果表明,最小功耗分類方法對不帶防護的AES算法硬件實現電路的攻擊具有有效性,可以恢復出全部密鑰,且恢復出的密鑰存在較高的區分度。由于分組密碼算法結構類似,硬件實現時也存在寄存器功耗和組合邏輯功耗,因此在理論上最小功耗分類方法對其他分組密碼算法同樣有效。下一步將研究該方法對帶防護的分組密碼算法硬件實現電路的攻擊性能。

猜你喜歡
分類方法
分類算一算
垃圾分類的困惑你有嗎
大眾健康(2021年6期)2021-06-08 19:30:06
學習方法
分類討論求坐標
數據分析中的分類討論
教你一招:數的分類
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
賺錢方法
給塑料分分類吧
主站蜘蛛池模板: 亚洲黄色高清| 亚洲午夜福利精品无码不卡| 2021最新国产精品网站| 亚洲中文字幕国产av| 手机精品视频在线观看免费| 亚洲色图在线观看| 日本在线亚洲| 人妻一本久道久久综合久久鬼色| 国产成人麻豆精品| 国产在线观看91精品| 日本人又色又爽的视频| 欧美午夜理伦三级在线观看| 欧美日韩激情在线| 波多野吉衣一区二区三区av| 欧美国产日韩在线| 国产成人精品2021欧美日韩| 在线观看亚洲精品福利片| 99久久免费精品特色大片| 国产精品xxx| 日韩人妻少妇一区二区| 一级香蕉视频在线观看| 一区二区三区高清视频国产女人| 欧美日韩一区二区三| 国产女人爽到高潮的免费视频| 国产小视频a在线观看| 欧美一区日韩一区中文字幕页| 少妇精品网站| 国模在线视频一区二区三区| 精品久久人人爽人人玩人人妻| 天天躁日日躁狠狠躁中文字幕| 亚洲综合在线最大成人| 亚洲成a人片7777| 伊在人亚洲香蕉精品播放| 久久精品国产精品国产一区| 91伊人国产| 国内熟女少妇一线天| 久久久久久久久18禁秘| 91精品最新国内在线播放| 日韩欧美亚洲国产成人综合| 热伊人99re久久精品最新地| 亚洲制服丝袜第一页| 国产精品va| 亚洲色图狠狠干| 草草影院国产第一页| 欧美另类一区| 国产一区在线视频观看| 国产精品无码翘臀在线看纯欲| 欧美笫一页| 国产91成人| 国产xxxxx免费视频| 亚洲欧洲国产成人综合不卡| 亚洲日韩精品伊甸| 亚洲中久无码永久在线观看软件| 色偷偷av男人的天堂不卡| 超碰色了色| 中文字幕天无码久久精品视频免费| 国产特一级毛片| 欧美在线综合视频| 扒开粉嫩的小缝隙喷白浆视频| 亚洲综合色区在线播放2019| a毛片在线| 久久伊人色| 无码日韩视频| 成人福利在线视频| 88国产经典欧美一区二区三区| 五月婷婷综合色| 成人国产精品网站在线看| 22sihu国产精品视频影视资讯| 91视频免费观看网站| 日韩人妻无码制服丝袜视频| 特级做a爰片毛片免费69| 日韩欧美91| 国产h视频免费观看| 久久国产精品无码hdav| 久久中文字幕不卡一二区| 国产99欧美精品久久精品久久| 一级在线毛片| 久久综合丝袜日本网| 天天视频在线91频| 毛片免费视频| 亚洲国模精品一区| 国产剧情无码视频在线观看|