RSA加解密算法以及破解

RSA加解密算法以及破解

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

x = s 2 ∗ H ( M 1 ) − s 1 ∗ H ( M 2 ) s 1 ∗ r − s 2 ∗ r x=\frac{s_2*H(M_1)-s_1*H(M_2)}{s_1*r-s_2*r} x=s1rs2rs2H(M1)s1H(M2)

你可能感兴趣的:(密码学)