n1=9051013965404084482870087864821455535159008696042953021965631089095795348830954383127323853272528967729311045179605407693592665683311660581204886571146327720288455874927281128121117323579691204792399913106627543274457036172455814805715668293705603675386878220947722186914112990452722174363713630297685159669328951520891938403452797650685849523658191947411429068829734053745180460758604283051344339641429819373112365211739216160420494167071996438506850526168389386850499796102003625404245645796271690310748804327
n2=13225948396179603816062046418717214792668512413625091569997524364243995991961018894150059207824093837420451375240550310050209398964506318518991620142575926623780411532257230701985821629425722030608722035570690474171259238153947095310303522831971664666067542649034461621725656234869005501293423975184701929729170077280251436216167293058560030089006140224375425679571181787206982712477261432579537981278055755344573767076951793312062480275004564657590263719816033564139497109942073701755011873153205366238585665743
e = 65537
c = 268065307799668245100155583656026011160002952385077142247208270849202533959057073328593124609246618255434974771312005129546891196910224298782988830299931466177092252318898389606108682805827112298601665236639013976557584096409090034724959181393317682380243407722802135226000120577664046248111234520151522261820924236477640240403636122092626752359753454045971441763375027128396562369686719452592987407716592442173485676980456821015690717339269128488747739318128952772386390939524794974383676486458446499596610588

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
from math import gcd 
from sympy import mod_inverse
n1 = 9051013965404084482870087864821455535159008696042953021965631089095795348830954383127323853272528967729311045179605407693592665683311660581204886571146327720288455874927281128121117323579691204792399913106627543274457036172455814805715668293705603675386878220947722186914112990452722174363713630297685159669328951520891938403452797650685849523658191947411429068829734053745180460758604283051344339641429819373112365211739216160420494167071996438506850526168389386850499796102003625404245645796271690310748804327
n2 = 13225948396179603816062046418717214792668512413625091569997524364243995991961018894150059207824093837420451375240550310050209398964506318518991620142575926623780411532257230701985821629425722030608722035570690474171259238153947095310303522831971664666067542649034461621725656234869005501293423975184701929729170077280251436216167293058560030089006140224375425679571181787206982712477261432579537981278055755344573767076951793312062480275004564657590263719816033564139497109942073701755011873153205366238585665743
c = 268065307799668245100155583656026011160002952385077142247208270849202533959057073328593124609246618255434974771312005129546891196910224298782988830299931466177092252318898389606108682805827112298601665236639013976557584096409090034724959181393317682380243407722802135226000120577664046248111234520151522261820924236477640240403636122092626752359753454045971441763375027128396562369686719452592987407716592442173485676980456821015690717339269128488747739318128952772386390939524794974383676486458446499596610588

e = 65537

p = gcd(n1, n2) # 计算gcd(n1, n2)

if p > 1:
print(f"发现共享素因数 p = {p}")

# 计算另一个素因数
q1 = n1 // p
q2 = n2 // p

# 计算φ(n)
phi_n1 = (p - 1) * (q1 - 1)
phi_n2 = (p - 1) * (q2 - 1)

# 计算私钥d
d1 = mod_inverse(e, phi_n1)
d2 = mod_inverse(e, phi_n2)

# 解密
m1 = pow(c, d1, n1)
m2 = pow(c, d2, n2)

# 转换为ASCII
def num_to_ascii(m):
m_bytes = m.to_bytes((m.bit_length() + 7) // 8, byteorder='big')
return m_bytes.decode('utf-8', errors='ignore')
flag1 = num_to_ascii(m1)
flag2 = num_to_ascii(m2)
print(f"flag1 = {flag1}")
print(f"flag2 = {flag2}")
else:
print("未发现共享素因数,需要其他方法分解模数")

发现共享素因数 p = 1564859779720039565508870182569324208117555667917997801104862601098933699462849007879184203051278194180664616470669559575370868384820368930104560074538872199213236203822337186927275879139590248731148622362880471439310489228147093224418374555428793546002109

flag1 = TZCFlag{I_love_rsa}

flag2 = SN96LdJnS}%? ;Z#:n,zzpQ4`9Jv# a?MZ”HZHj

q审_Pd,=R<w^y(iGma,84>uԌUE!t=턢u’Q9ݩ}g
2.H*~Sm:!eDA