0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Cyber Santa is Coming to Town Writeup

Posted at

 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}

image.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?