已知 r=( g^k mod p ) mod q ,s=[ k^-1(H(M)+xr)] mod q ,签名=(r,s)
依题可知对多条消息数字签名时k是不变的,
所以 ks1 = H(M1) + xr (mod q) ①
ks2 = H(M2) + xr (mod q) ②
由①得 ks1s2 = s2 · H(M1) + s2 · xr (mod q) ③
由②得 ks1s2
= s1 · H(M2) + s1 · xr
(mod q) ④
由③④得 s2 · H(M1) + s2 · xr = s1 · H(M2) + s1 · xr (mod q)
解得 x = [s2 · H(M1) - s1 · H(M2)] / [s1 · r - s2 · r]
其中s1,s2,r,H(M)都是已知的,从而计算出私钥x。