Aes
AES S-Box:用於計算 S-Box 值的常數的可能選項
為了計算 AES 中 S-Box 的值,我遇到了很多選擇常量 {63} 的資源。據說{63}滿足S-Box的條件,即它不應該有任何不動點或相反的不動點。常量還有哪些其他選擇?
例如:{1}、{2}、{3}、{4} 是常量的有效選擇嗎?常量可用的其他選項是什麼?
在 AES S-box 的 256 個可能的 8 位加法常數中,有 34 個滿足沒有固定點或相反固定點的要求:
0x05, 0x07, 0x08, 0x15, 0x1D, 0x20, 0x30, 0x37, 0x38, 0x3B, 0x3D, 0x49, 0x52, 0x56, 0x5D, 0x63, 0x76, 0x89, 0x9C, 0xA2, 0xA9, 0xAD, 0xB6, 0xC2, 0xC4, 0xC7, 0xC8, 0xCF, 0xDF, 0xE2, 0xEA, 0xF7, 0xF8, 0xFA
為了解決明顯的後續問題,不,我不知道為什麼專門從這 34 個選項中選擇常量 0x63。
0x63 唯一明顯的屬性,我猜可能影響了選擇,它的八個位中恰好有四個被設置。但這還不足以完全縮小選擇範圍,因為 0x1D、0x56、0x9C、0xA9 和 0xE2 也共享此屬性。
附言。要獲得上面的列表,最簡單的方法是從普通的 AES S-box(可以在包括Wikipedia在內的許多來源中找到)作為 256 字節的表開始。然後,您可以將表中的每個字節與標準加法常數 0x63 進行按位異或,以將其抵消並獲得 S-box,就像它看起來與零常數一樣。然後,您可以測試 0 到 255 之間的所有 256 個可能的常量,以查看是否將它們與每個表條目進行異或會產生與表中的索引或其按位否定匹配的任何條目。