SECCON Beginners CTF 2018 - RSA is Power
問題文
N = 97139961312384239075080721131188244842051515305572003521287545456189235939577
E = 65537
C = 77361455127455996572404451221401510145575776233122006907198858022042920987316
writeup
factordbでNを素因数分解する。
factordb.com
pとqがわかったので、CtyptoのCTF過去問からスクリプトを拝借して改造する。
正直、よくわかっていない。。。
import gmpy2 from Crypto.PublicKey import RSA import binascii n = 97139961312384239075080721131188244842051515305572003521287545456189235939577 e = 65537L c = 77361455127455996572404451221401510145575776233122006907198858022042920987316 p = 299681192390656691733849646142066664329 q = 324144336644773773047359441106332937713 d = lambda p, q, e: int(gmpy2.invert(e, (p-1)*(q-1))) key = RSA.construct((n, e, d(p,q,e))) print(hex(key.decrypt(c))) print(binascii.unhexlify(hex(key.decrypt(c))[2:-1]).decode("utf-8"))
実行する。
root@kali:RSA is Power# python try.py 0x63746634627b35696d706c655f7273345f31735f336173795f6630725f757dL ctf4b{5imple_rs4_1s_3asy_f0r_u}
フラグゲット。
ctf4b{5imple_rs4_1s_3asy_f0r_u}