張運(yùn)理,石元兵,明 爽,籍 帥,蘇攀西
(1.中電科網(wǎng)絡(luò)安全科技股份有限公司,四川 成都 610095;2.可信云計(jì)算與大數(shù)據(jù)四川省重點(diǎn)實(shí)驗(yàn)室,四川 成都 610095)
在當(dāng)今這個(gè)信息爆炸的時(shí)代,數(shù)據(jù)安全和隱私保護(hù)已經(jīng)成為人們關(guān)注的焦點(diǎn)。隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,加密技術(shù)在信息安全領(lǐng)域的應(yīng)用越來(lái)越廣泛。分組密碼算法作為加密技術(shù)的一種重要手段,以其高效、簡(jiǎn)單、易實(shí)現(xiàn)的特點(diǎn),被廣泛應(yīng)用于各種場(chǎng)景中。然而,分組密碼算法的安全性也受到了挑戰(zhàn),特別是受到唯密文攻擊的場(chǎng)景。唯密文攻擊是指攻擊者僅知道加密后的密文,而不知道明文和密鑰的情況下進(jìn)行的攻擊。在這種場(chǎng)景下,如何有效地識(shí)別出所使用的分組密碼算法是一個(gè)重要的問(wèn)題。
唯密文場(chǎng)景下的密碼算法識(shí)別研究方向主要分為兩種:一種是早期基于統(tǒng)計(jì)學(xué)的密碼算法識(shí)別方法,另一種是基于機(jī)器學(xué)習(xí)算法的密碼算法識(shí)別方法。Maheshwari 等人[1]首次使用統(tǒng)計(jì)學(xué)方法,以自然語(yǔ)言頻數(shù)作為比較閾值,對(duì)密文中字母的出現(xiàn)頻率進(jìn)行統(tǒng)計(jì),對(duì)代換密碼、置換密碼和維吉尼亞密碼等幾種古典密碼算法進(jìn)行了分類,并重點(diǎn)研究了數(shù)據(jù)加密標(biāo)準(zhǔn)(Data Encryption Standard,DES)和國(guó)際數(shù)據(jù)加密算法(International Data Encryption Algorithm,IDEA)兩種密碼算法的區(qū)分。隨著密碼學(xué)的不斷發(fā)展,現(xiàn)代密碼算法所生成密文的隨機(jī)性復(fù)雜程度得到了極大的提升,基于統(tǒng)計(jì)學(xué)的識(shí)別方法已不再適用。研究人員嘗試將機(jī)器學(xué)習(xí)算法應(yīng)用到密文分析領(lǐng)域。Rivest[2]詳細(xì)研究了密碼學(xué)與機(jī)器學(xué)習(xí)兩大領(lǐng)域結(jié)合應(yīng)用的理論。Matthews[3]使用遺傳算法分析傳統(tǒng)置換密碼。Ramzan 等人[4]提出可以使用神經(jīng)網(wǎng)絡(luò)進(jìn)行加密算法識(shí)別。國(guó)內(nèi)學(xué)者李繼中等人[5]以匯編級(jí)密碼算法特征分析為基礎(chǔ),首次提出了匯編級(jí)密碼算法特征度量元的概念,并建立基于Bayes 決策的密碼算法識(shí)別模型,該模型能高效地定位密碼算法。文獻(xiàn)[6]基于唯密文條件,對(duì)密碼算法識(shí)別過(guò)程中的特征提取、分類器訓(xùn)練、特征選擇和算法識(shí)別等關(guān)鍵技術(shù)進(jìn)行了詳細(xì)研究,分析了不同機(jī)器學(xué)習(xí)算法及特征選擇方法對(duì)識(shí)別準(zhǔn)確率的影響。文獻(xiàn)[7]對(duì)密文特征選擇方法進(jìn)行了改進(jìn)與創(chuàng)新,選擇BP 神經(jīng)網(wǎng)絡(luò)、卷積神經(jīng)網(wǎng)絡(luò)與循環(huán)神經(jīng)網(wǎng)絡(luò)3 種深度學(xué)習(xí)算法分別對(duì)8 種密碼算法進(jìn)行識(shí)別,相較于基于隨機(jī)森林的識(shí)別方法,準(zhǔn)確率有巨大提升。
本文針對(duì)唯密文場(chǎng)景下的分組密碼算法識(shí)別問(wèn)題進(jìn)行了深入研究,提出一種基于集成學(xué)習(xí)的唯密文場(chǎng)景下分組密碼算法識(shí)別方法。該方法通過(guò)使用集成學(xué)習(xí)算法學(xué)習(xí)密文的隨機(jī)性統(tǒng)計(jì)特征,如撲克檢測(cè)、隨機(jī)游走狀態(tài)頻數(shù)檢測(cè)等,來(lái)識(shí)別密文所使用的分組密碼算法。為了驗(yàn)證所提方法的有效性,本文進(jìn)行了多組實(shí)驗(yàn),并與現(xiàn)有的識(shí)別方法進(jìn)行了比較。實(shí)驗(yàn)結(jié)果表明,本文所提方法在識(shí)別準(zhǔn)確率和魯棒性方面均優(yōu)于現(xiàn)有方法。此外,本文還討論了唯密文場(chǎng)景下分組密碼算法識(shí)別的挑戰(zhàn)和局限。
基于集成學(xué)習(xí)思想,本文設(shè)計(jì)了一種基于混合梯度上升決策樹(shù)和邏輯回歸模型的唯密文場(chǎng)景下的對(duì)稱密碼算法識(shí)別方法。該集成學(xué)習(xí)模型是2014 年由Facebook 提出的[8],使用混合梯度上升決策樹(shù)(Gradient Boosting Decision Tree,GBDT)模型[9]在訓(xùn)練過(guò)程中對(duì)特征進(jìn)行自動(dòng)組合和離散化,得到的離散向量與訓(xùn)練數(shù)據(jù)原特征組合作為邏輯回歸模型(Logistic Regression,LR)的輸入數(shù)據(jù),最終輸出分類預(yù)測(cè)結(jié)果。結(jié)合梯度提升決策樹(shù)和邏輯回歸算法,構(gòu)建混合模型,利用梯度提升決策樹(shù)在處理非線性問(wèn)題上的優(yōu)勢(shì)及邏輯回歸算法在處理二分類問(wèn)題上的優(yōu)勢(shì),提高模型的整體識(shí)別性能。模型結(jié)構(gòu)如圖1 所示。
圖1 GBDT+LR 集成學(xué)習(xí)模型
GBDT 模型是一種迭代的決策樹(shù)算法模型,它通過(guò)結(jié)合多個(gè)弱分類器來(lái)提高整體模型的性能。GBDT 的核心思想是每一棵樹(shù)都是對(duì)之前所有樹(shù)預(yù)測(cè)結(jié)果的殘差進(jìn)行擬合,即每個(gè)新加入的決策樹(shù)都是為了修正前面所有決策樹(shù)的預(yù)測(cè)誤差。
具體來(lái)說(shuō),GBDT 的工作流程如下。
步驟1:初始化訓(xùn)練數(shù)據(jù),將所有樣本的預(yù)測(cè)值設(shè)為0。
步驟2:對(duì)于每一個(gè)訓(xùn)練樣本,計(jì)算其殘差。
步驟3:用當(dāng)前的殘差擬合一個(gè)新的決策樹(shù)。
步驟4:更新樣本的預(yù)測(cè)值。
步驟5:重復(fù)步驟2~4,直到滿足預(yù)設(shè)的停止條件,如樹(shù)的數(shù)量達(dá)到設(shè)定的最大值或殘差小于某個(gè)閾值。
在實(shí)際應(yīng)用中,GBDT 模型具有很好的可解釋性和廣泛的應(yīng)用效果。它在數(shù)據(jù)挖掘、計(jì)算廣告、推薦系統(tǒng)等領(lǐng)域都得到了廣泛應(yīng)用。此外,GBDT與LR 的結(jié)合也是一個(gè)重要的應(yīng)用場(chǎng)景,用以解決LR 模型無(wú)法處理非線性數(shù)據(jù)的問(wèn)題。
邏輯回歸模型是一種用于處理因變量為分類變量的回歸模型,常見(jiàn)的是二分類或二項(xiàng)分布問(wèn)題,也可以處理多分類問(wèn)題。雖然名稱中含有“回歸”兩個(gè)字,但實(shí)際上邏輯回歸是一種分類方法。邏輯回歸的原理為:首先通過(guò)伯努利分布和邏輯函數(shù)建立回歸分析模型,其次通過(guò)最大似然估計(jì)法來(lái)求解模型中的參數(shù)。邏輯回歸模型預(yù)測(cè)函數(shù)可以表示為:
式中:p為某個(gè)事件發(fā)生的概率,z為線性組合的特征值與偏置項(xiàng)之和。
在實(shí)際應(yīng)用中,邏輯回歸具有廣泛的適用性。例如,它可以用于信用評(píng)分,預(yù)測(cè)客戶是否會(huì)違約;也可以用于醫(yī)學(xué)診斷,如預(yù)測(cè)患者是否患有某種疾病。此外,邏輯回歸還可以應(yīng)用于垃圾郵件過(guò)濾、推薦系統(tǒng)等領(lǐng)域。
GBDT+LR 集成學(xué)習(xí)模型是一種兩階段的集成模型,它通過(guò)GBDT 模型自動(dòng)提取特征,并將提取的特征輸入到邏輯回歸模型中進(jìn)行分類預(yù)測(cè)。這種模型化的特征工程方法能夠有效提升模型的預(yù)測(cè)性能,并減少人工特征工程的工作量,具體的構(gòu)建過(guò)程如下文所述。
步驟1:利用GBDT 模型訓(xùn)練原始樣本數(shù)據(jù),得到一個(gè)二分類器。這一步通常涉及模型的訓(xùn)練和參數(shù)的調(diào)整。GBDT 是一種基于boosting 集成學(xué)習(xí)思想的加法模型,訓(xùn)練時(shí)采用前向分布算法進(jìn)行貪婪學(xué)習(xí),每次迭代都學(xué)習(xí)1 棵CART 樹(shù)來(lái)擬合之前t-1 棵樹(shù)的預(yù)測(cè)結(jié)果與訓(xùn)練樣本真實(shí)值的殘差。
步驟2:使用訓(xùn)練好的GBDT 模型做預(yù)測(cè),例如,一個(gè)原始樣本數(shù)據(jù)經(jīng)過(guò)GBDT 后,可以得到一些新的特征,并對(duì)新特征進(jìn)行One-hot 編碼處理,這些新的特征可以看作原始特征的非線性變換或者組合。
步驟3:將GBDT 構(gòu)造出的組合特征再與原始數(shù)據(jù)特征組合,輸入到邏輯回歸模型中進(jìn)行訓(xùn)練。這一步通常也涉及模型的訓(xùn)練和參數(shù)的調(diào)整。
基于GBDT+LR 集成學(xué)習(xí)模型構(gòu)造唯密文場(chǎng)景下的分組密碼算法識(shí)別模型框架,如圖2 所示。
圖2 分組密碼算法識(shí)別模型
1.4.1 訓(xùn)練階段
該模型從各類分組密碼算法密文文件C={C1,C2,…,Cn}按2.2 節(jié)中的方法進(jìn)行提取,并處理得到密文特征集F={F1,F2,…,Fn}與標(biāo)簽集合Label={L1,L2,…,Ln}。將得到的特征集作為GBDT 模型輸入,對(duì)GBDT 模型N次迭代后得到的預(yù)測(cè)結(jié)果進(jìn)行One-hot 編碼,與原特征集組合得到新特征集Fnew={P1,P2,…,Pn}。將新的特征集作為L(zhǎng)R 模型輸入,對(duì)特征進(jìn)行分類訓(xùn)練,輸出訓(xùn)練好的集成學(xué)習(xí)分類器模型M。
1.4.2 測(cè)試階段
對(duì)待識(shí)別的密文文件進(jìn)行特征提取得到不含標(biāo)簽的密文特征FnoLabel,將提取到的特征輸入訓(xùn)練好的分類器M中,輸出即為識(shí)別結(jié)果。
分組密碼算法是對(duì)稱密碼算法的一種,其加密和解密過(guò)程中使用相同密鑰的密碼算法,并將明文分成固定長(zhǎng)度的組,對(duì)每個(gè)組進(jìn)行加密處理,最后得到密文。訓(xùn)練模型使用到的密文數(shù)據(jù)集由AES、SM4 和3DES 這3 種分組密碼算法加密明文數(shù)據(jù)得到,分別包含10 萬(wàn)條數(shù)據(jù)。明文數(shù)據(jù)集使用THUCNews dataset 和AclImdb_v1 dataset,其 中THUCNews 是清華大學(xué)自然語(yǔ)言處理實(shí)驗(yàn)室根據(jù)新浪新聞RSS 訂閱頻道2005—2011 年間的歷史數(shù)據(jù)篩選過(guò)濾生成的,AclImdb_v1 dataset 是用于二進(jìn)制情緒分類的大型電影評(píng)論數(shù)據(jù)集。將明文劃分為1 KB、2 KB、4 KB、8 KB、16 KB、32 KB、64 KB、128 KB、256 KB 和512 KB,使 用Crypto 及Gmssl庫(kù)對(duì)明文進(jìn)行隨機(jī)密鑰加密,加密模式為ECB、CBC 和GCM 這3 種,得到混合不同文件長(zhǎng)度的密文數(shù)據(jù)集。
分組密碼算法設(shè)計(jì)安全性[10]中要求分組密碼算法應(yīng)遵循混淆原則和擴(kuò)散原則,因此明文信息在經(jīng)過(guò)加密算法編碼后得到的二進(jìn)制序列具有良好的隨機(jī)性?,F(xiàn)有研究中,美國(guó)國(guó)家標(biāo)準(zhǔn)與技術(shù)研究所(National Institute of Standards and Technology,NIST)制定的SP 800-22 標(biāo)準(zhǔn)[11]被廣泛應(yīng)用于隨機(jī)序列隨機(jī)性特征提取方法中,該標(biāo)準(zhǔn)包含15 個(gè)檢測(cè)項(xiàng),每項(xiàng)分為一級(jí)檢測(cè)和二級(jí)檢測(cè),檢測(cè)結(jié)果以P_Value呈現(xiàn),如表1 所示。文獻(xiàn)[12]中指出SP 800-22 的正態(tài)分布型檢測(cè)項(xiàng)目二級(jí)檢測(cè)存在不完備的情況,即通過(guò)這種檢測(cè)的隨機(jī)序列仍有可能在所檢測(cè)的統(tǒng)計(jì)特性上存在缺陷,因此提出了Q_Value 的均勻性檢測(cè)作為正態(tài)分布型檢測(cè)項(xiàng)目的二級(jí)檢測(cè),這種新的檢測(cè)方法能降低誤檢率提高可靠性。新的檢測(cè)方法在行業(yè)規(guī)范《GMT 0005-2021 隨機(jī)數(shù)檢測(cè)規(guī)范》[13]中被使用,并提出了不同于NIST 標(biāo)準(zhǔn)的4 項(xiàng)隨機(jī)數(shù)檢測(cè)項(xiàng),分別為撲克檢測(cè)、游程分布檢測(cè)、二元推導(dǎo)檢測(cè)和自相關(guān)檢測(cè)。本文采用隨機(jī)數(shù)檢測(cè)規(guī)范中的檢測(cè)項(xiàng)對(duì)密文進(jìn)行檢測(cè)得到P_Value和Q_Value,并將其作為密文特征項(xiàng)(F_P1,F_P2,…,F_Pn;F_Q1,F_Q2,…,F_Qn),這些特征將用于描述密碼的結(jié)構(gòu)、頻率等特性,為后續(xù)的模型識(shí)別提供依據(jù)。
表1 NIST 隨機(jī)數(shù)檢測(cè)項(xiàng)
提取到的特征值不能直接作為模型訓(xùn)練數(shù)據(jù),需要進(jìn)行如下處理工作:
(1)將基于隨機(jī)數(shù)檢測(cè)項(xiàng)提取到的特征整理到一個(gè)CSV 文件中,并根據(jù)生成密文的算法進(jìn)行標(biāo)注;
(2)對(duì)數(shù)據(jù)集中存在異常值的特征樣本進(jìn)行清洗,這些值會(huì)影響模型訓(xùn)練效果,因此需要提前進(jìn)行清洗。
本文采用準(zhǔn)確率Accuracy、F1 值作為模型性能好壞的評(píng)價(jià)指標(biāo),它們的計(jì)算式為:
本文使用十折交叉驗(yàn)證的方法對(duì)集成學(xué)習(xí)模型、梯度提升決策樹(shù)模型和邏輯回歸模型3 種分組密碼二分類識(shí)別方案進(jìn)行對(duì)比實(shí)驗(yàn)驗(yàn)證,結(jié)果如表2所示。從表中可以看出,在相同實(shí)驗(yàn)數(shù)據(jù)條件下,集成學(xué)習(xí)模型對(duì)密文所使用的加密算法的識(shí)別準(zhǔn)確率明顯高于單一模型20%左右,說(shuō)明集成學(xué)習(xí)模型對(duì)分組密碼算法的識(shí)別效果良好。同時(shí),F(xiàn)1 值也與準(zhǔn)確率呈現(xiàn)相同的規(guī)律,說(shuō)明模型穩(wěn)定性良好。
表2 分組密碼算法二分類識(shí)別準(zhǔn)確率及F1 值
本文提出了一種唯密文場(chǎng)景下的分組密碼算法集成學(xué)習(xí)識(shí)別模型,基于Q_value 二級(jí)隨機(jī)數(shù)檢測(cè)項(xiàng)提取密文特征。實(shí)驗(yàn)結(jié)果表明,集成學(xué)習(xí)模型識(shí)別效果優(yōu)于單一識(shí)別模型,且在不同長(zhǎng)度混合的數(shù)據(jù)集上具有良好的穩(wěn)定性。后續(xù)研究工作中將進(jìn)行特征優(yōu)化以提高識(shí)別方法的魯棒性和泛化能力,同時(shí)研究如何利用深度學(xué)習(xí)模型在唯密文場(chǎng)景下對(duì)分組密碼算法進(jìn)行識(shí)別。