<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    AES-like密碼算法該如何逆向?

    一顆小胡椒2022-06-26 05:19:43

    對AES-like算法的完整逆向框架討論

    背景介紹

    盡管學術界認為密碼算法應該是公開的,密碼算法的安全性不應該通過隱瞞密碼算法保證,但是在工業領域依然有很多非公開密碼算法的使用,例如朝鮮算法、我國的SM1密碼算法。而對非公開密碼算法的評估是無法知道具體算法的,這導致安全評估工作很難進行。

    由此引入一個問題,即如果要評價非公開密碼算法,就要先知道非公開密碼算法是什么,因此需要進行逆向工程,判斷密碼算法的類型。2021年,Andrea Caforio等人在CARDIS會議上提出了一種針對密碼算法結構框架AES-like的逆向工程。[1]

    AES-like算法

    上文提到,在工業領域以及軍工領域依然有很多非公開密碼算法的使用,這是因為客觀上來說隱藏密碼算法的實現的確能夠增加破解密碼算法的難度,因此非公開密碼算法的存在無法避免。但另一方面由于非公開密碼算法因為其不能夠被公開,其安全性缺少有效的證明。所以出現了一種折衷方案,即利用現有的已經被證明安全的密碼算法的結構框架,對框架的每一個模塊的具體實現進行替換。由于算法框架不變,所以密碼算法的整體安全性能夠得到相對保證,AES-like算法應運而生。其框架如圖1所示。

    圖1 AES-like算法框架

    AK:輪密鑰加。

    KS:生成輪密鑰:本文中假定生成輪密鑰的過程和標準AES算法生成輪密鑰的過程一致,所以破解算法的各個部分時不包括該部分。

    SB:S盒*替換(此處的S盒與標準AES算法S盒不同)。

    PB:行移位*(實質是一種雙射,將每一個位置的字節映射到另一個不同的位置,此處的恢復的就是映射方式)。

    MC:列混合*(用M矩陣左乘,此處的M矩陣也需要恢復)。

    密鑰恢復

    密鑰恢復的過程相對簡單,因為不知道S盒的實現,所以使用進入S盒之前的值作為中間值。如圖2所示。

    圖2 根據中間值恢復漢明重量的算法

    恢復部分行移位*

    恢復行移位的過程基于的主要思想為:明文一個字節的不同會在加密過程中進行擴散。所以直觀思路是使兩個明文的某一個字節不同,觀察其不同在經過PB后擴散到了哪一個字節。對16個字節逐一判斷,確定其被映射到的位置。但在實際的恢復過程中沒有這么簡單,由于PB和MC有可能緊密相連,無法單獨分出波形段中的PB區域。所以真正的恢復過程需要將PB過程和MC過程結合到一起分析。

    作者通過把PB和MC視作整體來看。黑色格子表示兩組明文中對應位置字節有不同的部分,當第一個字節不同時,這個不同在經過PB層后會映射到另一個位置,而這個位置的不同在經過MC層后會擴散到全列,如圖3所示。

    圖3 明文字節的不同在加密中的擴散過程

    不同的字節被PB映射到了某一列,則經過MC后該列都和該字節有關,因此會出現4個尖峰。如圖4所示,作者在32位STM32F303平臺上進行了實驗。由于每一列是分別進行計算的,所以在計算過程中,輸入值1個字節的不同擴散到某一列的4個字節中,進而導致出現4個尖峰。

    圖4 DPA驗證一個字節不同經過MC后會出現四個尖峰

    進一步,作者研究出,每一行的四個字節,都被映射到了同一列,進而映射方式的可能性被縮減到4!種。

    恢復行移位*和列混合*

    目前只恢復了部分的行移位,完整的行移位*將和S-box*與列混合*一起恢復。

    d0,d1,d2,d3為對于兩個不同的明文,經過第一輪PB層后第一列的四個值之間的差。u0,u1,u2,u3指的是字節替換之前的第一行的四個值的索引,我們已知這四個值被映射到了同一列。pui是索引為ui位置對應的明文。進行如下操作:

    第一步,令pu2,pu3的值相等。

    第二步,找到使得經過s盒替換后漢明重量為0的明文字節。

    第三步,找到p`u0使得經過s盒替換后漢明重量為8的明文。

    第四步, 找到p`u1使得經過與M矩陣相乘后的結果反而沒有變化。

    第五步,這就意味著H(b`u1,SB(1))經過S盒替換后的值的漢明重量就是H(d1)也就是H(x1)。我們可以通過這種方式構建代數關系式。

    這樣我們就能夠得到如下的關系式:

    通過以上方式,我們可以構建出類似的10組代數關系,如圖5所示。

    圖5 構建出的代數關系組


    剛才提到,PB層的映射可能性已經被縮減到4!種可能。

    作者證明,對于24種可能中的20種,由以上得到的代數關系式無解。對于剩下4種可能中的3種有解,但是得到的對應的M也是經過變換后的,并能夠得到相同的計算結果,所以某種程度上說這4種是等價的,所以M和PB層的變換需要同時恢復。

    恢復S盒*

    因為明文可以更改 ,所以pi,ki,di我們都是已知的,T()表示為替換過程,作者希望通過找到一種特殊情況來逐步恢復S盒,這種特殊情況利用到了M的逆矩陣,我們通過以上的論述已經恢復出了M,自然也就知道了M的逆,通過自主更改明文p0,p1,p2,p3構造出一種T(pi+ki)=0,T(pi+ki+di)對于i=0,1,2,3時分別為e,f,g,h的λ倍。當成功構造出以上類型時,第一列的四個字節經過MC層計算之后會將字節間的不同反擴散回去,反而只有一個字節不同,如圖6所示。這樣我們就可以得到每個字節計算過程中經過S盒替換后的漢明重量分別為w0,w1,w2,w3

    圖6 四個不同的字節在特殊情況下

    反擴散導致只有一個字節不同的示意圖

    現在我們知道了e,f,g,h,w0,w1,w2,w3,那么如果我們知道了λ,知道了經過s盒后和經過s盒前的值分別是什么,而通過e,f,g,h,w0,w1,w2,w3,是可以以預計算查找表的方式恢復λ的,所以通過以上方式,我們就可以恢復S盒。

    總結

    本文實現的主要內容是通過側信道攻擊對一種AES-128-like算法進行實際逆向,并對AES-128-like算法的各個部分進行恢復:密鑰、行移位*、列混合*、S盒*。

    本文的貢獻點在于第一個對AES-128-like算法的實際逆向,而非仿真;恢復了完整的算法,密鑰、行移位*、列混合*、S盒*;在8位及32位平臺上都成功恢復,證明方法的普適性。

    密碼算法aes
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    后量子密碼遷移研究
    2023-10-23 10:11:13
    量子計算技術對傳統密碼算法安全性的威脅非常大。在量子計算模型下,公鑰密碼將被破解,對稱密碼和雜湊密碼的安全性將減半。研究和應用抵抗量子計算攻擊的密碼技術日趨緊迫,美國國家標準與技術研究所(National Institute of Standards and Technology,NIST)于 2022 年 7 月遴選出 4 種擬標準化的候選算法。隨著算法標準化進程接近尾聲,后量子密碼遷移活動被提
    規范要求1、對用戶提交的數據在保存和展示前對特殊字符進行轉義,防止XML注入攻擊。此類問題均容易導致密碼的泄露。規范要求1、配置文件中涉及到需要用戶驗證的密碼字段采用加密后保存,禁止明文或使用弱加密算法對密碼進行加密。規范要求建議采用不可逆的加密方式對密碼進行加密如MD5。
    作為國家“新基建”的首選,5G承擔著支撐經濟社會數字化、網絡化、智能化轉型和促進經濟高質量可持續發展重任的重要基礎設施,是萬物互聯的基礎。
    AES-like算法的完整逆向框架討論
    現在,俄羅斯的密碼學研究已經被公認具有一流水平。· 安全性較高,抗各種攻擊手段,包括差分攻擊、線性攻擊等。在俄羅斯國內,VKO 算法已被廣泛應用于國家機密信息的保護和加密處理中。該算法是俄羅斯國家信息安全標準,用于保護政府、軍隊、金融等機構的機密信息。MAG 算法已經成為俄羅斯國家信息安全標準,有望在該國范圍內得到廣泛的應用。
    2021年6月25日,我國SM4分組密碼算法作為國際標準ISO/IEC 18033-3:2010/AMD1:2021《信息技術 安全技術 加密算法 第3部分:分組密碼 補篇1:SM4》,由國際標準化組織ISO/IEC正式發布。
    NIST共收到了57份提交方案,在這57份方案中,ASCON以其較高的安全性以及較低的實現成本脫穎而出,最終在2023年2月7日被NIST選為輕量級密碼標準。ASCON是一套密碼族,由奧地利Graz大學、德國Infineon公司,以及Intel實驗室等單位共同設計并維護。AEAD是一種同時具備保密性,完整性和可認證性的加密形式。用于密文及關聯信息完整性的認證。p操作包含3個子操作,分別為pL,pS,pC操作。下文將以ASCON-128為例。
    隨著量子計算技術的發展,相關運算操作在理論上實現從指數級向多項式級別的轉變,量子計算機有望攻破現有的公鑰密碼體制。為應對出現的新型威脅,后量子密碼(PQC)應運而生,旨在研究密碼算法在量子環境下的安全性。
    給出了一種產生認證標簽的方法,使得該工作模式可提供數據加密和報文完整性檢驗功能。有些輕量級分組密碼算法的分組長度只有 32 比特,當數據量較大時,數據中容易存在密文組重復。不過,若出現了密文組碰撞,有可能會暴露明文格式特征,甚至導致分明文泄露。因此,當明密文空間較小時,尤其選用了保留格式加密算法時,使用 CBC 或者 ECB 工作模式可能存在安全缺陷。常見的不滿組加密處理方法包括協議填充和密文偷壘等多種方法。
    一顆小胡椒
    暫無描述
      亚洲 欧美 自拍 唯美 另类