Problem: [GDOUCTF 2023]easy_pyc
思路
- 解题大致思路
EXP
- 具体攻击代码
from Crypto.Util.number import long_to_bytes
# 已知参数
c = 21812306272967730147845738706030680242331165675981994115949615844012361551700506020612445969402056602389411244248745130826969002161047213415607978602535719418999319494842608994479027676787499235277662156571617957720793923983451286566879014875330118016740706736991981355194846993958405444652507211603807160958
e = 306645347334662727966285107364291531289
p = 8228801334907462855397256098699556584084854642543205682719705217859576250443629616812386484797164506834582095674143447181804355696220642775619711451990971
q = 7021910101974335245794950722131367118195509913680915814438898999848788125908122655583911434165700354149914056221915541094395668546921268189522005629523759
# 计算 n 和 phi
n = p * q
phi = (p - 1) * (q - 1)
# 计算私钥 d
from sympy import mod_inverse
d = mod_inverse(e, phi)
# 解密消息
m = pow(c, d, n)
# 将 m 转换为字节并打印 flag
flag = long_to_bytes(m)
print("Decrypted Flag:", flag.decode())
总结
- 对该题的考点总结
