RSA Decrypt / RSA 암호문 복호화하기

아래의 암호문은 RSA 암호화 기법으로 암호화 되어진 암호문입니다. 
복호화를 수행하기 위해 몇가지 정보를 가지고 있는데 

평문은 "Flag:ah......."로 시작했고 공개키는 e=5,N=29651 이며 , 
개인키는 0 ~ 10000 사이의 수중 하나입니다. 

이 정보를 토대로 평문을 찾아주세요. 


암호문 : 22018 24228 25194 320 2232 25194 12100 23753 13965 25194 18910 26890 24228 17091



RSA 암호화 과정은 다음과 같다.


위의 공식을 이용하여 풀이에 적용한다.


주어진 공개키 e, N과 암호문 C를 토대로 평문 m을 추리한다.


예를들어 첫번째 암호 22018의 경우 



위와 같이 식을 세울 수 있다.


소스코드


encrypt_num = [22018, 24228, 25194, 320, 2232, 25194,
12100, 23753, 13965, 25194, 18910, 26890, 24228, 17091]

length = len(encrypt_num)
decrypt = ''
e = 5
N = 29651
m = 20
i = 0
while i<length:
if pow(m,5)%N == encrypt_num[i]:
decrypt += chr(m)
i+=1
m=20
print decrypt
m+=1


'Wargame > sjkim.net' 카테고리의 다른 글

Programming - BackTracking  (0) 2017.04.21
Packet Analyze - Busan Travel  (0) 2017.04.21
Reversing - Difficult Mine  (0) 2017.04.21
Programming - Lotto Number  (0) 2017.04.20
Packet Analyze - Find EXE File  (0) 2017.04.20

+ Recent posts