?

密碼算法識別技術研究進展與展望

2022-03-02 12:42池亞平岳梓巖
北京電子科技學院學報 2022年4期
關鍵詞:隨機性密文密碼

池亞平 岳梓巖 趙 倫

1. 北京電子科技學院,北京市 100070

2. 中國科學院信息工程研究所,北京市 100093

3. 西安電子科技大學,西安市 710071

0 引言

隨著信息技術的飛速發展,信息安全的重要性日益凸顯,通過密碼系統對數據進行加密保護是實現信息安全的重要環節之一,對密文進行密碼分析也是密碼學領域一個重要分支。

在對密碼系統進行監管時,密碼分析者通常只能獲取密文,無法確定是否正確調用了系統指定的密碼算法,導致密碼分析和密碼設備監管工作困難重重[1]。 1998 年密碼學家Lars Knudsen按照已獲得的秘密信息的不同將分組密碼的攻擊分為五類,如表1 所示。 從表1 可以看出,在唯密文條件下實現加密算法的識別是進行各類密碼攻擊的前提,也是之后開展密碼分析的必要條件。 信息安全中的攻與防是相輔相成的,一方面密碼算法的識別研究是密碼分析領域的重要分支,這也是對密碼算法進行的一種攻擊。 另一方面,從密碼算法設計角度來看,對抗現有技術對密碼算法的識別,也是一種新挑戰。 密碼算法識別目前有兩個方面的研究,一方面是利用逆向分析工程對加密算法進行代碼層面的分析[2][3],另一方面是在唯密文條件下對密碼算法進行識別,本文研究僅針對第二方面進行研究。

表1 針對分組密碼的攻擊類別

為此,本文從密碼算法識別現狀研究出發,重點研究融合了機器學習與深度學習技術的各種密碼算法識別方法,對這些方法的特點、數據集獲取及處理方式進行總結分析和實驗驗證,針對現有方法存在的問題進行了分析,并對密碼算法識別技術發展方向進行了展望。 (注:本文所設計實驗內容的運行環境如表2 所示。)

表2 實驗環境配置

1 密碼算法識別技術評價指標

當前,密碼算法識別工作大多使用機器學習中準確性相關指標進行評價,包括精確率、召回率、誤報率、總體準確率等[4],常用指標變量如表3 所示。 表3 中各參數定義為:設N 為密碼算法類型數,即密文樣本由N 類密碼算法加密而成;nij表示實際密碼算法類型為i的密文被識別為密碼算法類型j 的樣本數。

表3 常用指標變量

精確率定義為式(1):

召回率定義為式(2):

總體準確率定義為式(3):

精確率和召回率體現了識別方法在每個單獨算法類別上的識別效果[5]。 特別是當樣本類別分布不均勻時,精確率和召回率可以準確獲知每個類別的分類情況。 總體準確率體現了識別方法的總體識別性能,好的算法應該同時具有較高的總體準確率、精確率和召回率。

F-Measure 是綜合查準率和查全率得到的評價指標,F-Measure 越高表明算法在各個類型的分類性能越好。 F-Measure 定義為式(4):

完整性反映了識別方法的識別覆蓋率。 完整性是指被標識為i的樣本與實際類型為i的樣本的比值,相當于精確率和召回率的比值,取值范圍可能超過1。 完整性定義為式(5):

2 密碼算法識別研究內容與研究現狀

密碼算法識別研究內容框架如圖1 所示,主要包括識別類型和識別方法。 密碼算法識別的首要任務是在唯密文條件下根據需求確定識別類型,之后再選用合適的識別方法。 密碼算法識別方法主要可以分為3 類:基于統計檢測的方法、基于機器學習的方法、基于深度學習的方法。密碼算法識別研究內容框架如圖1 所示。

圖1 密碼算法識別研究內容

2.1 識別類型

2.1.1 加密數據與非加密數據

加密的本質是在傳輸過程中通過使用特定的加密算法對數據進行加密處理,由此產生的數據是人們無法辨識和篡改的密文。 密碼算法識別首要工作是判斷數據是否被加密,需分析密文數據區別于明文數據的特征[6],從密碼學角度,經過加密得到的密文消除了統計特征,近似為隨機數據。 文獻[7] 基于NIST 隨機性檢測標準[8],統計了利用RSA 公鑰密碼、AES-ECB、IDEA-ECB、DES-ECB 加密后的密文與隨機文件(未被加密)的隨機性特征值,得出密文文件與未被加密的文件在頻率檢驗、塊內頻數檢驗、非重疊模板檢驗、游程檢驗、近似熵檢驗與離散傅里葉變換檢驗上的特征分布存在著明顯區別,即從隨機性分布出發,可有效識別與區分加密數據和非加密數據。

2.1.2 密文所屬加密體制

文獻[9]中提出,針對密文,密碼算法識別的第一步是根據密文特點識別密碼體制,其中包含古典密碼、序列密碼、公鑰密碼、分組密碼等,第二步識別具體密碼算法。

公鑰密碼[10]主要有RSA、ECC、IBC 三類[11],針對RSA 我國沒有相應的標準算法出臺,而針對ECC 和IBC,我國分別發布了相應的SM2、SM9 標準算法, 典型公鑰密碼包括RSA1024、RSA2048、SM2、SM9;文獻[9]提出的密碼體制識別方案中包含Substitution、Permutation、 Triviu Sosemanuk、 Grain、 RC4、 AES、Camellia、DES、3DES、SM4、RSA、ECC 在內的13種密碼算法,其中涉及古典密碼體制、序列密碼體制、分組密碼體制、公鑰密碼體制。

根據研究,可以得出經過非對稱密碼體制和單項函數密碼體制加密后的密文具有較明顯的長度特征,因此專門針對公鑰密碼體制和單向函數密碼體制識別的研究與對稱密碼體制識別的研究相比較少,其長度特征總結如表4 和5所示。

表4 公鑰密碼體制長度特征總結

表5 Hash 密碼體制長度特征總結

2.1.3 相同密碼體制下的不同算法

現有密碼算法識別工作主要針對對稱密碼體制,該體制下主要包括分組密碼與序列密碼。針對分組密碼,文獻[12]選取AES、DES、3DES、IDEA、Blowfish、 Camellia 六種分組密碼,基于隨機性測試算法的提取方式與參數設置, 提出了一系列分組密碼算法識別的新特征,輸入隨機森林算法中進行分類,得出基于隨機性測試密文特征具有更低的維數的優勢,在密碼算法識別中具有一定的有效性。 文獻[13]通過分割變換密文文件提取特征向量,利用支持向量機(SVM)算法作為分類器,實現在短密鑰流場景下,對RC4、A5/1 和Trivium 三種序列密碼的準確識別。

2.1.4 同一算法的不同工作模式

對于分組密碼而言,工作模式是一項增強密碼算法安全性或擴展算法應用場景的技術。 多次使用相同的密鑰對多個分組加密,會引發許多安全問題。 為了應對不同場合,因而需要開發出不同的工作模式來增強密碼算法的安全性。NIST(SP800-38A)定義了5 種“工作模式”。 其中電碼本(Electronic CodeBook,ECB)、密文分組鏈接(Cipher-block Chaining,CBC)、密文反饋(Cipher FeedBack, CFB)、 輸 出 反 饋(Output FeedBack,OFB)這4 種模式實際上覆蓋了大量使用分組密碼的應用[14]。 針對應用廣泛的分組密碼,密碼算法識別研究主要集中于ECB 模式,但是很多密碼應用場景更多地采用了CBC 或者與CBC 相關的模式。 因此,對分組密碼工作模式的分類與識別也屬于密碼算法識別領域,文獻[15]針對SM4 算法的四種模式,借助統計學方法與信息熵實現密文序列的特征提取。 利用決策樹分類算法進行二分類識別與四分類識別,結果表明,該方法在二分類問題中表現穩定,準確率高達90%以上,而在四分類問題中,區分率在25%左右,與隨機猜測準確率相近,識別準確率還有提升空間。

2.2 識別方法

從公開文獻來看,總體上關于密碼算法識別研究并不多見,現有方案主要針對分組密碼開展相關研究,也取得了一些進展。 下面詳細介紹現有的密碼算法識別方法,并從技術路線、識別效果等方面進行對比分析。

2.2.1 基于統計檢測的密碼算法識別方法

在該方向研究初期,學者們較多利用統計檢測的思想進行探索。 統計檢測在分組密碼安全性評估的過程中發揮著重要的作用,關于分組密碼密文序列的統計檢測初衷是通過將分組密碼作為一個偽隨機數發生器進行檢測,以此判定分組密碼輸出序列是否擁有優秀的隨機性能。 在密碼算法識別任務中,利用統計檢測發現不同分組密碼密文的隨機程度存在差異,從而判斷密文所屬的密碼算法。 相關文獻表明,隨機性檢測方法多達上百種,其中美國商務部國家標準技術協會(NIST)公布的2010 版SP800-22 標準中的15 種隨機性檢測算法(以下簡稱NIST 隨機性檢測)[8]最為典型。

文獻[16]提出除了隨機性相關統計檢測外,還有一類統計檢測方法與分組密碼的分組長度、密碼結構等有關,因此基于分組長度,將分組密碼看作是一個隨機的多輸出布爾函數,將256個密文分組進行異或操作,統計其結果的漢明重量,進而通過期望值計算判斷是否服從二項分布。 將此方法用于Rijndael、Camellia 和SM4 算法,統計結果表明,這3 種算法分別從第4 輪、第5 輪和第7 輪開始呈現出良好的統計性能,體現了3 種算法的在該統計檢測方法中表現出的差異性。

2015 年,文獻[17]通過統計密文比特流中比特0 與1 的頻數、特定序列出現的頻數及固定分塊長度內比特1 出現頻數,對比分析了不同分組密碼算法密文統計檢測值間的差異性,對AES、Camellia、DES 及3DES 等分組密碼算法產生的密文提取其顯著特征值,NIST 隨機性檢測中的“monobit test”、“runs test”這兩個測度指標體現了該方法的核心思想。

2.2.2 基于機器學習的密碼算法識別方法

在1990 年,從文獻[18]中可以看到密碼學家們已經開始思索密碼學與機器學習兩大領域的碰撞,并提出一些相關概念和結論[19]。 文獻[20]探討了機器學習應用于密碼學的可行性。不同密碼算法所產生的密文在統計特性上存在一定的差異﹐這些差異可以作為識別密碼算法的重要依據。

在唯密文的情況下,基于密文特征的密碼算法識別任務與機器學習相互結合,通過構建特征工程使密碼算法識別的準確率和效率顯著提高?;跈C器學習算法的密碼算法識別方法較多是在NIST 隨機性檢測的基礎上設計實現的。 2006年,文獻[21]將密文生成一個文檔向量,利用支持向量機算法,對DES、3DES、AES、RC5 和Blowfish 這5 類算法進行識別。 2015 年,文獻[22]選取碼元頻數統計檢測值、游程頻數統計檢測值、塊內頻數統計檢測值進行特征值分布分析,提出一種針對密文隨機性的度量值,得出在相同樣本量條件下,SM4 密文的隨機性度量值取值個數均明顯小于AES、Camellia、DES、3DES 密文的隨機性度量值取值個數,然后采用K-means 聚類算法,對AES、Camellia、DES、3DES 進行識別,其識別準確率接近90%。 2017 年,文獻[9]根據密碼學常識,提出了針對密碼算法識別任務中的分層思想,其思想是先對密文按照密碼體制類別進行分類識別,繼而再識別其具體密碼體制,根據此思想設計雙層密碼算法識別方案,選取固定比特熵、固定字節熵以及固定序列出現的頻率,作為簇分特征,采用最大熵和隨機性測試作為單分特征。 對比傳統單層識別方案,準確率提升20%左右。 2018 年,文獻[23]結合NIST 隨機性檢測指標、信息熵、傅里葉變換對AES、DES、Camellia等11 種現代密碼算法密文進行特征提取,引入支持向量機識別算法,在二分類問題中,對于區分度較高的密碼算法如AES 、Camellia 可以達到接近80%的正確率,平均準確率約為60%。 在多分類問題中,也可以達到30%左右的準確率,高于隨機猜測的準確率。 同年,文獻[24]將密碼分組長度視為分類不同分組密碼算法和流密碼算法的主要依據,將密文根據不同的分組長度分塊,分別求每塊的固定比特熵,固定字節熵,固定字節概率,將其作為分類算法的特征,并且引入Fisher 判別算法作為分類器,對分組算法和流密碼算法的進行識別。

文獻[25]針對CBC 模式下的分組密碼算法分類進行研究,通過提取多個密文流中的第一個分組塊,將其抽象為密碼分組算法的特征,并使用支持向量機作為分類器,當密文文件大于100KB 時,對CBC 模式下AES、DES、3-DES、RC5、Blowfish 五種不同的分組密碼算法的識別準確率達到了90%。 2019 年,文獻[26]將密文按照字節進行劃分,然后分別提取每一字節中的固定比特位組成新的密文,再將構造的密文按照字節劃分,統計不同字符出現的頻率作為密文識別的特征向量,使用隨機森林作為分類器,對ECB 模式下 AES-128、AES-256、DES,3-DES、SM4、CAMELLIA-128、IDEA、Blowfish 八種不同的分組算法進行識別,識別準確率達到了87.9%。 同年,文獻[27]在現有密碼體制識別問題的定義系統[9]的基礎上,通過對識別分類問題中的主要難點進行進一步分析,對特征提取過程的各環節進行形式化定義,并以此定義為基準,探究包含隨機性檢測、統計學中的熵、最大熵、基尼系數在內的不同特征的屬性對識別分類準確率的影響,采用多種分類學習算法作為個體學習器并集成的方式進行分類識別,避免了單一分類算法誤選導致模型的泛化性能不足。 實驗結果表明,將熵作為特征提取函數的特征表現更穩定,且較文獻[9]識別分類準確率提升6%-11%。

文獻[28]將密文中的每個字符轉碼為十進制數,將這些數字構造成一維數組,得到這些一維數組之間的歐幾里得距離。 然后我們將這些距離作為特征輸入隨機森林、邏輯回歸和支持向量 機 中 對 DES、 3DES、 AES、 IDEA、 SM4、Blowfish、Camellia 七類分組密碼進行識別,在略高于現有方法識別率的前提下,縮短了實驗時間,降低了計算成本。 2021 年,文獻[29]結合NIST 隨機性檢測中的組內頻率檢測、連續塊測試和最長1 游程測度作為密文特征提取的方法,設計了主要針對SM4 算法體制識別方案。 通過使用RC4.5 決策樹分類算法,SM4 與AES、3DES、Blowfish、Cast 五種算法之間的識別率在90%以上。

2.2.3 基于深度學習的密碼算法識別方法

2021 年,文獻[30]分別對文本、語音、圖片形式的明文文件進行加密,后對密文按8bit 分塊,并采用累計求和的方法將分塊后的密文映射為二維的向量矩陣。 隨后將得到二維向量通過固定卷積核的卷積網絡,提取密文的卷積特征向量。 最終將該特征向量輸入隨機森林模型中,對AES、3DES、Blowfish 的識別準確率達到83%。同年,文獻[7]同樣基于NIST 隨機性測試來構造密文的特征向量,首先對密文按固定大小分塊,隨后對每一分塊進行包括頻率檢驗、塊內頻數檢驗、非重疊模板檢驗、游程檢驗與近似熵檢驗在內的五種隨機性測試,得到每塊密文對應的測試結果。 將每一密文分塊的隨機性測試結果作為密文的二維的特征向量。 采用了CNN 和RNN 模型對密文特征進行訓練,得到了較高的識別準確率。

2.3 密碼算法識別方法總結

本文將上述密碼算法識別方法從多個角度進行了對比分析,如表6 所示。

表6 研究方法概述

文獻 年份 識別對象 識別方法 識別特征 數據集獲取 主要算法 研究結論[23] 2018分組密碼:AES、DES、Camellia、Blowfish、 IDEA、CAST5 SM4、RC2、SEED序列密碼:RC4機器學習NIST 隨機性檢測值、熵特性每類算法2000 份密文每類密文文件大小:1kb、2kb、4kb、8kb、16kb、32kb、64kb、128kb、256kb、512kb支持向量機、決策數、隨機森林、梯度提升決策樹隨機性檢測特征值選取結合密文長度關系影響密碼算法識別任務準確率[28] 2019[27] 2021分組密碼:DES,3DES, AES, IDEA,SM4, Blowfish,Camellia分組密碼:Salsa、AES、DES、3DES、Camellia、Blowfish、SM4、IDEA公鑰密碼:RSA序列密碼:RC4機器學習 歐幾里得距離機器學習 熵、最大熵、基尼系數明文文件:Caltech-256 [38]每類算法1001 份密文每類密文文件大小:512kb明文文件:Caltech-256[38]每類算法1000 份密文每類密文文件大小:512kb隨機森林、邏輯回歸支持向量機KNN 分類算法、Relief特征選擇算法歐幾里得距離作為特征提取對象可提升密碼算法識別準確率密文組織形式與密文加工方式對于密碼算法識別任務具有較大影響[15] 2021 SM4 算法CBC 模式、CFB 模式、OFB 模式、CTR 模式機器學習熵(大小寫字符、數字、特殊字符)明文文件:1-200kb 文本文件每類模式1000 份密文決策樹一對一分類準確率達到90%以上,混合分類準確類僅25%。[30] 2021分組密碼:AES、3DES、Blowfish深度學習機器學習 累計求和明文文件:Caltech256 [38]、LibriSpeechASR [39]、THUCNews [40]每類算法超過40000 份密文卷積神經網絡、隨機森林對AES、3DES、Blowfish 的識別準確率達到83%[7] 2021分組密碼:AES、DES、Blowfish、Camellia、IDEA深度學習 NIST 隨機性檢測值明文文件:英文文本拼接每類算法600 份密文每類密文文件大小:256kb BP 神經網絡、循環神經網絡、卷積神經網絡深度學習算法在密碼算法識別任務中相較隨機森林算法更為出色

3 密碼算法識別研究趨勢與挑戰分析

3.1 主要問題

通過上述對密碼算法識別現狀的研究與分析,當前密碼算法識別通過機器學習等方法取得了一些研究成果,但仍存在一些問題尚未解決。

a) 相較于其他領域的識別任務,評價指標尚需完善。 本文在章節1“密碼算法識別技術評價指標”中介紹的密碼算法識別技術評價指標,與圖像分類、文本分類等成熟分類領域相比,仍需繼續完善。 未識別率是計算不屬于已知類型的樣本占總樣本數目的比率,以此反映識別方法對未知類型樣本的識別能力。 現有密碼算法識別方法都是對某幾種特定密碼算法進行識別,缺少未知算法的加入,因此無法統計未識別率。

另外,識別任務的顯著特點之一就是需要具有高時效性,密碼算法識別尚處于起步階段,在引入機器學習或深度學習后,構建復雜的密文特征工程需要耗費大量的存儲空間和計算能力,例如對于諸多文獻中采用的NIST 隨機性檢測,本文利用該工具包對不同大小的密文文件進行檢測,檢測所耗費的時間如圖2 所示。 在圖2 中,檢測64kb 以內文件所需的檢測時間在1 分鐘之內,但文件超過64kb 之后的檢測時間急劇上升,僅檢測一個大小為500kb 的文本文件就耗時接近10 分鐘,對于上萬條加密數據,所需時間倍增。 從長遠來看,通過犧牲時間復雜度來提升識別準確率是不現實的,因此時間復雜度指標也是密碼算法識別任務中的關鍵衡量指標。

圖2 密文隨機性檢測時間統計

b)數據集不公開。 根據文獻查閱,還沒有發現通過密文識別加密算法的公開研究,現有文獻都是在自己制作的數據集明文(圖片、語音、文本)上研究實現,使用的加密工具主要有OpenSSL、GmSSL 與Crypto++ 密碼算法庫。 算法或方案的評估需要當前最新的數據集,任何一種密碼算法識別方案的比較又需要相同的數據集,相同的數據集則需要使用同樣的加密工具,但目前沒有公開的密文數據集和統一的數據標記方法。

c)模型泛化性差。 泛化性指模型適應新數據的能力,即模型在從未見過的數據面前,仍然保持一定適用性的能力。 當前方法識別的對象都是主流密碼算法,在文獻[31]中也對Grain-128 算法識別進行了專門的研究然而隨著各領域個性化需求的變化,小眾的密碼算法[32][33]層出不窮,因此針對這些未知類型的密碼算法,現有模型還無法對此進行識別。

3.2 識別準確率影響因素

a)是否固定密鑰及鹽值因素。 現有的密碼算法識別方案中,例如文獻[34]中當訓練和測試密文樣本的密鑰相同時,識別準確率相對較高,但在實際環境下,訓練樣本的密鑰與測試樣本的密鑰會有所不同。 此外,在密碼學中,通過在密碼任意固定位置插入特定的字符串,讓散列后的結果和使用原始密碼的散列結果不相符,這種過程稱之為“加鹽”[35]。 例如在使用OpenSSL對文件進行加密時,若不表明“-nosalt”,密鑰會產生變化,因此影響識別準確率。 在現有方案中尚未對是否“加鹽”進行分析和論述。

b)密文長度。 文獻[15]中設置不同長度的密文作為實驗樣本,證明了密文長度對密碼算法識別具有一定影響,但到達一定臨界值后,準確率不再隨密文長度增加而提高,這一臨界值取決于密碼算法本身。

c)分組密碼工作模式。 在密碼算法識別研究初期,針對分組密碼的研究較為寬泛,沒有對工作模式進行特別說明,大多文獻都默認使用分組密碼ECB 模式進行加密獲得密文樣本。 引入機器學習技術后,則以密文字節序列的分布隨機性作為基礎構建差異特征模型,但大多僅對DES、 3DES 等老舊密碼算法、ECB 及CBC 等簡單加密工作模式進行分類[36]。 然而以SM4 算法為例,本文通過比較其隨機性特征值分布,可以明顯發現,CBC 模式隨機性明顯優于ECB 模式,說明ECB 模式下的密文相較于CBC 模式下的密文更容易被識別。 除了CBC 模式,分組密碼CFB 模式、OFB 模式同樣具有優秀的隨機性,因此對密碼算法識別準確率帶來較大影響。 本文對現有文獻中涉及分組密碼工作模式進行總結見表7。

表7 針對分組密碼工作模式總結

3.3 未來工作展望

3.3.1 深度學習技術的應用

現有密碼算法識別方法大部分采用經典的機器學習算法,較高的識別準確率依賴于人工提取并構建的特征工程,耗時費力且十分復雜。 相比之下,基于神經網絡的深度學習不再依賴于人為的特征提取,而是通過卷積層等模塊自動提取訓練集中的數據特征。 作為機器學習的一個重要分支,深度學習已經在數字圖像處理[41]、情景分析[42]、機器翻譯[43]、語音識別[44]等領域顯示出優越的性能,也證明其在提取特征方面[45]具有獨一無二的優勢。 利用深度學習技術對大量未知數據進行細粒度層次提取特征并高效分類是當下各領域的熱點研究內容。

本文選擇CNN 模型對SM4 算法四種工作模式下的密文進行識別分類,該模型由輸入層、卷積層、池化層、全連接層以及輸出層這5 部分組成。 識別流程如圖3 所示,訓練集與樣本集分布見表8,實驗結果見表9。

圖3 識別流程圖

表8 訓練集與測試集分布

如表9 所示,通過改變訓練迭代次數,該卷積神經網絡模型在訓練迭代120 輪過程中出現最高準確率53.6%,顯著優于隨機猜測值25%,從總體結果可以看出,將密文轉換為灰度圖后,采用深度學習的方法,可以更好的提升在SM4四種工作模式下的密文四分類問題中的準確率。文獻[7]與上述利用二維卷積神經網絡對SM4算法四種工作模式下的密文分類實驗為深度學習在密碼算法識別中的應用提供了理論基礎與應用價值。 此外,文獻[46]通過構建神經網絡,實現MARS、RC6、Rijndael、Serpent 和Twofish 這五類密碼算法在ECB 模式下的正確分類,得出在密碼生成的底層數學運輸中存在固有的特性,這些特性在密文中留下了痕跡,通過神經網絡提取深層次特征,實現分類,體現了將深度學習應用于密文特征提取和密碼算法識別的研究中的可行性。 2021 年,彭波等人[47,48]通過深度學習技術,采用LeNet5 神經網絡[49]對密文文件提取特征并形成密文特征映射矩陣,后分別利用隨機森林算法和支持向量機算法進行分類識別。 未來可使用不同模型應用于該類問題之中,將深度學習與機器學習相結合,選擇合適的神經網絡提取密文樣本更深層、 更有效的識別特征,提升識別的精度與效率,這也是下一步研究的趨勢。

表9 實驗結果

3.3.2 規范數據處理

通過對現有密碼算法識別方法數據獲取及處理的部分進行對比,首先未對加密前的文件類型進行規定,存在圖片、文本、語音等各種形式的明文,在處理時,總體來看有兩種方法,第一種是將切割后的大量明文文件批量加密獲得等量的密文文件作為數據集,第二種則是將較大的明文加密后根據所需密文的大小進行切割從而獲得數據集。 第二種方式在切割時僅考慮文件大小,而未考慮密文包含的語義信息,上下文信息缺失導致語義損失[50],分割結果類內一致性較差,影響下一步的特征提取。 本文以文件信息熵為例,從THUCNews、LibriSpeechAS、Caltech256 三類數據集中分別選取1000 條文本、語音、圖片文件,對所選文件進行SM4-CBC 加密,得到3 組明密文件,對這6000 份文件統計16 進制下的信息熵,部分結果如表10 所示。 信息熵反映的是信息的混亂程度,從明文角度來看,文本類文件信息熵明顯偏小,圖片類文件信息熵接近臨界值,語音類文件信息熵較文本類文件偏高,但有較大起伏,無明顯規律。 從整體來看,所有類型文件經過加密過程,信息熵均增大,變得更“混亂”了,印證了前文所述經加密得到的密文消除了統計特征,近似為隨機數據。 從表中數據看出,不同文件類型經過加密后,信息熵增加的幅度不同,因此探究明文文件類型和數據集切割方式對識別準確率的影響也是一個研究重點。

表10 文件信息熵

3.3.3 探索新的密文組織形式和特征提取方法

首先,現有密文特征提取研究主要集中在隨機性檢測和熵相關特征,這些特征在研究中顯然已經遇到了瓶頸。 雖然現有文獻可以以較高的識別率(90%以上)識別某些密碼算法,在復雜的混合密文情境下,平均識別率大都不高,僅稍高于隨機猜測的準確率。 此外,NIST 隨機性檢測中個別檢測值對文件大小有要求,因此針對較短的密文序列識別必須探索新的特征提取方案。例如,文獻[51]和[52]提出隨機性測試新方案,這也可作為密文特征提取方法進行深入研究。其次,特征提取的關鍵就是密文數據得到高效的預處理,現有密文組織形式包括2 進制、10 進制序列與ASCII[53]碼,因此未來嘗試將密文轉換為圖片、語音等不同組織形式和引入先進的人工特征選擇算法[54-57],可以為特征提取提供新的思路。

3.3.4 分層識別方案與算法結構的深入研究

文獻[9]證明在密碼算法識別任務中采用分層方案[57]與集成學習技術可以有效提高準確率。 下一步通過多種方法集成[58]的多層分級框架逐步實現密碼算法精細化識別,增加方案的適用性、穩健性和普遍性同樣是值得研究的重點。針對分組密碼密文特征提取,可以嘗試從密碼學的角度出發,利用其算法本身不同的結構,分析密文特征,文獻[59]證明了不同算法結構之間存在密文特征分布上的差異性,七類常見分組密碼結構如表11 所示,未來可針對特定結構算法展開進一步識別與研究。

表11 分組密碼算法結構

4 結束語

隨著信息技術和密碼技術的飛速發展與融合,使得密碼算法識別研究難度日益加劇,但密碼算法識別的研究對于密碼系統進行分類和檢測以及評估密碼系統的安全性具有重要的意義。 密碼算法識別一方面是為了驗證密碼算法抗攻擊能力,另一方面也是為了對密碼設備進行監管,現有方案的樣本均為各類密文文件,而在現實生活中,密文包裹在各類網絡協議數據包進行傳輸,較密文文件長度更短,并且要求實時高效,因此需要結合加密流量分析領域相關內容進行研究。 本文基于現有密碼算法識別經典方案方法,聚焦特征提取、特征選擇等方面,分析并闡明現有方法的特點及未來發展方向,希望能為進一步開展密碼算法識別研究的同仁提供參考。

猜你喜歡
隨機性密文密碼
密碼里的愛
一種支持動態更新的可排名密文搜索方案
基于模糊數學的通信網絡密文信息差錯恢復
密碼抗倭立奇功
淺析電網規劃中的模糊可靠性評估方法
一種基于密文分析的密碼識別技術*
一種基于密文分析的密碼識別技術*
密碼藏在何處
適用于隨機性電源即插即用的模塊化儲能電池柜設計
奪命密碼
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合