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

針對AES加密算法的安全檢測

2022-05-30 04:29:34何利文國海輪
計算機技術與發展 2022年5期
關鍵詞:實驗分析

何利文,安 聰,國海輪

(南京郵電大學,江蘇 南京 210003)

0 引 言

近年來,信息安全問題日益突出,已成為人類共同面臨的挑戰,側信道攻擊對信息安全構成了巨大的威脅。密碼芯片在工作過程中不可避免地會產生時間、功耗、電磁輻射等旁道信息[1]。這些信息與芯片內部的數據和操作有關。因此,側信道信息可用于攻擊密碼芯片。利用側信道信息破解密文信息的方法最早由Kocher于1996年提出,隨后逐漸發現了差分功耗分析(DPA)、相關功耗分析(CPA)等側信道攻擊方法[2]。目前,已經成功地在許多設備上實現了多種側信道攻擊[3]。

差分功耗分析(differential power analysis,DPA)[4]可以從功耗曲線微小的差分信號分析出所需的關鍵信息,但需要采集大量的信息,并采集多組功耗曲線以及每條曲線對應的明文、密文記錄,通常需要很強的分析經驗和較長時間的分析運算,對分析平臺的設備要求也比較高。而相關功耗分析(correlation power analysis,CPA)[5]是選擇一個未知但是恒定的參考態,建立一個具有數據相關性的漢明模型,利用功耗樣點與被處理數據的漢明權重之間的相關因子進行分析。因此CPA攻擊的準確性要比DPA高很多。

1 背景介紹

1.1 高級加密標準

高級加密標準[6](advanced encryption standard,AES)是最常見的對稱加密算法,加解密使用相同的密鑰,可以在不同的平臺上實現:

明文(p),可理解的消息或數據,機密算法的輸入,解密算法的輸出。AES-128的明文長度為128位。

密鑰(k),在將明文轉換為密文或者將密文轉換為明文算法中輸入的數據。AES-128的密鑰長度為128位。

輪數(r),AES-128的加密輪數為10輪。

其中AES-128加密算法由10輪組成,每一輪使用一個由原始密鑰產生的密鑰。每一輪由四個基本步驟組成:字節替換、行移位、列混合變幻、輪密鑰加密變換。

密文(c),加密算法的輸出,解密算法的輸入,其依賴于明文和密鑰。AES-128的密文長度為128位。

1.2 相關功耗分析(CPA)

相關系數攻擊模型是經典差分攻擊的一個延伸[7],它選擇一個未知但是恒定的參考態,建立一個具有數據相關性的漢明模型,利用功耗樣點與被處理數據的漢明權重之間的相關性因子進行分析。其主要思路是攻擊者已知明文,并可變化明文并采集相應的功耗曲線。攻擊者猜測密鑰,根據明文和密鑰計算出某中間變量[8]。以中間變量的漢明權重(邏輯1的個數)和功耗的相關系數做分析,相關系數最高的即猜測正確的密鑰。否則由于錯誤的密鑰,導致中間變量必然與功耗沒有預期的正比關系。這種分析是以功耗與處理的1的個數成正比為理論前提的,由芯片原理可知[9]:功耗是與邏輯門輸出的0、1的轉換次數(漢明距)成正比的,而不是與處理的1(漢明權重)的個數成正比。

1.3 側信道分析攻擊

側信道分析攻擊技術是相對于傳統意義上基于通信的密碼分析而言的。傳統的密碼分析是通過對密碼處理器的算法進行破解分析,并對輸入輸出等數據輔之以監聽等手段,在流程內實現攻擊[10]。側信道分析攻擊技術的對象則是密碼處理器的實現,即不是對加解密數據本身分析,而是對加解密過程中的時序、功耗等其他信道的信息進行分析,從而得到密鑰等敏感信息[11]。

和傳統的密碼分析相比,側信道分析攻擊技術有成本上的優勢。密碼分析雖然通過一些分析方法可降低密碼破解的強度,即縮小窮舉密鑰的空間,但目前通常采取的延長密鑰位的辦法可使實現窮舉攻擊需要的時間遠遠長于密鑰的生存期。側信道分析攻擊技術的破解效率與密鑰長度無關或只是線性相關,而非傳統密碼分析中,其效率與密鑰長度的冪相關。若集成電路沒有保護措施,那么側信道分析攻擊技術可能僅需很小的代價就能得到密鑰。

1.4 ChipWhisperer

ChipWhisperer[12]是一種開源工具鏈,使學習側信道攻擊變得簡單。它還充當一個平臺,以有據可查、經濟高效且可重復的方式執行側信道研究。ChipWhisperer主要側重于電源分析攻擊以及電壓和時鐘故障,這些故障會中斷設備的電源或時鐘信號,從而導致意外行為。

1.5 Jupyter Notebook

Jupyter Notebook是基于網頁的用于交互計算的應用程序。其可被應用于全過程計算:開發、文檔編寫、運行代碼和展示結果[13]。Jupyter Notebook是以網頁的形式打開,可以在網頁頁面中直接編寫代碼和運行代碼,代碼的運行結果也會直接在代碼塊下顯示。如在編程過程中需要編寫說明文檔,可在同一個頁面中直接編寫,便于作及時的說明和解釋。同時Jupyter Notebook也支持python語言,ChipWhisperer的Version5就是使用的Jupyter Notebook。

2 CPA攻擊檢測算法安全性

2.1 CPA攻擊步驟

第一步:將密鑰分成16個子密鑰分別破解,每一子密鑰為一個字節[14]。首先考慮第一個子密鑰GuessKey的破解。根據能量跡隨機地選擇明文中的字節P1,P2,…,PN,將P輸入到目標密碼算法的執行單元。

第二步:猜測K的候選值,然后每遍歷一個值,參照AES的一輪加密過程,將其與明文P進行異或得到X,異或之后再經過S-BOX的字節替換即可得到用于求解漢明重量的輸入Y,求出Y的漢明重量后最終得到h的樣本值[15],如圖1所示。

第三步:計算V和h的person相關系數r(v,h),相關性最大的那個點就是S盒的輸出。

在CPA攻擊中,根據不同采樣點位置的電壓值與漢明重量的關系可以判斷正確和錯誤密鑰[16],也就是有無明顯的尖峰。只需要對全部的位置都做相關系數,然后找到最大值,這樣就找到了正確的密鑰,S盒的輸出位置也就找到了

圖1 樣本值h

2.2 CPA完整攻擊流程

高級加密標準是最常見的對稱加密算法,加解密使用相同的密鑰,可以在不同的平臺上實現。

CPA完整攻擊流程[17]程序的主體是兩個循環,隨機選擇明文P1,P2,…,PN,采集加密規程中的能量跡:電壓V,每條能量跡上有M個采樣點。

For byte = 1∶16//外部循環:循環猜測16個byte的密鑰;

ForK= 0∶255 //內部循環:每個猜測的密鑰共有256種可能需要將其從0遍歷到255;

H=HW(Sbox(Pbyte⊕K))//猜測密鑰與明文異或,經過S盒處理后計算漢明重量,Pbyte表示各PN的第byte個字節[18];

Form= 1∶M//計算每個采樣點的person相關系數;

V=Vm//Vm各能量跡V的第m個采樣點;

Corr(K)=r(V,h)Rightkeybyte = find(max (corr))//取相關系數最大的值。

3 ChipWhisperer使用CPA檢測AES-128加密算法

3.1 捕獲部分

首先在命令行下啟動Jupyter Notebook,啟動成功后可以在網頁上打開。在Jupyter Notebook下找到ChipWhisperer的項目位置,打開ChipWhisperer里面的CPA攻擊腳本,這個腳本里的內容是CW預設的一些參數和攻擊步驟,需要根據攻擊環境進行更改。

在CPA的攻擊腳本中,需要修改PLATFORM的值,這個值是根據目標板的種類修改的,本實驗使用的是CW303的目標板,因此需要把PLATFORM的值改為PLATFORM='CW303'。

ChipWhisperer的連接是寫在腳本Setup_Generic.ipynb中的,里面含有一些參數的設置,例如:PLATFORM值、間隔時間、時鐘頻率等。如果要在攻擊腳本里進行連接,需要運行這個腳本進行連接。但是單獨運行其他的腳本會使實驗結構復雜化,每次調試都要去重啟它,增加實驗的難度,本實驗利用run命令在攻擊腳本中直接調用Setup_Generic.ipynb連接設備,避免了每次調試都需要單獨連接設備。

本實驗使用XMEGA目標進行實驗,XMEGA目標需要對XMEGA進行編程,XMEGA編程需要首先將XMEGA設備里的內容清空,然后重新寫入需要的內容[19],成功寫入后并給出提示。

成功連接并確認內容已編程到XMEGA設備中,就可以捕獲目標的能量跡了。為了更好地展示能量跡的捕獲進程,該文利用python里面的tqdm模塊,構建進度條[20]。因此從運行結果中可以看到捕獲能量跡的進度,成功運行后還需要把捕獲到的能量跡保存下來。本實驗統一把能量跡保存在project下,方便后續的使用。

本實驗使用Python中的holoviewsSuJu數據分析/可視化庫具有快速生成交互性和高維可視化非常適合于數據的交互式探索的特點,利用其功能對捕獲到的能量跡進行制作[21],以采樣點位5 000為例,捕獲到的能量跡如圖2所示。

圖2 捕獲能量跡

3.2 分析部分

計算相關性之前需要獲取一個字節的輸入和一個字節的猜測密鑰,并且返回S-Box的輸出,根據猜測密鑰計算其漢明權重,利用下面的公式:

HW=[bin(n).count(″1″) fornin range(0,256)]

來計算漢明權重。

首先是計算相關性問題。Personal相關系數[22](皮爾遜相關系數)的計算方法如下:

根據皮爾遜相關系數的計算方法可以得到每個猜測密鑰的相關性,利用這些相關性可以找出那些猜測密鑰符合捕捉到的能量軌跡。對于相關系數而言,只需要關注其絕對值[23](即存在線性相關性),而不關心符號。此外,雖然沒考慮到相關性的計算,但是每條記錄的trace實際上是由一堆樣本點組成的,這意味著實驗實際擁有的是每個子猜測密鑰與每個樣本點的相關性[24]。通常只有跟蹤中的幾個點是相關的,它是需要關注的整個跟蹤中的最大值,因此本實驗通過獲取最大值的方式選擇每個子猜測密鑰的相關性。最后,通過找到相關性最大的子猜測密鑰確定與數據最匹配的子猜測密鑰[25]。

經過以上部分計算皮爾遜相關系數并得出相關性最大的猜測子密鑰,本實驗將這些猜測子密鑰存在results中,利用print函數可以輸出這些猜測子密鑰,輸出的內容為最大猜測子密鑰的值以及相關系數的值。本實驗還使用python里面的pandas庫,更好地在數據幀中輸出它們[26]。

除此之外,還使用style方法來進一步刻畫它,使它可以鏈接格式化函數。例如,由于猜測密鑰是從0-255,因此有很多相關性很小甚至無限趨近于0的數據,可以刪除多余的0并清理數據。本實驗更進一步地對得到的密鑰進行處理,如輸出不同顏色的密鑰,并把正確密鑰用紅色輸出且在表格的最頂部。這樣,就完成了對AES-128的CPA攻擊。

4 相關系數方法的改進

相關函數的實現可以作為一個遍歷所有跟蹤的循環運行。理想情況下,希望將相關系數作為一種“在線”計算。為了實現這種“在線”計算,可以添加一個跟蹤,觀察輸出,再添加另一個跟蹤,觀察輸出[27]。當生成部分猜測熵(PGE)與軌跡數量的圖時,這是非常可取的,如果沒有這種輸出的存儲方法,在得到最后的結果時需要多次運行循環,這些循環是用來計算不同階段的輸出[28]。

根據上面這種情況,可以使用相關方程的另一種形式,它會顯式地存儲變量的和,這更容易執行在線計算。它把每次添加跟蹤得到的結果保存起來,當添加新的跟蹤時,根據之前存儲的計算結果,很容易更新這些總和,而不需要循環地運行之前得到的計算結果[29]。

下面兩個公式就是改進后顯式的存儲變量的和。

5 實驗結果分析

通過捕獲到的能量跡上的采樣點設置猜測密鑰,計算各個明文在猜測密鑰下的S和輸出得到的樣本值,并利用能量跡和樣本值計算相關系數。實驗成功破解出AES的16組密鑰,如圖3和圖4所示。

(a)前8組

(b)后8組圖3 密鑰

(a)前8組

(b)后8組圖4 密鑰

CPA破解密鑰的成功率與能量跡的條數和采樣點的個數有很大的關系,實驗首先固定能量跡的數量對采樣點的數量進行修改,得到圖4(3 000采樣點)和圖5(4 000采樣點)的密鑰破解結果。

(a)前8組

(b)后8組圖5 密鑰

固定能量跡的條數以及調整采樣點的大小反復實驗,最終得到采樣點與成功率之間的關系圖。根據實驗結果可以發現,在采樣點數量為0到5 000之間時,成功率會隨著采樣點數量的增加而增加,超過5 000之后,成功率基本處于平穩狀態,如圖6所示。

圖6 采樣點個數和密鑰破解成功率

固定最佳采樣點5 000,調整能量跡的條數,每次增加5條能量跡,實驗得到具體的密鑰破解結果如圖7(20條能量跡)和圖8(25條能量跡)。

(a)前8組

(b)后8組圖7 密鑰

(a)前8組

(b)后8組圖8 密鑰

實驗中固定采樣點的大小以及調整能量跡的條數實驗,最終得到能量跡與成功率之間的關系圖。根據實驗結果可以發現,在采樣點數量為0到30之間時,成功率會隨著采樣點數量的增加而增加,超過30之后,成功率處于平穩狀態,如圖9所示。

圖9 能量跡條數和密鑰破解成功率

CPA攻擊的成功率正常情況下會隨著采樣點和能量跡數量的增加而增加,但同時運算速度也會下降,本實驗在保證成功率的同時提高了運算速度,采用不同的采樣點和能量跡進行反復實驗,最終得到能量跡為30條、采樣點位5 000時,CPA對AES的密鑰破解情況最好,此時幾乎可以達到100%的密鑰破解率,再增加數量就會導致運算速度降低。

6 結束語

隨著信息化水平的不斷提高,AES加密算法的安全問題尤為重要。雖然AES加密算法可以防御一些基本的攻擊方式,但針對側信道攻擊的防御還是較為薄弱的。該文針對AES-128加密算法實施了相關功耗分析攻擊,并成功破解了128位完整的密鑰。攻擊過程中使用ChipWhisperer成功捕獲了功耗曲線,通過計算漢明權重,得出了功耗數據的相關系數,并推測密鑰是否正確。實驗結果表明,對AES-128加密算法的破解成功率達到了90%以上。AES-128加密算法容易受到相關功耗分析的攻擊,因此,在實際中使用AES加密算法時需要考慮芯片的安全測試,增加芯片抗側信道攻擊的防護。

猜你喜歡
實驗分析
記一次有趣的實驗
微型實驗里看“燃燒”
隱蔽失效適航要求符合性驗證分析
做個怪怪長實驗
電力系統不平衡分析
電子制作(2018年18期)2018-11-14 01:48:24
電力系統及其自動化發展趨勢分析
NO與NO2相互轉化實驗的改進
實踐十號上的19項實驗
太空探索(2016年5期)2016-07-12 15:17:55
中西醫結合治療抑郁癥100例分析
在線教育與MOOC的比較分析
主站蜘蛛池模板: 国内熟女少妇一线天| 一级黄色网站在线免费看| 亚洲日韩久久综合中文字幕| 久久精品aⅴ无码中文字幕| 91色爱欧美精品www| 成人综合在线观看| 一级高清毛片免费a级高清毛片| 日本欧美在线观看| 人妻精品久久无码区| 日本欧美成人免费| 狠狠v日韩v欧美v| 欧美人与性动交a欧美精品| 东京热高清无码精品| 97综合久久| 日韩在线播放中文字幕| 一级毛片免费不卡在线| 三上悠亚一区二区| 97视频免费在线观看| 在线免费a视频| 成人午夜视频网站| 久久伊人久久亚洲综合| 美女亚洲一区| 日韩美女福利视频| 久久精品人人做人人| 极品国产在线| 97视频在线观看免费视频| 五月婷婷中文字幕| 亚洲无线一二三四区男男| 超清无码一区二区三区| 午夜欧美理论2019理论| 高清码无在线看| 亚洲愉拍一区二区精品| 国产精品久久久久久久伊一| 国产成人啪视频一区二区三区| 国产亚洲日韩av在线| 一区二区三区成人| 久久婷婷六月| 亚洲国内精品自在自线官| 亚洲国产综合精品一区| 99久久99这里只有免费的精品| 97国产在线视频| 不卡视频国产| 亚州AV秘 一区二区三区| 亚洲成人一区二区| 大陆精大陆国产国语精品1024 | 精品国产亚洲人成在线| 亚洲男人的天堂网| 日韩av手机在线| 波多野结衣视频网站| 久久综合婷婷| 色爽网免费视频| 免费Aⅴ片在线观看蜜芽Tⅴ| 日韩无码视频网站| 国产成人永久免费视频| 午夜国产在线观看| 国产不卡国语在线| 国产色图在线观看| 久久人与动人物A级毛片| 国产成人综合久久精品尤物| 欧美成人精品高清在线下载| 国产香蕉97碰碰视频VA碰碰看| 国产福利在线观看精品| 久久亚洲黄色视频| 国产激情国语对白普通话| 亚洲日本www| 视频二区亚洲精品| 国产一级小视频| 午夜一区二区三区| 久久精品娱乐亚洲领先| 女人18毛片一级毛片在线 | 国产无遮挡裸体免费视频| 中文字幕免费视频| 四虎永久免费网站| 四虎国产精品永久在线网址| 夜精品a一区二区三区| 国产高清又黄又嫩的免费视频网站| 成人在线亚洲| 激情综合网激情综合| 午夜人性色福利无码视频在线观看| 日韩麻豆小视频| 亚洲Av激情网五月天| 香蕉久久永久视频|