사자자리

[암호학] 고전 암호 본문

Dreamhack/암호학 Cryptography

[암호학] 고전 암호

renne 2022. 7. 31. 10:06

고전 암호

 - 컴퓨터와 같은 고성능 연산 장치가 발명되기 전, 비교적 간단한 기계와 손 등으로 암복호화를 수행하던 암호

 - 컴퓨터를 사용하면 대부분 쉽게 복호화되므로, 현대에는 사용하지 않는다.

 

고전 암호의 분류

치환 암호 Substitution Cipher 평문의 문자를 다른 문자로 바꾸는 것
전치 암호 Transposition Cipher 평문의 문자들의 위치를 바꾸는 것

 

단순한 고전 암호: 한 가지 원리만을 사용

복잡한 고전 암호: 두 가지 원리 모두 사용

 

단일 문자 치환 암호(Monoalphabetic Substitution Cipher)

 - 평문의 각 문자를 약속된 다른 문자로 치환하는 암호

 - 치환의 대응 관계는 일대일 대응

 

카이사르 암호(Caesar Cipher)

 - 기원전 44년 줄리어스 카이사르가 사용

 - 평문의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 치환하는 암호

 - 송신자와 수신자가 몇 칸을 밀 것인지 사전에 합의해야 통신이 이루어진다.

 - 알파벳을 밀어낸 횟수, 즉 키(Key)만 알면 해독할 수 있다. 알파벳은 총 26자이므로 가능한 키의 개수는 26개이다.

 - 가능한 모든 키의 집합을 키 공간(Key Space)이라고 하는데, 이를 이용하여 말하자면 키 공간의 크기는 26이다.

 - 키 공간의 크기가 작기 때문에 컴퓨터를 사용하면 쉽게 복호화된다.

 

춤추는 인형 암호(Dancing Man Cipher)

 - 모든 알파벳을 서로 다른 기호화 무작위로 일대일 대응시켜 치환한다.

 - 키 공간의 크기는 26!이다. 이 정도 크기의 키 공간은 현대 컴퓨터로도 전부 탐색하기 어렵다.

 

단일 치환 암호의 단점

 - 언어가 지닌 통계적 특성이 유지된다.

 - 통계적으로, 영어 문장에서 가장 많이 사용되는 알파벳은 e다.

 - 따라서, 어떤 암호문에서 O가 가장 많이 등장한다면, O는 e가 치환된 것으로 추측할 수 있다.

 

난수표(Table Of Random Numbers) 혹은 코드북(Codebook)

 - 송신자와 수신자가 책을 정하고, 송신자가 책의 페이지 x와 단어의 인덱스 y를 보낸다.

 - 예를 들어, 21402은 214 페이지의 2번째 단어를 뜻한다.

 

다중 문자 치환 암호(Polyalphabetic Substitution Cipher)

 - 단일 문자 치환 암호와 달리, 평문의 한 문자가 암호문에서 여러 종류의 문자로 치환될 수 있다.

 

비제네르 암호(Vigenere Cipher)

 

 - 미리 정한 키워드를 통해 암복호화를 한다.

 - 키워드가 'SKY', 평문이 'DREAMHACK'일 때, 암호문은 'VBCSWFSMI'이다.

 

키워드 S K Y S K Y S K Y
평문 D R E A M H A C K
암호문 V B C S W F S M I

 

 - A부터 Z를 0부터 25까지 대응시키면 비제네르 암호를 위의 합동식으로 표현할 수 있다.

 

 

전치 암호(Transposition Cipher)

 - 평문을 구성하는 문자들의 순서를 재배열하여 암호문을 만든다.

 - 평문을 정해진 길이의 블록들로 나누고, 규칙을 적용하여 블록 안의 문자들을 재배치한다.

 - 블록의 길이가 3, 키가 (3, 1, 2)일 때, 평문 'DREAM HACK'의 암호문은 'EDRHA MKAC'이다.

 

스키테일 암호(Scytale Cipher)

 

 - 전치 암호의 대표적인 예시. 기원전 450년에 고대 그리스인들이 발견했다.

 - 메세지를 교환할 두 사람이 같은 크기의 나무봉(Scytale)을 제작한다.

 - 송신자는 종이 테이프를 나무봉에 감고, 테이프 위에 세로로 메세지를 기입하여 암호문을 만든다.

 - 종이 테이프를 풀면 순서가 뒤섞여 메세지를 읽을 수 없지만, 같은 나무봉을 가진 수신자는 테이프를 나무봉에 감아서 해석할 수 있다.

 

고전 암호 공격

전수 키 탐색 공격(Exhaustive Key Search Attack)

 - 평문과 암호문을 알 때, 키 공간을 전부 탐색하며, 주어진 암호문과 같은 암호문을 생성하는 키를 찾는 방법

 - 굉장히 단순한 방법이지만, 키 공간의 크기가 작다면 빠른 시간 안에 키를 찾고 암호를 해독할 수 있다.

 - 예를 들어, 키 공간이 26인 카이사르 암호는 전수 키 탐색 공격에 취약하다.

 - 현대 암호는 키 공간의 크기가 매우 넓으므로 사용하기 어렵다.

 

빈도수 공격(Frequency Analysis)

영문에서 알파벳의 사용 빈도

 - 단일 치환 암호는 평문의 문자와 암호문의 문자가 항상 일대일 대응을 이루기 때문에 평문의 통계적 특성이 유지된다.

 - 그래프를 따르면, 암호문에서 O가 가장 많이 등장한다면, O는 e가 치환된 것으로 추측할 수 있다.

 - 암호문이 어떤 언어로 구성되어 있어도, 대상 언어의 특성을 안다면 시도해볼 수 있다.

 

 - 다중 치환 암호는 통계적 특성이 사라지기 때문에, 빈도수 공격으로부터 비교적 안전하다.

 

 

Comments