18번의 이어서 Cipher 문제입니다.

0과 1로만 이루어져 있는 수 많은 수를 보면 어쨌든 어떤 10진수가 될거고 

그게 문자가 될꺼라고 생각합니다.



python을 통해 전체 길이를 확인하니 624글자가 됩니다.

이게 어떤 문자의 2진수를 이어붙인 것이라면 일정한 간격으로 떼어놓고 풀어야겠죠?


보통 8bit 단위로 문자를 쓰기때문에 8자리로 나눠서 해봤습니다. 

(마침 길이도 624/8은 나누어 떨어지죠)


앞에 총 24개의 이진수를 8개씩 나눠 문자열로 변환해보니 NVC라는 값이 나왔습니다.

무슨말인지는 모르겠지만 이 방법이 맞는거 같아 진행합니다.



일일이 나눠도 되지만 

python에는 list compression이라는 깔끔하게 한줄로 코딩할 수 있는 기능이 있습니다.

모두 8개의 숫자로 나눠서 리스트에 저장합니다.



각각의 값들을 문자열로 바꿔주면 다음과 같은 내용이 나오는데 뭔가 잘못한줄 알았습니다.

하지만 암호학을 배우신 분들이라면 전치암호라는 말을 들어보셨을 겁니다.


전치암호는 암호문과 평문이 1:1 대응을 이루고 있습니다. 

그렇다는건 아래 알파벳들이 원래는 다른 알파벳이 아닌가 유추할 수 있습니다.


'R'이라는 문자가 혼자서 쓰이고 있습니다. 영어에서 보통 혼자 쓰이는 문자는 a, i 두가지 입니다.

① 'R'이 'A'였다고 가정합니다.


ABCDEFGHIJKLMNOPQRSTUVWXYZ


R과 A의 거리는 17입니다. 이게 맞다고 가정하고 다른 문자를 바꿔보겠습니다.

(Z까지 이동하면 다시 A로 시작)

REU라는 문자는 IVL이라는 알수없는 문자가 됩니다.


② 'R'이 'I'라고 가정합니다.


ABCDEFGHIJKLMNOPQRSTUVWXYZ


'R'과 'I'의 거리는 9입니다.

REU라는 문자는 AND



아래 python 코드를 이용해 결과값을 도출하였습니다.




'WarGame > SuNiNaTaS' 카테고리의 다른 글

SuNiNaTaS_15 [FORENSIC]  (0) 2018.09.06
SuNiNaTaS_3 [WEB]  (0) 2018.09.06
SuNiNaTaS_18 [FORENSIC]  (0) 2018.08.23
SuNiNaTaS_14 [FORENSIC]  (0) 2018.08.23
SuNiNaTaS_6 [WEB]  (0) 2018.08.22

+ Recent posts