Skip to content

没 e 这能玩?

先解一个三元一次方程,解出 p,q,r

python
p = 3 * h1 - h2
r = (9 * h1 - h3) // 3
q = h1 - p - r
n = p * q * r

然后解 hinta_big_primee(mod2)512 得到 e

python
e = sympy.discrete_log(2**512, hint, a_big_prime)

最后常规 RSA 步骤得到 flag.

python
from Crypto.Util.number import *
import sympy
import gmpy2

h1 = 31142735238530997044538008977536563192992446755282526163704097825748037157617958329370018716097695151853567914689441893020256819531959835133410539308633497
h2 = 83244528500940968089139246591338465098116598400576450028712055615289379610182828415628469144649133540240957232351546273836449824638227295064400834828714760
h3 = 248913032538718194100308575844236838621741774207751338576000867909773931464854644505429950530402814602955352740032796855486666128271187734043696395254816172
c = 999238457633695875390868312148578206874085180328729864031502769160746939370358067645058746087858200698064715590068454781908941878234704745231616472500544299489072907525181954130042610756999951629214871917553371147513692253221476798612645630242018686268404850587754814930425513225710788525640827779311258012457828152843350882248473911459816471101547263923065978812349463656784597759143314955463199850172786928389414560476327593199154879575312027425152329247656310
a_big_prime = 10340528340717085562564282159472606844701680435801531596688324657589080212070472855731542530063656135954245247693866580524183340161718349111409099098622379
hint = 1117823254118009923270987314972815939020676918543320218102525712576467969401820234222225849595448982263008967497960941694470967789623418862506421153355571

p = 3 * h1 - h2
r = (9 * h1 - h3) // 3
q = h1 - p - r
n = p * q * r

e = sympy.discrete_log(2**512, hint, a_big_prime)

d = gmpy2.invert(e, (p-1)*(q-1)*(r-1))
m = pow(c , d , n)
print(long_to_bytes(m))

# flag{th1s_2s_A_rea119_f34ggg}