基于格的通用私钥攻击

基于格的通用私钥攻击(RSA用了同一个d)

假设现在有r组n,e,他们的私钥均为d,则有:

e1*d = k1*phi(N1) + 1

e2*d = k2*phi(N2) + 1

. . .

*erd = kr*phi(N3) + 1

此处默认(N1 < N2 < … < Nr < 2Nr

令 M = [Nr1/2 ]

phi(Nr )= Ni - si 且ki < d (i = 1,2,…,r)

则有:ei*d - Ni*ki = 1 - ki*si

可以列出下列等式:

dM = dM

e1*d - N1*k1 = 1 - k1*s1

e2*d - N2*k2 = 1 - k2*s2

. . .

er*d - Nr*kr = 1 - kr*sr

可以构造
$$
x_r*B_r = v_r\
x_r = (d,k_1,k_2,…,k_r)
$$

$$
B_r =
\begin{bmatrix}
{M}&{e_1}&{\cdots}&{e_r}\
{0}&{-N_1}&{\cdots}&{0}\
{\vdots}&{\vdots}&{\ddots}&{\vdots}\
{0}&{0}&{\cdots}&{-N_r}\
\end{bmatrix}\
vr = (dM,1-k_1s_1,…,1-k_rs_r)
$$
而后对Br 使用LLL算法得到向量b,最后
$$
d = \frac{|b|}{M}
$$


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!