[INSHack2017]rsa16m
上来看一眼就是几百万位的 n 和 c ,很吓人,但是想一想RSA的基本公式
暂且不说能不能解出来 d ,n 咋分解,几百万位的十六进制,怎么可能分解的出来呢。
现在的局势很清晰了
d 的值很小,可能只有几。
d 压根没用到,d = 1,直接开方即可。
既然只有这两种,那么我们直接从最简单的开始尝试,假设n根本没用到。
import gmpy2
from Crypto.Util.number import *
f = open("rsa_16m","r")
n = f.readline()[4:]
c = f.readline()[4:]
e = f.readline()[4:]
f.close()
c = int(c,16)
e = int(e,16)
m = gmpy2.iroot(c,e)
m = m[0]
print(long_to_bytes(m))
# b'INSA{(I)NSA_W0uld_bE_pr0uD}'
哦吼,小伙纸,被我找到了吧。