Pseudo-Random-Function

為什麼 G 不是安全的偽隨機函式?

  • April 14, 2018

讓 $ F(k,x) $ 是一個安全的偽隨機函式定義在 $ {0,1}^n $ ,這意味著:

$ F: {0,1}^n \times {0,1}^n \rightarrow {0,1}^n $

定義一個 $ G(k,x) = F(k,x) ; \Vert ; 0 $

如何證明 $ G $ 不安全?

在我看來,如 $ F $ 是安全的, $ G $ 總是會導致一些安全輸出後跟 0,換句話說,我的意思是:

如果你猜不出是什麼 $ X $ 是,你不會猜到是什麼 $ ;X ; \Vert ; 0; $ 是。

但正如我被要求證明的那樣 $ G $ 不安全,顯然我的想法有問題。

問題是 $ G $ 很容易與隨機函式區分開來。假設我們有一個預言機,它要麼應用隨機函式,要麼應用你的 PRF(在遊戲開始時選擇)。我們查詢預言機 $ n $ -時代與 $ n $ 不同的輸入,如果所有最後一位都是 $ 0 $ 然後我們說oracle使用PRF。為了證明你需要計算的不安全感

$ Adv_F(A):=Pr[\text{you guess it’s G | Oracle uses G}]-Pr[\text{you guess it’s G | Oracle uses random RF}] $ .

第一個機率等於 $ 1 $ (如果 $ A $ =攻擊者使用建議的方法)。第二個機率以指數方式變為零,因此 $ n $ 足夠高(在這種情況下甚至 $ n=4 $ 提供足夠的優勢)的優勢 $ \textit{significantly} $ 不同於RF的優勢。

“真實”世界範例:假設您在計數器模式下使用 F(k,x) 作為分組密碼。然後,您只需查看密文即可有效地了解明文的每一位。

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