워게임/CTFlearn

[CTFlearn] Vigenere Cipher - 암호학

SecurityMan 2022. 8. 21. 11:00

 

CTFlearn의 열네번째 문제

 

드디어 암호학 다운 암호학 문제가 나왔다.

 

반응형

 

문제 제목에 써있는것처럼 비제네르 암호와 관련된 문제이다.

 

Vigenere 암호는 프랑스 외교관 블레즈 드 비제네르가 개발한 암호이다.

 

문제 설명에도 써있는것처럼 시저 암호보다 진화된 형태로

 

알파벳 순서를 key에 맞게 바꿔서 암호문을 만들어 준다.

 

gwox{RgqssihYspOntqpxs}

 

문제에서 주어진 암호문은 위와 같고,

 

I’m not sure what this means, but it was left lying around: blorpy

 

이 문장에서 갑자기 뜬금없이 blorpy 라는 단어를 언급하는걸로 보아

 

key 값이 blorpy 인듯 하다.

 

비제네르 암호의 원리는 아주 간단하다.

 

 

이 표와 키값만 있으면 다 풀 수 있다.

 

 

key 값의 첫글자는 b, 암호문의 첫글자는 g 이다.

 

표를 보면 1번행이 b로 시작하는것을 볼 수 있다. 

 

1번 행에서 암호문의 첫글자인 g를 찾고, 이 g가 있는 부분의 열 이름(파란색)을 읽어주면 된다.

 

평문의 첫번째 글자는 f 가 되는것이다.

 

 

다음으로 key 값의 두번째 글자는 l, 암호문의 두번째 글자는 w이다.

 

11번 행이 l 로 시작하고, 11번 행에서 w를 찾아 그 위치의 열 이름을 확인하면 l 이 된다.

 

따라서 평문의 두번째 글자는 l 이다.

 

 

그다음 key값의 세번째, 암호문의 세번째 글자는 둘다 o 이다.

 

o로 시작하는 14번 행에서 o 위치의 열 이름을 읽으면 a 가 된다.

 

평문의 세번째 글자는 a 이다.

 

 

마지막으로 한번만 더해보면

 

key 값의 네번째 글자는 r, 암호문의 네번째글자는 x 이다.

 

r로 시작하는 17번 행에서 x 위치의 열 이름을 읽어주면 g 가된다.

 

평문의 네번째 글자는 g 이다.

 

여기까지하면 평문 앞의 4글자가 flag 인걸 알아낼 수 있다.

 

 

같은 방식으로 쭉- 해주면 평문을 모두 찾아낼 수 있다.

 

 

사실 비제네르 암호는 아주 단순한 암호라서

 

온라인 디코딩 툴이 아주 많이 존재한다.

 

CyberChef(https://gchq.github.io/CyberChef) 에서도 쉽게 디코딩 할 수 있다.

 

암호문과 key 값을 넣어주면 바로바로 디코딩이 가능하다.

반응형