Skip to content

Latest commit

 

History

History

smoothrsa

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

Normal | smoothrsa | Author : hsq

用 Pollard’s p − 1算法即可分解N,我这里采取了手动分解,其实自动分解也是可以的

import gmpy2 
from sympy import isprime,nextprime 
n=135707754159728588323533781562396770549216532927150830744826759078746516485759574673121132319453938706216268485545805709817238019359431332357305311124601538369884843137092263455671876845277073273708568609134490298374896835519684339335048609964323411229680425960566789319303291336648139355389941820663499849983869729251982139493962239819136079852984156175585436022356569369882044270296523787757586903411896796533836965996473090136220205208311531063898588623759971630874215144403461593624727758555568788803992578593575801896574196661406251814731083905226569023296252010339200118064100922334657421470177548212142075862742637 
c=7231933378684216023785329090502828672765662465836676598491920101917090205751115903021428884450627846425934433298058655640542340907066994787027212292570476353117129725654389546475689853383662875987578046928327062956244250252828656796421800404267170878779483402067373031155928833227558261309215031170767867544461995990633363558517795503067482577072379666429277936482543109573693839685257685490933006400775516417894410507284671551749576739945674476172805155171509302992224770678634186979745641222316371613210558338888163182676610763196939799770916279562993544593973174930802184673734458976753321524178813514611406870955008 
t=pow(2,1024) 
e = 0x10001 
k=2 
primetable=[] 
x=2 
for i in range(10000): 
    x=nextprime(x) 
    primetable.append(x) 
for i in range(10000): 
    k=pow(k,primetable[i],n) 
    if(k>t): 
        if(i%15==0): 
            if(gmpy2.gcd(k-1,n)!=1): 
                print(gmpy2.gcd(k-1,n)) 
                break 
p=gmpy2.gcd(k-1,n) 
q=n//p 
phi=(p-1)*(q-1) 
d=gmpy2.invert(e,phi) 
m=pow(c,d,n) 
flag=hex(m)[2:].decode('hex') 
print(flag) 
#Kap0k{pr1mef4c_is_4_nce_cr9pt0tool}