from Crypto.Util.number import getPrime, bytes_to_long from random import randint import os import uuid FLAG = b'flag{' + str(uuid.uuid4()).encode() + b'}' flag1 = FLAG[:15] flag2 = FLAG[15:]
defcrypto1(): p = getPrime(1024) q = getPrime(1024) n = p * q e = 0x10001 x1=randint(0,2**11) y1=randint(0,2**114) x2=randint(0,2**11) y2=randint(0,2**514) hint1=x1*p+y1*q-0x114 hint2=x2*p+y2*q-0x514 c = pow(bytes_to_long(flag1), e, n) print("n1=",n) print("c1=",c) print("hint1=",hint1) print("hint2=",hint2)
defcrypto2(): p = getPrime(1024) q = getPrime(1024) n = p * q e = 0x10001 hint = pow(514*p - 114*q, n - p - q, n) c = pow(bytes_to_long(flag2),e,n) print("n2=",n) print("c2=",c) print("hint=",hint) print("==================================================================") crypto1() print("==================================================================") crypto2() print("==================================================================") ================================================================== n1= 18331970861565415891260063981024177723204453706182835544025340957208676556383560640774692546030206116291960010897814681227424399269238051628609483460778956355219034502124029932730800841466587488744931365552090644510865516722066340504286821620791981913835304594399662384154308953009427456429275857524385338676014314611728057663352636578462817696034307558447355360804005874260850787916102882772446542158849123176243242613195908324853684837954711351575992802157405117277260826551448356990795792002633103836664003619780409430648079832538062874186719070716006417748249199693760392355362791015239384988286524628491919460183 c1= 9354728106004556275871265877661464638018798933513933176103979785120449151874292202941954647481388228730416070784168514227120184694675696668631501961690019048651584290004677918537887023182668017984534674401697534722001687285243984938575575995891241527956592840436224846162475163971758107348673212505071733460258575912418603031077460564017910978601068196891378553969041756841582018488313456917778455047276233021997934679601784959545821359192613962331033460962852370525215336657838592074852725780451766675009747751521389401197818865881265593848887195570978936631705514629576662932708590674743096093336953025064385833795 hint1= 470743503915500568971441225224384638152281405838691076917406984266136587146540329163099822533209944833967651606790227131248780730048595488078493038367272884798995931433858999127345464695591145011128995886199997118165697667636003612246036394037761653577774957849197344954684739735875695191318586767891297159656148186530688144252652269978275230 hint2= 19556641075392986245812329756640845456802707075170909144823350149666341893500553491924739956628082530540425185408034737574761229075451772920134628323874206524105638002890883315159574660545781391668011497483569286346058734735712373078308108935084480623687171382477169128232148261316311835113044922530384325344417141818821950087835858038371616355396152770805935995220277825906607041278183000350805961634007639259575267804205828962900832342523563076418998614307227 ================================================================== n2= 28112004636510127976858237912696081975015557958374271845160570519313714600900355806987112546905535719137114286503791096933454331903470905682098447886394392180233205113723696586814347354476684506242349716947707896803695023509933733885117179596742049449312030976714742965805907558279893537324520180100365855512370403356223182631941895548032138109451769460588095214992925587791666521840029204234053429627645153888247343430884031832206986406536889479685229152238044216406672883597270425564568210114403550643308550533410702471976923621717141082988924934569407195445689853580454303476256364198769415984692571062047748543933 c2= 4882414006500846539932894104774644706284132804362940866713162914458692381603617162235865014625240345934641914946783145312936732526037659632642147602849521047587324885571840063394849170698354210292227511352228537206538794653744024758197594207622539621918029145367036759141455921471946036709885306929902368701070747413641074216948550109840184932827768747344487646006095085654639217742777925917890425537915039001028514939149473763853472135829155234139813768144783494493141930219798272553966611860805652213134708737186233472622625209555061393596815614038100213620067407162932010706400469872686868031285609159567607482590 hint= 11203784396184298227997406267233498121128845677648343775805771110531210269150304450030701770134046027158853866440830210013774195919727067085041195670903871403808921301036072394599711262450972456157720162245288170529139400646056517403774844592835173955950476660700764322943423931787365098396111517996487628373202687203387058489749761821729149583262047068825876415434885661369943498585973937735407621655949912730425562387068641160539100579596934613612198074866469070748185359970682615516000074550321076099578380966984016293712951283376655232211109014946822770451106676793434690202818245639002555214490723994582681045943 ==================================================================