Aes

計算有限域的逆問題高飛_(28)GF(28)GF(2^8)AES 的

  • August 25, 2020

我知道這個問題在這裡被問死了,但請聽我說完。

我正在學習如何使用 AES 進行加密,在其中一種方法中,我們必須在有限域中計算乘法逆 $ \operatorname{GF}(2^8) $ 使 $ S-box $ .

我學習了有限域及其運算,但是在計算 $ x^7+x+1 $ (十六進制為 83) $ \bmod x^8+x^4+x^3+x+1 $ (AES 標準)。

這是我使用擴展歐幾里得算法的計算:

$$ \begin{align} (x^8+x^4+x^3+x+1) &= (x^7+x+1)(x) + (x^4+x^3+x^2+1)\ (x^7+x+1) &= (x^4+x^3+x^2+1)(x^3+x^2+1) + (x)\ (x^4+x^3+x^2+1) &= (x)(x^3+x^2+x) + 1\ \end{align} $$

現在計算 $ s $ 和 $ t $ 為了$$ (x^8+x^4+x^3+x+1) \cdot s + (x^7+x+1)\cdot t = 1 $$

  • 讓 $ a = x^8+x^4+x^3+x+1 $ ,
  • $ b = x^7+x+1 $ ,
  • $ c = x^4+x^3+x^2+1 $ ,
  • $ d = x $

$$ c + d(x^3+x^2+x) = 1 $$

$$ c + (x^3+x^2+x)(b + c(x^3+x^2+1)) = 1 $$

$$ c + (x^3+x^2+x)b + (x^6+x^4+x^3+x^2)c = 1 $$

$$ (x^3+x^2+x)b + (x^6+x^4+x^3+x^2+1)c = 1 $$

$$ (x^3+x^2+x)b + (x^6+x^4+x^3+x^2+1)(a + b(x)) = 1 $$

$$ (x^3+x^2+x)b + (x^6+x^4+x^3+x^2+1)a + (x^7+x^5+x^4+x^3+x)b $$

$$ (x^6+x^4+x^3+x^2+1)a + (x^7+x^5+x^4+x^2)b $$

現在,(c逆) $$ c^{-1} = t* \mod a $$

$$ c^{-1} = t $$

$$ =x^7+x^5+x^4+x^2 $$

這是十六進制 = B4 這不是這個表顯示 http://tratliff.webspace.wheatoncollege.edu/2016_Fall/math202/inclass/sep21_inclass.pdf

倒數應該是 80(十六進制)。當我嘗試不同的值時,我發現擴展歐幾里得算法中兩步或更少的值是正確的,這意味著當它需要超過 2 步時,我得到不同的值當然我可能只是在這裡弄錯了,但這就是我知道。

Ps:-我現在正在嘗試解決這個謎團 3 天,因此感謝您的幫助,謝謝

讓 $ g(x) = (x^8+x^4+x^3+x+1) $ 和 $ p(x) = (x^7+x+1) $

GCD 是正確的 $ 1 $ 作為最後一個非零餘數。

$$ \begin{align} (x^8+x^4+x^3+x+1) &= (x^7+x+1)(x) + \color{blue}{(x^4+x^3+x^2+1)}\ (x^7+x+1) &= (x^3+x^2+1)\color{blue}{(x^4+x^3+x^2+1)} + \color{red}{(x)}\ (x^4+x^3+x^2+1) &= (x^3+x^2+x)\color{red}{(x)} + 1\ \end{align} $$

現在收集回來找到Bézout的身份 $$ a(x)g(x) + b(x)p(x) = d(x) $$在哪裡 $ d(x) $ 是個 $ \gcd(p(x),g(x)) $

我們想保持 $ g(x) $ 和 $ p(x) $


從最後一個方程開始(最後一個具有非零餘數的方程)

$$ (x^4+x^3+x^2+1) = (x^3+x^2+x) \color{red}{(x)} + 1 $$ 更改為(在 $ GF(2) $ 我們有 $ -1=1 $ )

$$ 1 = (x^4+x^3+x^2+1) + (x^3+x^2+x) \color{red}{(x)} $$


現在替代 $ \color{red}{(x)} $ 從上一個

$$ (x^7+x+1) = (x^3+x^2+1)\color{blue}{(x^4+x^3+x^2+1)} + \color{red}{(x)} $$

那是

$$ \color{red}{(x)} = p(x) + (x^3+x^2+1)\color{blue}{(x^4+x^3+x^2+1)} $$

現在替代

$$ \begin{align} 1 &= \color{blue}{(x^4+x^3+x^2+1)}) + (x^3+x^2+x)\big[(p(x) + (x^3+x^2+1)\color{blue}{(x^4+x^3+x^2+1)}\big]\ 1 &= \color{blue}{(x^4+x^3+x^2+1)}) + (x^3+x^2+x)p(x) + (x^6 + x^2 + x)\color{blue}{(x^4+x^3+x^2+1)})\ 1 &= (x^3+x^2+x)p(x) + (x^6 + x^2 + x +1)\color{blue}{(x^4+x^3+x^2+1)})\ \end{align} $$


現在替代 $ \color{blue}{(x^4+x^3+x^2+1)} $ 從第一個方程

$$ g(x) = p(x)(x) + \color{blue}{(x^4+x^3+x^2+1)} $$

$$ \color{blue}{(x^4+x^3+x^2+1)} = p(x)(x) + g(x) $$

$$ \begin{align} 1 &= (x^3+x^2+x)p(x) + (x^6 + x^2 + x +1) \big[p(x)(x) + g(x)\big]\ 1 &= (x^3+x^2+x)p(x) + (x^7 + x^3 + x^2 + x) p(x) + (x^6 + x^2 + x+1) g(x))\ 1 &= (x^7 ) p(x) + (x^6 + x^2 + x) g(x))\ \end{align} $$

現在那個模 $ g(x) $ 雙方的

$$ 1 = (x^7 ) p(x) $$這意味著 $ p(x)^{-1} = x^7 $


**注意:**對於欄位計算,我使用瞭如下的 Sagemath 程式碼,這可用於 AES 計算。

#Base field
R.<y> = PolynomialRing(GF(2), 'y')

#Defining polynomial
G = y^8+y^4+y^3+y+1

#The field extension
S.<x> = QuotientRing(R, R.ideal(G))
S.is_field()

#this is zero
X = x^8+x^4+x^3+x+1
print(X)

#GCD
print(X.gcd(x^7+x+1))
#to find and inverse use the 1/
1/(x^7+x+1)
#field calculations
(x^3+x^2+1)* (x^4+x^3+x^2+1) + (x)

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