사자자리
[암호학] 고전 암호 본문
고전 암호
- 컴퓨터와 같은 고성능 연산 장치가 발명되기 전, 비교적 간단한 기계와 손 등으로 암복호화를 수행하던 암호
- 컴퓨터를 사용하면 대부분 쉽게 복호화되므로, 현대에는 사용하지 않는다.
고전 암호의 분류
치환 암호 | 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가 치환된 것으로 추측할 수 있다.
- 암호문이 어떤 언어로 구성되어 있어도, 대상 언어의 특성을 안다면 시도해볼 수 있다.
- 다중 치환 암호는 통계적 특성이 사라지기 때문에, 빈도수 공격으로부터 비교적 안전하다.
'Dreamhack > 암호학 Cryptography' 카테고리의 다른 글
[암호학] 블록 암호: AES (0) | 2022.08.06 |
---|---|
[암호학] 블록 암호: DES (0) | 2022.08.06 |
[암호학] 현대 암호 (0) | 2022.07.31 |
[암호학] 배타적 논리합과 합동식 (0) | 2022.07.24 |
[암호학] 암호학이란? (cf. 인코딩) (0) | 2022.07.24 |