DSA破解密码题

已知 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。







你可能感兴趣的:(DSA破解密码题)