""" e = 65537 c = 71006103372412044312819415754890236591010667290476171732849891031154161413755756389800031863634501968018973467994336921863576045927865057620110276133007713394607890961299688961072344705219549236488634012357200622261985508555546257123851675662932077761718811343763329757348379337874687284169335699712263079874026606077256470412455955555001948525310460766417311320754027857069001783963330608415206416087008625618806534900951705480932603981460028570259100040394319693229444019729643289680350720405041972843156579023545489559211823014364723365 hint = 763988131420320188479892287267696489693396898988105285846900692836754599870159523586378097011331586604180594063858628653160374239087049720173273678997338656365290709175007462308792914764526938138682615513678977756046442022565426509529058163085713367064159219029236072276269919500619494538505141786746087592664650756173248773382978137789826117651006728629279458560271573846908938345822453005130071054010616749156629583078397037500477872504767682172353097156891520577850342314503906130598715529966031568908756077232337382426632008061010900144961139303263727332977956017214420922179906897445364947617712539526290564738019842221362720681462392443568054084727743685697670839411948419531440915662698528122732843223199635984625606055022505075833481655072423339796902426998391099759213144574465170323947529123968023330138074183035345449975498762386946018715765891508629051064752285064503821804187068577224459514916723382079436021471 n = 105361355921951406643065722436313111246476986934021086173449727693279893065728667917709118878188948228194465347089170930695097516066620270901945303316964510010107090704402489648436400663026405879196957932589771399882776268958933339208259789349792421639569172020234415156529867093982373273980906179294820018512047476786638890884024189564528513736425987699351218749032372724008052769632106170152224310382368197368520228134396942550906922599026196447360906637679928259938669021204162648957102935522653270640038794869782779949024288669057427837 """
本题是p和q两个素数,p是1024位,q是768位,p》q
hint是一个超级大的值
所以从公式来看,hint无限趋近于p^3
所以对hint开三次方,所以可以近似求出p的值
然后由于n=p*q,所有可以求出q的值=n//p
然后求出p和q就可以去解密了
分析完了直接脚本解密
1 2 3 4 5 6 7 8 9 10 11
import libnum e = 65537 c =71006103372412044312819415754890236591010667290476171732849891031154161413755756389800031863634501968018973467994336921863576045927865057620110276133007713394607890961299688961072344705219549236488634012357200622261985508555546257123851675662932077761718811343763329757348379337874687284169335699712263079874026606077256470412455955555001948525310460766417311320754027857069001783963330608415206416087008625618806534900951705480932603981460028570259100040394319693229444019729643289680350720405041972843156579023545489559211823014364723365 hint =763988131420320188479892287267696489693396898988105285846900692836754599870159523586378097011331586604180594063858628653160374239087049720173273678997338656365290709175007462308792914764526938138682615513678977756046442022565426509529058163085713367064159219029236072276269919500619494538505141786746087592664650756173248773382978137789826117651006728629279458560271573846908938345822453005130071054010616749156629583078397037500477872504767682172353097156891520577850342314503906130598715529966031568908756077232337382426632008061010900144961139303263727332977956017214420922179906897445364947617712539526290564738019842221362720681462392443568054084727743685697670839411948419531440915662698528122732843223199635984625606055022505075833481655072423339796902426998391099759213144574465170323947529123968023330138074183035345449975498762386946018715765891508629051064752285064503821804187068577224459514916723382079436021471 n =105361355921951406643065722436313111246476986934021086173449727693279893065728667917709118878188948228194465347089170930695097516066620270901945303316964510010107090704402489648436400663026405879196957932589771399882776268958933339208259789349792421639569172020234415156529867093982373273980906179294820018512047476786638890884024189564528513736425987699351218749032372724008052769632106170152224310382368197368520228134396942550906922599026196447360906637679928259938669021204162648957102935522653270640038794869782779949024288669057427837 p = libnum.nroot(hint,3) q = n//p phi_n = (p-1)*(q-1) d = libnum.invmod(e,phi_n) m = pow(c,d,n) print(libnum.n2s(m))