Public-Key

可以在加密和簽名中使用相同的隨機數嗎?

  • March 12, 2015

在幾種公鑰算法中,執行算法的人必須生成一個隨機數(與密鑰分開)。對於加密和簽名,這個隨機數可以相同嗎?例如,如果我使用 ElGamal 加密消息並使用 DSA 簽名,我可以使用創建 DSA 簽名的隨機數作為 ElGamal 的隨機輸入嗎?

一般來說,你可以這樣做,但你不應該這樣做。當兩者都使用隨機數時,很有可能執行特定的計算(如果 ElGamal / DSA 可能,我將把它留給理論上更傾向於創建展示)。另一個原因是,如果知道單個秘密,那麼兩個密鑰/算法都會受到損害。如果協議的一部分依賴於另一部分,那麼創建安全分析或證明肯定會更加困難。

但是,您可以使用隨機數作為 DRBG(確定性隨機位生成器)的輸入,並讓它生成更多隨機數據。那麼單獨的值將不會相互依賴(當然,只要隨機位生成器是安全的)。

當基於對稱原語(分組密碼/散列方法)時,與 ElGamal 或 DSA 相比,DRBG 的性能應該更好,因此性能下降應該不會那麼大。

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