差分密碼分析是一種密碼分析的方法,主要用于破解分組加密,但也适用于流加密和加密哈希函數。廣義上講,其研究的是信息輸入上的差别對輸出結果變化的影響。對于分組密碼,其指的是利用差異來獲取密鑰的技術,包括跟蹤變換網絡中的差異,以及尋找加密中的非随機行為等。
曆史
1980 年代後期,诶利·比哈姆和阿迪·薩莫爾發表了一系列針對多個塊加密和哈希函數的攻擊,包括對資料加密标準(DES)理論弱點的運用。因此,二者通常被認為是發現差分密碼分析的元勳。比哈姆和薩莫爾表示,DES 在抗差分密碼分析方面表現意外的好,不過隻要對加密算法稍加修改就能大幅減弱其抗攻擊能力。
1994 年,IBM DES 初始團隊的成員唐·庫帕史密斯發表論文稱,IBM 早在 1974 年就發現了差分密碼分析法,并早已将抗差分分析納入算法的設計目标中。作家史蒂芬·列維表示,IBM 的确獨立發現了差分密碼分析方法,顯然 NSA 也知道這項技術。對于 IBM 選擇保密的原因,庫帕史密斯解釋道:“IBM 與 NSA 商讨後,認為若公布加密算法中抗差分密碼分析的設計,那麼差分密碼分析這種能攻擊多種加密算法的強力技術就會被暴露,這将削弱美國在密碼學領域的領先優勢。IBM 内部把差分分析稱為“T-attack”或“Tickle attack”。
與内建抗差分密碼分析的 DES 相比,同期其它加密算法在這方面被證實是脆弱的。FEAL 是本分析方法的早期攻擊目标。原始的 4 輪版本(FEAL-4)可以在僅利用八個選擇明文的情況下被破解,且 31 輪版本的 FEAL 的抗攻擊性也不盡人意。相比之下,差分分析在使用 247 數量級的選擇明文後才能破解 DES 算法。
攻擊原理差分密碼分析通常是選擇明文攻擊,意思是攻擊者可以自行選取一部分明文并獲取相應密文。不過,一些擴展也能讓此方法用在已知明文攻擊,甚至是唯密文攻擊上。差分分析的基本方法,是運用若幹對有着常量差異的明文;差異可以用數種方法定義,最常見的是邏輯異或(XOR)。然後,攻擊者計算相應密文的差異,嘗試找出差異分布的統計特征。明文差異和密文差異所組成的差異對被稱為差分,其統計性質由加密所使用的 S 盒決定。也就是說,對于 S 盒子 S,攻擊者分析差分(ΔX, ΔY),其中ΔY = S(X ⊕ ΔX) ⊕ S(X)(⊕表示異或)。在初等攻擊中,攻擊者希望某個密文差異出現的頻率非常高,這樣就能将加密和随機過程區分開來。更複雜的變體攻擊能做到比窮舉更快地破解出密鑰。
最基本的差分密碼分析密鑰破解形式中,攻擊者首先獲取大量明文對的密文,并假設差分在至少 r − 1 輪後有效,r 即加密算法的總輪數。攻擊者在倒數第二輪與最後一輪之間差異固定的假設下,去推測可能的輪密鑰。如果輪密鑰比較短,那麼隻需舉可能的輪密鑰,直到最後一輪運算結果和差異的密文對一緻即可。當一個輪密鑰看起來明顯比其他密鑰常出現時,其會被假設是正确的輪密鑰。
針對特定的加密算法,輸入差異要經過精心挑選才能使攻擊成功。這需要研究算法的内部過程;标準的方法是在加密的不同階段,跟蹤一個高頻差異經過的路徑,術語上将這點稱為差分特征。
自從差分密碼分析進入公衆視野,其就成了加密設計者的基本考量。新的加密設計通常需要舉證其算法可以抗此類攻擊。包括 AES 在内的許多算法都被證明在差分分析攻擊下是安全的。
攻擊細則攻擊主要依賴于一點:給定輸入/輸出,差異特征僅在特定輸入下出現。這種方法通常用于線性結構組成的加密方式,如差表結構或 S 盒。給定兩個已知密文或明文後,觀察其輸出差異可猜測密鑰的可能值。
舉個例子,假設有一個差分:輸入的最低位的變化時,引起輸出最低的變化,記作 1 => 1。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!