Hash

具有可變長度雜湊函式的 OAEP 安全性

  • May 14, 2022

我正在實現一個愛好密碼系統,以增加我對該主題的了解,我想知道如果可變長度雜湊函式(特別是 SHAKE256)用於 OAEP 構造是否仍然足以作為全有或全無變換這 $ G $ 和 $ H $ 隨機預言機。

我已經找到了一篇論文,表明 OAEP 可以作為全有或全無的轉換,但我想使用 SHAKE256 作為雜湊函式,因為它允許任意長度的消息。

我目前的實現在這裡。我將消息填充到至少 32 個字節,然後我的 $ k0 $ 長度,或添加的附加資訊的長度,是另外 32 個字節。

我想知道 SHAKE256 的這種使用在理論上是否安全,或者在 OAEP 中使用可變輸出雜湊函式是否存在問題。我不關心旁道攻擊,這是一個純粹的教育實施。

請注意,如果 $ n < m $ , 然後 $ \operatorname{SHAKE256-}!n(x) $ 是前綴 $ \operatorname{SHAKE256-}!m(x) $ ,所以這兩個函式並不是像通常的 OAEP 定理所假設的那樣真正獨立的隨機預言。

如果你設置 $ G(x) = \operatorname{SHAKE256}(0 \mathbin| x) $ 和 $ H(s) = \operatorname{SHAKE256}(1 \mathbin| s) $ ,這應該足以(推測地)滿足定理的假設,而不需要額外的分析來研究輸入之間碰撞的可能性 $ G $ 和 $ H $ .

或者,如果輸入到 $ G $ 和 $ H $ 保證在您的應用程序中具有不同的長度,然後 $ G(x) = \operatorname{SHAKE256}(x) $ 和 $ H(s) = \operatorname{SHAKE256}(s) $ 也應該工作。但是,如果您始終使用唯一前綴(無論是 0 位與1 位,還是字元串G oracle H oracle.),它不會受到傷害,並且避免錯誤可能更安全。

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