在一般的信息传递过程中e取值为65537,又时如果e的值过小
    且满足m很小,n很大,e很小

    1. m^e < n
    2. 根据 c=m^e mod n
    3. 得到 c=m^e
    4. 例如
    5. e = 3
    6. n = 29
    7. m = 3
    8. c = 3^3 mod 29 ----> 3^3
    9. 也就是 c=m^3,直接开根号就会得到m

    如果m^3 > n 且并没有超过 n 过多

    1. 存在式子
    2. k*n < m^3 < (k+1)*n
    3. 例如
    4. e = 3
    5. n = 26
    6. m = 3
    7. c = 3^3 mod 26----> 1
    8. k*n + c = m^3

    这里拿一道例题来理解一下
    密码学表白🙆‍♂️

    1. c= 70648271870529018298808886692660001235938402498859964208263409228294415956391386882206991779337601969468744143154220156908990882519717884837945906532856617909820634715854106067161582726782479804159872876992853415864029799581913231177768699278743865744051081912845185335254212638849627195499382733556635858876295634685104897939348828134359144172975276459715762939123096110061586424369639959775521808682889540769193855829876997008128536903490299132154510356729022499408881154087899262032022855765099359626306072450220026018989683836905274747226301294492449246981491703637969852470324929139841720904168369016701475473723817222435805118280228349995037458691540317562924025604518558871782328127664484684356019553232422829444404192009366087224101978739443672545344658651273357576407371982381712751927195093709853829098510072742432249637952525032152431697014721551432098156200586978917577793422057597440719114480618877894616871959869916614058028831275788375950733806459764284840487325149337299990855084479898075589047172548147875475208055116347806096743889904780424630991082111584954172971348812743549982114088569643724870601775753587500487587232004365616342285254951215710149051425199567406281845437620161540582331552889378213717815240687946879147182009028055465175524929611814188527384223348841689860466118240991278594716972892815411269840685462905179556339480041379983668015257914037862901765474982683391249869954470639078475799966417324353131574185612380759323772536955664969364984771648781609746891888279115194051967522808187234763670188472064410745331155700030125511119592595872233060513965829818176890051306809753236542584083528178867508482630064114676825193611148863808117676651877021193525941919029447722940424850259638483259618630908803708352705413985045710677257866844109324594946057235660716032547419296152445756960506166306142244870597217375420785364387192306982268095293440397581098253894684144767233449993257607977934129268826833178031802975929524501934934571709387124594721454624740923550910142337887938218289407086085953807593009004062815408946161107775999354280866956654098094276407491110119245931585538677207353167309009711825693274002853552686144987620601712501856763042883463793285988502606582149509061672725832529050936604314856886070993609898668742138501623378819838961657769663146089896801201156992228867361774391692716488518726007591552311991840025005427255145632627726384869513359648324145841090361264259057089609185017730717955467211726509629

    这一题里面只看到了c,并没有看到其他的线索
    看一下题目提示

    1. 你终于鼓起了勇气向女神表白了,但是女神的密码学tqllllllll
    2. 🤵 : aV9sb3ZlX3lvdQ==
    3. 🤹‍♂️ : 7064827187052901829880.........
    4. 🤵 : 😐
    5. 🤹‍♂️ : 等你搞清楚RSA c = m^e mod n 你就知道了

    这里提示 c = m^e mod n
    可以猜到这题只能是刚刚讲的小指数明文爆破了

    1. 根据 m^e < n
    2. 得到 c = m^e
    3. 编写程序爆破e就行了
    1. from Crypto.Util.number import getPrime,long_to_bytes,bytes_to_long,isPrime
    2. import gmpy2
    3. import libnum
    4. c=7003953316963512304871139095211587993231123079291276945893763719959022240323069861041889815470643001299144947906274214388649617226033483962907980966853900663707585777649029162126238584277221873896766269480082618794525046351292909945659944292239052902810926099687167064811308033422459878461718134674002794768012891191252372328863603097947733980803194086307439598740909206593761856769699411851492692178913409032787606966067770304577962207797482307447844609835379279861719221580965045441176112832476043909330229525987723381894539303624464852545509270859918281262716949347750758972067923083236412130627905223127205142891163614768682817975295680866670405407880188855880293550321473460862230334726201421803013928471811099805692874844439391901456256276080565719981113677564845163001177683109687874157233055585508685647723265350544758428813903168728441549480759211100253407150847147382204992321123361503291604382645174487172534780978245775544538142604124222495493710060567737833161772359866283722481235261956476301455855983034142876174625258145548881077378791457711002290893942609172083708624223985585277312269238430952655386545189064168555461372116400801528354776128989477399459824001155917788308808042846810679642130604601568375010115916215813791441796821302353449671679062548523950749139607284358759827951717130878998700655308049733817036632749643751688935798198565174419801968716714776979226954509048678843207860410626556815809113831844395492582651269999193028511021985235012725795056131092156086021943624679453475385808194450775990758459892919126722634096576404595530275737735351801468718889436545645773134234604771827253235835754394477464047353224103053451153593127784790714628053776006414035734003004034989658814088119155665409072397248919342545815133560011673719564110407250894232179249650236390874948360250438719165497109572081139490306201401312343273868584103057978764726955782874768654917837185121357706391927294706177352964396082214488571931801912011605313211221931849029564918957272107516639099748929805640115760421342978166507444649756183189506298417295578158674520937821373129304044849974615924293291353698024515263022400465589696649352245838506359590305510294609046869715367191484039429315726474125636140119490583036055026146203364697125987090473653107687491340392043693998450421007886343014982214578894366636829436256595539986254228541
    5. e=1
    6. while True:
    7. try:
    8. if(gmpy2.iroot(c,e)[1]==True):
    9. print(libnum.n2s(gmpy2.iroot(c,e)[0]))
    10. break
    11. e=e+1
    12. print(e)
    13. except:
    14. e=e+1
    15. print(e)
    16. continue