Modular-Arithmetic
通過 XOR 與模加法將 x 混合成排列
分組密碼通過 XOR 將密鑰材料混合到排列中。也可以通過這種方式進行前後美白。
Chacha/Salsa 通過 32 位模組化將密鑰和 iv 材料(以及其他位,但由於反轉它們是微不足道的,並不重要)完成排列輸出。
最後一步使用 32 位模加法而不是 XOR 的基本原理是什麼?具有完全相同問題的 MD 雜湊使用 XOR 而不是模數 > 2 加法來解決它。
具有完全相同問題的 MD 雜湊使用 XOR 而不是模數 > 2 加法來解決它。
在Merkle-Damgård + Davies-Meyer理論中是正確的,但實踐不同:MD5、SHA-1、SHA-2(實現該理論)都使用逐字模加作為輪函式的最後一步,而不是異或。
我的猜測是因為
- 模組化加法比 XOR 具有明顯更多的擴散。因此,如果沒有其他理由來選擇其中一個,加法是預設的從業者的選擇(OTOH Occam 的剃刀會選擇 XOR)。出於同樣的原因,在 ARX 密碼中,通常 ADD 比 XOR 略多。
- 在軟體中使用加法而不是 XOR 幾乎沒有成本(在某些體系結構中,它甚至可能生成比 XOR 稍微更快/更密集的程式碼)。
- MD5 鋪平了道路。