Arx
xor 在 ARX 構造中的作用
在像 Salsa 20 這樣的 ARX 構造中,為什麼需要異或操作?這就是為什麼 AR 還不夠?請注意,xor 是線性運算。
Xor 是帶有布爾運算符的代數的“加法”運算符,而 AND 是布爾運算符的“乘法”運算符。“正常”加法和乘法是整數的加法/乘法運算符。所以說到代數兼容性意義上的“線性”,XOR和整數加法是非線性的。我覺得這個問題/答案總結得很好。
至於為什麼需要 xor/為什麼 AR 不夠用,從技術上講,AR 相當於 ARX,但效率較低。請參閱論文ARX 的旋轉密碼分析。它有一些細節:
我們還表明,不使用 XOR 的 AR 系統在理論上等同於 ARX 系統。然而,我們證明它們在相同數量的操作下不太安全,因為線性 mod 2**n 近似。也很容易證明省略添加或旋轉是毀滅性的,這樣的系統(XR 和 AX)總是會被破壞。