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
| from Crypto.Util.number import inverse, isPrime, long_to_bytes from gmpy2 import*
N = [8321077117329356263954581766837194016859681833859374146551469738742553789565498761528408178000096341991081753628879035591190841107228873036782248755852096597317053559269854941020999105514186022112075838112491499884564745335454966665835001848999256218403570429047541524272647861099813598603292295695775504244505874838019009730562620216, 9663141503982563384103774905603769762205667685102275298721284964403449121449261483138514307090449027807047697811539118959328065885920230514670112839967221129701708335087378871176539521374006686377418843364889059913595942583737991465545688834167085579154677350865488342245644093471665857007588133415608450554035129609049971856915687905, 7080633525505006454857949889380886258474613936169915325357991912983821798902257837234148311383635716165386646093418183743215120431715933036921480432793786600194625124412063608565640368381660643929081066605712749838630092722581230189543696229548387666046034403406721477818265752443487173947232032487026509033018565048660685068628813900, 6348260112940191945095264085450804431350547836448100928568733296493334845533262312663784701113046746633754397388581143523779371919889446537883618910341310362947454041409541741124231406605654693961025815677260091930522280737378333554694234586235628097018111636491016261274584391201625445101930372416766825601778759258114504767453644116, 5453076441876067965962987075376616480678826248967242473452690159966124023105342358461519279607336831463834252487811766366887983597918775466645199024629945952612311092154451713992362747056489054444283302530500475646346968235522866557033556131387030809018889094871163097069588840212411234716020934787724757538389436231926479459435139729, 8539092301764573132139384894241535432591998166686651428176862041680365196821019488767353225937458669267710968146783359781905669306801237140282934737328995064410005908343087032652676207615356474601039341695241288937409773110450995503958663731870314493254162942656333393836208952363635746218345484752702086447693272390570444229475023063, 6519174659211289290465989985638494640591837577268694359892571134942820094011179335155100770258746122812579164176239810640710311061280175847537113068566174335469669480601670136633042879486860594176408555229541384726863069317134887988109513500264430505092783429319336134768414472691544453196941818593187717904852926051114502346647888426, 6961711680362025924587083752271982856615461409839316941574792747717174299272141804413488210456939607971950020060573061131683587521057101549266612028332060247289306929784809695126285828514889617483817766102136513569391338432827451306976412448973958662677599051104723480081915666230391091496248279567627159875132838397868850500912784991, 5464727156582411007360377345208743900616053705663005668786499961992377236151787056734059201141143278419642045996194426551642956434137382420547801325331080754615348522599387497424727626522195285281557448617564720973185851757117201639221059630112719699600469361046245232476531622290326229811709079901764559526124144866364301870192468062] M = N[:] M[0] = 2**334 ''' L = Matrix(ZZ,[ M, [0,N[0],0,0,0,0,0,0,0], [0,0,N[0],0,0,0,0,0,0], [0,0,0,N[0],0,0,0,0,0], [0,0,0,0,N[0],0,0,0,0], [0,0,0,0,0,N[0],0,0,0], [0,0,0,0,0,0,N[0],0,0], [0,0,0,0,0,0,0,N[0],0], [0,0,0,0,0,0,0,0,N[0]], ]) P=L.LLL()[0] ''' e = 0x1337 P = (9198383558649454145266329742592651804417531074705208606546350510907008625231001966812954022871638810611704119348096876032201336180492815698993817487634671245603146146272244377218492738092114522582641697639688837841786461196752729903611725131373737251243910142850547018441698749894323950503164083437568, 104098035638581595369723778375711537486830709046687306114704921816239533823901066113680320504395210089789340199402154288158599251547931748565815387310900885326892681968536308019715590493310968628489043723240348362149053110811668282038727688689374505928586075094912392544924601844136642390813222425809, 1102834391862716869946827309486981604079530638763397950737361315055931768373793498250981455412829162997772327814660070857951309312894092377859437366989526531813223828179941289064128320123411973263239142716310770401174174815638810202859450962632995611863799694649198457635953086959463939627719575381012, 753994729336183961852361196205654448289304004519434287316796470222521627865083763102251102951626213588497716067551706990220346381353586508856365765536744873026409087910505560761761024675350156647185336440841519838638415417607956807382719719007131540587566462617043290548957627028678429439567176392108, -71708524916293121808333775279085691365967960919759775147913431698619192878017855212957980666806523648996086462040461850162074426038300683815953081712090679643498963889027587516137252350693864785830427057530016147319149926968346502476418390469709928547235995568090970863872980806983047965126211827423, -1031944069356990593465028628753183012193322903943969718261363844383250576817774501764794204795605186147444430878687291921605373814843580367545369212301939780213941922732623750390324618190490307261983930269957183493345355165692496865409582827167136484989492550271511982793001065621702409883049993239817, -1960547215826715829528682564527292643865866291188443591530567078511330848396016229325567425830200701694380104625201031396661972809519249893882531604307311435727272867042265335921514343841646164420771255718802644103398765492144311189111408831887333483581772033575516358581006829893858562536866631199694, -1402335387560657499009395932180425308829816453818907356038567333645529829409747360872073366794556975860774421104509218449157997408918101385420918273310166387609041772539330599075043569860214109051067579537008367501834723009929827486300772678346407596106869832512579102180928086682172345775047825906065, 6492859743402427013224957526773612476031280993044690607784160057686880229209831538939045987606076773313125546427811186808795218860181360435151657439459135171731642225975056613348164819235317913083153227881911185574679170305638348499347070097938480392885289493284095645409615468925393679398090634630) C = [800378461059400239726680783421062702546581299113618553895453491207714321944554499622887232532612118204284779120928524046451494597619154079853122057618867592408424421335915888671560524092660578952242621890439766919785431411789789232309134048322721650012432166587969915464252995890054635969469155870141839815222805619769926841873928532, 8685468246369062574820183134847029157229023858170863526469628501966638181721681547114662091162797572149161013458000532984909663639626346493828947027439012131912176125653717020650233650230608573276523862941298063827867869000918623143520066067119099918633173584693454642685133071154989133688921507896223776765538029556643440655490373815, 4635611296372235589362291842711945807825964919968727011796279830725567747087132786100965922682161492876463568645940638975728831156672106717718242995621775763972524561170035488180440169190421072680121175269363490806991700969253196228364471655905426168859215651384013432550900570720981720919343406680667172355882395426739478340888619526, 742099161415136628218807400531862454374875770332166710320711769923774839345990297388615457974047093967700994503615622499139058644697776431451063778211507061619987487339659448529973693084099004007650792690143707738139278995489030445825999666762580518420739517354868021396496747289677543653758101688499365196709600349831855157276274803, 4273006447766599851029197343910625305964779588947130545729882009677080459892767902139074897266046998378948193319329776150920821074305998905666368175737032487336505440974393061632257356697260043478850055918798196360043557336723402834256592984312957607731622934368169520289756716653736422872196593367101920308166527352079412344590114695, 1337615323422531101514598853478737615483725265103339849469231329210692205474781484172946466402355800190175297435923447189337380569240535257395618353403524999296122247241720498058900285176383928871155893061316083476812641934026019749574784965397208046520128690081232283708190247657782663414534596381371506499151016470118707739609022847, 6153442337491399463730666360630451953223069596225489087488144486112604050064388945200405772892415725900338512969888610774357818442533883395713661512978158729825590405567077341407532331228257558692149544940358814513930330757334104407683768945074261746314376336567331685071086776886141587264981001140113933152084084711732651014186070962, 3604640305526232611907645024550062043296875756707299105733076926046725900367109300556792007038226350415916164581084668832286944703572581980333135146219609212135443758296278947833224676930513359604019639508959092586550129343133801670578311053639151186604019506764426302411065588655525183584977810609190948096510237056027272167828516985, 2085633143403792178757363870459578017278494765962824809917819295576034993395441252397370078671500834434293581806342828037037877739374959864038090394888141183851040814572501861997433316552606005140700519616064369570511427453278726929921212633252656552135711332324923683242632912449218888750151556281762432994484741408165895663710356342] p0 = 9198383558649454145266329742592651804417531074705208606546350510907008625231001966812954022871638810611704119348096876032201336180492815698993817487634671245603146146272244377218492738092114522582641697639688837841786461196752729903611725131373737251243910142850547018441698749894323950503164083437568//(2**334) Q = [p0] for i in range(1,9): Q.append(-(P[i]-p0*N[i])//N[0]) P = [] for i in range(len(Q)): P.append(N[i]//Q[i]) D = [] flag = b'' for i in range(len(Q)): D.append(inverse(e,(P[i]-1)*(Q[i]-1))) flag = flag + long_to_bytes(pow(C[i],D[i],P[i]*Q[i]))[-5:] print(flag)
|