Aes

Rijndael S-box:在哪裡μμmu和ννnu多項式環元素從何而來?

  • October 23, 2020

我之前問過一些關於 Rijndael 的 S-box 的其他問題,我正在逐步理解;但這些步驟經常引導我提出新問題。

我做了幾行程式碼來了解這些 S-box 是如何實現的 $ S(z) = f(g(z)) $ 在哪裡 $ g(z) $ 是多項式域中乘法逆的變換,並且 $ f(z) $ 仿射映射將單詞理解為表達式後面的多項式環中的元素。

$$ \begin{equation} \begin{aligned} b(z) &= \mu(z) \cdot a(z) + \nu(z) \ &= (z^4+z^3+z^2+z+1) \cdot a(z) + (z^6+z^5+z+1) ;\bmod{(z^8+1)} \end{aligned} \end{equation} $$ 在“ AES 提案”(1999 年的第 2 版)中,第 7.2 節解釋說 $ \mu(z) $ 是從與 $ z^8+1 $ 作為描述最簡單的一個。但是什麼可以理解為“簡單描述”呢?選擇條件 $ \nu(z) $ 看起來很清楚(沒有固定點,也沒有相反的固定點,不是嗎?)。

如果我做得好,有 129 個互質多項式可以選擇 1(及其倒數),我看不出有什麼特別之處。 $ \mu(z) $ 有 5 個和它的倒數 $ \mu^{-1} (z) $ 有 3 個,並且還有其他配對候選者的關係為 3-3 或 5-5 的 1。對簡單性的另一種描述可能是回文表示,但事實並非如此。它們不是突出它們而不是其他的最短或最長的。是什麼讓他們被選中?

***Ps:***在提到的“ AES提案”中 $ \mu(z) $ 和 $ \nu(z) $ 不是上面的那些,也不是“ Rijndael 的設計”中第 3.4.1 節中顯示的那些,但這裡顯示的 2 個我已經複製了官方 S-box 和提及書 C 部分的表格。我會錯嗎?

根據收到的評論更新 20150320

根據定義的“簡單性”標準來選擇 $ \mu(z) $ ,無法評估是什麼使 $ z^4+z^3+z^2+z+1 $ 特別的。該多項式唯一已知的要求是它必須在由下式定義的環中具有乘法逆 $ z^8+1 $ : 有 129 個元素是可逆的。

另一個參數 $ \nu(z) $ 有一個可評估的標準來進行選擇:它不能產生任何固定點,也不能產生相反的固定點。查了一下,環中滿足的多項式對的數量是 21717。一個很大的數字。在較短的視圖中,例如修復 $ \mu(z) $ , 可能的數量 $ \nu(z) $ 滿足秒標準的是 223。

甚至Rijndael通常都是儲存 S-Boxes 來實現的,計算時間看起來不太相關,但也許它們是,不是嗎?

在此處輸入圖像描述

在這些箱線圖中,表示每個候選對的平均計算。左側使用模組化產品,右側使用Rijndael文件中建議的 MDS 矩陣。

除了認為矩陣法一般來說並不好外,官方對的時間是用彩色圓點表示的。有很多更好的候選人。

我做了一個秒圖作為一個假設官方的分支 $ \mu(z) $ 有一些我看不到的特別之處。

在此處輸入圖像描述

這裡的數據集是 223 個不同的 $ \nu(z) $ 有 $ \mu(z)=z^4+z^3+z^2+z+1 $ . 再次注意 y 軸上的刻度。

官方對的計算時間也被繪製為彩色點。這裡是官方 $ \nu(z) $ 不顯示任何時間屬性。


這個測試的​​程式碼在 github的一個Rijndael項目中。從命令行可以通過呼叫 $ python Polynomials.py –test-ring=8來重複它,使用 R 製作的基本內容位於 Polynomials 子目錄中。

最後,我找到了源頭,並郵寄了Rijndael的作者。他們的回答非常快而且非常好。

我已經理解了相反的方式。仿射變換在向量空間上 $ ((GF(2))^8 $ 他們所說的簡單是,在所有可能的仿射變換之間,他們選擇了一個也可以描述為乘積和加法在模定義的環中 $ z^8+1 $ .

沒有數學論據可供選擇 $ \mu(z) $ 任何高於其他的可逆元素。而對於 $ \nu(z) $ 選擇會發生類似的事情,但這裡存在避免任何固定或相反固定點的限制。

那麼選擇一個或另一個的唯一參數可能是計算時間,但是一旦預先計算了 S-Box,它就不會提供任何額外的優勢。

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