国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于機(jī)器學(xué)習(xí)的側(cè)信道分析研究及RSA算法的應(yīng)用示例

2021-02-27 07:37王潔
關(guān)鍵詞:密鑰信道機(jī)器

◆王潔

基于機(jī)器學(xué)習(xí)的側(cè)信道分析研究及RSA算法的應(yīng)用示例

◆王潔

(北京銀聯(lián)金卡科技有限公司 北京 100041)

基于機(jī)器學(xué)習(xí)的密碼算法側(cè)信道分析是一個(gè)較新的研究領(lǐng)域,自首個(gè)分析結(jié)果發(fā)表以來(lái),大量的研究結(jié)果表明機(jī)器學(xué)習(xí)算法相比傳統(tǒng)方法在側(cè)信道分析中具有很大的性能優(yōu)勢(shì)。因此,基于機(jī)器學(xué)習(xí)的側(cè)信道分析應(yīng)在相關(guān)的安全檢測(cè)技術(shù)領(lǐng)域得到充分的應(yīng)用。本文針對(duì)目前側(cè)信道攻擊中常用的機(jī)器學(xué)習(xí)算法進(jìn)行介紹,并針對(duì)密碼算法RSA進(jìn)行分析,設(shè)計(jì)了基于機(jī)器學(xué)習(xí)的側(cè)信道攻擊實(shí)驗(yàn)并對(duì)比實(shí)驗(yàn)結(jié)果。

機(jī)器學(xué)習(xí);側(cè)信道;RSA算法

機(jī)器學(xué)習(xí)是一種實(shí)現(xiàn)人工智能的方法,使用算法來(lái)解析數(shù)據(jù),從中學(xué)習(xí),然后對(duì)未知事件做出決策和預(yù)測(cè)。機(jī)器學(xué)習(xí)分監(jiān)督學(xué)習(xí)和無(wú)監(jiān)督學(xué)習(xí),其中監(jiān)督學(xué)習(xí)通過(guò)對(duì)帶標(biāo)簽數(shù)據(jù)進(jìn)行學(xué)習(xí),獲得對(duì)未知標(biāo)簽數(shù)據(jù)進(jìn)行正確分類(lèi)的能力。

密碼算法的側(cè)信道分析是一種從設(shè)備執(zhí)行密碼算法過(guò)程中的能耗、電磁等側(cè)信息中恢復(fù)密鑰等敏感信息的攻擊方法,它基于這樣一個(gè)事實(shí)——密碼設(shè)備的瞬時(shí)能耗、電磁等側(cè)信息依賴(lài)于設(shè)備所處理的數(shù)據(jù)和所執(zhí)行的操作,對(duì)智能芯片等設(shè)備的實(shí)際安全造成極大威脅。

基于機(jī)器學(xué)習(xí)的側(cè)信道分析與傳統(tǒng)側(cè)信道分析中的模板攻擊方法有相同的攻擊場(chǎng)景,即攻擊者能夠首先在自主操控密鑰的場(chǎng)景下獲取設(shè)備運(yùn)行密碼算法時(shí)的側(cè)信息曲線,進(jìn)行相應(yīng)操作,然后對(duì)未知密鑰的側(cè)信息曲線進(jìn)行分析,得到密鑰等敏感信息。傳統(tǒng)的模板攻擊對(duì)已知密鑰曲線進(jìn)行的操作是構(gòu)造不同敏感信息下的多元高斯分布模板,然后計(jì)算未知密鑰曲線符合各模板的概率?;跈C(jī)器學(xué)習(xí)的側(cè)信道分析則根據(jù)曲線和作為標(biāo)簽的已知敏感信息通過(guò)學(xué)習(xí)得到一種方法,然后將方法應(yīng)用于新的曲線得到敏感信息。

1 機(jī)器學(xué)習(xí)側(cè)信道背景

大量的研究結(jié)果表明機(jī)器學(xué)習(xí)算法相比傳統(tǒng)方法在側(cè)信道分析中具有很強(qiáng)的性能優(yōu)勢(shì),尤其可以克服掩碼、隨機(jī)延時(shí)等給傳統(tǒng)側(cè)信道分析帶來(lái)極大困擾的防護(hù)手段。

1.1 機(jī)器學(xué)習(xí)側(cè)信道的優(yōu)勢(shì)體現(xiàn):

(1)具有更小的人為假設(shè)。使用中間值作為標(biāo)簽直接訓(xùn)練,避免傳統(tǒng)分析方法下從中間值到側(cè)信息數(shù)據(jù)的模型假設(shè)。

(2)可以獲取更高的學(xué)習(xí)維度。傳統(tǒng)側(cè)信道分析方法需要通過(guò)統(tǒng)計(jì)方法定位特征點(diǎn)以獲取更好的攻擊效果。機(jī)器學(xué)習(xí)方法使用更多的采樣點(diǎn)參與學(xué)習(xí),避免特征點(diǎn)的選取。

(3)天然高階分析。傳統(tǒng)側(cè)信道分析方法需要對(duì)采樣點(diǎn)進(jìn)行預(yù)處理獲取高階特征,機(jī)器學(xué)習(xí)通過(guò)學(xué)習(xí)完成采樣點(diǎn)的組合,自動(dòng)實(shí)現(xiàn)高階分析。

(4)直接學(xué)習(xí)非對(duì)齊曲線。無(wú)需對(duì)曲線進(jìn)行對(duì)齊預(yù)處理,克服隨機(jī)延時(shí)和時(shí)鐘抖動(dòng)等防護(hù)。

1.2 深度學(xué)習(xí)模型的建立

深度學(xué)習(xí)是一種實(shí)現(xiàn)機(jī)器學(xué)習(xí)的技術(shù),建立類(lèi)似神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)模型,在輸入層之后包含多個(gè)隱含層,每個(gè)神經(jīng)網(wǎng)絡(luò)層由若干神經(jīng)元節(jié)點(diǎn)構(gòu)成,每個(gè)節(jié)點(diǎn)以上一層的輸出作為輸入,經(jīng)過(guò)計(jì)算產(chǎn)生輸出,繼續(xù)傳遞直到輸出層,輸出層對(duì)應(yīng)于各個(gè)標(biāo)簽。神經(jīng)元節(jié)點(diǎn)的計(jì)算涉及參數(shù),對(duì)模型訓(xùn)練的過(guò)程就是不斷調(diào)節(jié)參數(shù)使分類(lèi)錯(cuò)誤率不斷降低的過(guò)程。

多層感知機(jī)模型(MLP)和卷積神經(jīng)網(wǎng)絡(luò)模型(CNN)是兩種在側(cè)信道分析中常用的模型。多層感知機(jī)模型由全連接層構(gòu)成,全連接層中每一個(gè)節(jié)點(diǎn)的輸入都包含了上一層全部節(jié)點(diǎn)的輸出,每個(gè)節(jié)點(diǎn)上進(jìn)行線性運(yùn)算;卷積神經(jīng)網(wǎng)絡(luò)模型的核心是卷積神經(jīng)網(wǎng)絡(luò)層,通過(guò)若干卷積核在相應(yīng)步長(zhǎng)下滑動(dòng)對(duì)輸入數(shù)據(jù)進(jìn)行線性運(yùn)算。為了提高模型的泛化能力,池化層、標(biāo)準(zhǔn)化層、隨機(jī)斷連等方法常穿插在網(wǎng)絡(luò)層中,防止出現(xiàn)僅在訓(xùn)練集上有較高正確率的過(guò)擬合現(xiàn)象。

基于機(jī)器學(xué)習(xí)側(cè)信道的研究目前主要集中在對(duì)稱(chēng)算法,比如國(guó)際算法DES、AES等,國(guó)內(nèi)SM4算法。非對(duì)稱(chēng)算法RSA、ECC相關(guān)研究比較少。本文主要針對(duì)RSA算法進(jìn)行機(jī)器學(xué)習(xí)側(cè)信道分析,并設(shè)計(jì)相關(guān)實(shí)驗(yàn)進(jìn)行分析,對(duì)比不同深度學(xué)習(xí)模型算法得到的結(jié)果。

2 RSA算法機(jī)器學(xué)習(xí)側(cè)信道分析

RSA 是目前使用最廣泛的公鑰密碼體制之一。所謂的公開(kāi)密鑰密碼體制就是使用不同的加密密鑰與解密密鑰,是一種“由已知加密密鑰推導(dǎo)出解密密鑰在計(jì)算上是不可行的”密碼體制。在公開(kāi)密鑰密碼體制中,加密密鑰(即公開(kāi)密鑰)PK是公開(kāi)信息,而解密密鑰(即秘密密鑰)SK是需要保密的。側(cè)信道攻擊技術(shù)就是對(duì)RSA算法的解密密鑰進(jìn)行分析和攻擊。RSA算法的簽名流程如下:

M = Cdmod N,C為明文消息,M為密文簽名數(shù)據(jù),d為簽名密鑰。

從左到右的實(shí)現(xiàn)方式如下所示:

M = 1

for each bit di

M = (M * M) mod N

if (di == 1) M = (M * C) mod N

return M

簽名密鑰d為我們需要分析的對(duì)象,從RSA算法的簽名流程可以看到運(yùn)算中d的每一位決定需要做的運(yùn)算,當(dāng)d的數(shù)據(jù)位為0時(shí),進(jìn)行平方運(yùn)算;當(dāng)d的數(shù)據(jù)為1時(shí),進(jìn)行模平方和模乘運(yùn)算。所以我們通過(guò)傳統(tǒng)側(cè)信道的方式,采集算法運(yùn)算的功耗和電磁信號(hào),分析每一個(gè)模乘和模平方運(yùn)算。

通常密碼設(shè)備的大數(shù)運(yùn)算的算子都是由硬件實(shí)現(xiàn),硬件實(shí)現(xiàn)的模乘和模平方運(yùn)算的功耗或者電磁曲線是無(wú)法通過(guò)觀察分辨出來(lái)的。但是由于模乘和模平方運(yùn)算有操作或者數(shù)據(jù)導(dǎo)致的細(xì)微差別,可以通過(guò)采用基于機(jī)器學(xué)習(xí)的側(cè)信道的方法進(jìn)行分析攻擊。

采集幾條已知密鑰的RSA算法運(yùn)算的功耗或者電磁曲線,將運(yùn)算過(guò)程中的模乘和模平方曲線截取出來(lái),并對(duì)應(yīng)到密鑰位來(lái)判定運(yùn)算為模乘或者模平方運(yùn)算,對(duì)這些數(shù)據(jù)采用深度學(xué)習(xí)模型進(jìn)行訓(xùn)練,然后使用訓(xùn)練后的模型進(jìn)行評(píng)估和預(yù)測(cè)。

3 RSA的機(jī)器學(xué)習(xí)側(cè)信道實(shí)驗(yàn)分析

本節(jié)將利用上一節(jié)提出的方法,對(duì)RSA算法做基于機(jī)器學(xué)習(xí)的側(cè)信道攻擊實(shí)驗(yàn),以驗(yàn)證方法的有效性。本節(jié)我們主要采用MLP、CNN、VGG三種深度學(xué)習(xí)算法模型進(jìn)行側(cè)信道分析和攻擊。

實(shí)驗(yàn)數(shù)據(jù)是通過(guò)Riscure的Power Tracer給一張支持RSA算法的智能卡下發(fā)簽名指令,執(zhí)行10次RSA簽名指令,使用Lecroy示波器對(duì)加密過(guò)程采集能量消耗數(shù)據(jù)。示波器的采樣率設(shè)置為250M/s,采樣點(diǎn)數(shù)是15000000,可以包含RSA簽名運(yùn)算的全部運(yùn)算。采集的能量曲線中間較高的一段就是在進(jìn)行模冪運(yùn)算即由多個(gè)模乘和模平方運(yùn)算組成。放大模冪運(yùn)算的部分結(jié)果為每個(gè)幅值較高的運(yùn)算為模平方或者模乘運(yùn)算,從圖中觀察很難找到規(guī)律來(lái)分辨模平方和模乘運(yùn)算。使用基于機(jī)器學(xué)習(xí)的側(cè)信道分析,首先要先進(jìn)行數(shù)據(jù)收集。包括單個(gè)的模乘或者模平方運(yùn)算,以及每個(gè)運(yùn)算的對(duì)應(yīng)的標(biāo)簽數(shù)據(jù)。曲線截取采用模板相關(guān)性匹配的方法。選取一個(gè)運(yùn)算850個(gè)樣本點(diǎn)作為模板進(jìn)行相關(guān)性匹配,每個(gè)運(yùn)算的相關(guān)性最高的點(diǎn)作為起始點(diǎn),截取850個(gè)點(diǎn)作為一個(gè)運(yùn)算元素,對(duì)以上截取得到的模乘模平方運(yùn)算進(jìn)行運(yùn)算類(lèi)型打標(biāo),根據(jù)已知密鑰推算出運(yùn)算的類(lèi)型,并記錄。本次實(shí)驗(yàn)采用的數(shù)據(jù)集一共為16000,訓(xùn)練集和驗(yàn)證集數(shù)據(jù)為15000比例為95:5,測(cè)試集數(shù)據(jù)為1000。對(duì)以上數(shù)據(jù)分別使用MLP算法模型、CNN算法模型和VGG算法模型進(jìn)行模型訓(xùn)練和驗(yàn)證。

3.1 MLP模型訓(xùn)練驗(yàn)證

本小節(jié)介紹所采用MLP模型及訓(xùn)練驗(yàn)證結(jié)果,實(shí)驗(yàn)使用的MLP模型為4層神經(jīng)網(wǎng)絡(luò),激活函數(shù)為ReLu,Softmax為全連接層。

利用以上MLP模型進(jìn)行訓(xùn)練和驗(yàn)證,訓(xùn)練次數(shù)設(shè)置為40結(jié)果訓(xùn)練集準(zhǔn)確率達(dá)到91%,驗(yàn)證集準(zhǔn)確率達(dá)到88%。對(duì)于RSA算法的分析來(lái)說(shuō)準(zhǔn)確率不夠,無(wú)法完全恢復(fù)密鑰。

3.2 CNN模型訓(xùn)練驗(yàn)證

本小節(jié)介紹所采用CNN網(wǎng)絡(luò)模型及訓(xùn)練驗(yàn)證結(jié)果,實(shí)驗(yàn)使用的CNN網(wǎng)絡(luò)模型為5層神經(jīng)網(wǎng)絡(luò),卷積核大小通過(guò)設(shè)置為5-8進(jìn)行效果對(duì)比,最后選定為6。池化層選用最大化池化。

利用以上CNN模型進(jìn)行訓(xùn)練和驗(yàn)證,訓(xùn)練次數(shù)設(shè)置為100,結(jié)果如圖1所示。

圖1 CNN模型訓(xùn)練驗(yàn)證結(jié)果

CNN模型訓(xùn)練和驗(yàn)證結(jié)果數(shù)據(jù)如圖1所示,訓(xùn)練集準(zhǔn)確率達(dá)到91%,驗(yàn)證集準(zhǔn)確率達(dá)到92%。對(duì)于RSA算法的分析來(lái)說(shuō)準(zhǔn)確率不夠,無(wú)法完全恢復(fù)密鑰。

3.3 VGG 模型訓(xùn)練驗(yàn)證

本小節(jié)介紹所采用VGG網(wǎng)絡(luò)模型及訓(xùn)練驗(yàn)證結(jié)果,實(shí)驗(yàn)使用2014年提出的經(jīng)典深層卷積神經(jīng)網(wǎng)絡(luò),由10層卷積層和3層全連接層組成。卷積核大小通過(guò)設(shè)置為3。池化層選用最大化池化。

利用以上VGG模型進(jìn)行訓(xùn)練和驗(yàn)證,訓(xùn)練次數(shù)設(shè)置為40,結(jié)果如圖2所示。

圖2 VGG模型訓(xùn)練驗(yàn)證結(jié)果

VGG模型訓(xùn)練和驗(yàn)證結(jié)果數(shù)據(jù)如圖6所示,訓(xùn)練集準(zhǔn)確率達(dá)到99.6%,驗(yàn)證集準(zhǔn)確率達(dá)到100%。對(duì)于RSA算法的分析來(lái)說(shuō)準(zhǔn)確率基本達(dá)到100%,可以有效恢復(fù)密鑰。

3.4 實(shí)驗(yàn)結(jié)論

本小節(jié)對(duì)比三種不同的機(jī)器學(xué)習(xí)算法模型的參數(shù)及準(zhǔn)確率,如表1所示。

表1 三種機(jī)器算法模型參數(shù)及準(zhǔn)確率對(duì)比

通過(guò)嘗試不同的算法模型及算法參數(shù),找到了RSA算法中模平方和模乘算法的有效區(qū)分模型,可以準(zhǔn)確有效恢復(fù)出RSA的私鑰。

[1]Martinasek Z,Zeman V. Innovative Method of the Power Analysis. Radio engineering,2013,22(2):586-594.

[2]Martinasek Z,Hajny J,Malina L. Optimization of power analysis using neural network. CARDIS 2013.

[3]Maghrebi H,Portigliatti T,Prouff E. Breaking cryptographic implementations using deep learning techniques. SPACE 2016.

[4]Cagli E,Dumas C,Prouff E. Convolutional Neural Networks with Data Augmentation Against Jitter-Based Countermeasures. CHES 2017

[5]Benadjila R,Prouff E,Strullu R,et al,Study of Deep Learning Techniques for Side-Channel Analysis and Introduction to ASCAD Database.

[6]Qi Lei,Chao Li,Kexin Qiao.VGG-based side channel attack on RSA implementation.

猜你喜歡
密鑰信道機(jī)器
機(jī)器狗
機(jī)器狗
幻中邂逅之金色密鑰
密碼系統(tǒng)中密鑰的狀態(tài)與保護(hù)*
TPM 2.0密鑰遷移協(xié)議研究
未來(lái)機(jī)器城
一種對(duì)稱(chēng)密鑰的密鑰管理方法及系統(tǒng)
FRFT在水聲信道時(shí)延頻移聯(lián)合估計(jì)中的應(yīng)用
基于導(dǎo)頻的OFDM信道估計(jì)技術(shù)
一種基于GPU的數(shù)字信道化處理方法