Elgamal-Signature
El Gamal 簽名方案變體
假設我們有以下 El Gamal 數字簽名方案變體: 我們固定一個素數 $ p $ 和一個發電機 $ g $ 該組的 $ Z_p^* $ . 我們選擇 $ x \in Z_{p-1}^* $ ,這將是我們的密鑰,我們計算 $ y = g^x \pmod{p} $ ,這將是我們的公鑰。對於簽名算法,我們選擇一個隨機變數 $ k \in Z_p^* $ ,然後計算
$$ r = g^k \pmod{p} $$ $$ s = (m-kr)*x^{-1} \pmod{p-1} $$ 和輸出 $ (r,s) $ . 為了驗證簽名,很容易看出以下內容應該成立:
$$ y^sr^r \equiv g^m \pmod{p} $$ 現在,據我所知,簽名算法比原始 El Gamal 方案中的算法更快,因為我們計算了 $ x $ 一勞永逸,而在初始方案中,我們必須計算新隨機數的倒數 $ k $ 每次我們想簽署一條消息。 然而,安全呢?我們是否可以說新方案提供了與最初方案相同的安全性,或者它可以以某種方式被擊敗?
首先,你不應該使用 $ p-1 $ 作為模數。取而代之的是,使用一個大的素數。 $ q $ 的 $ p-1 $ ,就像在 DSA 算法中所做的那樣。
您描述的 DSA 變體以橢圓曲線版本的形式存在。它被稱為 EC-GDSA(橢圓曲線德國數字簽名算法)。此處描述:https ://www.bsi.bund.de/SharedDocs/Downloads/EN/BSI/Publications/TechGuidelines/TR03111/BSI-TR-03111_pdf.pdf?__blob=publicationFile