반응형
System32.kr
RSA104 풀이 : e가 매우 큰 경우
RSA와 관련하여 다양한 공격들이 정리되어 있는 포스트 :
n : 3032477561712159969038624247612606302727093197744745572360777744993048030579151290131884950670071512201722458811242592707243074323418373868073398996531180136126242688542841461913438478172053913773719857973056957510415089185531311916330433139160859155532409659622858101341629671133093910407988882203728644794239348874379289178268208136028146328608462805956004322306707963431825015814504527120066991706462521947050575789728072629790386979812591216920320695619189898158302924158362481320767791340177005794951187859952230300784183151549243274733552565133526078458260073961873518009693814714967027162359505297313081834097
e : 1284326209972781865603077160971589716597082902272211399147338196589345961573850891014620874113849550830317643345862732752124534686326463252899962000181188143162889928709347890165345017914959645496102666603718956753486894961504533642515954173645086524281277713918605331772209589332254176733343767685347067353884996601325356300748766439627935771840516032698936889600866124222228999743139709077148311384874536127451456213137422854764346519585961972790189180618601186990003649947864963747868420118048077351758919340934501383717797396822778472985089935849274746400142421412113278085759384358033116596950545779218825432105
c : 1806317310369980009932706441907756891122685977239032637376117653939592629181132498482038670618195984694250867867129559863693561069046351110958045303559854954588234447977692922829988785926862451801584819310702407585491177718755152055518733553927421577214740347956274468684747058682785453167186126384869898095355009620193273626895484591988153555158110880196986268949355968500092832237411654394295951441648748044375864656268901973180401377014754165200068392806529746504801815744345095507516459256483869799173054189822960434563127784898151685448212418354649354925633786590825084141495329161421555698179241894408873422390
e가 매우 크므로 위너 공격을 사용하면 된다. 위에 올려둔 포스트대로 코드를 수정하여 사용했다.
그러면 d값을 구할 수 있다.
Hacked!
D = 1235441821
복호화 작업
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
def powermod4(a, b, n):
if b == 1:
return a % n
r = powermod4(a, b / 2, n)
r = r * r % n
if (b & 1) == 1:
r = r * a % n
return r
#c^d mod N
#a^b mod c
a = 1806317310369980009932706441907756891122685977239032637376117653939592629181132498482038670618195984694250867867129559863693561069046351110958045303559854954588234447977692922829988785926862451801584819310702407585491177718755152055518733553927421577214740347956274468684747058682785453167186126384869898095355009620193273626895484591988153555158110880196986268949355968500092832237411654394295951441648748044375864656268901973180401377014754165200068392806529746504801815744345095507516459256483869799173054189822960434563127784898151685448212418354649354925633786590825084141495329161421555698179241894408873422390
b = 1235441821
c = 3032477561712159969038624247612606302727093197744745572360777744993048030579151290131884950670071512201722458811242592707243074323418373868073398996531180136126242688542841461913438478172053913773719857973056957510415089185531311916330433139160859155532409659622858101341629671133093910407988882203728644794239348874379289178268208136028146328608462805956004322306707963431825015814504527120066991706462521947050575789728072629790386979812591216920320695619189898158302924158362481320767791340177005794951187859952230300784183151549243274733552565133526078458260073961873518009693814714967027162359505297313081834097
print powermod4(a, b, c)
|
cs |
나온 값 -> hex -> ascii
FLAG : FLAG{}
반응형
'WAR GAME > System32.kr' 카테고리의 다른 글
System32.kr [EZB64] 풀이 (0) | 2019.12.28 |
---|---|
System32.kr [RSA106] 풀이 (0) | 2019.05.19 |
System32.kr [RSA105] 풀이 (0) | 2019.05.19 |
System32.kr [RSA103] 풀이 (0) | 2019.05.19 |
System32.kr [Cert] 풀이 (0) | 2018.10.12 |