在 SP 密碼系統中應用轉換的順序是否重要?
SP-cryptosystems在 SP 密碼系統中應用轉換的順序重要嗎?如果我們先應用 P 變換然後應用 S 變換會發生什麼變化?加密強度會降低嗎?如果是,為什麼?
讓我們呼叫替換 $ S $ 和排列 $ P $ 在替代置換網路(SPN)中。讓我們考慮一個 SPN 分組密碼 $ 4 $ 輪到哪裡 $ K $ 代表 $ \oplus $ 圓鍵。
- 和 $ S $ 先申請
|KSP|KSP|KSP|KSP|
最後 $ P $ 對安全沒有影響。攻擊者只是將其丟棄。所以我們可以把它看作;
|KSP|KSP|KSP|KS|
- 和 $ P $ 先申請
|KPS|KPS|KPS|KPS|
在攻擊者看來,初始排列沒有影響。類似地,我們可以考慮對密鑰時間表進行一些更改。
|KS|KPS|KPS|KPS|
現在我們可以交換需要更改密鑰時間表的 K 和 P。
|KSP|KSP|KSP|KS|
這變成了首先應用的 S 的簡化版本。因此,它們沒有區別。
如果轉換順序對安全性很重要,這取決於密碼系統。
在DES的範例中,我們不能完全交換問題中考慮的 S 和 P。這是因為 S 的輸入(48 位)比它的輸出和 P 的輸入和輸出(32 位)寬。但是,我們可以交換 P 和以下組合:擴展 E(輸入為 32 位,輸出為 48 位)、與子密鑰的 XOR(48 位)和 S(輸入 48 位,輸出 32 位)。然後移動 P 根本不會修改安全性,因為我們可以從正常 DES 中獲得修改後的 DES,如下所示:在 64 位輸入塊上應用 IP,P -1在兩個 32 位半上,IP -1,正常 DES 與未修改的密鑰,IP -1,P 在兩個 32 位的一半上,IP。
另一方面,在許多情況下,轉換順序對安全性很重要。例如考慮一個字節的轉換
- 添加密鑰字節 K 模 2 8
- 應用 8 位替換 S 表(例如AES 的那個)
- 減去密鑰字節 K 模 2 8
**在這裡,順序很重要。**任何移動 2 的重新排序都是一場災難,因為密鑰字節對結果變得無關緊要,這是一個分組密碼可能會刪除所有安全性。