Pseudo-Random-Function

用 PRF 代替 PRP 的海綿

  • January 6, 2020

在大多數使用 Sponge 操作模式(例如 SHA3)和NIST 輕量級密碼學項目中的許多第 2 輪候選操作中,底層原語是一種密碼排列——也就是說,它是雙射的。

出於好奇,我注意到一個提議的基於 Sponge 的 PRNG通過將部分排列狀態截斷為全位為零來實現前向保密(回溯阻力)(連結論文的第 4.3 節)。

這讓我想知道,如果排列是單向的(例如 $ p(x) \oplus x $ ):

Q1:如果 SHA3 雜湊和 XOF 函式建立在 Sponge-PRF 之上,會有什麼安全隱患?

Q2:如果提議的 PRNG 使用 PRF,安全證明將如何分解?

Q3:如果基於海綿的雙工 AEAD 使用 PRF,它們的安全證明將如何分解?

我向 Keccak 團隊發送了一封郵件詢問此事,我收到了其中一位作者(具體是 Joan Daemen)的回复。

據他介紹,我們實際上可以通過除了排列之外的“轉換”來實例化 Sponge 函式和 Duplex 對象,後者是我​​們通常所做的。只要底層(固定寬度)函式與隨機函式無法區分(計算上)。

所以我們通常不使用“轉換”的真正原因是 -它通常效率不高

從郵件回復中引用。

海綿構造主要使用排列(Keccak、Xoodyak、Spongent 等)進行實例化的原因是,作為一個密碼學社區,我們有一種方法可以建構有效的排列,這種排列似乎會產生安全的海綿函式,但不能建構就不可微分性和不可區分性界限而言,執行相同操作的有效轉換和排列的可逆性不會受到傷害。…

確實如此,Feistel 網路分組密碼(例如 DES 和 SM4)中的輪函式在效率方面並不是最優的,尤其是與 ARX(例如 ChaCha20 中的 add-rotate-xor)和按位- and-shift 操作(例如 Gimli、Keccak、NORX 中的操作)。

總結:

…我們實際上通過迭代一個簡單的輪函式來建構一個排列,該函式執行混合、非線性和洗牌。Sponges 是通過非排列的轉換建構的,例如 Gluon,但在我看來,這並沒有取得很大的成功。

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