Encryption

置換置換網路如何工作?

  • April 27, 2016

我了解更高級別的情況。但我不明白這張幻燈片的第 3 頁和第 4 頁到底發生了什麼。

具體來說,

  1. S0和S1如何使用?什麼進什麼出?
  2. 關鍵位如何準確地確定在每個位置使用哪個 s-box?職位指的是什麼?
  3. 第 4 頁中的函式“f”是否與第 3 頁中的 SP 網路完全相同?
  4. 為什麼將純文字拆分為左 L 和右 R?
  5. 為什麼在應用“f”後用 R 異或 L?
  6. 為什麼在應用最後一個“f”後旋轉?
  7. 為什麼使用異或?為什麼不進行其他一些按位運算?

前面的幻燈片供參考

1) 和 2) S 0或 S 1用於塊的每個 4 位長部分,具體取決於密鑰位。路西法密碼的每一輪使用 16 個 S-box(因為你將 64 位長的塊分成長度為 4 的 16 部分),所以每一輪都需要一個 2 字節長的子密鑰。

例子:

密鑰的 16 個起始位(第一個子密鑰):

0 0 1 0 1 1 1 1 0 0 1 0 1 0 0 1(共 2 個字節)

第一輪使用的 S-box:

S 0 S 0 S 1 S 0 S 1 S 1 S 1 S 1 S 0 S 0 S 1 S 0 S 1 S 0 S 0 S 1(各4位輸入/輸出,共64位)

**3)**不,不一定。Feistel 的方案是基於任何 S-box 和任何排列 P 的通用解決方案。Lucifer SP 只是可能的 SP 的一個範例。Feistel 的方案也可以與不可逆函式 F 一起使用。您不需要使用 SP,儘管它是最常見的選擇。

**4) 和 5)**因為這就是 Feistel 設計方案的方式……他想開發一種硬接線設備,他可以安全地用於加密和解密,並且具有 SP 網路提供的所有強大功能(雪崩效應,非線性,…)。對於幻燈片第 3 頁所述的基本 SP 網路,您不能使用同一設備進行加密和解密。

為什麼他決定在每一輪之後輪換L和R?如果沒有輪換,則R保持不變-對於加密方案來說不是很好,對嗎?

**6)**你的幻燈片有點混亂,我認為這張圖片更好地說明了 Feistel 的方案:

在此處輸入圖像描述

如您所見,如果您將所有 XOR 放在左側並始終使用右側部分作為 的輸入F,則在每一輪之後旋轉 L 和 R ,除了最後一個。為什麼不?因為最終輪換不依賴於密鑰,所以它不會提供額外的安全性。

**7)**因為我們的硬體計算 XOR 速度很快,而且結果同樣取決於兩個輸入位。如果你使用 AND 並且結果是 1,你會知道輸入是 1 在鍵上獨立,這不是你真正想要的,對吧?OR 和 0 結果的相同問題。


線性密碼分析(基於評論):

讓我們有一個分組密碼,它的輸出可以表示為一個線性方程組:

C 1 = a 11 P 1 XOR a 12 P 2 XOR … XOR a 1n P n XOR b 11 K 1 XOR … XOR b 1k K k

C 2 = a 21 P 1 XOR a 22 P 2 XOR … XOR a 2n P n XOR b 21 K 1 XOR … XOR b 2k K k

C n = a n1 P 1 XOR a n2 P 2 XOR … XOR a nn P n XOR b n1 K 1 XOR … XOR b nk K k

其中C i代表密文的第i位,P j是明文的第j位,K p是密鑰的第p位,係數a ij和b ij是一些眾所周知的0/1由密碼設計定義的常數。

如果您有足夠多的已知相同密鑰的明文-密文對,則可以求解方程組並找到密鑰值。那會是個問題,對吧?這就是為什麼現代密碼從來都不是線性的——你不能將它們的輸出寫成如上所述的輸入位和密鑰位的線性方程組。

SP 網路中的 S-box 總是被選擇為非線性的,更重要的是,它們必須難以用線性方程來近似,否則整個 SP 網路將容易受到線性密碼分析的影響。

如果您明智地選擇 SP 網路的 S-box,整個網路將是非線性的(因此對線性密碼分析是安全的),Feistel 基於此 SP 網路的方案也是如此。

然而,這只是一個基本的介紹。線性密碼分析是非常有趣且非常複雜的主題,如果您感興趣,您應該找到一些更詳細的資訊來源。


隨意問。

引用自:https://crypto.stackexchange.com/questions/32601