Elgamal-Signature
ElGamal 簽名方案:為什麼 r 包含在 s 中
在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} $ .