题目:
import libnum
flag = "flag{&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&}"
m = libnum.s2n(flag)
p = libnum.generate_prime(1024)
q = libnum.generate_prime(1024)
n = p*q
e = 7
c = pow(m,e,n)
M = ((m >> 128) << 128)
print("n=",n)
print("c=",c)
print("((m>>60)<<60)=",M)
n= 11641876404223838031044053075068004412888254845126129959298317769039828661300847167590011078814384924146516243252335723927638602939336263670042754305134563529327623177562227567597098228748291527396137372544178817944076777012844620273115528633812841474576583855479630838450419496432264580104739131121660696741175941183938902719828134419252600529120752637902383122280475009870901377771340004347070328239515854039699514158942488552277056103324966365423691867674519370636154863977044307434572410760411174788443461173043525488719696375984232809515863439041325084894711826506679213938429647434166916283697460579620360510417
c= 630126267900096065199675723365572749784659170093253019252252289224258559435031835900231978967843180392268864676843237096005638676956674492832090514028654003812791866213739842806237503559558228137720131847274829524789805267984332148421078737260511845315323054929207231043106617499022447112702501840384673819128829533832457667852759787845041600338155971800991351964453510824357833112218654032548113106677
((m>>60)<<60)= 2511413510841768941799598030693692780493324549090323726336
我们发现n过大,而c相比于n很小
故直接对c开e次方根
EXP:
from Cryptodome.Util.number import *
from gmpy2 import iroot
n= 11641876404223838031044053075068004412888254845126129959298317769039828661300847167590011078814384924146516243252335723927638602939336263670042754305134563529327623177562227567597098228748291527396137372544178817944076777012844620273115528633812841474576583855479630838450419496432264580104739131121660696741175941183938902719828134419252600529120752637902383122280475009870901377771340004347070328239515854039699514158942488552277056103324966365423691867674519370636154863977044307434572410760411174788443461173043525488719696375984232809515863439041325084894711826506679213938429647434166916283697460579620360510417
c= 630126267900096065199675723365572749784659170093253019252252289224258559435031835900231978967843180392268864676843237096005638676956674492832090514028654003812791866213739842806237503559558228137720131847274829524789805267984332148421078737260511845315323054929207231043106617499022447112702501840384673819128829533832457667852759787845041600338155971800991351964453510824357833112218654032548113106677
mmm= 2511413510841768941799598030693692780493324549090323726336
mm=mmm>>60
m1=mm<<60
print(m1)
m1=2511413510841768941799598030693692780493324549090323726336
print(long_to_bytes(m1).decode())
m2=iroot(c,7)
print(m2)
m2=2511413510841768941960930207721297372982664263674275063933
print(long_to_bytes(m2).decode())