One-Way-Function

是F(x)⊕xF(X)⊕Xf(x)oplus x單向函式?

  • March 11, 2015

鑑於 $ f $ 是 OWF 並且 $ |f(x)|=|x| $ 對全部 $ x $ , 是 $ g(x)=f(x)\oplus x $ 一定也是OWF?

雖然雨披的回答給出了一個有趣的例子,但為什麼這在實踐中會出錯,它並不一定從理論的角度回答這個問題。畢竟,我們不知道是否 $ f(x) = AES_k(x) \oplus x $ 是單向的。(即使假設這一點可能是合理的。)

所以,讓我們舉一個理論上的例子。假設一個單向函式 $ h $ 存在於輸入和輸出長度相同的地方。我們稱這個長度 $ n/2 $ . 即我們有一個單向函式

$$ h : {0,1}^{n/2} \to {0,1}^{n/2}. $$ 從這個函式,我們現在構造一個新函式

$$ f : {0,1}^{n} \to {0,1}^{n} $$如下: $$ f(x_1\Vert x_2) = 0^{n/2}\Vert h(x_1), $$ 在哪裡 $ |x_1|=|x_2|=n/2 $ . 通過歸約很容易證明 $ f $ 無論何時都是單向的 $ h $ 是單向的。讓 $ \mathcal{A} $ 成為反對單向性的攻擊者 $ f $ ,然後我們構造一個攻擊者 $ \mathcal{B} $ 反對單向性 $ h $ 如下:在輸入 $ y $ , $ \mathcal{B} $ 呼叫 $ \mathcal{A} $ 在輸入 $ 0^{n/2}\Vert y $ . 最終, $ \mathcal{A} $ 輸出 $ x_1’\Vert x_2’ $ 和 $ \mathcal{B} $ 輸出 $ x_1’ $ .

很容易看出,如果 $ \mathcal{A} $ 以多項式時間執行(以輸入長度 $ n $ ) 然後 $ \mathcal{B} $ 也以多項式時間執行(在輸入長度 $ n/2 $ ).

也很容易看到以下持有:

$$ \Pr[\mathcal{B}(y) \in h^{-1}(y)] = \Pr[\mathcal{A}(0^{n/2}\Vert y) \in f^{-1}(0^{n/2}\Vert y)]. $$ 因此可以得出 $ f $ 無論何時都是單向的 $ h $ 是。 現在讓我們使用這個功能 $ f $ 在擬議的建設中:

$$ g(x) = f(x)\oplus x = (0^{n/2}\Vert h(x_1) ) \oplus x_1\Vert x_2 = x_1\Vert (h(x_1)\oplus x_2) $$ 這顯然不是單向的。攻擊者看到圖像 $ x_1\Vert y $ 可以簡單的輸出 $ x_1\Vert (y\oplus h(x_1)) $ 作為有效的原像。

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