Modular-Arithmetic

通過 XOR 與模加法將 x 混合成排列

  • November 16, 2018

分組密碼通過 XOR 將密鑰材料混合到排列中。也可以通過這種方式進行前後美白。

Chacha/Salsa 通過 32 位模組化將密鑰和 iv 材料(以及其他位,但由於反轉它們是微不足道的,並不重要)完成排列輸出。

最後一步使用 32 位模加法而不是 XOR 的基本原理是什麼?具有完全相同問題的 MD 雜湊使用 XOR 而不是模數 > 2 加法來解決它。

具有完全相同問題的 MD 雜湊使用 XOR 而不是模數 > 2 加法來解決它。

在Merkle-Damgård + Davies-Meyer理論中是正確的,但實踐不同:MD5、SHA-1、SHA-2(實現該理論)都使用逐字模加作為輪函式的最後一步,而不是異或。

我的猜測是因為

  1. 模組化加法比 XOR 具有明顯更多的擴散。因此,如果沒有其他理由來選擇其中一個,加法是預設的從業者的選擇(OTOH Occam 的剃刀會選擇 XOR)。出於同樣的原因,在 ARX 密碼中,通常 ADD 比 XOR 略多。
  2. 在軟體中使用加法而不是 XOR 幾乎沒有成本(在某些體系結構中,它甚至可能生成比 XOR 稍微更快/更密集的程式碼)。
  3. MD5 鋪平了道路。

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