唯密文攻击--实验吧详细解

本文介绍了如何使用Python进行唯密文攻击,通过计算n和e的公约数来找出特定条件,并展示了进行MD5计算的Python代码片段,最终得到了一个带有CTF挑战的flag。
摘要由CSDN通过智能技术生成
http://www.shiyanbar.com/ctf/1785
试试看破解这个 1024 位 RSA 系统。flag的形式是 CTF{USTC-X},X 是 RSA 的两个素数中较小的那个(取其大写MD5的前6位)
解题链接: http://ctf5.shiyanbar.com/crypto/ciphertext.zip


解:
    唯密文攻击指的是在仅知已加密文字的情况下进行穷举攻击,把加法密码和乘法密码联合起来,就得到了所谓的仿射密码(affine cipher)—— 
两种密码与一对密钥的组合。
根据给的文件:
n=13517683058288494570817541989833005426034173043204699144907250930275060216621814507810292889791478999619740265859288134757294925637716117207934480333062435244516575992
5647345536051853372740246104804540179716136644319380454884518397455488002758429914465640804944658049262500561494830899678619427468784748988379
计算q=n/p,对比找出小的那个质数。


原理还是n是两个质数相乘,所以如果找到他与200组密文的最大公约数即相当于对n做了分解。
1. 计算p

通过python计算n和e的公约数,代码如下:

e=[
 #1
16134430023258548730010506045817091253155174425491881198907194715118954323695812336073213399871465210437714290660793750993901158895347504391868395700741645371075639198152273525950825146531135058288489554248120363468547141254348480876412747258441592280958249727177410724447721846508001799108380403113466360976

, #2
42049987057628216924853296358410744214687251846473269604612874558254990642148191390876361459813576275183122962464223793485259071516276247532052835955832348691869457924560348867958406099304998216749504364748794941667144230772792510413613315946446623009373130765396604094236638082912168404057545885783023655600

, #3
52507238830291389415516991342186499352953691617426456910143573073405773868634800669646585986466821980940154132001857401648391659233271999989595276080723550879298827783863427351837561379110958102627867911147771178436638103956606052906724124353904736882996957232516771927436506624795820862564430010024830079906

, #4
79985734428430812009620276524768197034569046380043017673238204378152885902721162779227349041752577643666544888571034886638180141459662371915680738515517873199135033764025221153071530588362408852907285972616297382868630680718718220165186405964022744197324381526856454625578608277978759036197738284037254985488

, #5
85210097529006823648271715040233469429936367550050927112566835490443643942964299988576117835895848024274604240298788811411885184057717567310871140328167602435039301986580866189175459065093748099139017452915404764311300272901364953715009550620782525967509893970141856534028282746464963442423748205462818828948

, #6
85377489178868543763340502270549071847830909886724918188241832888247498455454613072133953322800717305007435411456555708719532062663659723980749147945135328478198758302430328320180484129719996882986547638088189761257896330471094859123323729700891918819691158921601778652739065693224202628566511338338725975914

, #7
29474006782861367522124472688994683070416788305107661505168764944838541182294922846352914701749025448658389086745791021890997245265705351088873942994971409982825910848524244386670616774880992186695504965344553798776585551694790652825351209595485842609601083767203167372659353722290239593130877989177463781304

, #8
113551606850362344828430220648231756808100672723458171025312992769439097623981807938892652671858826467124909950480917974484245014411554008663338010638811063411265136766266794856835644822174848251006701545948656135178821875494316290557138050130860749487622468126822695299735934212625125611955608688283195684543

, #9
91990088187225083016804459154119716257576123368086844589464298720901677424001013931642776545960896223217913443564338177507068329857443845799527104218891227748628875328594513203418322897127660084826787483013607364605037780081159386273991874863556579016463170787427484035380864797516753535176603349899394887247

, #10
60472967191584359023108980082993401058583928185822352401665871394092240891204736867199223114393438889236956586972173838568197562940013358118421157034772742739007509765334127714809661249261696396490013005594011014360557452406563201686803052958574814996197590096085340263690479428367972267423957606058924799257

, #11
3545822691440964513392123701934304289882689341134288530775107553321384879926727633228415388634667559642344308062401467795948907429465782087079579726178578690214033859580808389514793286567247893275411347216517626150524611355967985680342189253751175263606819518570230619612340603949702754250099239767614057240

, #12
23510395326438857333256279980061226775680873338160792567480049904525753911113317803787468101691417935385084381906024262712803785192161683714031457244249106076984518468239756374889329533283369621247095758673508114854236690823728457487797465152941130908717347580179250122715168294573302029029441028722196004814

, #13
118751666853441454948316729022082449109360529102818547064777238751879999206530739500972678471110230243597162141373041805286767187630049994528766558585112248431187246351939946834558645382546447262967246374459992529934986223546611244986902624843249041045112563278445037597124150916644273607459743543095624987343

, #14
24314683063993404452257183311208218715096688937196162562536439014395811085767432627296852618027124153357690145273419921084001457945767110067717947965910738328965481080845693318792291592097974908526237371562884890105062102654093589883935923866555870576957512351311065710464988281159958244823204267798794454378

, #15
16415347896121586989589751359966025297538338869392925940540602838457865664828638457119551161935392757180454481500421313454836712782475119064624440724010309799607678704370753027799513116092607946044445362414502409856089782971987323551152654380723948721493538750482251083657012318151737585889786368272015059610

, #16
134399302023586108747353444406575772377120794848330970474435913268747065081665784853164689707113178856120049870906692801454733571538939022578306229135378484364736568960782460355826309100854427109457603689602819375295866879902206724072681252072642517827271990307259941338571036879447900312789631214291188262844

, #17
6168973895997122639399320837351652733549248763834904505881799433458668243900394563966709650917512278302038936353269543520492719433969833090969477091046230555037801122411120045111286733471452742586346184526226963980352931784733928127080796867521974855344993958153454704046301504761576945095050173553778851617

, #18
78978190120597026617079447839593636904907000039464667423380138719706043736978323838248778046927287493224745664404542561695588413010557070339489733786070742142411871854449477140770595462918541672827562616875751980838210643030507670339957165238252604190158609126677123365432000385408528861567275636760458912659

, #19
116945970150878914083217275488144039864433340938613651513859459518001944201349753547921129140737289893338499107439859496328204108100642003951637090102104820821845131608917249003251117801320265305147219278097210489772687230737431732335936292700625974289191847139589459658921279158595236273168846600411347997785

, #20
71583341476956491705444342126388545038597313932119937276614008772009370949997413173211312906992545375687795459459961047708439163668095403430124860675828438409652213484139583501947274327961526875412563610435137926593836741011118514358199548141923376639444506617733713092038352269743353224280572574210594125630

, #21
28465812046304059581925426902687596295098943135317658796245267845923628172001032348539066795356640789997156892495437570087526595924815214764102046227416936646287607642195658407951599532703618267084825223311583990861251746329660163876631353592471923277909247862138387031345823267444148579435481763656571987511

, #22
35956065469083695363038627383960207526177554270117377526855250674158974650058319508121285037371284166770961571899977065490016280490366909910633691377719643180750685907198881907135041828552280716490760437883256064567097665008196790031648223894177024465898743068115981194686630399271021228830235614078909891670

, #23
57036275079298331995985168498501670612999699386812146502531415016546612267016588843014458240681484274787114743117094064098940831345809429742529510468480484129570461554120261424734270584145854846146594974905274301804892228758261080635488025425922805451085404913349009696125454557245666065292857343043370453609

, #24
30847534718114664854891195596069681343514383416093195179448037460230740367459265032397489387837630232476788156827024880005125117337755553422129883382327656396320748184189833740424269686961380705681117347007750087270246598838726268320686834437366011226208533771526761361844174436286334224811992003629427755419

, #25
49351414598365924997910211062549773601826216531630402100341903363819825102409051183056024262094018501500049075771293055220542322072568369638277156688668725889360157024378070596055310543395435867718098532390722585408535982960576471716557196947969374712877564629865131001381165189890905546243099140032280413459

, #26
92698141861684054451646897445106957343446862421395965043642267565369329483545509014086032414090258859075400708672913278005104384536951934736572726662919908605687181939389525053340803411250875146771055551415339380901891662492523777870994375737532764086884749746180048676964762764755685524197760888716482520310

, #27
106947888701983283711082088892088558448021949711606850104747541998982227352311428291999043938765147237742557607299433978032841521678878113454666641263870867155189369821570965061559939844490731237959570082815599773472688049870492753916666195770868009813076084808695940298433367680414077129912257653135219108401

, #28
67768459387237939425038452265495471185775852656789649007101839011795455794381657037442552973490702071182255751343089775726786113066258538592189326075180046300057406694148651981023761363974368016990547107772654877088596223870605184579483203332511265392148357800832363005878493653722628387030603153972048162645

, #29
99960924255728253745168568050121247708802752964036340926643179025832324679905250242953470321975474907555694686618449718030570248523691812383171042017098780323843342225242720503022685201308117145544448156083352177662405037192765007210724616586211865860846213621823738813103402274933829626382371122136416730219

, #30
74210629730811527869482318688127506427341100709060283431268032410164731380370278312931410703826743234986936433076552068264412592369248618121599268320498591402504967997579277429560018358704326940313429727650317305924080939902496831078895364875404971366159452584615110735605973689919059925562108229348666331788

, #31
127129138241744036573832163713336774897630524790261567811154684270928791635147656047291912028323450917617664186101466899918910875276696276828466845154745732652025277778357970827473133956608475673383818259588119990496310663366573448842062395237467532541849376108007026305176832042517068257091479878870359907990

, #32
114959856581381597221101514434370996054288329126117005571084643590011271508416502646073618354316877968332823915979337165983602048350447994100310497107581195681784503999450227212878210785530601143587518693799255427874962931333497399016296225196328908611628339566631964606204022118231419790133610820258378128893

, #33
58541213087051395036658759251200065256502617663451229484000228110048612503608113849663400233051942953284342702242014931694528040468367024682271210936391970012660842476461223691810317248004638752018062927145454660652598963227553833276496697006335268040223068352598831381249296316899502677662035962093363792637

, #34
12751378463341610954778813942962428432454710306464622507992958106309724176975345188807637269960144918008299438701655962307132486985684530924775125540536385477856618237610699726025240839824965883379566037706343932828864185979076719028135142559238309882032760464341614441156112701691951262530713103584138223639

, #35
59229701728755779310823963213129084725837412290417414713125075501977395476885622585661862354327956390812600480444552624614164673463548210945573662464524542202858260253628719909504777585542626719360536704281115407682546437374286805100206282969967339791554151953629958545592910174462810283112890390676763247377

, #36
20418309867977247318496141337212551292237140476679289639877990814926843764930900643247863891770421130100607338708383654706496341611463038827457635264043032276251449691087425014011774233254681971148587915745473183063939636388022904742990292259548871989125219361188100897321790597992784325281607810541506075580

, #37
98841263469071258167113501079124070006732817931588050225635676878672519385634371867490476098754380901203372306379251635541591480178296549100839238940725504769493283616287661660203105080953194591481669653642430853319226496213562694313131094743110715612516427792767120818371494850054051000246773844652780138663

, #38
76306566967448589632132195337921864440379711898370385855467680108650764263382664547889358078661703661578269011819270064122452445318358058205443262884243782482169848223212154212889348397042967344162576236584839027265423708239104394438753688633358207415805678945382756635278984930047091909534490515869021879822

, #39
779591788797368120567474794792440609065416306539021557868230650429320910908809393362075130001461333287826335329413391858019101704723837435671299903204382344382345178597887142839634387453651697329657069813063968576926960165203628683852859851753354412590247781104
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值