共模攻击
直接脚本即可
import libnum
import gmpy2
import random
random.seed(123456)
e1 = random.randint(100000000, 999999999)
print(e1)
e2 = 65537
n = 7265521127830448713067411832186939510560957540642195787738901620268897564963900603849624938868472135068795683478994264434459545615489055678687748127470957
c1=3315026215410356401822612597933850774333471554653501609476726308255829187036771889305156951657972976515685121382853979526632479380900600042319433533497363
c2=1188105647021006315444157379624581671965264301631019818847700108837497109352704297426176854648450245702004723738154094931880004264638539450721642553435120
# s1=gmpy2.invert(e1,e2)
# s2=gmpy2.invert(e2,e1)
#使用拓展的欧几里得算法计算出s1,s2的数值
r, s1, s2 = gmpy2.gcdext(e1, e2)
#根据推导计算出明文m
m = (pow(c1, s1, n) * pow(c2, s2, n)) % n
#计算16进制flag
#rint(hex(m))
#转换为字符串的flag
print(libnum.n2s(int(m)))
这里使用的是python3.10的环境