(害,还是太菜了,上去秒了一道题之后就动不了了,今晚做个记录,一点点的往回拾起吧)
# from Crypto.Util.number import getPrime, bytes_to_long
# import math
#
# FLAG = b'**************'
#
#
# def generate_parameters(bit_length=512):
# p = getPrime(bit_length)
# q = getPrime(bit_length)
# n = p * q
# e = 65537
# phi = (p - 1) * (q - 1)
# d = pow(e, -1, phi)
# s = p ** 4 + q ** 4
# return n, e, d, s, p, q
#
#
# def main():
# n, e, d, s, p, q = generate_parameters()
# c = pow(bytes_to_long(FLAG), e, n)
#
# with open('output.txt', 'w') as f:
# f.write(f"n = {n}\n")
# f.write(f"e = {e}\n")
# f.write(f"c = {c}\n")
# f.write(f"s = {s}\n")
#
# print("[+] Parameters saved to output.txt")
#
#
# if __name__ == "__main__":
# main()
# n = 125997816345753096048865891139073286898143461169514858050232837657906289840897974068391106608902082960171083817785532702158298589600947834699494234633846206712414663927142998976208173208829799860130354978308649020815886262453865196867390105038666506017720712272359417586671917060323891124382072599746305448903
# e = 65537
# c = 16076213508704830809521504161524867240789661063230251272973700316524961511842110066547743812160813341691286895800830395413052502516451815705610447484880112548934311914559776633140762863945819054432492392315491109745915225117227073045171062365772401296382778452901831550773993089344837645958797206220200272941
# s = 35935569267272146368441512592153486419244649035623643902985220815940198358146024590300394059909370115858091217597774010493938674472746828352595432824315405933241792789402041405932624651226442192749572918686958461029988244396875361295785103356745756304497466567342796329331150560777052588294638069488836419744297241409127729615544668547101580333420563318486256358906310909703237944327684178950282413703357020770127158209107658407007489563388980582632159120621869165333921661377997970334407786581024278698231418756106787058054355713472306409772260619117725561889350862414726861327985706773512963177174611689685575805282
zip里就这些东西,然后我把他们都放到.py里边了,要原来的文件的可以上网找找
这道题我也没想到这么简单,我就按我的做题思路:先去factordb里分解,如果成了就结束了这道题;如果没有成功,那么再去看题想办法
然后这道题就让我分解了!!!然后就根据我的思路来,直接解就完了。
(最后解完之后,看了他还给了s这个条件,其实没有用哈)
from Cryptodome.Util.number import long_to_bytes
from gmpy2 import gmpy2n = 125997816345753096048865891139073286898143461169514858050232837657906289840897974068391106608902082960171083817785532702158298589600947834699494234633846206712414663927142998976208173208829799860130354978308649020815886262453865196867390105038666506017720712272359417586671917060323891124382072599746305448903
e = 65537
c = 16076213508704830809521504161524867240789661063230251272973700316524961511842110066547743812160813341691286895800830395413052502516451815705610447484880112548934311914559776633140762863945819054432492392315491109745915225117227073045171062365772401296382778452901831550773993089344837645958797206220200272941
s = 35935569267272146368441512592153486419244649035623643902985220815940198358146024590300394059909370115858091217597774010493938674472746828352595432824315405933241792789402041405932624651226442192749572918686958461029988244396875361295785103356745756304497466567342796329331150560777052588294638069488836419744297241409127729615544668547101580333420563318486256358906310909703237944327684178950282413703357020770127158209107658407007489563388980582632159120621869165333921661377997970334407786581024278698231418756106787058054355713472306409772260619117725561889350862414726861327985706773512963177174611689685575805282
p=9886283652121924227364367891763650443585646023924602862402832944457976031272516261452668401020850156092802805016302198750132659632249261237412357024908843
q=12744709820126371501672538820972733986675228838744099116170499394098621931788837908787562175058998307224041741444921422195431949471972242197577242845982421
phi = (p-1)*(q-1)
d = gmpy2.invert(e,phi)
m = gmpy2.powmod(c,d,n)
flag1 = long_to_bytes(m)#正常RSA解法
print(flag)
palu{This_is_a_fake_flag_change_it_for_real_use}