操作的逆(a,b)↦a⊕b⊕((a∧b)≪1)(一個,b)↦一個⊕b⊕((一個∧b)≪1)(a,b) mapsto a oplus boplus ((a land b) ll 1)對於固定位長
**背景。**在他們關於密碼方案 NORX 的論文中,作者使用以下公式通過按位運算(佔用的 CPU 週期比正確加法更少)快速逼近 +$$ a+b ; \approx ; a \oplus b \oplus ((a \land b) \ll 1) $$在哪裡 $ \oplus $ 是按位 XOR 和 $ \land $ 是按位與,並且 $ \ll $ 左移 1 個位置。(的目的 $ ((a \land b) \ll 1) $ 是模擬“進位”操作。)
**問題的製定。**我們可以將其視為一種操作 $ +^{n}\sim : {0,1}^n\times {0,1}^n \to {0,1}^n $ , 被定義為 $ (a, b) \mapsto a \oplus b \oplus ((a \land b) \ll 1) $ . 為了 $ b\in {0,1}^n $ 我們得到一張地圖 $ s^n_b: {0,1}^n\to {0,1}^n $ 被定義為$$ a \mapsto a +^{n}\sim b. $$
是 $ s^n_b $ 對所有人來說都是單射的(因此是雙射的) $ n\in\mathbb{N} $ 和 $ b\in {0,1}^n $ ?
是的,看到這個注意 $ a $ 可以從最低有效位按位計算。我們寫 $ c $ 為了 $ a+^n_\sim b $ 和 $ x_i $ 為了 $ i $ 第一點 $ x $ . 請注意: $$ a_0=b_0\oplus c_0 $$ $$ a_i=b_i\oplus c_i\oplus (a_{i-1}\wedge b_{i-1}) $$ 為了 $ 1\le i\le n-1 $ .
可悲的是,沒有一個很好的 4 位到 1 位函式按位反函式 $ (b,c)\mapsto a $ 例如 $ a_2 $ 是一個函式 $ b_0 $ , $ b_1 $ , $ b_2 $ , $ c_0 $ 和 $ c_1 $ .