Cyber Santa is Coming to Town
時間ができたので一部だけですが解いてみました!!
Common Mistake
2つの$n,e,ct$の組み合わせが渡されますが、ここで$n$の値が一致していることに気が付きます。
よって同じ素数を用いて暗合していることが確認でき
\begin{align}
\ &\left\{
\begin{array}{l}
ct[0]=m^{e[0]} \ mod \ n\\
ct[1]=m^{e[1]} \ mod \ n
\end{array}
\right. \\
\end{align}
となり
\frac{ct[0]^a}{ct[1]^b}=\frac{m^{a*e[0]}}{m^{b*e[1]}} \ mod \ n\\
$ae[0]-be[1] \equiv 1 $となるものを探せば$ae[0]-be[1] \equiv \ mod \ \varphi(n) $であることもわかります。よって探してみると$a=-2,b=3745$より$m$が求まりflagは
HTB{c0mm0n_m0d_4774ck_15_4n07h3r_cl4ss1c}
となる
XMAS Spirit
プログラムを見る限りpdfファイルをバイト列で読み込んで$a*dt[0]+b=ct[0]$という形で暗号化されています。
ここでLLLできそうな予感もしますが、一旦読込先がpdfファイルなことを考慮すると$dt[0]-dt[4]$は$37, 80, 68, 70$であることがわかります。
これを用いると
\begin{align}
\ &\left\{
\begin{array}{l}
a*dt[0]+b=ct[0] \ mod \ 256\\
a*dt[1]+b=ct[1] \ mod \ 256
\end{array}
\right. \\
\Leftrightarrow &\left\{
\begin{array}{l}
a*(dt[0]-dt[1])=ct[0]-ct[1] \ mod \ 256 \\
b*(dt[1]-dt[0])=ct[0]*dt[1]-ct[1]*dt[0] \ mod \ 256
\end{array}
\right.\\
\Leftrightarrow &\left\{
\begin{array}{l}
a=(ct[0]-ct[1])*(dt[0]-dt[1])^{-1} \ mod \ 256 \\
b=(ct[0]*dt[1]-ct[1]*dt[0])*(dt[1]-dt[0])^{-1} \ mod \ 256
\end{array}
\right.\\
\end{align}
これを求めて$a=169,b=160$になります。
よって、$dt[i]=(ct[i]-b)*a^{-1}$を求めればflagが出ます。
HTB{4ff1n3_c1ph3r_15_51mpl3_m47h5}