Basic Math

Kita diberikan dua file, yakni chall.py dan output.txt.

chall.py

from Crypto.PublicKey import RSA
from Crypto.Util.number import *
from flag import FLAG
from math import gcd

key = RSA.generate(2048)
p = key.p
q = key.q
n = key.n
e = key.e
phi = (p - 1) * (q - 1)

_ = q * (n - (p + q) + 1)

pt = bytes_to_long(FLAG)
c = pow(pt, e, n)

with open("output.txt", "w") as f:
    f.write(f"c={c}\n")
    f.write(f"n={n}\n")
    f.write(f"_={_}\n")

output.txt

Melihat dari source code, diketahui bahwa _ memiliki faktor q, begitu pula dengan n. Maka dari itu, GCD(_,n) = q. Berikut adalah kode solvernya.

solve.py

Flag: RECURSION{j4ng4n_k3sering4n_b0l0s_j4m_p3l4j4r4n_MTK}

Last updated