from Crypto.Util.number import * import libnum import os flag=b"qsnctf{xxx}" p = getPrime(1024) q = getPrime(1024) n = p*q g = n+1 m = bytes_to_long(flag+os.urandom(80)) assert m < n c=(pow(g,p,n*n)*pow(m,n,n*n))%(n*n) print("c="+str(c)) print("n="+str(n)) print("hint="+str(pow(m,n,n*n))) ''' c=66678676807819999233055752233012645216556361263550510641458138760242990544877153301370374578704777931232476338305467217987404530347735695779503178036421182225797342139667414033819549735400631841417480498297529049064697503015021854485122852781023739931626312344890150603219610361949715257299757876396121457922011100238200914884518816724570032960792393893693987273449132986383967737661332184245494679249768271219448311009053358014235996071771678629824838455550656184325379070682831449751581704335301991422979670164462996326062181802199457920952884644486857703150690485372324099739728933019077124979301630915161677329073838717624281912453064292050645599587914370539926494875189042257226901095428367557104603484361484689870742875976031491361356906065563995295161550794376980645647256180808032818970477137116813399005614665378240469106976942172004532499389709072629630182831176447909810194979470492503457826783215378012716067168240899950280919812526665449548435470763153364775037634608636124823419727610771754135029066786995448023344714433006189682986009642250012827276182380723006889497445191429315726319860246957758947479783856107618504793372727551573516430116044526115831580866712303531100607806086948676318637464591882028026021699894 n=9708240910053370327647790439860059395697433308093756873635851265001056001241814559377845391403869007592553831023273503888032698234970709669543334556062588508047041830328271866526501975789023731681405580485272835157565865576389655812958754783970253647199760653920473402313707835141798861179370897475214985631140985268832048996867332230888259485268845102594348768694808862929202235718025035375364452457226504332282661544721948483958933549896194659715546983203083340635396852388654958534328589664265477197863480536895984751045258639005062576375047487801340353952725037332762579311892566309845803551721154611198850694889 hint=15613233182045834454837091537129559572463357409242991059275865756502677501292019990524617846342883945144948214709829276773559580662192051939293618469760595488262754840024570932399632204943961192737927090713331302892637093802186982539183237812760391107406086815359176310279873801797511686704386149527196425669143630969466244510968774100698711337342428981824350069495546649268307502745849374929178078452353412848200254646407747588799587978115886917795519466200738109159358526401995002919562778567619465054519031416581299479880372007116699496037030278711691766488713289936605675886647939901724010509966626186564475727816841671677455616145094861581303177900290005836663230730119258137618704988268602601305882212617818941058581025292572301756455201550159396592023107862007183096426767089373770530183377980160792911531980889750702258884476031108148900413001574721663391170784476398364342546870723694831011684688417779531314862780502223430368818401117993567944287408577002359641420517197280983488244636652951398460440637437535272791206065981999378985299071681061261648137126049153466892870715040486561538144454764854960492244624559313669917618145125499556864411590579608146139952070851086592303928435316413295184569669393829843926156275495 '''