ReallynotSecureAlgorithm

プログラム script.py とその出力 out.txt が与えられた。
script.py は、以下の処理をするものだった。

  1. flag.txt の内容を読み込み、それをもとに整数mを生成する
  2. ランダムな128ビットの素数を2個生成し、p, qとする
  3. mの65537乗をp*qで割った余りを計算し、ctとする
  4. p, q, 65537, ctを出力する

out.txt を入力として以下のプログラムでRSA暗号の復号操作をすることで、flagが得られた。

A program script.py and its output out.txt were given.
What script.py does is:

  1. Read the contents of flag.txt and generate an integer m based on that.
  2. Generate two random 128-bit prime numbers p, q.
  3. Calculate m to the 65537th power modulo p*q and name it ct.
  4. Output p, q, 65537, ct.

Using out.txt as an input, I obtained the flag by performing decryption of RSA cipher via this program:

solve.py

flag{n0t_to0_h4rd_rIt3_19290453}

PBjar CTF