KOROMOON

착한 사마리아인이 되고 싶습니다.

2/24/2018

단일 치환 암호(Substitution Cipher) & 빈도수 분석법(Frequency Analysis)



< 단일 치환 암호의 치환표 >

단일 치환 암호는 평문을 구성하는 알파벳을 다른 알파벳으로 변환하는 암호임.
단일 치환 암호의 키값은 위 그림과 같이 치환표이며 송신자와 수신자는 치환표를 공유해야 함.
시저 암호는 Brute force 공격으로 해독이 가능하지만 단일 치환 암호는 불가능함.
시저 암호에 비해 훨씬 많은 키 후보를 가질 수가 있기 때문임.


< 영어 알파벳 출현 빈도 >

해당 암호의 단점으로 평문에 등장하는 문자의 빈도가 암호문으로 바뀐 뒤에도 암호문 내에서 동일한 빈도로 나타냄.
위 단점을 기반으로 빈도수 분석법을 이용하여 단일 치환 암호 해독이 가능함.

빈도수 분석법을 이용한 해독 작업
- 빈도가 높은 문자뿐만 아니라 빈도가 낮은 문자도 단서가 됨.
- 처음과 끝을 아는 것은 단서가 됨. 단어의 단락을 알면 그것도 단서가 될 수 있음.
- 암호문이 길면 해독이 쉬워짐. 보통 긴 글일 경우 특정 문맥에 필요한 문법을 유추할 수 있으므로 해독이 쉬움.
- 같은 문자가 연속해서 나타나면 그것은 단서가 됨. 단일 치환 암호에서는 어떤 문자 어느 문자로 암호화되는지는 정해져 있기 때문임.
- 해독의 속도가 점점 빨라짐.


Hack-me.org 워게임 사이트에서 단일 치환 암호를 이용한 암호학 문제(Polyalphabetic substitution)가 있음.
긴 글이며 해당 한문자씩 치환할려면 시간이 오래 걸림.
시중에 나와있는 에디터 중에 바꾸기 기능을 이용해서 풀면 쉽기 한데 notepad++ 툴에는 글자에 색깔 넣는 기능이 없으므로 비추임.
그래서 MS Word 프로그램을 추천하며 푸는 방식은 다음과 같음.


먼저 암호문은 다 소문자로 되어 있음. 그래서 MS Word 프로그램의 바꾸기 기능을 이용해서 대문자로 바꿈
바꾸기 기능의 대/소문자 구별이 가능하므로 해독 가독성과 정확성을 위해서 바꾸는게 좋음.


그리고 위 그림과 같이 대/소문자 구별 옵션과 바꿀 내용 글꼴 색 변경 옵션을 이용해서 일괄적으로 바꾸면 해독이 편함.
(바꿀 내용 글꼴 색 변경 옵션 : 위 그림의 서식 -> 글꼴 -> 글꼴 색에서 원하는 색 선택)


최종적으로 영문법 등을 유추해서 풀면 금방 풀림.
일종의 노가다이긴 한데 좀더 편하게 푸는 방법임.


알아두면 좋은 사이트 :
빈도수 분석법을 위한 툴 (빈도수 체크 + Substitution)
http://www.chaos.org.uk/~eddy/craft/substitute.html
온라인 빈도수 분석기 (짱좋음!!!)
http://quipqiup.com/index.php


============================================================
본 게시물은 KOROMOON 님께서 작성하였으며 CCL (Creative Commons License) 에서 "저작자표시-비영리-동일조건변경허락" 이용조건으로 자료를 이용하셔야 합니다.

댓글 없음:

댓글 쓰기