關於使用PRF建構PRG的問題
令 F 為具有 128 位密鑰和 256 位塊長度的安全偽隨機函式。以下哪些函式 G 是安全偽隨機生成器?(選擇所有符合條件的。)
一個。 $ G(x)=F_x(0…0) $ , 在哪裡 $ x $ 是一個 $ 128 $ 位輸入。
B. $ G(x)=F_x(0…0)|| F_x(0…0) $ , 在哪裡 $ x $ 是一個 $ 128 $ 位輸入。
C。 $ G(x)=F_x(0…0)||F_x(1…1) $ , 在哪裡 $ x $ 是一個 $ 128 $ 位輸入。
D. $ G(x)=F_{0…0}(x)|| F_{1…1}(x) $ , 在哪裡 $ x $ 是一個 $ 256 $ 位輸入。
我們老師給出的答案是 $ A,D $ . 但我不明白。為什麼C是錯的?
我們不直接回答作業問題,但會給出提示。
假設攻擊者可以控制所有非秘密輸入。密鑰是秘密的,區塊不是。這個答案對 PRG 有一個很好的定義:簡單來說,PRG 是一個函式,它接受一個固定長度的秘密輸入種子比特串,並輸出一個較長的比特串,該比特串不能與具有不可忽略機率的隨機比特串區分開來。
一個。 $ G(x)=F_{x}(0…0) $ ,其中 x 是 128 位輸入密鑰。
攻擊者是否控制任何輸入?攻擊者能否以不可忽略的機率(即輸出中是否有任何可觀察到的模式)將輸出與隨機函式的輸出區分開來?輸出是否比輸入長?
唯一的輸入變數是密鑰。沒有額外的模式被添加到輸出中。輸出多長時間?
B. $ G(x)=F_{x}(0…0)||F_{x}(0…0) $ ,其中 x 是 128 位輸入密鑰。
同樣的問題。
唯一的輸入變數是密鑰。輸出重複某些序列兩次。輸出多長時間?
C。 $ G(x)=F_{x}(0…0)||F_{x}(1…1) $ ,其中 x 是 128 位輸入密鑰。
同樣的問題。
唯一的輸入變數是密鑰。輸出是否有任何額外的模式?輸出多長時間?
D. $ G(x)=F_{0…0}(x)||F_{1…1}(x) $ ,其中 x 是 256 位輸入數據塊。
同樣的問題。
唯一的輸入變數是公共數據塊。輸出是否有任何額外的模式?輸出多長時間?
缺少一個延續該模式的選項:E。 $ G(x)=F_{0…0}(x)||F_{0…0}(x) $ ,其中 x 是一個公共的 256 位數據塊。
如果你能回答 AD,E 應該是微不足道的。