Encryption

如何測試 sbox 的質量?

  • June 28, 2019

我有 11 個 sbox,我想測試它們並找到最好的。我該怎麼做,我找到了幾個標準,但我無法理解。

我會建議 Daemen 和 Rijmen 的結果,該問題被稱為廣泛的設計策略,該策略已用於建構目前的 AES。很快您就會想要具有以下特性的 s-box:

高代數度

如果你有由你的置換誘導的布爾函式的 ANF,它是一個多項式 $ \mathbb{F}2[x_0,…,x{n-1}]/(x_0^2 - x_0,…, x_{n-1}^2 - x_{n-1}) $ 那麼代數度是具有非零係數的函式的 ANF 的最大乘積項中的變數數。

平衡性

讓 $ F $ 成為一個函式 $ \mathbb{F}_n^2 $ 進入 $ \mathbb{F}_n^2 $ . $ F $ 如果它只取範圍的每個值一次,則它是平衡的。

高非線性

S-box 的聚合非線性是其所有組件函式的最小非線性,您可以通過 Walsh-Hadamard 變換獲得

低差分均勻度

定義任何一個函式相對於 $ a $ 和 $ b $ 元素來自 $ \mathbb{F}_2^n $ 作為 $ DF(a,b) = {x∈F_2^n:F(x)⊕F(x⊕a) =b}. $ 那麼微分均勻度是使用該函式使用任意一對 $ a $ 和 $ b $ .

高差分支數

這是由 $ min_{x\neq y}wt(x⊕y) +wt(F(x)⊕F(y)) $ 在哪裡 $ wt $ 是漢明權重。

請注意,這些仍然是文獻中用於爭論 s-box 的所有技巧的一個子集,但寬軌跡策略目前仍然是一個很好的支點。SageMath 庫中有非常有用的工具可以輕鬆檢查這些屬性:http ://doc.sagemath.org/html/en/reference/cryptography/sage/crypto/sbox.html

最佳 S-box 的選擇標準取決於您關注的內容;您的評論中的安全性、實施等,您只關注 BIC、SAC 和非線性,但最近在安全性方面開發了一些標準以及以前的標準(差分佈表(DDT、線性近似表(LAT)、代數範式(ANF),代數免疫)。

在執行方面:

  • 乘法複雜度:最小數量的非線性門
  • 位片門複雜度:計算此函式所需的 {AND, OR, XOR, NOT} 中的最小操作數
  • 門複雜度:計算此函式所需的最少邏輯門數
  • 電路深度複雜度:從輸入門到輸出門的最長路徑的長度

在 FSE 2019 中,P􏰁􏰂􏰃EIGEN– 一個用於評估、實施和生成 S-box 的平台開原始碼一起展示,該工具將對您的分析非常有幫助。

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