Encryption

S-AES 中的 S-box 是如何計算的?

  • September 27, 2017

閱讀簡化 AES (S-AES)的參考

在此處輸入圖像描述

Q1舉例說明 S-box 是如何構造的 $ b_0b_1b_2b_3=1010 $

我做了什麼

$ \begin{bmatrix} 1 &0 &1 &1 \ 1 & 1& 0&1 \ 1& 1& 1 & 0\ 0 &1 & 1& 1 \end{bmatrix} *\begin{bmatrix} b_0\ b_1\ b_2\ b_3 \end{bmatrix}+\begin{bmatrix} 1\ 0\ 0\ 1 \end{bmatrix} $

$ = \begin{bmatrix} 1 &0 &1 &1 \ 1 & 1& 0&1 \ 1& 1& 1 & 0\ 0 &1 & 1& 1 \end{bmatrix} *\begin{bmatrix} 1\ 0\ 1\ 0 \end{bmatrix}+\begin{bmatrix} 1\ 0\ 0\ 1 \end{bmatrix} $

$ = \begin{bmatrix} (1011\times1) \bigoplus (1011\times0)\bigoplus (1011\times1)\bigoplus (1011\times0) \ (1101\times1) \bigoplus (1101\times0)\bigoplus (1101\times1)\bigoplus (1101\times0)\ (1110\times1) \bigoplus (1110\times0)\bigoplus (1110\times1)\bigoplus (1110\times0)\ (0111\times1) \bigoplus (0111\times0)\bigoplus (0111\times1)\bigoplus (0111\times0) \end{bmatrix}+\begin{bmatrix} 1\ 0\ 0\ 1 \end{bmatrix} $

$ =\begin{bmatrix} 1011 \bigoplus 0\bigoplus 1011\bigoplus 0 \ 1101 \bigoplus 0\bigoplus 1101\bigoplus 0\ 1110 \bigoplus 0\bigoplus 1110\bigoplus 0\ 0111 \bigoplus 0\bigoplus 0111\bigoplus 0 \end{bmatrix}+\begin{bmatrix} 1\ 0\ 0\ 1 \end{bmatrix} $

$ = \begin{bmatrix} 1011 \bigoplus1011 \ 1101 \bigoplus1101\ 1110 \bigoplus 1110\ 0111\bigoplus 0111 \end{bmatrix}+\begin{bmatrix} 1\ 0\ 0\ 1 \end{bmatrix} $

$ =\begin{bmatrix} 0 \ 0\ 0\ 0 \end{bmatrix}\bigoplus\begin{bmatrix} 1\ 0\ 0\ 1 \end{bmatrix} $

我得到了 S-box 轉換 $ 1010 $ 作為 $ 1001 $ . 我在哪裡做錯了?

Q2還要解釋語句的含義及其在 S-Box 構造中的相關性“上面等式中的加法和乘法是在模 2 中進行的(使用 XOR),但在 GF(16) 中沒有

首先對場進行逆運算,然後對其進行仿射變換。

你必須先反轉 $ 1010 = x^3 + x $ 在 $ \textrm{GF}(16) $ , 有質數多項式 $ x^4 + x + 1 $ ; 為此使用擴展的歐幾里得算法,並看到 $ 1100 = x^3+x^2 $ 是相反的(您可以通過計算他們的產品並替換所有 $ x^4 $ 經過 $ 1+x $ 更高權力的同上 $ x^5 = x^2+x $ , $ x^6 = x^3+x^2 $ ETC。; 我們只剩下 $ 1 $ , 使用 $ x+x=0 $ ETC。)

也可以根據生成器製作日誌表 $ x $ :

$$ \begin{matrix} 0 & x^0 & 1 & 0001\ 1 & x^1 & x & 0010\ 2 & x^2 & x^2 & 0100\ 3 & x^3 & x^3 & 1000\ 4 & x^4 & 1+x & 0011\ 5 & x^5 & x^2+x & 0110\ 6 & x^6 & x^3 + x^2 & 1100\ 7 & x^7 & x^3 + x + 1 & 1011\ 8 & x^8 & x^2 +1 & 0101\ 9 & x^9 & x^3+x & 1010\ 10 & x^{10} & x^2+x+1 & 0111\ 11 & x^{11} & x^3 + x^2 +x & 1110\ 12 & x^{12} & x^3 + x^2 +x + 1 & 1111\ 13 & x^{13} & x^3 + x^2 +1 & 1101\ 14 & x^{14} & x^3 + 1 & 1001\ 15 & x^{15} & 1 & 0001 \end{matrix} $$ 請注意 $ 1010 = x^9 $ 所以它的倒數是 $ x^6 = 1100 $ (作為 $ x^{15} = 1 $ ). 然後我們應用仿射變換 $ F_2 $ 至 $ 1100 $ ,我們得到矩陣乘法作為前兩列與結果的總和 $ \begin{bmatrix}1\1\1\0 \end{bmatrix}+ \begin{bmatrix}0\1\1\1 \end{bmatrix}= \begin{bmatrix}1\0\0\1 \end{bmatrix} $

並添加常數向量 $ \begin{bmatrix}1\0\0\1 \end{bmatrix} $ 我們得到 $ 0000 $ , 按要求。

作為旁白: $ 0000 $ 沒有逆,所以我們使用它的“逆”的約定是 $ 0000 $ 並進入仿射變換,這會產生常數向量 $ 1001 $ ,如表所示。仿射 tarnsform 的重點是確保 $ S $ - 由(非常非線性)逆映射定義的框沒有 $ 0000 $ 作為一個固定點。元素 $ 0001 $ 有 $ 0001 $ 作為它的逆,然後矩陣乘法給出 $ 1101 $ (最後一列)等添加 $ 1001 $ 給 $ 0100 $ 等等

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