Rsa

RSA 中 MGF1 的首選 SHA-2 雜湊算法

  • May 25, 2019

如果我們將 SHA-256 或 SHA-512 用於在 OAEP 加密方案和 PSS 簽名方案中生成遮罩/填充的遮罩生成函式 MGF1,是否會對安全性和效率產生影響?

許多實現似乎也支持 MGF1 的 SHA-224 和 SHA-384。將這些截斷的雜湊函式用於需要生成特定大小的遮罩(接近 RSA 的密鑰大小的大小)的東西是否有意義?或者這只會增加不必要的成本?

在我看來,僅由於輸出大小,SHA-512 會更有效。但是,大多數實現似乎預設使用 SHA-1、SHA-256 或與用於散列 PSS 數據的相同散列。

由於輸入大小是固定的,長度擴展攻擊無關緊要,因此任何 SHA-2 函式都可以通過 MGF1 合理地實現 OAEP 或 PSS 假設的隨機預言模型——即使 SHA-1 的預設值也適用於 MGF1。

顯然,使用 SHA-224 或 SHA-384 比使用 SHA-256 或 SHA-512 花費略高,因為 SHA-224 和 SHA-384 是 SHA-256 和 SHA-512 的有效截斷:獲得相同的數量輸出為(例如)十二次 SHA-384 呼叫,每次呼叫一次 SHA-512 計算,您只需支付九次 SHA-512 計算的費用。因此,截斷選項不會提供任何好處。當然,SHA-512 在具有 64 位加法器的 CPU 上通常比 SHA-256 更快。

話雖如此,很難想像這會顯著影響安全性性能,因為無論如何您都將進行 2048 位模冪運算,這將是成本的大部分——但是,當然,您在在您的應用程序中進行測量的更好位置!(請務必選擇 $ e = 3 $ 以盡量減少求冪所花費的時間。)

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