攻防世界baigeiRSA
打开题目附件
import libnum
from Crypto.Util import number
from secret import flag
size = 128
e = 65537
p = number.getPrime(size)
q = number.getPrime(size)
n = p*q
m = libnum.s2n(flag)
c = pow(m, e, n)
print('n = %d' % n)
print('c = %d' % c)
n = 88503001447845031603457048661635807319447136634748350130947825183012205093541
c = 40876621398366534035989065383910105526025410999058860023908252093679681817257
首先用yafu分解n
得到p和q然后直接上脚本
import gmpy2
import libnum
from Crypto.Util.number import long_to_bytes
e = 65537
n = 88503001447845031603457048661635807319447136634748350130947825183012205093541
c = 40876621398366534035989065383910105526025410999058860023908252093679681817257
q = 322368694010594584041053487661458382819
p = 274539690398523616505159415195049044439
a = (p-1)*(q-1)
d = gmpy2.invert(e,a)
m = pow(c,d,n)
print(long_to_bytes(m))
运行得到HSCTF{@Zh3n_Ba1_G3i!@}