本發(fā)明涉及信息安全,尤其涉及一種高效恢復(fù)密鑰的深度學(xué)習(xí)側(cè)信道分析方法。
背景技術(shù):
1、物聯(lián)網(wǎng)(iot)的爆炸性增長不僅給信息和通信技術(shù)帶來了進(jìn)步,而且還帶來了安全方面的難題。由于物聯(lián)網(wǎng)設(shè)備傾向于處理個(gè)人數(shù)據(jù),因此在保護(hù)這些設(shè)備時(shí)必須考慮潛在的攻擊。側(cè)信道分析(sca)是潛在攻擊中最具代表性的攻擊。sca是一種基于分析從算法執(zhí)行中獲得的數(shù)據(jù)的技術(shù),而不是算法本身。我們將把這些數(shù)據(jù)稱為泄漏,泄漏的類型包括執(zhí)行時(shí)間、功耗和電磁輻射等,利用上述信息對密碼系統(tǒng)進(jìn)行攻擊和窺測。側(cè)信道分析已成為信息安全密碼產(chǎn)品的巨大威脅,其危害遠(yuǎn)遠(yuǎn)大于傳統(tǒng)的數(shù)學(xué)分析手段。sca的最終目標(biāo)是揭示一個(gè)設(shè)備的秘密密鑰。這種分析是通過利用算法執(zhí)行過程中獲得的泄漏與密鑰之間的關(guān)系來進(jìn)行的。攻擊者收集泄漏,并使用特定的模型和適當(dāng)?shù)闹笜?biāo)來分析它們,以確定密鑰。sca可以轉(zhuǎn)化為一個(gè)分類問題,由于對給定的數(shù)據(jù)進(jìn)行分類是深度學(xué)習(xí)的一個(gè)重要應(yīng)用,深度學(xué)習(xí)模型能夠自動的理解所提取的數(shù)據(jù)中可能存在的模式、特征和邏輯關(guān)系。所以深度學(xué)習(xí)技術(shù)可以應(yīng)用于sca,以提高分析的效率和準(zhǔn)確率。功耗攻擊是側(cè)信道攻擊的一種,其一般核心思想是:對于一個(gè)密碼加密設(shè)備,在其運(yùn)行過程中所消耗的能量多少直接與加密過程中計(jì)算的中間值有關(guān),而該中間值信息直接相關(guān)與該加密設(shè)備在運(yùn)行時(shí)輸入和輸出的密鑰和明密文信息?,F(xiàn)已有很多工作將深度學(xué)習(xí)方法與功耗側(cè)信道分析結(jié)合,可以成功恢復(fù)密鑰。
2、在目前的基于深度學(xué)習(xí)的側(cè)信道攻擊中,均認(rèn)為,由于aes-128加密方式的密鑰有16個(gè)字節(jié),攻擊者需要訓(xùn)練16個(gè)神經(jīng)網(wǎng)絡(luò)模型,才能恢復(fù)整個(gè)密鑰。針對每個(gè)字節(jié)進(jìn)行深度學(xué)習(xí)側(cè)信道分析,需要進(jìn)行數(shù)據(jù)采集、數(shù)據(jù)預(yù)處理,分辨各個(gè)子字節(jié)對應(yīng)的數(shù)據(jù)位置進(jìn)行切片,各自建立模型分別訓(xùn)練等等操作,最終才能恢復(fù)出全部字節(jié)的密鑰,耗費(fèi)時(shí)間與操作較多。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明的目的是為了解決現(xiàn)有技術(shù)中存在的缺點(diǎn),而提供了一種高效恢復(fù)密鑰的深度學(xué)習(xí)側(cè)信道分析方法,包括以下步驟:
2、s1:運(yùn)行加密設(shè)備獲取已知明文和已知密鑰,并采集對所述已知明文和所述已知密鑰進(jìn)行第一輪加密的能量泄露信息,所述能量泄露信息為功耗或能量跡形成的原始數(shù)據(jù),其中,使用隨機(jī)明文與隨機(jī)密鑰加密的能量跡為建模所用數(shù)據(jù),使用隨機(jī)明文與固定密鑰加密的能量跡為測試所用數(shù)據(jù);
3、s2:所述已知密鑰對應(yīng)的字節(jié)設(shè)置的字節(jié)標(biāo)簽與興趣區(qū)間內(nèi)的能量跡一一對應(yīng)形成數(shù)據(jù)集,并將所述數(shù)據(jù)集劃分為訓(xùn)練集、驗(yàn)證集以及測試集,所述興趣區(qū)間是使用相關(guān)性功耗分析cpa對aes加密時(shí)產(chǎn)生的所述能量泄露信息進(jìn)行分析,找到的所述已知密鑰的每個(gè)字節(jié)對應(yīng)的所述能量跡上的位置;
4、s3:根據(jù)所述興趣區(qū)間上產(chǎn)生的能量泄漏和所述已知密鑰之間的關(guān)系,構(gòu)建單個(gè)卷積神經(jīng)網(wǎng)絡(luò)模型,根據(jù)所述單個(gè)卷積神經(jīng)網(wǎng)絡(luò)模型建立側(cè)信道分析深度學(xué)習(xí)模型;
5、s4:將所述訓(xùn)練集輸入所述側(cè)信道分析深度學(xué)習(xí)模型進(jìn)行訓(xùn)練得到最終模型,所述訓(xùn)練過程中采集訓(xùn)練指標(biāo);
6、s5:對所述最終模型進(jìn)行評估,使用所述最終模型恢復(fù)所述字節(jié)的密鑰,評價(jià)攻擊效果。
7、優(yōu)選地,所述步驟s1,進(jìn)一步包括:
8、隨機(jī)生成所述已知明文,運(yùn)行加密設(shè)備,所述已知密鑰通過第一輪加密操作對所述已知明文加密,加密過程中產(chǎn)生的能量泄露對應(yīng)的中間值是第一輪sbox的輸出,所述第一輪加密操作為aes算法字節(jié)替換運(yùn)算,所述能量泄漏為在加密過程中采集到的能量跡,所述第一輪加密操作的計(jì)算公式為:
9、
10、其中,為異或操作,對應(yīng)s盒查找表操作。
11、優(yōu)選地,在步驟s2中,所述使用相關(guān)性功耗分析cpa對aes加密時(shí)產(chǎn)生的所述能量泄露信息進(jìn)行分析,找到所述已知密鑰的每個(gè)字節(jié)對應(yīng)的能量跡上的位置,即興趣區(qū)間,進(jìn)一步包括:
12、s211:對齊所述能量泄露信息;
13、s212:根據(jù)所述字節(jié)替換運(yùn)算計(jì)算中間值矩陣;
14、s213:計(jì)算所述中間值矩陣對應(yīng)的假設(shè)功耗數(shù)據(jù),計(jì)算所述假設(shè)功耗數(shù)據(jù)和所述原始數(shù)據(jù)之間的pearson相關(guān)系數(shù),并選出所述相關(guān)系數(shù)最大區(qū)間,即所述興趣區(qū)間,通過cpa對所述原始數(shù)據(jù)進(jìn)行降維處理,保留所述興趣區(qū)間內(nèi)的功耗數(shù)據(jù)信息,并且選擇出所述已知密鑰的每個(gè)字節(jié)對應(yīng)的所述原始數(shù)據(jù)上的所述興趣區(qū)間。
15、優(yōu)選地,在步驟s2中,所述形成數(shù)據(jù)集,進(jìn)一步包括:
16、s221:以所述已知密鑰的字節(jié)為攻擊目標(biāo)設(shè)置輸出所述字節(jié)標(biāo)簽,所述字節(jié)標(biāo)簽的計(jì)算公式為:
17、
18、其中,表示所述已知密鑰的第字節(jié),表示所述已知明文的第字節(jié);
19、s222,通過cpa從所述原始數(shù)據(jù)中選取所述興趣區(qū)間內(nèi)的能量跡作為所述數(shù)據(jù)集;
20、s223,對所述數(shù)據(jù)集選取70%作為所述訓(xùn)練集,10%作為所述驗(yàn)證集,20%作為所述測試集。
21、優(yōu)選地,在步驟s3中,所述構(gòu)建單個(gè)卷積神經(jīng)網(wǎng)絡(luò)模型,根據(jù)所述單個(gè)卷積神經(jīng)網(wǎng)絡(luò)模型建立側(cè)信道分析深度學(xué)習(xí)模型,進(jìn)一步包括:
22、s31:建立用于接收所述功耗數(shù)據(jù)信息的輸入層inputlayer;
23、s32:建立用于處理所述功耗數(shù)據(jù)信息的網(wǎng)絡(luò)層;
24、s33:建立具有256個(gè)單元的輸出層dense,所述輸出層dense使用softmax激活函數(shù)網(wǎng)絡(luò)輸出256個(gè)類別的概率分布,?對應(yīng)于256種的子密鑰;
25、s34:配置所述單個(gè)卷積神經(jīng)網(wǎng)絡(luò)模型得到所述側(cè)信道分析深度學(xué)習(xí)模型。
26、優(yōu)選地,在步驟s32中,所述網(wǎng)絡(luò)層,進(jìn)一步包括:
27、所述網(wǎng)絡(luò)層包括第一一維卷積層conv1d、第一一維平均池化層averagepooling1d、第二一維卷積層conv1d、第二一維平均池化層averagepooling1d、用于轉(zhuǎn)換多維特征數(shù)據(jù)為一維的數(shù)據(jù)flatten和具有256個(gè)單元的全連接層dense?,?所述全連接層dense的激活函數(shù)是softmax。
28、優(yōu)選地,所述步驟s4,進(jìn)一步包括:
29、s41:使用模型精度acc作為所述訓(xùn)練指標(biāo);
30、s42:將所述訓(xùn)練集輸入所述側(cè)信道分析深度學(xué)習(xí)模型進(jìn)行訓(xùn)練,每一次訓(xùn)練后使用當(dāng)前模型對所述驗(yàn)證集進(jìn)行測試,并記錄所述模型精度acc以查看所述當(dāng)前模型質(zhì)量,當(dāng)?shù)筋A(yù)設(shè)的步數(shù)后,保存所述最終模型。
31、優(yōu)選地,在步驟s42中,所述模型精度acc的計(jì)算公式,如下所示:
32、,
33、其中,?表示所述驗(yàn)證集,表示當(dāng)前數(shù)據(jù)集中的第條功耗曲線,表示正確密鑰,表示當(dāng)猜測密鑰等于所述正確密鑰時(shí)的所述功耗曲線的集合,所述模型精度acc是所述猜測密鑰等于所述正確密鑰時(shí)的功耗曲線數(shù)量與驗(yàn)證集功耗曲線數(shù)量的比值。
34、優(yōu)選地,所述步驟s5,進(jìn)一步包括:
35、s51:將所述測試集輸入所述最終模型進(jìn)行攻擊并進(jìn)行模型輸出;
36、s52,保存所述模型輸出,對所述模型輸出進(jìn)行逆向運(yùn)算得到所述猜測密鑰;
37、s53,使用指標(biāo)對所述最終模型的攻擊效果進(jìn)行評價(jià),時(shí)使用的攻擊曲線越少證明模型越好。
38、優(yōu)選地,所述指標(biāo),進(jìn)一步包括:
39、所述指標(biāo)為所述正確密鑰在所述猜測密鑰中的排序,所述排序的計(jì)算公式,如下所示:
40、,
41、其中,為所述猜測密鑰的索引值,為所述模型輸出,即16個(gè)有256個(gè)元素的張量,?分別對應(yīng)著16個(gè)字節(jié)所述猜測密鑰256種結(jié)果的概率,為降序排序后的張量。
42、與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:
43、本發(fā)明通過訓(xùn)練一個(gè)模型,實(shí)現(xiàn)無需針對每個(gè)字節(jié)選擇興趣區(qū)間,恢復(fù)整個(gè)密鑰,同時(shí)為深度學(xué)習(xí)側(cè)信道分析減少了15/16的攻擊時(shí)間,減少了模型訓(xùn)練的個(gè)數(shù),增加了側(cè)信道攻擊的效率,減少了側(cè)信道攻擊的成本;
44、本發(fā)明從數(shù)據(jù)層面講,本發(fā)明對數(shù)據(jù)進(jìn)行了增強(qiáng),模型通過全部字節(jié)的訓(xùn)練可以得到相比單字節(jié)更好的訓(xùn)練結(jié)果,由于微控制器上運(yùn)行的aes加密算法,在同一輪訓(xùn)練中,每個(gè)字節(jié)之間有較強(qiáng)的關(guān)聯(lián)性,這種處理數(shù)據(jù)的方法對噪聲較強(qiáng)的數(shù)據(jù)集也有較好的表現(xiàn)。