Elgamal-Signature

ElGamal 簽名方案:為什麼 r 包含在 s 中

  • August 20, 2014

ElGamal 簽名方案中,我們計算(散列)消息的簽名 $ m $ 作為

$ r \equiv_p g^k $ ,

$ s \equiv_{p-1} (m - xr) k^{-1} $

並通過檢查來驗證它

$ g^m \equiv_p y^r r^s $ .

這裡 $ r $ 是一個群元素,在某些情況下用作指數。這不是問題,只要組元素只是自然數,但是使用不同的組,這會導致複雜性(例如在 EC-DSA 中,我們必須只使用一個座標 $ r $ 當它應該是一個指數時)。

儘管這當然不是一個大問題,但我的問題是:為什麼甚至有必要包括 $ r $ 作為指數 $ s $ ? 會改變計算 $ s $ 只是

$ s \equiv_{p-1} (m - x) k^{-1} $

和驗證條件

$ g^m \equiv_p y r^s $

在某種程度上不安全?到目前為止,我找不到偽造簽名或提取的方法 $ x $ 或者 $ k $ 從這個修改後的方案。

通過您提議的 ElGamal 簽名方案修改,您可以為任意(散列)消息生成偽造品 $ m $ .

通過查看驗證方程

$$ g^m = yr^s $$你只需要設置 $ r $ 到 $ r=(g^my^{-1})^{s^{-1}} $ (只需重新排列驗證方程)您可以為任何 $ s $ 從 $ \mathbb{Z}{p-1}^* $ ,即每個 $ s $ 有一個乘法逆 $ \mathbb{Z}{p-1} $ .

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