共模攻击
直接脚本即可
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的环境