池亞平,岳梓巖,林雨衡
(1.北京電子科技學(xué)院 網(wǎng)絡(luò)空間安全系,北京 100070;2.中國科學(xué)院網(wǎng)絡(luò)測評(píng)技術(shù)重點(diǎn)實(shí)驗(yàn)室,北京 100093)
為了實(shí)現(xiàn)關(guān)鍵技術(shù)安全自主可控,國產(chǎn)加密算法不斷發(fā)展更新,SM1、SM2、SM3、SM4 及SM9 算法分別在安全性、加密效率方面對(duì)標(biāo)AES、SHA256、RSA 等國際加密算法,目前被廣泛應(yīng)用于國家信息安全領(lǐng)域。
在對(duì)密碼系統(tǒng)進(jìn)行監(jiān)控時(shí),多數(shù)情況下研究者只能獲得通信傳輸中的密文,往往不能確定密碼系統(tǒng)所采用的密碼算法,導(dǎo)致密碼分析和密碼設(shè)備監(jiān)控工作困難重重[1]。在國密算法密碼應(yīng)用中,對(duì)應(yīng)用國密算法的密碼設(shè)備的數(shù)據(jù)流進(jìn)行密碼算法識(shí)別和分析,及時(shí)發(fā)現(xiàn)信息系統(tǒng)在數(shù)據(jù)通信過程中是否采用規(guī)范的國密算法及規(guī)范的密碼工作模式,可有效加強(qiáng)密碼設(shè)備監(jiān)管、檢測和主動(dòng)抵御惡意入侵。
此外,信息安全中的攻與防是相輔相成的,密碼算法的識(shí)別研究是密碼分析領(lǐng)域的重要分支之一,但密碼算法識(shí)別本身就是變相地對(duì)密碼算法進(jìn)行攻擊。而從密碼算法的角度來看,對(duì)抗現(xiàn)有技術(shù)對(duì)密碼算法的識(shí)別,也為密碼算法設(shè)計(jì)實(shí)現(xiàn)帶來了新的思考與考驗(yàn),由此可見,密碼算法識(shí)別的研究意義重大。密碼算法識(shí)別目前有兩方面的研究:一方面是利用逆向分析工程對(duì)加密算法進(jìn)行代碼層面的分析[2],另一方面是在唯密文條件下對(duì)密碼算法進(jìn)行識(shí)別,本文研究僅針對(duì)后者展開。
本文對(duì)SM4 算法5 種工作模式下的密文特征進(jìn)行可視化分析,利用實(shí)驗(yàn)證明深度學(xué)習(xí)在密碼算法識(shí)別研究中的可行性,提出一種基于Transformer模型的SM4 算法工作模式識(shí)別分類方案,并通過對(duì)比其他文獻(xiàn)中的相關(guān)工作,驗(yàn)證所提方案的有效性。
從公開文獻(xiàn)來看,密碼算法識(shí)別研究并不多見,現(xiàn)有方案主要針對(duì)分組密碼展開研究,也取得了一些進(jìn)展。在密碼算法識(shí)別任務(wù)中,可利用統(tǒng)計(jì)檢測發(fā)現(xiàn)不同分組密碼密文的隨機(jī)程度存在的差異,從而判斷密文所屬的密碼算法。隨機(jī)性測試方法多達(dá)上百種,其中美國商務(wù)部國家標(biāo)準(zhǔn)技術(shù)協(xié)會(huì)(NIST)公布的2010 版SP800-22 標(biāo)準(zhǔn)中的15 種隨機(jī)性檢測算法(以下簡稱NIST 隨機(jī)性檢測)[3]最為典型。
文獻(xiàn)[4]指出除隨機(jī)性相關(guān)統(tǒng)計(jì)檢測外,還有一類統(tǒng)計(jì)檢測方法與分組密碼的分組長度、密碼結(jié)構(gòu)等有關(guān),因此基于分組長度,把分組密碼看作是一個(gè)隨機(jī)的多輸出布爾函數(shù),將256 個(gè)密文分組進(jìn)行異或操作,統(tǒng)計(jì)其結(jié)果的漢明重量,通過期望值計(jì)算判斷是否服從二項(xiàng)分布。將此方法用于Rinjdael、Camellia 和SM4算法,結(jié)果表明,這3 種算法 分別從第4 輪、第5 輪和第7 輪開始呈現(xiàn)出良好的統(tǒng)計(jì)性能。
文獻(xiàn)[5]根據(jù)密碼學(xué)常識(shí),提出針對(duì)密碼算法識(shí)別任務(wù)中的分層思想,即先對(duì)密文按照密碼體制類別進(jìn)行分類識(shí)別,其中包含古典密碼、序列密碼、公鑰密碼、分組密碼等,再識(shí)別具體密碼體制,根據(jù)此思想設(shè)計(jì)雙層密碼算法識(shí)別方案并基于隨機(jī)森林算法進(jìn)行實(shí)驗(yàn),結(jié)果表明,相比傳統(tǒng)單層識(shí)別方案,該方案準(zhǔn)確率提升了20%左右。
文獻(xiàn)[6]完善了密碼算法識(shí)別任務(wù)框架,通過對(duì)識(shí)別分類問題中的主要難點(diǎn)做進(jìn)一步分析,對(duì)特征提取過程的各環(huán)節(jié)進(jìn)行形式化定義,并以此為基準(zhǔn),探究包含隨機(jī)性檢測、統(tǒng)計(jì)學(xué)中的熵、最大熵、基尼系數(shù)等在內(nèi)的不同特征的屬性對(duì)識(shí)別分類準(zhǔn)確率的影響,引入集成學(xué)習(xí)技術(shù),采用多個(gè)基學(xué)習(xí)器集成對(duì)密文進(jìn)行分類識(shí)別,防止選擇單一分類器而導(dǎo)致分類模型泛化性能不足。實(shí)驗(yàn)結(jié)果表明,將熵作為特征提取函數(shù)的特征表現(xiàn)更穩(wěn)定,且較文獻(xiàn)[5]方案識(shí)別分類準(zhǔn)確率有較大提升。
在密碼算法識(shí)別研究工作中,特別是在基于傳統(tǒng)機(jī)器學(xué)習(xí)的方案中,將通過分析密文樣本特征,從而識(shí)別其密碼算法視作文本分類任務(wù),各類密文特征工程的構(gòu)建過程十分復(fù)雜,如隨機(jī)性特征、熵相關(guān)特征等,還需要人工分析篩選有意義的分類特征。深度學(xué)習(xí)是機(jī)器學(xué)習(xí)和人工智能研究領(lǐng)域的延伸,利用深度學(xué)習(xí)技術(shù),學(xué)者們已在很多領(lǐng)域取得重要成就。卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)被證明可以高效提取目標(biāo)樣本特征,被廣泛應(yīng)用于圖像識(shí)別[7]等領(lǐng)域,并取得了顯著成果。文本分類是許多數(shù)據(jù)分析應(yīng)用的基礎(chǔ),在這一領(lǐng)域,相較于傳統(tǒng)機(jī)器學(xué)習(xí),深度學(xué)習(xí)往往表現(xiàn)更佳。文獻(xiàn)[8]通過構(gòu)建神經(jīng)網(wǎng)絡(luò),實(shí)現(xiàn)了MARS、RC6、Rinjdael、Serpent、Twofish 等5 類密碼算法在ECB 模式下的正確分類,得出在密碼生成的底層數(shù)學(xué)運(yùn)算過程中存在固有的特性,這些特性在密文中留下了痕跡,因此,可以通過神經(jīng)網(wǎng)絡(luò)提取深層次特征來實(shí)現(xiàn)分類。文獻(xiàn)[9]分別對(duì)文本、語音、圖片形式的明文文件進(jìn)行加密,后對(duì)密文按8 bit 分塊,采用累計(jì)求和的方法將分塊后的密文映射為二維的向量矩陣,并將得到的二維向量通過固定卷積核的卷積網(wǎng)絡(luò),提取密文的卷積特征向量,最后利用隨機(jī)森林模型對(duì)密文進(jìn)行分類,結(jié)果表明,該方法對(duì)AES、3DES、Blowfish 的識(shí)別準(zhǔn)確率平均達(dá)到83%。文獻(xiàn)[10]在構(gòu)造密文特征時(shí)選擇基于NIST 隨機(jī)性測試,首先對(duì)密文按固定大小分塊,然后對(duì)每一分塊進(jìn)行包括頻率檢驗(yàn)、塊內(nèi)頻數(shù)檢驗(yàn)、非重疊板塊檢驗(yàn)、游程檢驗(yàn)、近似熵檢驗(yàn)等5 種隨機(jī)性測試,得到每塊密文對(duì)應(yīng)的測試結(jié)果,并將每一個(gè)密文分塊的隨機(jī)性測試結(jié)果作為密文的二維特征向量,采用CNN 和循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)模型對(duì)密文特征進(jìn)行訓(xùn)練,獲得了較高的識(shí)別準(zhǔn)確率。利用深度學(xué)習(xí)技術(shù)對(duì)密文進(jìn)行特征提取,挖掘密文內(nèi)部特征并實(shí)現(xiàn)分類是密碼算法識(shí)別方面新的研究熱點(diǎn)。
此外,在針對(duì)分組密碼的公開發(fā)表的文獻(xiàn)中,很少對(duì)其工作模式進(jìn)行分析,多數(shù)文獻(xiàn)都默認(rèn)使用分組密碼ECB 模式進(jìn)行加密獲得密文樣本。分組密碼工作模式可以使算法安全性、加密效率等方面得到增強(qiáng),不同的應(yīng)用場景需要采用不同的工作模式。文獻(xiàn)[11]定義了分組密碼5 種常見的工作模式,包括電碼本(Electronic CodeBook,ECB)、密文分組鏈接(Cipher Block Chaining,CBC)、密文反饋(Cipher FeedBack,CFB)、輸出反饋(Output FeedBack,OFB)、計(jì)數(shù)器模式(CounTeR,CTR)。這5 類工作模式基本情況見表1。
表1 分組密碼算法的5 種工作模式 Table 1 Five working modes of block cipher algorithm
對(duì)分組密碼的加密模式進(jìn)行識(shí)別,可以實(shí)現(xiàn)對(duì)密碼信息系統(tǒng)的監(jiān)管。文獻(xiàn)[12]針對(duì)SM4 算法的4 種模式,對(duì)其加密后的密文序列從統(tǒng)計(jì)學(xué)與信息熵角度提取特征,而后利用決策樹分類算法進(jìn)行二分類識(shí)別與四分類識(shí)別,結(jié)果表明,該方法在二分類問題中表現(xiàn)穩(wěn)定,準(zhǔn)確率高達(dá)90%以上,而在四分類問題中,區(qū)分率在25%左右,與隨機(jī)猜測準(zhǔn)確率相近,識(shí)別準(zhǔn)確率還有提升空間。
通過上述分析可以看出,現(xiàn)有基于機(jī)器學(xué)習(xí)的SM4 算法工作模式識(shí)別準(zhǔn)確率不高,深度學(xué)習(xí)方案尚未得到深入研究,對(duì)此,本文主要進(jìn)行如下工作:
1)參考現(xiàn)有方案中利用隨機(jī)性檢測工具提取密文隨機(jī)性特征值的思想,結(jié)合傳統(tǒng)機(jī)器學(xué)習(xí)模型進(jìn)行實(shí)驗(yàn)分析,發(fā)現(xiàn)現(xiàn)有密碼算法識(shí)別方案應(yīng)用于SM4 算法工作模式分類問題中的不足。
2)通過逐位累加和方式對(duì)密文數(shù)據(jù)集進(jìn)行處理,輸入深度學(xué)習(xí)模型,分析密文數(shù)據(jù)處理方式與深度學(xué)習(xí)方案應(yīng)用于SM4 算法工作模式分類問題的可行性。
3)設(shè)計(jì)一種基于Transformer 的SM4 算法工作模式識(shí)別方案,并增加SM4-ECB 模式下的密文樣本,豐富SM4 算法密文樣本。通過對(duì)比不同神經(jīng)網(wǎng)絡(luò)模型及文獻(xiàn)[5]實(shí)驗(yàn)結(jié)果,驗(yàn)證該模型應(yīng)用于SM4算法工作模式分類問題的高效性。
在現(xiàn)有方案中應(yīng)用廣泛的隨機(jī)性檢測方法,原理是隨機(jī)性檢測發(fā)現(xiàn)不同密碼算法加密所得密文的隨機(jī)程度存在差異,從而判斷密文所屬的密碼算法,另外也可通過隨機(jī)性檢測值分布,比較不同加密方式的加密效果。本節(jié)通過將隨機(jī)性檢測方法應(yīng)用于SM4 算法工作模式分類問題,利用實(shí)驗(yàn)分析現(xiàn)有方案應(yīng)用于該問題存在的不足之處。
2.1.1 實(shí)驗(yàn)分析涉及算法及工具介紹
實(shí)驗(yàn)分析涉及的算法為K 近鄰(K-Nearest Neighbor,KNN)算法。KNN[13]是一種基于監(jiān)督學(xué)習(xí)的分類算法,基本思想是給定一組已正確分類的數(shù)據(jù)集作為訓(xùn)練集,模型將測試集特征與訓(xùn)練集特征進(jìn)行對(duì)比,計(jì)算訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)之間的距離,并比較待測數(shù)據(jù)與其他數(shù)據(jù)之間的距離,如果距離大多數(shù)樣本較近,且這部分?jǐn)?shù)據(jù)屬于同一類別,則判定待測數(shù)據(jù)屬于該類別。文獻(xiàn)[6]中所提出的密碼體制識(shí)別方案使用該模型進(jìn)行密碼算法分類,本文利用KNN 分類模型對(duì)SM4 算法5 種工作模式進(jìn)行區(qū)分。
實(shí)驗(yàn)分析涉及的工具為SP800-22 隨機(jī)性測試套件。目前在密碼測評(píng)中最常使用的隨機(jī)性測試工具是美國國家標(biāo)準(zhǔn)與技術(shù)研究院2010 年修訂的SP800-22 Rev-1a 標(biāo)準(zhǔn),該標(biāo)準(zhǔn)包含15 個(gè)測度指標(biāo),用于測試密碼算法和偽隨機(jī)數(shù)生成算法所產(chǎn)生序列數(shù)據(jù)的隨機(jī)性。文獻(xiàn)[14]對(duì)這15 個(gè)測度指標(biāo)進(jìn)行了詳細(xì)說明,此處不再贅述。需要說明的是,在對(duì)輸入序列進(jìn)行15 個(gè)隨機(jī)性檢測值計(jì)算時(shí),部分檢測值有最短長度要求,如表2 所示。
表2 部分檢測值長度要求 Table 2 Length requirements of partial detection values 單位:bit
2.1.2 實(shí)驗(yàn)分析方案
密碼算法識(shí)別分類工作中使用最為廣泛的方法是基于NIST 隨機(jī)性檢測標(biāo)準(zhǔn)進(jìn)行隨機(jī)性特征提取,選擇出對(duì)密文文件分類具有價(jià)值的隨機(jī)性測度特征,實(shí)現(xiàn)對(duì)密碼算法的識(shí)別分類。為探究隨機(jī)性檢測特征對(duì)SM4 算法工作模式分類問題的有效性,保證將NIST 隨機(jī)性檢測中15 項(xiàng)檢測值統(tǒng)計(jì)完整,設(shè)置明文文件為256 000 kb 的文本文件,使用GMSSL 國密算法模塊[15]調(diào)用SM4 算法5 種工作模式對(duì)該明文文件進(jìn)行加密。加密后得到的5 份密文文件均為256 000 kb,將5 份密文文件分別分割為1 000 份,每份256 kb,符合所有測試指標(biāo)長度要求。借助SP800-22 隨機(jī)性測試套件對(duì)5 000 份密文文件進(jìn)行檢測值提取,流程如圖1 所示,實(shí)驗(yàn)配置如表3 所示。
圖1 特征提取流程圖Fig.1 Flowchart of feature extraction
表3 實(shí)驗(yàn)環(huán)境配置 Table 3 Experimental environment configuration
2.1.3 實(shí)驗(yàn)分析結(jié)果
將提取出的15 維特征向量輸入KNN 模型進(jìn)行訓(xùn)練并計(jì)算在測試集上的識(shí)別準(zhǔn)確率,5 種模式兩兩識(shí)別結(jié)果與混合五分類識(shí)別結(jié)果如表4 所示。
表4 識(shí)別準(zhǔn)確率 Table 4 Recognition accuracy %
此外,以SM4 算法為例,本文選取15 項(xiàng)檢測值中的碼元頻數(shù)統(tǒng)計(jì)檢測值、游程頻數(shù)統(tǒng)計(jì)檢測值、塊內(nèi)頻數(shù)統(tǒng)計(jì)檢測值進(jìn)行統(tǒng)計(jì)分布,這3 項(xiàng)檢測值在分組密碼識(shí)別中可作為顯著特征值[16],其中,碼元頻數(shù)統(tǒng)計(jì)檢測值統(tǒng)計(jì)密文序列中0 比特和1 比特的比例,游程頻數(shù)統(tǒng)計(jì)檢測值統(tǒng)計(jì)密文序列中所包含的不同長度游程的數(shù)量,塊內(nèi)頻數(shù)統(tǒng)計(jì)檢測值統(tǒng)計(jì)固定大小的密文序列中特定元素整體的比例。3 項(xiàng)檢測值的分布結(jié)果如圖2~圖4 所示,其中,橫坐標(biāo)為隨機(jī)性檢測特征值,縱坐標(biāo)為對(duì)應(yīng)密文文件數(shù)量。
圖2 碼元頻數(shù)統(tǒng)計(jì)檢測值分布Fig.2 The distribution of symbol frequency statistics detection values
從圖2 中可以看出:對(duì)于ECB 模式,密文文件數(shù)量隨著特征值增大而減少,且在特征值0.0~0.2 區(qū)間內(nèi)密文文件數(shù)量較多;對(duì)于CBC、CFB 模式,各特征值對(duì)應(yīng)的密文文件數(shù)量分布較為平均;對(duì)于OFB模式,個(gè)別特征值對(duì)應(yīng)的密文文件數(shù)量遠(yuǎn)大于平均值。
從圖3 中可以看出:對(duì)于ECB 模式,特征值分布不均勻,在特征值0.0~0.2 區(qū)間內(nèi)密文文件數(shù)量較多,在特征值0.5 附近的密文文件數(shù)量明顯少于兩側(cè)密文文件數(shù)量;對(duì)于另外4 種工作模式,各特征值對(duì)應(yīng)的密文文件數(shù)量分布較為平均,其中CBC模式與OFB 模式在特征值0.5 處的密文文件數(shù)量較多。
圖3 游程頻數(shù)統(tǒng)計(jì)檢測值分布Fig.3 The distribution of run-length frequency statistical detection values
從圖4 中可以看出:對(duì)于ECB 模式,特征值分布不均勻,在特征值0.0~0.2 區(qū)間內(nèi)的密文文件數(shù)量較多,在特征值0.5 附近的密文文件數(shù)量明顯少于兩側(cè)密文文件數(shù)量;對(duì)于另外4 種模式,特征值分布基本相同,無明顯特征。
圖4 塊內(nèi)頻數(shù)統(tǒng)計(jì)檢測值分布Fig.4 The distribution of intra-block frequency statistical detection values
通過基于隨機(jī)性檢測的SM4 算法工作模式分類實(shí)驗(yàn)結(jié)果可以明顯發(fā)現(xiàn),ECB 模式下的密文與其他模式下的密文進(jìn)行兩兩識(shí)別時(shí),識(shí)別準(zhǔn)確率較高。
從圖2~圖4 的隨機(jī)性檢測值分布來看,ECB 模式下密文隨機(jī)性表現(xiàn)較差,故被認(rèn)為具有一定規(guī)律性,其他工作模式下的密文隨機(jī)性都表現(xiàn)良好,檢測值分布均勻,可認(rèn)為加密效果良好。當(dāng)其他模式下密文之間兩兩識(shí)別或5 種模式混合識(shí)別時(shí),其余4 種模式在隨機(jī)性檢測值上分布均勻,造成了識(shí)別準(zhǔn)確率與隨機(jī)猜測準(zhǔn)確率持平,因此利用現(xiàn)有方案中應(yīng)用廣泛的隨機(jī)性檢測特征難以對(duì)SM4 算法ECB 模式之外的其他工作模式進(jìn)行高效識(shí)別。
文獻(xiàn)[17]將卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用于文本分類任務(wù)之中,并取得了較好的實(shí)驗(yàn)結(jié)果。本節(jié)通過引入深度學(xué)習(xí)技術(shù),利用二維卷積神經(jīng)網(wǎng)絡(luò)對(duì)SM4 算法工作模式進(jìn)行分類,證明深度學(xué)習(xí)方案的可行性以及提出的數(shù)據(jù)處理方式的有效性。
2.2.1 實(shí)驗(yàn)方案
本文針對(duì)SM4 密碼算法5 種工作模式混合的情況,提出一種基于深度學(xué)習(xí)的分類方案。首先為驗(yàn)證深度學(xué)習(xí)方案應(yīng)用于SM4 算法工作模式分類問題的可行性,將密文視為序列型文本,將其加密模式作為標(biāo)簽,利用卷積神經(jīng)網(wǎng)絡(luò)模型提取密文內(nèi)部特征,實(shí)現(xiàn)對(duì)密文所屬加密模式較高的分類準(zhǔn)確率。由于傳統(tǒng)的一維卷積神經(jīng)網(wǎng)絡(luò)在相同卷積核情況下獲得的感受野較少,在訓(xùn)練過程中容易出現(xiàn)過擬合現(xiàn)象[18],因此本文采用二維卷積神經(jīng)網(wǎng)絡(luò)對(duì)密文特征圖進(jìn)行特征提取及分類。
本文采用4 000 kb 大小的文本文件進(jìn)行實(shí)驗(yàn),利用GMSSL 國密算法模塊調(diào)用SM4 算法5 種工作模式對(duì)該文本文件進(jìn)行加密。加密后得到的5 份密文文件大小均為4 000 kb,將5 份密文文件分別分割為1 000 份,每份4 kb。對(duì)于每份密文,以十六進(jìn)制讀取密文文件,經(jīng)歸一化形成4 096 個(gè)像素值,而后轉(zhuǎn)化為64×64 像素的灰度圖,用于二維卷積神經(jīng)網(wǎng)絡(luò)輸入,該數(shù)據(jù)集稱為數(shù)據(jù)集A。數(shù)據(jù)集A 獲取流程如圖5 所示。訓(xùn)練集、測試集分布及神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)分布見表5 和表6。
圖5 數(shù)據(jù)集A 獲取流程圖Fig.5 Flowchart of dataset A acquisition
表5 數(shù)據(jù)集分布 Table 5 The distribution of dataset 單位:個(gè)
表6 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu) Table 6 Neural network structure
文獻(xiàn)[6]指出密文組織形式對(duì)密碼算法識(shí)別準(zhǔn)確率有較大影響。因此,本文利用Python 編寫數(shù)據(jù)處理工具,實(shí)現(xiàn)將密文以十六進(jìn)制讀取并轉(zhuǎn)換為二進(jìn)制比特串,然后按照指定位數(shù)進(jìn)行累加,將結(jié)果形成相應(yīng)大小的灰度圖用于神經(jīng)網(wǎng)絡(luò)輸入,該數(shù)據(jù)集稱為數(shù)據(jù)集B。數(shù)據(jù)集B 獲取流程如圖6 所示。本文將原始4 kb(4 096 Byte)密文按32 bit 進(jìn)行累加,后轉(zhuǎn)換為32×32 像素的樣本灰度圖輸入二維卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行識(shí)別分類,數(shù)據(jù)集分布與表4 保持一致,在此基礎(chǔ)上計(jì)算識(shí)別準(zhǔn)確率。
圖6 數(shù)據(jù)集B 獲取流程圖Fig.6 Flowchart of dataset B acquisition
2.2.2 實(shí)驗(yàn)結(jié)果分析
如表7 所示,通過改變訓(xùn)練迭代次數(shù),該二維卷積神經(jīng)網(wǎng)絡(luò)模型在訓(xùn)練迭代100 輪過程中出現(xiàn)最高識(shí)別準(zhǔn)確率53.64%,顯著優(yōu)于隨機(jī)猜測準(zhǔn)確率25%,從總體結(jié)果可以看出,將原始密文轉(zhuǎn)換為特征灰度圖后,采用深度學(xué)習(xí)的方法可以更好地提升在SM4算法5 種工作模式下的密文五分類問題中的識(shí)別準(zhǔn)確率,證明利用深度學(xué)習(xí)可以從密文中獲取細(xì)粒度特征,有效提升識(shí)別準(zhǔn)確率。
表7 CNN 識(shí)別結(jié)果(數(shù)據(jù)集A)Table 7 The recognition result of CNN(dataset A)
將數(shù)據(jù)集B 輸入該二維卷積神經(jīng)網(wǎng)絡(luò)中,實(shí)驗(yàn)結(jié)果如表8 所示。通過對(duì)比表7 與表8 可以看出,將數(shù)據(jù)集A 和數(shù)據(jù)集B 分別輸入2-CNN 中,后者的識(shí)別準(zhǔn)確率較前者有顯著提升,證明了該密文數(shù)據(jù)處理方式的有效性。
表8 CNN 識(shí)別結(jié)果(數(shù)據(jù)集B)Table 8 The recognition results of CNN(dataset B)
第2.2 節(jié)證明了利用深度學(xué)習(xí)可以有效提升SM4 算法工作模式識(shí)別準(zhǔn)確率。在自然語言處理任務(wù)中,Google 提出的Transformer 模型[19]被廣泛應(yīng)用并取得了很好的效果,該模型與傳統(tǒng)神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)不同,其包含的自注意力機(jī)制可兼顧上下文特征與局部細(xì)微特征,避免文本上下文語義特征[20]的缺失,具有出色的序列細(xì)粒度特征提取能力。因此,本文提出一種基于Transformer 的SM4 算法工作模式識(shí)別方案。
2.3.1 Transformer 模型
Transformer 模型整個(gè)網(wǎng)絡(luò)結(jié)構(gòu)由注意力機(jī)制組成,把輸入的一張圖片分成N個(gè)無重疊固定大小的Patch,然后將每個(gè)Patch 全部拉成一維向量,合并得到N維矩陣。使用Linear Projection 規(guī)整矩陣長度和位置信息,再融入全局信息,將它們輸入Transformer 編碼器進(jìn)行全局注意力計(jì)算和特征提取,通過MLP 分類后,輸出多分類結(jié)果。
Transformer 模型的計(jì)算復(fù)雜度主要由多頭注意力模塊決定,這也是模型的突出特點(diǎn)。注意力計(jì)算公式為Softmax(QKT)V,當(dāng)序列長度為N、輸入維度為H時(shí),由于每個(gè)token 都需要與所有token 計(jì)算相似性,因此QKT這項(xiàng)做矩陣乘的復(fù)雜度為N×H×H×N,即平方復(fù)雜度O(N2)。
2.3.2 識(shí)別方案
基于Transformer 的SM4 算法工作模式識(shí)別方案流程如圖7 所示,由于數(shù)據(jù)集B 被證明用于神經(jīng)網(wǎng)絡(luò)輸入后分類效果更好,因此將數(shù)據(jù)集B 輸入該Transformer 模型中分類并計(jì)算準(zhǔn)確率。
圖7 基于Transformer 分類方案流程圖Fig.7 Flowchart of classification scheme based on Transformer
2.3.3 實(shí)驗(yàn)結(jié)果分析
為驗(yàn)證本文將Transformer 模型應(yīng)用于該問題的有效性,將數(shù)據(jù)集B 分別輸入循環(huán)神經(jīng)網(wǎng)絡(luò)、殘差神經(jīng)網(wǎng)絡(luò)進(jìn)行分類,并與文獻(xiàn)[12]中實(shí)驗(yàn)結(jié)果進(jìn)行對(duì)比。Transformer 模型識(shí)別準(zhǔn)確率如表9 所示,不同神經(jīng)網(wǎng)絡(luò)的識(shí)別準(zhǔn)確率隨著訓(xùn)練輪數(shù)的變化曲線如圖8 所示,其中,2-CNN、RNN、ResNet 均使用SGD(Stochastic Gradient Descent)作為優(yōu)化器,Transformer 模型使 用 Adam(Adaptive Moment Estimation)作為優(yōu)化器。可以看出,Transformer 模型經(jīng)過較少輪數(shù)的模型訓(xùn)練,就可以達(dá)到非常高的識(shí)別準(zhǔn)確率。
圖8 不同神經(jīng)網(wǎng)絡(luò)模型識(shí)別準(zhǔn)確率Fig.8 Recognition accuracy of different neural network models
表9 Transformer 識(shí)別結(jié)果 Table 9 The recognition result of Transformer
不同神經(jīng)網(wǎng)絡(luò)模型的識(shí)別準(zhǔn)確率如表10 所示,一方面證明了將密文所屬加密模式分類問題視為文本分類任務(wù)進(jìn)行處理,而后利用深度學(xué)習(xí)模型自主挖掘密文特征可以有效對(duì)密文所屬加密模式進(jìn)行區(qū)分,另一方面也證明了Transformer 模型在此類問題上的優(yōu)勢。
表10 不同模型實(shí)驗(yàn)結(jié)果對(duì)比 Table 10 Comparison of experimental results by different models %
本文通過隨機(jī)性檢測值結(jié)合KNN 算法實(shí)驗(yàn)分析,指出現(xiàn)有密碼算法識(shí)別方案應(yīng)用于SM4 算法工作模式識(shí)別工作的不足,證明深度學(xué)習(xí)技術(shù)解決該問題的可行性。在此基礎(chǔ)上,提出一種基于Transformer 模型的SM4 算法工作模式識(shí)別方案,并通過對(duì)比不同神經(jīng)網(wǎng)絡(luò)模型和當(dāng)前工作的最新文獻(xiàn)實(shí)驗(yàn)結(jié)果,證明該方案的有效性?,F(xiàn)有密碼算法識(shí)別方案大多基于傳統(tǒng)機(jī)器學(xué)習(xí)或構(gòu)建復(fù)雜的密文特征工程,耗時(shí)費(fèi)力。本文方案避免了構(gòu)建復(fù)雜特征工程,且樣本文件大小均為4 kb,其引入深度學(xué)習(xí)技術(shù),較現(xiàn)有其他密碼算法識(shí)別方案中使用的密文樣本文件顯著減小。
未來可探索更新穎高效的密文處理方式和神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),不斷提升模型泛化性,對(duì)小眾密碼算法[21-22]進(jìn)行識(shí)別。由于不同算法結(jié)構(gòu)之間存在密文特征分布上的差異性[23-24],因此可針對(duì)特定結(jié)構(gòu)算法展開進(jìn)一步識(shí)別與研究。另外,密文在現(xiàn)實(shí)中被包裹在各類網(wǎng)絡(luò)協(xié)議數(shù)據(jù)包中,因此,還需要結(jié)合加密流量分析[25]領(lǐng)域相關(guān)內(nèi)容進(jìn)行研究。