Public-Key
可以在加密和簽名中使用相同的隨機數嗎?
在幾種公鑰算法中,執行算法的人必須生成一個隨機數(與密鑰分開)。對於加密和簽名,這個隨機數可以相同嗎?例如,如果我使用 ElGamal 加密消息並使用 DSA 簽名,我可以使用創建 DSA 簽名的隨機數作為 ElGamal 的隨機輸入嗎?
一般來說,你可以這樣做,但你不應該這樣做。當兩者都使用隨機數時,很有可能執行特定的計算(如果 ElGamal / DSA 可能,我將把它留給理論上更傾向於創建展示)。另一個原因是,如果知道單個秘密,那麼兩個密鑰/算法都會受到損害。如果協議的一部分依賴於另一部分,那麼創建安全分析或證明肯定會更加困難。
但是,您可以使用隨機數作為 DRBG(確定性隨機位生成器)的輸入,並讓它生成更多隨機數據。那麼單獨的值將不會相互依賴(當然,只要隨機位生成器是安全的)。
當基於對稱原語(分組密碼/散列方法)時,與 ElGamal 或 DSA 相比,DRBG 的性能應該更好,因此性能下降應該不會那麼大。