Elgamal-Signature

怎麼找rrr用於具有已知私鑰的 El-Gamal 簽名

  • December 11, 2016

對於公鑰 $ (g,b,P) $ 和私鑰 $ x $ 我有這個…

x = 8437809068483222013573558289468531414326215630180218801941732905
P = 7339893940555892950021117953932742794751344995120378281984000000000001
g = 89
b = 4912876245630500045238873065831524614701581692824065606616840403034906

我正在嘗試找到簽名時使用的隨機數 r

M = 178197212211208201211210146110

其中 (y,s) 是

y = 4888362675268704701803932900979085359299230032137217762234865463825395
s = 2972754454246783222682468852246694620839545754907463463768712881658815

我在這裡使用簽名方案,我想我可以解決 $ r=\frac{M-xy}{s} \mod (P-1) $ 但我不斷得到

r=6586066995309612052451381515420731372587693346972879972770753040391021

但是之後 $ y=g^r \mod P $ 不是真的。


說明表明:

在此處輸入圖像描述

$ r\cdot s\bmod (P-1) = 6586066995309612052451381515420731372587693346972879972770753040391021\cdot 2972754454246783222682468852246694620839545754907463463768712881658815 \bmod 7339893940555892950021117953932742794751344995120378281984000000000000 $

產量

720487199053255869302957380434219754352470619914582568375746711500115,

然而

$ M-x\cdot y\bmod (P-1) = 178197212211208201211210146110-8437809068483222013573558289468531414326215630180218801941732905\cdot 4888362675268704701803932900979085359299230032137217762234865463825395 \bmod 7339893940555892950021117953932742794751344995120378281984000000000000 $

產量

4218349912365743958467337126869664026873136130922995548817354564023635.

你確定你反轉 $ s $ 模組 $ (P-1) $ 正確嗎?

PS:如果您在 6 小時內沒有得到答案,則無需針對同一問題提出新問題。大多數普通使用者不會只看首頁。幾天后,您可以稍微更改一下文本(就像其他人一樣),讓您的問題再次出現在首頁。

你必須觀察給定的值, $ s $ 不是互質的 $ P-1 $ . 因此,您不能直接計算 $ r $ 作為 $ (M-xy)/s \bmod (P-1) $ .

我們有 $ \gcd(s,P-1) = 185 $ . 讓 $ q_1 = (P-1)/185 $ . 然後

$$ r \bmod q_1 = (M-xy)/s \bmod q_1 = 3956222280490813791400244134782922347290756609897677447028095051944 $$ 仍有待計算 $ r \bmod 185 $ . 注意 $ 185 = 5 \times 37 $ . 有一個輕微的並發症,因為 $ \gcd(q_1,185) = 5 $ . 定義 $ q_2 = 37 $ 和 $ q_3= 5 $ . 注意 $ P-1 = q_1 \times q_2 \times q_3 $ .

從 $ y = g^r \bmod P $ ,我們得到 $ y^{(P-1)/37} \equiv {g^{((P-1)/37)}}^{r \bmod 37} \pmod P $ . 通過蠻力,我們發現 $ r \bmod 37= 5 $ .

中國剩餘隻允許一個人獲得 $ r \bmod q_1 q_2 $ (自從 $ \gcd(q_1,q_3) \neq 1 $ )。我們得到

$$ r \equiv 718108065145388506225887396409320059133908107486475023802228095051944\pmod {q_1q_2} $$


**編輯:**請檢查您的練習的正確性。另請注意 $ P-1 $ 光滑:

$$ P-1 = 2^{49} \times 3^{23} \times 5^{12} \times 7^9 \times 11^4 \times 13^5 \times 17^3 \times 19^2 \times 23^3 \times 29 \times 31 \times 37 \times 41 \times 43 \times 47 $$ 因此,您可以使用 Poligh-Hellman 算法來計算 $ r $ 從 $ y = g^r \bmod P $ .

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