[드림핵 암호학] 고전 암호

Rainy·2025년 2월 17일
0

crypto

목록 보기
2/4

고전 암호


고전 암호는 컴퓨터와 같은 고성능 연산 장치가 발명되기 이전에, 비교적 간단한 기계나 손 등으로 암복호화를 수행하던 암호를 말합니다. 대부분 컴퓨터를 사용하면 쉽게 복호화할 수 있기 때문에 현대에는 사용되지 않습니다.

고대 암호는 일반적으로 치환(Substitution)전치(Transposition)의 방법으로 설계됩니다. 치환은 평문의 문자를 다른 것으로 바꾸는 것이고, 전치는 평문 문자들의 위치를 바꾸는 것을 말합니다.

단순한 고전 암호는 위의 두 원리 중 하나만 사용하는 치환 암호(Substitution cipher)전치 암호(Transposition cipher)이 있고, 복잡한 고전 암호는 두 가지 원리를 다 사용합니다.

치환 암호는 또 단일 문자 치환 암호(Monoalphabetic substitution cipher)다중 문자 치환 암호(Polyalphabetic substitution cipher)로 나눌 수 있습니다.

단일 문자 치환 암호

단일 문자 치환 암호(Monoalphabetic substitution cipher)는 평문의 각 문자를 약속된 다른 문자로 치환하는 암호입니다. 치환의 대응 관계는 일대일 대응이므로 평문의 Z가 암호문의 Y로 치환된다면 평문의 다른 어떤 문자도 Y로 치환되지 않습니다.

이러한 암호는 언어가 지닌 통계적 특성이 그대로 유지된다는 단점이 있습니다. 통계적으로, 영어 문장에서 가장 많이 사용되는 알파벳은 e 입니다. 따라서 단일 치환 암호가 적용된 어떤 암호문에서 가장 많이 나온 문자를 e라고 유추할 수 있습니다. 이러한 특성을 이용하면 일반적인 영문 단일 치환 암호문은 어렵지 않게 해독할 수 있습니다.

다중 문자 치환 암호

다중 문자 치환 암호(Polyalphabetic substitution cipher)는 단일 문자 치환 암호와 달리, 평문의 한 문자가 암호문에서 여러 종류의 문자로 치환될 수 있습니다.

대표적인 다중 문자 치환 암호로는 비제네르 암호가 있습니다. 비제니르 암호에서 암호화와 복호화는 미리 정해진 키워드를 통해 이루어집니다. PNU라는 키워드로 평문 DREAMHACK을 비제네르 암호화하는 과정은 다음과 같습니다.

우선 아래의 비제네르 표에서 P, N, U 행을 고릅니다.

출처 : https://ko.wikipedia.org/wiki/%EB%B9%84%EC%A6%88%EB%84%A4%EB%A5%B4_%EC%95%94%ED%98%B8"

그 뒤, 키워드를 반복하며 키워드의 각 행에서 평문의 문자에 대응하는 문자로 평문을 치환합니다.
PNUPNUPNU
평문DREAMHACK
암호문SEYPZBPPE

전치 암호

전치 암호(Transposition cipher)는 평문을 구성하는 문자들의 순서를 재배열하여 암호문을 만듭니다. 평문을 정해진 길이의 블록들로 나눈 후, 규칙을 적용하여 블록 안의 문자들을 재배열합니다.

예를 들어, 블록의 길이가 3이고 키가 (2, 3, 1)일 때 평문 DREAMHACK의 암호화를 해보겠습니다. 먼저 평문을 블록의 길이로 나눈 후, 키가 (2, 3, 1)이므로 두번째, 세번째, 첫번째 문자 순서로 재배열하면 됩니다. 실제로 적용하면 맨 처음 블록인 DRE를 재배열하면 RED가 되고, 이처럼 전부 재배열하면 REDMHACKA가 됩니다.

고전 암호 공격

고전 암호를 공격하는 방법으로는 대표적으로 전수 키 탐색 공격빈도수 분석이 있습니다.

전수 키 탐색 공격

전수 키 탐색 공격(Exhaustive key search attack)은 평문과 암호문을 알 때, 키 공간을 전부 탐색하며 주어진 암호문과 같은 암호문을 생성하는 키를 찾는 방법입니다. 키 공간의 크기가 작다면 빠른 시간안에 키를 찾고, 해독할 수 있습니다.

빈도수 공격

단일 치환 암호는 평문의 문자와 암호문의 문자가 항상 일대일 대응을 이루기 때문에 평문의 통계적 특성이 유지됩니다. 따라서 평문의 EA로 치환하여 암호문을 만들었다면, 암호문에서 가장 많이 등장하는 알파벳이 A일 확률이 높습니다. 이런 추측을 바탕으로 암호문을 복구하는 방법을 빈도수 공격(Frequency analysis)이라고 합니다.

다중 치환 암호는 이러한 통계적 특성이 사라지기 때문에, 빈도수 공격으로부터 비교적 안전하다고 알려져 있습니다.

0개의 댓글

관련 채용 정보