LOADING

Signin

网络安全

Signin

from Crypto.Util.number import*
from secret import flag


m = bytes_to_long(flag)
p = getPrime(1024)
q = getPrime(1024)
n = p*q
e = 65537
c = pow(m,e,n)
pq = (p-1)*(q-2)
qp = (q-1)*(p-2)
p_q = p + q

print(f"{c = }")
print(f"{pq = }")
print(f"{qp = }")
print(f"{n = }")
print(f"{p_q = }")
'''
c = 
pq = 
qp = 
n = 
p_q = 
'''

小学数学 已知

  • p + q
  • (p-1)*(q-2)
  • (q-1)*(p-2)

可得p,q

# p-q
= pq-qp
# p+q
= p_q
p = (差 + 和)//2
q =- p
e = 65537
from gmpy2 import *
from Crypto.Util.number import *
phi = (p - 1) * (q - 1)
d = invert(e, phi)
M = pow(c, d, n)
print(long_to_bytes(M))