第二届长城杯
known_phi
1 |
|
个人认为题目分为两部分,第一部分通过n和phi分解n,第二部分则是DSA。
分解n找到了相应的论文和代码(3-540-36492-7_25.pdf (springer.com))
DSA部分比较简单,是私钥k复用问题,有如下式子
$$
\begin{cases}
s_1=(hm_1+x*r_1)k^{-1}\quad mod\ q\\
s_2=(hm_2+x*r_2)k^{-1}\quad mod\ q
\end{cases}
$$
两式相乘有
$$
s_1*(hm_2+x*r_2)k^{-1}≡s_2*(hm_1+x*r_1)k^{-1}\quad mod\ q
$$
化简
$$
x≡(hm_1*s_2-hm_2*s_1)*(r_2*s_1-r_1*s_2)^{-1}\quad mod\ q
$$
1 |
|
RSA
1 |
|
有等式如下
$$
\begin{cases}
e_1*d_1 ≡ 1\quad mod\ phi\\
e_2*d_2 ≡ 1\quad mod\ phi\\
d_1-d_2=l_0
\end{cases}
$$
化简有
$$
e_1*e_2*l_0 ≡ (e_2-e_1)\quad mod\ phi\quad ==>\quad k*phi=e_1*e_2*l_0 - (e_2 - e_1)
$$
在模为k*phi
的域上,有
$$
e_3*d_3’≡1\quad mod\ (k*phi)\
$$
根据RSA的加解密公式推导有
$$
\begin{align}
c &≡ m^{e_3} \\
==>c^{d_3’} &≡ m^{e_3*d_3’}\\
&≡ m^{1+k_1*k*phi}\\
&≡ m^{1+K*phi}\\
&= m \quad mod\ (N)
\end{align}
$$
代码如下
1 |
|
第二届长城杯
http://example.com/2022/09/12/CTF/第二届长城杯/