Arx
僅使用旋轉、移位、AND、OR 和 XOR 在分組密碼中實現非線性
據說很難在基於模加法、與數據無關的按位旋轉和 XOR 的分組密碼中引入足夠的非線性,以使其免受某些類型的密碼分析,即使使用了加法,因為它在設計中引入了非線性XOR 沒有。但是,如果我們還使用按位與、按位或和按位移位(左按位移位填充一個固定長度的位串左側為零)呢?讓我們把模組化添加扔進火焰,因為它實際上並沒有在某些處理器上以恆定的時間執行。
我認為按位與和按位或可用於引入比模加法更多的非線性。此外,雖然我不熟悉旋轉密碼分析的細節,但我認為按位移位可以幫助阻止它,因為對於某些輸入,使用旋轉的函式的輸出可能與應用於其中一個的旋轉相等。按位移位不會受到這個問題的影響。例如,考慮對於輸入 $ x_0 = 0101 $ 和 $ x_1 = 1010 $ 功能 $ f(x) = (x \ggg 1) \oplus x $ 將返回 $ 111 $ 在這兩種情況下。但是,如果 $ f(x) = (x \gg 1) \oplus x $ ,那麼輸出將是 $ 0111 $ 和 $ 1111 $ , 分別。
簡短的回答是:是的,你可以!
您不妨研究一下送出給CAESAR競賽的 AEAD 方案NORX ,其核心論點是通過與 ARX 相同的設計原則,您可以同時獲得高安全性、高軟體性能和高硬體性能,但替換 $ a + b $ ,這在硬體上很慢,通過近似 $ a \oplus b \oplus (a \wedge b) \ll 1 $ .
注意對常數 1 應用 xor 是非門。添加或門或與門足以創建任何功能。僅靠異或、移位和旋轉是不夠的。