HackFest Final 2017 / Crypto 50
April 22, 2017
e = 2886742484284236738106774553791894046416444145459517541766656102330583532154902136604981835389880876713510845417271964019204206949327057151814809422028064218677671539780756790073245011971779691151399771785594074102959490942011855461922052373256869112586069827237757677531152193793922244290357631084923476294942724769982806739137984440930721076461131445531563983299231761780264950983814074640237982898488917656165224244195387250924608815967348988209556714420639312419361130926877862538413221196848322559474276711620086565581403677553882228263027399722889281656046918967381048807623526364266143600256088104112918099637085367138980880401801929864949191436201487350316442963262388421086044955615708039631976078142986495395413372609466947411695520320289903706466828341807884432581092036782685314853874294858647103670051043525755503755113156275596704174274371810869392692475528911042436194087115337615374222449956292870848959480797114952026583740853480852705976157805343363101525183964560440988129944984991815645605643759337280581457184559678726060653232062032958445566260119329244132071683732161836203152982640205805727156468285180704488652033448482014914282137473931519173301689100603078652134608031181394091081450726382793079353630028427
n = 3334856810184677477844358144018917794041731190055839506761047725196006094980863695382177363193369966486016701249215142483636637554021814543035830546215989929795663440797135714052529156584121356430820344157690550828800881814240591307966102200317439798025514933024378636034699031813537269957366107757164860989844073107586429425720904855051982116041375607063348284181020075517929415641544289763746613008111428479297057733166557625147336147566880214355650641577166264521190299115885380737405565001610566944363859489100969586274685083957891857940299867778179224315829434940724792203814646820239647654928926010057013368458245514278044491268911004184046810260941759997123197041098733517706050844547145597277455472453774614055218254132399751743258899881787475545751497375960922131268299479552529031035888108780949909103896592757431124458704783417755010801978390551651313047542712508524793275560368174745062513752629553237925010211952156417038790055587317248535295143994247940211251656493513423704508343198542105407781884990875230425908547394673929549851133924331163825482577078961944622191862486639441372854700487426887512910454786510827672456213611323195410584868699053780747730586864834422625763265388125692936999503906754918551854172173689
c = 255369073743220262113641713482820712895059986266787450395600025962435316796526692289389251837603391135674886287563508811270217353927499305672612163706306165989989590488323756753834262264568315739855867684072476906664745910289567915995738490067500961600634070277685653359864734292084046927047747059234569539576518615498546170352882625295700680415331332860543025589133173045930401605990612858258260418553215222410043648592792049053101571025052948750759007410764195862288286271306851676735920213522164831434843051944311466447798095737732860897151689421767622613238023539429264940608406843171847881104931827651446472287084857750453030154614834785268891364769184997843249833064685676094747211435938988643843117678760517619299196372394785914535867812573516926239471489407410613052236695647129829579556088379526451265816947619879254453670820575687023506951616598992542687668076233739975493451620243022553056187120252171241403752314743403384207325485242476794491610859475496356427378719427988415336160548781634703293878251589239036325319584998593487131494322395622676289162714397731693170535313433775651986178348036125218911980134821361800435213273332830475762684459999904306069352355402448755806333677415038398129215183738825130698604631956
c_fracs = continued_fraction(e/n).convergents()
test_message = 42
test_message_encrypted = pow(test_message,e,n)
d = 0
for i in xrange(len(c_fracs)):
if pow(test_message_encrypted,c_fracs[i].denom(),n) == test_message:
d = c_fracs[i].denom()
break
print(d)
plain = pow(c, d, n)
print hex(int(plain))[2:-1].decode("hex")
#hackfest{ab1f99b7823cd4006844f26ba13416ac}