p = 9341558054191386215066345451630726417358808959728962858150369368064732931483299449258725330485809722318563623217165569022454807609001623119788467130139311
#已知 p 高位,求低位 defphase(high_p, n, c): R.<x> = PolynomialRing(Zmod(n), implementation='NTL') p = high_p + x roots = p.small_roots(X = 2^128, beta = 0.1)[0] P = int(p(roots)) Q = n // P assert n == P*Q d = inverse_mod(65537, (P-1)*(Q-1)) print(hex(power_mod(c, d, n))) n = 65941249956454045900925748110344885155578849459761886289551541848033080705473468411505136530336561460230704780102762179334949928987017294170942951738408512582341934721650026103527287094659147263380069441023677649037769806095851547697740578588236302465290071838541989837695241059034636247243505104997008048433 c = 627824086157119245056478875800598959553774250161670787506083253960788230737588761787385686125828765665617567887904228030839535317987589608761534500003128247164233774794784231518212804270056404565710426613938264302998015421153393879729263551292024543756422702956470022959537221269172084619081368498693930550456153543628170306324206266216348386707008661128717431426237486511309767286175518238620230507201952867261283880986868752676549613958785288914989429224582849218395471672295410036858881836363364885164276983237312235831591858044908369376855484127614933545955544787160352042318378588039587911741028067576722790778 p_high = 97522826022187678545924975588711975512906538181361325096919121233043973599759518562689050415761485716705615149641768982838255403594331293651224395590747133152128042950062103156564440155088882592644046069208405360324372057140890317518802130081198060093576841538008960560391380395697098964411821716664506908672