PRG、PRF和PRP有什麼區別
直到我得到的是:PRG 是生成器是 PRF 的一部分,它為函式生成偽隨機值。PRF 在語義上是安全的,不用擔心可逆。好的,那麼PRP在哪裡使用?什麼是 PRP,它來自哪裡,它如何受益。
偽隨機函式是與從具有相同域和值集的所有函式的集合中隨機選擇的函式無法區分的函式。類似地,偽隨機排列是一個雙射函式,它與從同一域上的所有雙射函式集合中隨機選擇的雙射函式無法區分。例如,由密鑰參數化的密碼安全塊密碼是 PRP。
另一方面,PRG 一詞最常用於有狀態函式,這些函式用於生成連續的偽隨機字元串,例如用作密鑰、iv、salt、nonce 等。
Henrick 給出的答案很好,但我嘗試在安全領域給出更多細節的解釋。
當你想到 PRF(Pseudo Random Function)時,你會認為 PRF 包含三個元素,它們是 $ K, X $ , 和 $ Y $ . $ K $ 是鍵空間, $ X $ 消息或輸入空間和 $ Y $ 輸出空間。PRF是一個函式,當你給這個函式元素時 $ K $ 和 $ X $ ,它將輸出一個元素 $ Y $ :
$$ F : K \times X \to Y $$
當你想到 PRP(Pseudo Random Permutation)時,它也具有 PRP 的三個元素,它們是 $ K, X, X $ . 如您所見,輸入和輸出空間是 $ X $ :
$$ E : K \times X \to X $$
此外,要求 PRP 是雙射的,並具有有效的反演函式 $ \operatorname{PRP}^{-1} $ . 回想一下 PRP 有時被稱為塊密碼,這是有道理的:反轉函式是(需要建構)塊密碼的解密函式。
PRF 和 PRP 都是確定性的:再次呼叫 PRF 或 PRP 與之前相同的輸入將分別產生相同的輸出。
反演函式是 PRF 和 PRP 之間的一個重要區別。
資料來源:Dan Boneh 的幻燈片,其中還包含 PRF 和 PRP 的常見安全定義,並討論了 PRP/PRF 切換引理。