반응형

RSA105  풀이 : e가 매우 작은 경우

n : 14563994539777678316321336781712344883711529518189434139233680882263409604514153869699501702104322682479573897503872406635890483506906896813982089686642192006130896329932374470690714494675193648369783731927754727548782563723442681780574596631901415395263336968261396444462141129255716197310580275877681304858562705807686921384452565148850113267428665758030506035314679252439022969913295597306528946210184007253645129375949497711293612867692547866985135149571625792745784234869796370504461309988327790266777539646009367784188629367635437858554533733747458534618750336302736798813966890424262766487012612696221075689613
e : 7
c : 3257687211413179849713234287228115652852064803596545802006316144655701336714918948672668217982037728069055370417273850104541474476810598369542627961429180060096555295519064954697207788677528957569208943432299557549774333187664920215674167987939460257141632237998790136575185293301081863083862494006009415801599660234577382347813571039134562532471377834137776834839392965274882404992875421226913724316557631483699200757

 

e의 값이 7로 매우 작고 N은 매우 크다. 이 경우 M^e mod N = c 에서 mod N 과정을 거치지 않게 되어 M^e = c가 된다. 그럼 c의 e제곱근이 M이 된다.

 

1
2
3
4
5
6
7
import gmpy2
 
num=3257687211413179849713234287228115652852064803596545802006316144655701336714918948672668217982037728069055370417273850104541474476810598369542627961429180060096555295519064954697207788677528957569208943432299557549774333187664920215674167987939460257141632237998790136575185293301081863083862494006009415801599660234577382347813571039134562532471377834137776834839392965274882404992875421226913724316557631483699200757
k=7
 
result, bool = gmpy2.iroot(num, k)
print(result)
cs

 

나온 값 -> hex -> ascii 로 변환

 

FLAG : FLAG{too_short_too_small}

반응형

'WAR GAME > System32.kr' 카테고리의 다른 글

System32.kr [RSA106] 풀이  (0) 2019.05.19
System32.kr [RSA104] 풀이  (0) 2019.05.19
System32.kr [RSA103] 풀이  (0) 2019.05.19
System32.kr [Cert] 풀이  (0) 2018.10.12
System32.kr [Password] 풀이  (2) 2018.09.02

+ Recent posts