e^d % phi =1
d =pow(e,-1, phi)
d = gmpy2.invert(e,phi)
m=c^d % n
m =pow(c,d,n)
c=m^e % n
c =pow(m,e,n)
加密
from Crypto.Util.number import getPrime, bytes_to_long
defRSAEnc():
p = getPrime(512)
q = getPrime(512)
n = p * q
e =0x10001
flag =b"flag{this_is_a_real_flag}"
m = bytes_to_long(flag)
c =pow(m, e, n)return n, e, c, p, q
n, e, c, p, q = RSAEnc()print(f"n = {n}\ne = {e}\nc = {c}\np = {p}\nq = {q}")'''
n = 87462856400300005807532929502465255372771180254467579879222779394499715828082888134676681185920001266873249220248399230051893090914884873024288975576421122383401284103643422557123057963265877048737312125727553683156345823197412043193302924073492338548835268923314192114199491844497187416638061901836664007907
e = 65537
c = 37053863689515056106825068984635342875688264801274851772772740026293191761284483878804434205848579371278765818224870666156380550252351027631098947175850382534154380074131509303710615257498850242882346259193648386930546232650151389630191897785420927110378517500366947241599894433066863144531322207753301801423
p = 7476368912005014620727644607969876059577090651259047791892628709463149012347382081992471715567339123664010051674140199294850244179639632765725169164284627
q = 11698574191524772352607019282562105920451262435826610724676876008788513674573458855801965986248121863541160053707226749506920325922307948047817610837406641
'''
解密
from Crypto.Util.number import long_to_bytes
defRSADec(n, e, c, p, q):
phi =(p-1)*(q-1)
d =pow(e,-1, phi)
m =pow(c, d, n)return long_to_bytes(m)#n = p*qdefRSADec2(e, c, p, q):
n = p*q
phi =(p-1)*(q-1)
d =pow(e,-1, phi)
m =pow(c, d, n)return long_to_bytes(m)
n =87462856400300005807532929502465255372771180254467579879222779394499715828082888134676681185920001266873249220248399230051893090914884873024288975576421122383401284103643422557123057963265877048737312125727553683156345823197412043193302924073492338548835268923314192114199491844497187416638061901836664007907
e =65537
c =37053863689515056106825068984635342875688264801274851772772740026293191761284483878804434205848579371278765818224870666156380550252351027631098947175850382534154380074131509303710615257498850242882346259193648386930546232650151389630191897785420927110378517500366947241599894433066863144531322207753301801423
p =7476368912005014620727644607969876059577090651259047791892628709463149012347382081992471715567339123664010051674140199294850244179639632765725169164284627
q =11698574191524772352607019282562105920451262435826610724676876008788513674573458855801965986248121863541160053707226749506920325922307948047817610837406641
m=RSADec(n,e, c, p, q)print(m)
m2=RSADec2(e, c, p, q)print(m2)'''
b'flag{this_is_a_real_flag}'
'''