题目
但凡经验充足,也不至于当时看不出是rsa
这里给出多组n,判断是否属于模不互素,脚本底子差的我只能一个一个去试了,最后发现是Alice.txt的第二句与bob.txt的第二句存在gcd(最大公约数),这个值也就是p
import gmpy2
a=int('',16)
b=int('',16)
p = gmpy2.gcd(a,b)
print(p)
p解出来了,那么n又该如何判断,根据rsa的安全性,|p-q|越大越安全,因此n就是bob.txt的第二句
现在,n,p,q都有了,e因为题目没给,那就试试常用的65537,c的话,这里我也不知道该怎么去判断,以我的理解就是,现在只剩下两串字符没用了,应该就是其中一个,那就一个一个试呗,p,q,e,c,都知道了,直接上脚本:
from Crypto.Util.number import *
import gmpy2 as gp
import binascii
p =
q =
e =
c =
n = p*q
phi = (p-1)*(q-1)
d = gp.invert(e,phi)
m = pow(c,d,n)
print(m)
print(bytes.fromhex(hex(m)[2:]))
结果如下:
成功拿到flag!!