본문 바로가기
Cryptography

[HackCTF] RSA2

by L3m0n S0ju 2021. 9. 19.

 

 

 

 

(n, c) = 675517326695494061190287679557796696358902817969424171685361, 0xe3712876ea77c308083ef596a32c5ce2d7edf22abbc58657e

 

문제에서 주어진 값은 n과 c이다.

 

 

 

 

 


n은 소수 p와 q를 곱한 값이므로 소인수분해를 통해 p와 q를 구할 수 있다. 소인수분해 사이트는 다음과 같다. http://www.factordb.com/index.php?

 

결과 -> 6755173266...61<60> = 804811499343607200702893651293<30> · 839348502408870119614692320677<30>

 

따라서 p=804811499343607200702893651293, q=839348502408870119614692320677

 

e값은 3또는 65537을 보편적으로 사용한다고 합니다. 그래서 이전 문제와 동일하게 65537로 설정합니다.

 

복호화 코드는 아래와 같습니다.

 

 

 

 


from Crypto.Util.number import *

p=804811499343607200702893651293
q=839348502408870119614692320677
e=65537
c=0xe3712876ea77c308083ef596a32c5ce2d7edf22abbc58657e

n = p * q
phi = (p - 1) * (q - 1)
d = inverse(e, phi)
m=hex(pow(c,d,n))
print(m)

 

 

 

 


결과를 문자열로 변환하면 플래그를 획득할 수 있습니다.

 

HackCTF{That's_4_Pr1m3!}

'Cryptography' 카테고리의 다른 글

[HackCTF] Classic Cipher -3  (0) 2021.10.09
[HackCTF] Classic Cipher -4  (0) 2021.10.06
[HackCTF] RSA  (0) 2021.09.19
[암호학 개념]  (0) 2021.09.19
[HackCTF] Classic Cipher -2  (0) 2021.09.11

댓글