2022第五空间
2022第五空间网络安全大赛
5_vgcd
1 |
|
t1
和t2
由若干个$K*v$组成。(这个不应该是$v*K$吗?)
$$
\begin{align}
K*v &=
\left[
\begin{matrix}
k_{11} & k_{12} & k_{13}\\
k_{21} & k_{22} & k_{23}\\
k_{31} & k_{32} & k_{33}
\end{matrix}
\right]
*
\left[
\begin{matrix}
(pp*r_{226}+r_6) & (pp*rr_{226}+rr_6) & (pp*rrr_{226}+rrr_6)
\end{matrix}
\right]
\\&=
\left[
\begin{matrix}
a_1*pp+b_1 & a_2*pp+b_2 & a_3*pp+b_3
\end{matrix}
\right]
\end{align}
$$
其中$a_i,b_i$表示如下
$$
\begin{align}
a_i &= k_{1i}*r_{226}+k_{2i}*rr_{226}+k_{3i}*rrr_{226}\\
b_i &= k_{1i}*r_{6}+k_{2i}*rr_{6}+k_{3i}*rrr_{6}
\end{align}
$$
有这么多形如$a*pp+b$,可以通过消去$b$然后求公约数得到$pp$,最后$coppersmith$已知高位求低位求解$p$。
这里需要用到生日攻击,可以简单理解为在这么多数中,有很大概率存在相同$r_6,r_6,r’’_6$,因此可以循环遍历一下所有的$K*v$。
算一下大致的概率。$r_6,r_6,r’’_6$的组合有$2^{18}$种可能,所给数据有$3072$个,套用公式得存在相同的概率近似$100\%$。
代码如下
1 |
|
参考:
2022第五空间
http://example.com/2022/10/03/CTF/2022第五空间/