다중 문자 치환 암호화란?단일 치환 암호화는 평문과 암호문간의 단순 대응을 사용하기에 빈도 분석이라는 암호 해독 방법을 통해서 쉽게 유추할 수 있기 때문에 안전하다고는 하지못합니다. 아래 링크를 타고 단일 치환 암호화에 대해 알아보세요. [암호] 단일 치환 암호화 단일 치환 암호화란? 시저 암호화 방식처럼 1개의 문자를 다른 문자로 대체하는 방법을 단일 치환 암호화라고 하는데, 좀 더 발전된 단일 치환 암호화방법을 알아보도록 합시다. 아래 링크를 타 mylittletechdiary.tistory.com 따라서, 암호해독자로부터 빈도 분석을 어렵게 하기 위해서는 문자들의 빈도를 균등하게 만드는 암호를 이용하는 것이 바람직한 방법입니다. 그렇기에 다중 문자 치환 암호화는 다중 치환을 이용하여 빈도 정보를 무력화시키는 방법입니다. 다중 문자 치환 암호화 방법은 2개 이상의 문자열을 치환하는 방법으로, 쌍자 암호를 예로 들어보겠습니다. 쌍자 암호란 (PlayFair)1854년 찰스 휘트스톤이 개발한 쌍자 암호는 1차 세계대전 중 영국에서 사용되었습니다. 쌍자 암호는 두 글자 쌍을 다른 두 글자 쌍으로 대체하는 암호화 방법으로 보통 정사각형 안에 영어 알파벳을 배열하여 대체하는 방법을 사용합니다. 쌍자 암호화를 해보자평문은 YOU LOOK HAPPY 입니다. HELLO 라는 키워드의 대칭표를 만들어 봅시다. 1. 먼저 1:1 대칭을 위해서 중복된 알파벳을 제거합니다. HELLO HELO 2. 중복 문자열을 제거한 결과의 알파벳을 5x5 정사각형에 배열하고, 나머지 알파벳을 차례대로 넣습니다. 알파벳은 26자가 있기 때문에 I와 J를 같은 칸에 놓거나 영문에서 많이 나타나지 않는 Q, Z를 같은 칸에 놓습니다. 암호판5x5 정사각형을 암호판이라고 합니다. 이 암호판을 이용해 암호화하기 위해서는 먼저 2:2 맵핑이 가능하도록 만들어야합니다. 3. 2:2 맵핑 YOU LOOK HAPPY 우선 평문의 공백을 없앱니다. OO와 PP와 같이 연속으로 나타나는 문자열의 중간에 X를 넣고, '마지막에 홀수 글자가 남을 경우에도 마찬가지로 X를 넣어줍니다. 3. 암호표를 가지고 암호화를 합니다. 두 문자가 모두 서로 다른 행과 다른 열에 존재하면(YO) 암호는 Y와 O의 행과 열이 만나는 곳에 위치한 A와 X입니다. 1. YO -> AX2. UL -> HWOF와 같이 두 문자가 같은 열에 있다면 각각 아래쪽에 있는 문자로 암호화를 합니다. 필요하면 표의 아래 끝과 표의 위 끝을 연결합니다. 3. OX -> FO.4. OK -> MLHA와 같이 두 문자가 같은 행에 있다면 각각 오른쪽에 있는 문자로 대체합니다. 필요하면 표의 아래 오른쪽 끝과 표의 왼쪽 끝을 연결합니다. 5. HA -> EH6. PX -> US7. PY -> UT암호문 AX HW FO ML EH US UT를 만들었습니다. 암호문을 복호화시키자AX HW FO ML EH US UT를 복호화 시켜봅시다. 복호화는 암호문과 암호판을 이용하여 반대의 문자로 대체하는 방법으로 수행하면 됩니다. 계속해서 반복하는 과정이기에 생략하겠습니다. 똑같이 반대로 수행하면 YOU LOOK HAPPY라는 복호문을 얻을 수 있으실 겁니다.
< 단일 치환 암호의 치환표 >
< 영어 알파벳 출현 빈도 >
Hack-me.org 워게임 사이트에서 단일 치환 암호를 이용한 암호학 문제(Polyalphabetic substitution)가 있음. 먼저 암호문은 다 소문자로 되어 있음. 그래서 MS Word 프로그램의 바꾸기 기능을 이용해서 대문자로 바꿈 그리고 위 그림과 같이 대/소문자 구별 옵션과 바꿀 내용 글꼴 색 변경 옵션을 이용해서 일괄적으로 바꾸면 해독이 편함.
최종적으로 영문법 등을 유추해서 풀면 금방 풀림. 본 게시물은 KOROMOON 님께서 작성하였으며 CCL (Creative Commons License) 에서 "저작자표시-비영리-동일조건변경허락" 이용조건으로 자료를 이용하셔야 합니다. |