在 AES-256 中,究竟是什麼構成了擴展欄位高飛_(28)GF(28)GF(2^8)?
我的問題有點難以描述,所以我先打個比方
在有限域上的橢圓曲線中,有 2 組 - 第一組是定義橢圓曲線的有限域。第二組是由橢圓曲線的所有點組成的組。這是2個不同的組。
我的實際問題:
在 AES256 中,我們使用多項式來表示每個字節。多項式的係數來自 $ \operatorname{GF}(2) $ - 即多項式環結束 $ \operatorname{GF}(2) $ . 多項式加法是通過 mod 2 完成的。乘法分兩步完成。首先將 2 個多項式乘以 mod 2。然後將它們減少 mod 不可約多項式
所以我很困惑到底在哪裡 $ \operatorname{GF}(2^8) $ 出現在圖片中?
我猜測由多項式表示的每個字節都是欄位的成員 $ \operatorname{GF}(2^8) $ - 是的 $ \operatorname{GF}(2^8) $ 是一個字節欄位。
就像橢圓曲線一樣,我們使用 tangent & chord 方法任意定義加法,這裡我們任意定義欄位元素(字節)的加法和乘法為
- 添加2個欄位元素 $ \operatorname{GF}(2^8) $ - 添加係數 mod 2。
- 欄位的 2 個元素相乘 $ \operatorname{GF}(2^8) $ - 乘以係數 mod 2 然後將其減少 mod 不可約多項式。
我的解釋是正確的還是我完全錯過了這裡的欄位抽象和操作?
如果是正確的,那麼我的下一個問題是關於這裡的擴展欄位的概念—— $ \operatorname{GF}(2^8) $ 是一個擴展域 $ \operatorname{GF}(2) $ - 它到底是什麼意思 - 它只是意味著每個字節包含 8 位(每個位是 $ \operatorname{GF}(2) $ )。同樣,子欄位是什麼 $ \operatorname{GF}(2^2) $ & $ \operatorname{GF}(2^4) $ 代表這裡?
AES 中沒有等效於橢圓曲線密碼學中使用的橢圓曲線*組。*尤其是座標服從曲線方程的點,或者添加這些的花哨規則是不匹配的。
與 ECC 的並行在 AES 處停止,使用字節的有限欄位,ECC 對每個點座標也是如此。在 AES 中,該欄位是 $ \operatorname{GF(q)} $ 和 $ q=2^8=256 $ . 在 ECC 中,該欄位是 $ \operatorname{GF(q)} $ 對於一些更大的 $ q $ (通常有數百位而不是 9 位)。
可以將有限域視為實數集的有限模擬 $ \mathbb R $ (或分數 $ \mathbb Q $ ) 當涉及到代數時,僅限於加法、乘法、取反或取反以及測試相等性(而不是順序)。一套與 $ q $ 當且僅當元素可以成為一個欄位 $ q=p^m $ 為了 $ p $ 一個素數和整數 $ m>0 $ . 什麼時候 $ m=1 $ , 場 $ \operatorname{GF(p)} $ 帶素數 $ p $ 是熟悉的 $ \mathbb Z/p\mathbb Z $ , 也注意到 $ \mathbb Z_p $ , 或等效的整數 $ [0,p) $ 具有場定律加法和乘法模 $ p $ . 這樣的欄位在 ECC 中用於所謂的素數曲線,如secp256k1(與 $ p $ 256 位素數)。但是 ECC 適用於任何大型有限域。例如sect283k1使用欄位 $ \operatorname{GF(2^{283})} $ ,並且此橢圓曲線組使用欄位 $ \operatorname{GF}(9767^{19}) $ .
什麼時候 $ m>1 $ ,包括當 $ p=2 $ ,一個欄位元素可以被認為是一個向量或元組 $ m $ 領域元素 $ \operatorname{GF(p)} $ ,或等價於 $ m $ 多項式的係數 $ P(x) $ 學位小於 $ m $ 和係數 $ \operatorname{GF(p)} $ . 現場加法 $ \operatorname{GF(p^m)} $ 是在欄位中添加向量/元組分量 $ \operatorname{GF(p)} $ ,或多項式加法。什麼時候 $ p=2 $ 減少到XOR。請參閱this,了解為什麼將多項式的係數表示為巧妙地定義乘法是有意義的。
(在 AES 中) $ \operatorname{GF}(2^8) $ 是一個擴展域 $ \operatorname{GF}(2) $ (…)這是否只是意味著每個字節包含 8 位(每個位是 $ \operatorname{GF}(2) $ ) ?
這意味著,並且 $ \operatorname{GF}(2^8) $ 符合兩個內部法則(操作),使其成為一個場:加法減少為 8 個組件中的每一個的加法 $ \operatorname{GF}(2^8) $ , 和一個合適的乘法。
同樣,子欄位是什麼 $ \operatorname{GF}(2^2) $ 和 $ \operatorname{GF}(2^4) $ 代表這裡?
它們是具有 4 個和 16 個元素而不是 256 個元素的不同欄位。有時表示一個元素可能會很有趣 $ \operatorname{GF}(2^8) $ 作為兩個元素 $ \operatorname{GF}(2^4) $ 或四個元素 $ \operatorname{GF}(2^2) $ . 對於加法,這種表示非常直接,但乘法是一個更複雜的故事。這在 AES 的標準實現或研究中不是必需的(我只看到它用於 AES S-box 的優化實現)。