Computer >> 컴퓨터 >  >> 프로그래밍 >> 프로그래밍

정보 보안의 기초, 플레이페어(Playfair) 암호란 무엇일까?

플레이페어 암호란?

플레이페어(Playfair) 암호는 치환 암호(substitution cipher)의 일종입니다. 1854년 찰스 휘트스톤(Charles Wheatstone)이 처음 고안했지만, 이 기법의 필요성을 인식하고 실용화를 적극적으로 지원한 로드 플레이페어(Lord Playfair)의 이름을 따서 명명되었습니다.

플레이페어 암호는 블록 암호(block cipher) 방식에 속합니다. 특정 평문 문자에 대응하는 암호문 문자는 해당 문자와 인접한 다른 평문 문자에 따라 달라지는 것이 이 암호의 중요한 특징입니다.

5×5 키 매트릭스의 구조

암호화는 암호화 키로부터 생성된 정사각형 문자 배열을 사용하여 수행됩니다. 영어 알파벳은 총 26글자이므로 이 배열은 5×5 크기로 구성되며, 26개 문자 중 2개는 배열 내 동일한 위치를 공유하게 됩니다.

일반적으로 위치를 공유하는 두 문자는 I와 J입니다. 문맥상 어느 글자가 원래 평문에 있었는지 비교적 쉽게 판별할 수 있기 때문입니다. 플레이페어 암호의 키는 평문 문자 집합에서 가져온 문자들로 이루어진 하나의 단어입니다.

플레이페어는 다이그래프(digraph, 두 글자 단위) 치환 암호로, 5×5 행렬이 필요합니다. 먼저 키워드를 행렬에 차례대로 채우고, 나머지 칸은 알파벳의 남은 글자들로 채웁니다. 이때 I와 J는 같은 칸에 함께 배치합니다.

암호화 과정

메시지는 다이그래프, 즉 두 글자씩의 쌍으로 분할됩니다. 같은 쌍 안에 동일한 글자가 반복될 경우에는 필러(filler) 문자인 X로 구분합니다. 또한 메시지의 글자 수가 홀수라면 마지막에 여분의 X를 덧붙여 쌍을 완성합니다.

플레이페어 암호의 취약점과 공격 방법

1. 빈도 분석

플레이페어 암호를 해독하는 일반적인 접근법은 문자 쌍(pair)에 대한 빈도 분석을 수행하는 것입니다. 메시지에 사용된 언어의 예상 빈도를 알고 있다면, 자주 등장하는 암호문 쌍을 해당 언어에서 빈번히 사용되는 문자 조합과 연결 지어 해독을 시도할 수 있습니다.

2. 구조적 특징을 이용한 공격

암호의 구조적 특성으로 인해 해독이 상대적으로 쉬워지는 요소들이 있습니다. 첫째, 문자 쌍과 그 역순 쌍(예: AC와 CA)은 암호문에서 서로 유사한 패턴을 만들어냅니다. 이러한 조합을 포함하는 잘 알려진 단어나 구문의 데이터베이스를 구축하면 이를 식별할 수 있습니다.

둘째, 플레이페어 암호문에는 동일한 문자가 연속해서 나타나지 않는다는 특징이 있습니다. 이러한 패턴 역시 공격자에게 중요한 단서가 됩니다.

3. 힐 클라이밍(Hill Climbing) 방식

또 다른 공격 방법은 표를 무작위로 채운 후 현재 값에 기반해 암호문을 복호화해 보는 것입니다. 이후 공격자는 표를 조금씩 변경하며 다시 복호화를 시도하고, 제안된 평문의 품질을 향상시키는 변경 사항만 수용하는 과정을 반복합니다. 이 방법은 비교적 간단하며 구현하기도 쉽습니다.

4. 평문 조각 추측

세 번째로 매우 효율적인 공격 기법은 평문의 일부를 추측하는 것입니다. 예를 들어 발신자에 대한 인사말이나 메시지 전송 날짜, 장소처럼 예측 가능한 문구를 활용하면 암호를 해독하는 데 큰 도움이 됩니다.