치환암호
치환암호(substitution cipher)란 비트, 문자 또는 문자의 블록을 다른 비트, 문자 또는 블록으로 대체하는 방법이다. 즉, 평문의 문자를 다른 문자로 교환하는 규칙이다. 대체암호 또는 환자암호라고도 한다.
목차
개요
치환암호는 특정 글자를 다른 글자로 치환함으로서 암호를 생성하는 방법이다. 예를 들어 알파벳 A를 임의로 H로 지정하듯이 특정 문자를 다른 문자로 치환하면 된다. 치환 암호에는 단일치환암호와 다중치환암호라는 두 가지 방식이 있다. 단일치환암호는 '단일문자치환암호'라고도 하며, 항상 문자에 대해서는 같은 문자로 치환 하는 방식이다. 예를 들어, 앞서 A를 H로 치환했다면 하나의 키를 통해 암호화된 문서에서 나타나는 모든 H는 평문의 A가 된다. 반면에 '다중문자치환암호'라고도 불리는 다중치환암호는 하나의 문자가 여러 다른 문자로 바뀔 수 있다. 즉 평문의 A가 H가 될 수도, Y가 될 수도 있다는 말이다. 이 말은 일반적으로 다중치환암호가 단일치환암호 방식보다 더욱 알아내기 어렵다고 생각할 수 있다.
암호방식
단일치환암호
알파벳에서 숫자(키 값)을 이용해서 다른 알파벳이 되도록 치환시키는 방식이다. 알파벳 26문자를 무작위로 나열한 집합과 원래의 알파벳 26문자를 서로 1대1 대응시킴으로써 암호문을 생성해낸다.[1] 단일치환암호 방식은 알파벳의 수가 26개로 한정되있다는 약점이 있어, 평행이동, 빈도분석법 등과 같은 방법으로 평문을 찾을 수 있다.[2] 단일치환암호 방식으로는 덧셈암호, 곱센암호, 아판암호가 있다.
덧셈암호
덧셈암호(Additional Cipher)는 암호학에서 가장 기초가 되는 방법이고, 실제로 시저 암호(Caesar Cipher)라고 많이 알려져 있는 암호 방법이다. 카이사르 암호라고도 불린다. 어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식이다. 시저라고도 불리는 고대 로마의 정치가이자 군인이었다 율리우스 카이사르는 자신의 장군들과 비밀스런 내용을 주고 받을 때 덧셈암호 방식을 사용했다. 여기에서 '카이사르 암호', '시저 암호'라는 이름이 유래되었다.
- 변형
- 첫번째 변형 방식은 매번 서로 다른 알파벳 목록을 대응시키는 것이다. 첫글자는 위 아랫줄이 모두 알파벳 순서대로 써진 표를 사용해서 암호화하고, 다음 글자를 암호화 할 때는 밑줄을 옆으로 한칸씩 밀어서 표를 재구성한 뒤 사용한다. 이러한 방식은 '제퍼슨 디스크'에 그대로 적용되있다. 제퍼슨 디스크는 알파벳 배치 순서가 서로 다른 복수의 원판과 이를 꽂는 통으로 만들어진 단순한 장치로 줄의 순서를 임의로 정할 수 있는 물건이다.
- 두번째 변형 방식은 기호까지 동원해서 자주 나옹는 알파벳에 여러 개의 알파벳/기호를 배치하는 것으로 역시 빈도 분석을 어렵게 할 수 있다. 단점이라면 순수하게 알파벳으로만 만든 덧셈암호와는 달리 기호가 들어가있어 외우기 힘들다. 적어두자니 유출가능성이 있고, 외우자니 힘들어서 난감한 구조라는 단점이 있다.
- 세번째 변형 방식은 대암호(Great Cipher)이다. 16세기~17세기 동안 프랑스 왕정에서 사용하였던 암호로 로시뇰 부자가 개발하여 루이14세가 사용하였다. 대체로 음절을 암호문으로 치환하는 전형적인 덧셈암호지만, 치환 대상이 불규칙하여 암호문의 한 글자가 음절을 의미할 수도, 알파벳 하나를 의미할 수도, 의미가 전혀 없을 수도 있다. 이 암호는 200년동안 깨진 적이 없으며, 19세기 들어 대암호로 작성되었던 하나의 문건만이 해석되었다.
곱셈암호
곱셈암호(Multiplicative Cipher)는 키 값을 곱한 값을 이용해 암호화를 시키는 암호 방법이다. 곱셈암호는 덧셈암호보다 키 공간이 작기 때문에 전수 조사 공격에 더욱 취약하며 빈도수의 특징 또한 나타나기 때문에 통계적인 공격에도 취약하다.[3]
아핀암호
아핀암호(Affine Cipher)는 두 개의 암호법을 합쳐놓은 기법이다. 즉 덧셈암호화 곱셉암호 두 가지를 병합하여 구현한다. 그렇기 때문에 키 또한 두 개가 존재한다.[4]
다중치환암호
평문에서 하나의 알파벳은 여러 알파벳으로 나타낼 수 있다. 단일치환 방식에서 알파벳의 빈도정보를 파악해서 어느정도 유추할 수 있는 약점이 있었는데, 이 빈도정보를 무력화시키는 방법으로 등장했다. 자둥치환암호로는 자동키암호, 플레이페어암호, 비즈네르암호, 힐암호가 있다.
자동키암호
자동키암호(Autokey Cipher)는 키에 평문을 포함시킨 암호이다. 키는 때로 평문에서 일부 문자를 선택하거나, 주로 짧은 접두 키워드를 평문 앞에 추가하는 일부 자동화된 방식으로 평문으로부터 생성된다. 자동키암호에는 두가지 방식이 있다. 키 자동키암호(Key-autokey cipher)는 키 스트림의 이전 요소가 키 스트림의 다음 요소를 결정하는데 사용된다. 텍스트 자동키는 이전 평문이 키 스트림의 다음요소를 결장하는데 사용된다.[5]
플레이페어암호
플레이페어암호(Playfair Cipher)는 영국의 물리학자인 휘트스톤(Charles Wheatstone)과 영국의 수학자 및 지질학자인 플레이페어(John Playfair)가 만든 암호화 방식이다. 하지만, 휘트스톤이 죽고 플레이페어는 이 암호화 방식을 자신의 이름을 본따 발표했다. 이 암호는 5x5 알파벳 행렬을 이용하고, 키 값을 사용한다.[6]
비즈네르암호
비즈네르암호(Vigenere Cipher)는 가장 오래된 다중치환암호 중 하나이다. 가장 많이 알려진 방식의 비즈네르암호는 카이사르 코드 26개, 즉 26x26 대응표를 사용한다. 추가적으로 비즈네르 암호체계에서는 사전에 약속된 키가 필요하다. 비즈네르암호의 장점은 언어의 특성에 따른 통계적인 글자의 빈도수를 숨길 수 있다는 것이다.[7] 비즈네르암호는 프랑스 외교관이었던 비즈네르에 의하여 1586년에 발표되었다.
힐암호
힐암호(Hill Cipher)는 행렬을 이용한 치환암호의 일종이다. 1929년 레스터 힐이라는 미국 수학자에 의해 발명되었으며, 단순 치환암호와는 달리 둘 이상의 알파벳을 함께 다른 문자로 바꾸기 때문에 빈도 분석에 쉽게 깨지지 않는다는 특징이 있다. 힐암호 역시 26을 법으로하는 연산을 바탕으로 한다.[8]
각주
- ↑ 〈Simple Substitution Cipher(단일치환암호)〉, 《티스토리》, 2019-04-20
- ↑ ITqom, 〈단일치환 암호방식과 다중치환 암호방식〉, 《개인블로그》, 2018-04-14
- ↑ 월혼지주, 〈곱셈 암호(Multiplicative Cipher)〉, 《네이버 블로그》, 2010-09-24
- ↑ 〈Affine Cipher - 아핀 암호〉, 《이글루스》
- ↑ delliot, 〈(0x02) Autokey Cipher〉, 《개인블로그》
- ↑ Notchicken, 〈플레이페어 암호 (Playfair cipher)〉, 《티스토리》, 2013-08-08
- ↑ 〈비즈네르암호〉, 《이글루스》
- ↑ 적분의 수학 이야기, 〈힐 암호〉, 《개인블로그》
참고자료
- 치토스맨, 〈(정보보안기사) 치환 암호, 전치 암호〉, 《네이버 블로그》, 2018-03-14
- ITqom, 〈단일치환 암호방식과 다중치환 암호방식〉, 《개인블로그》, 2018-04-14
- FlameSlash, 〈(암호학)2.고전암호학(Traditional Ciphers)-치환 암호(Substitution Cipher)〉, 《티스토리》, 2016-04-02
- 〈Simple Substitution Cipher(단일치환암호)〉, 《티스토리》, 2019-04-20
- 월혼지주, 〈곱셈 암호(Multiplicative Cipher)〉, 《네이버 블로그》, 2010-09-24
- 〈Affine Cipher - 아핀 암호〉, 《이글루스》
- Notchicken, 〈플레이페어 암호 (Playfair cipher)〉, 《티스토리》, 2013-08-08
- 〈비즈네르암호〉, 《이글루스》
- 적분의 수학 이야기, 〈힐 암호〉, 《개인블로그》
- delliot, 〈(0x02) Autokey Cipher〉, 《개인블로그》
- 〈카이사르 암호〉, 《리브레위키》
같이 보기