Aes
為什麼 AES 使用二進製欄位?
AES 的關鍵思想是使用矩陣乘法和相應的逆(與 Feistel 相對)。但是該算法使用 GF 而不是簡單的模運算來做到這一點。
有什麼明顯的理由不使用簡單的模運算嗎?
好吧,有兩種可能的方式來使用模運算:
- 你可以做算術模 $ 2^n $ . 但是,它有一些討厭的屬性(並非所有元素都有乘法逆元,高階位不會影響低階位),雖然您可以解決這些問題,但它需要對 AES 進行重大更改。
- 你可以做算術模素數 $ p $ . 這避免了上述問題,但是這裡的問題是我們的明文和密文塊是偶數組;以素數為模的元素 $ p $ 不是(除了 $ p=2 $ ,這聽起來並不有趣)。因此,您需要添加一些特殊的邏輯來處理它。
通過使用 $ GF(2^8) $ ,它們避免了上述所有問題;所有非零元素都有逆,在乘法(或逆)中,每個輸入位都可能影響每個輸出位,並且塊的一部分很好地適合欄位元素。