S-Boxes
理想的 S-box 屬性
S-box 應該具備哪些理想的特性?
我目前的標準選擇過程是隨機挑選它們並驗證它們是否符合以下標準:
- 任意隨機兩位的機率 $ S[a]_b $ 和 $ S[c]_d $ 相等(對於任何隨機 $ a $ , $ b $ , $ c $ 和 $ d $ ) 為 50%。
- 任意隨機兩位的機率 $ S[a]_n $ 和 $ a_n $ 相等(對於任何隨機 $ a $ 和 $ n $ ) 為 50%。
- 不存在這樣的條目 $ S[a] = a $
- 不存在這樣的條目 $ S[a] = \bar{a} $
還有其他需要應用的重要屬性嗎?
編輯我詢問的原因是,我希望將此 S-Box 設計與 CBC 模式密碼結合起來,正如在此問題上所討論的那樣。
以下有關 DES S-Box 的資訊可能有用(取自此處):
DES 設計標準
- 使用了 12 個標準,產生了大約 1000 個可能的 S-Box,實施者選擇了其中的 8 個
- 這些標準是機密
- 然而,其中一些已經為人所知
以下是設計標準:
R1:S盒的每一行都是0到15的排列
R2:沒有 S-Box 是輸入的線性仿射函式
R3:將一個輸入位更改為 S-box 會導致至少更改兩個輸出位
R4:S(x) 和 S(x+001100) 必須至少有 2 位不同
以下據說是由設計標準引起的
R5:S(x)
$$ [pi $$] S(x+11ef 00) 任意選擇 e 和 f R6:選擇 S-box 是為了在任何單個輸入保持不變時最小化任何 S-box 輸出中 1 和 0 的數量之間的差異
R7:選擇的 S-box 需要比隨機選擇更多的最小項