Not_Baby

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

  1. flag.txt の内容を読み込み、それをもとに整数mを生成する
  2. nums.txt から3個の整数a, b, cを読み込む
  3. n=a**3+b**3-34*c**3とする
  4. mの65537乗をnで割った余りを計算し、ctとする
  5. n, 65537, ctを出力する

nの値をfactordb.comに入れると、以下の結果が得られた。

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. Read three integers a, b, c from nums.txt.
  3. Calculate n=a**3+b**3-34*c**3
  4. Calculate m to the 65537th power modulo n and name it ct.
  5. Output n, 65537, ct.

Putting the value of n to factordb.com resulted in this:

5743627527...64<119> = 2^2 · 73 · 181 · 11411 · 235111 · 4050682353...67<105>

最後の値

I tried to factorize the last value

405068235301607959850203988278514454782583464657297479002456013587769963884971817073346255435009991910967

について Integer factorization calculator で素因数分解を試みた結果、1時間40分くらいで素因数分解に成功した。

得られた素因数を用い、以下のプログラムでflagが得られた。

via Integer factorization calculator. As a result, it succeeded to factorize after about 1 hour and 40 minutes.

I obtained the flag with this program using the prime factors:

solve.py

flag{f4ct0ring_s0000oo00000o00_h4rd}

PBjar CTF