[RoarCTF2019]RSA

打开是一个.txt文件。

分析可知,先分解看一下能不能分出N,可以,所以就知道了p,q,欧拉函数,但是没给E,爆破一下吧

上才艺

import sympy
from gmpy2 import *
from Crypto.Util.number import long_to_bytes

n=117930806043507374325982291823027285148807239117987369609583515353889814856088099671454394340816761242974462268435911765045576377767711593100416932019831889059333166946263184861287975722954992219766493089630810876984781113645362450398009234556085330943125568377741065242183073882558834603430862598066786475299918395341014877416901185392905676043795425126968745185649565106322336954427505104906770493155723995382318346714944184577894150229037758434597242564815299174950147754426950251419204917376517360505024549691723683358170823416757973059354784142601436519500811159036795034676360028928301979780528294114933347127
c=75186169332770398011618387278278132278790899252552138882799075432380607926731546030253687400295924217369315868839672386616943227315064045460865365296683033483186291570240079759200380250862319608787524113935879604728967164231477966741805601564635364322718438051545168770427777047667842857584346659655292503627681225184738425341914431617445650748762586933275572200060984083928949491872172407901109108320296584642767891651443970128071209300594102046815811229697489154488296004024544579726109722995921635677648742873800015194793794148142345457719541079982444120634269256199324030425798299206933898605904024426172410823
p=139916095583110895133596833227506693679306709873174024876891023355860781981175916446323044732913066880786918629089023499311703408489151181886568535621008644997971982182426706592551291084007983387911006261442519635405457077292515085160744169867410973960652081452455371451222265819051559818441257438021073941183
q=842868045681390934539739959201847552284980179958879667933078453950968566151662147267006293571765463137270594151138695778986165111380428806545593588078365331313084230014618714412959584843421586674162688321942889369912392031882620994944241987153078156389470370195514285850736541078623854327959382156753458569
phi=(p-1)*(q-1)

e=2
str1="RoarCTF{"
while(e<100000):
 e=next_prime(e)
 try:
  d=invert(e,phi)
  m=pow(c,d,n)
 except:
  print (e)
 else:
  d=invert(e,phi)
  m=pow(c,d,n)
  str2=str(long_to_bytes(m))
  if str1 in str2:
   print (long_to_bytes(m))

  得到flag为flag{wm-l1l1ll1l1l1l111ll}

posted @ 2020-12-13 23:00  浩琦很好奇  阅读(600)  评论(0编辑  收藏  举报