S-Boxes

Sbox 的非線性

  • December 7, 2017

Sbox 的非線性會影響其對線性密碼分析的抵抗力。如果 Sbox 具有低非線性(特別是關於線性密碼分析),會發生什麼?

考慮一個線性 8 位 s-box $ S $ :

$$ c=S\cdot p, $$ 在哪裡 $ c $ 和 $ p $ 是 8 位向量,因此 $ S $ 是一個 $ 8\times8 $ 矩陣。這意味著我們可以在我們的設計中選擇 64 個不同的 s-box。這已經對一個弱點給出了直覺:有 $ 8! $ 8 位的排列,但我們將設計限制為“僅”64 個。

現在開始有趣的事情:差分密碼分析。線性 s-box 具有密文的優良特性 $ c, c’ $ 以及它們各自的明文 $ p, p’ $ :

$$ c\oplus c’ = S\cdot p \oplus S\cdot p’ = S\cdot (p \oplus p’), $$ 這是線性 s-box 的一個非常不受歡迎的屬性。在通常的對稱密碼設計中,非線性 s-box 是對抗這種差分密碼分析的主要元素。

對於它的價值,對於仿射 s-box 也可以這樣說( $ c=S\cdot p \oplus b $ 對於固定 $ b $ ).

現在考慮(簡化的)AES,其中s-box構造為某種形式的反轉(技術上是Rijndael 有限域中的乘法逆):

$$ c\oplus c’ = p^{-1} \oplus p^{-1} \neq (p\oplus p’)^{-1} $$ 在這裡, $ (\cdot)^{-1} $ 運算元不是分佈式的,因此,這種簡化的攻擊不成立。


線性密碼分析使用 s-box 的線性近似。它試圖“建模” $ (\cdot)^{-1} $ 運算元(或所研究密碼的 s-box)作為線性映射 $ S $ ,這樣通常(以高機率)來自明文的比特使用這種線性模型映射到密文比特上。

如果可以找到具有高偏差的這樣一個模型,我們可能能夠區分密文,甚至可以導出(部分)使用的密鑰。

AES被設計成高度非線性的,正是為了抵抗這種攻擊;據說乘法逆是高度非線性的。

引用自:https://crypto.stackexchange.com/questions/53751