비즈네르 암호
비즈네르 암호는 여러 개의 암호 알파벳을 쓰는 유명한 암호이다. 그 덕분에 고전적인 빈도 분석에 훨씬 강하다.
암호화와 복호화의 원리
암호화 과정은 카이사르 암호를 이용해 설명할 수 있다. 비즈네르 암호의 키는 영어 알파벳 a—z로 이루어진 임의의 단어이다. 예를 들어 단어 “bcf”를 키로 쓸 수 있다. 암호화는 다음과 같이 한다. 먼저 평문을 쓰고 그 아래에 키를 쓰는데, 평문과 길이가 같아질 때까지 키를 되풀이해 쓴다. 평문이 “goodevening”이면 다음과 같다.
| 평문: | g | o | o | d | e | v | e | n | i | n | g |
| 키: | b | c | f | b | c | f | b | c | f | b | c |
이제 평문의 모든 글자를 해당하는 키, 즉 같은 열에 있는 키로 카이사르 암호를 써서 암호화한다. 카이사르 암호는 글자를 밀어 쓰는 암호이고, 키는 평문의 글자를 몇 글자 밀어야 하는지를 “a”부터 세어 나타낸다. 예를 들어 “b”는 알파벳에서 “오른쪽으로” 한 글자 미는 것을 뜻하고, “d”는 오른쪽으로 세 글자 미는 것을 뜻한다. 키가 “b”인 카이사르 암호로 단어 “hello”를 암호화하면 “ifmmp”가 된다.
카이사르 암호에서는 텍스트 전체를 한 글자로 암호화하지만, 비즈네르 암호에서는 보통 여러 글자로 암호화한다. 따라서 텍스트 “goodevening”을 키 “bcf”로 암호화하면 다음과 같다.
| 평문: | g | o | o | d | e | v | e | n | i | n | g |
| 키: | b | c | f | b | c | f | b | c | f | b | c |
| 암호문: | h | q | t | e | g | a | f | p | n | o | i |
첫 글자 “g”는 키 “b”, 즉 한 글자 밀기로 암호화했으므로 결과는 “h”이다. 글자 “o”는 키 “c”, 즉 두 글자 밀기로 암호화했으므로 결과는 “q”이다. 나머지 글자도 같은 방식으로 암호화한다.
복호화도 똑같은 방법으로 한다. 다만 글자를 “오른쪽으로” 미는 대신 “왼쪽으로” 민다.
비즈네르 암호 온라인 암호화·복호화 도구
비즈네르 표
암호화와 복호화의 전체 과정은 비즈네르 표로도 설명할 수 있다. 비즈네르 표는 암호화할 때 쓸 수 있는 보조 도구로, 26개의 행과 26개의 열로 이루어진 표이다. 각 행에는 알파벳이 적혀 있고, 행마다 알파벳이 한 글자씩 밀려 있다.
이런 비즈네르 표가 있으면 암호화는 다음과 같이 한다. 평문의 글자를 하나 골라 그 글자로 시작하는 행을 찾는다. 다음으로 키의 글자를 골라 열을 찾는다. 그 행과 열이 만나는 곳의 글자가 암호문의 글자이다.
앞의 예에서는 “goodevening”을 키 “bcf”로 암호화했다. 따라서 “g”로 시작하는 행과 “b”로 시작하는 열을 찾는다. 이 행과 열이 만나는 곳에 있는 글자 “h”가 암호문의 글자가 된다.
복호화할 때는 거꾸로 하면 된다. 글자 “h”를 키 “b”로 복호화하려면 열 “b”를 찾고, 그 열에서 글자 “h”가 있는 행을 찾는다. 그 행의 맨 앞에 있는 글자가 평문의 글자이다.
비즈네르 암호의 가장 큰 장점
비즈네르 암호는 왜 당시에 그토록 강력했을까? 고전적인 빈도 분석을 매우 어렵게 만들었기 때문이다. 예를 들어 카이사르 암호에서는 평문의 같은 두 글자가 암호문에서도 같은 글자로 암호화된다. 그러나 비즈네르 암호에서는 적어도 항상 그렇지는 않다.
텍스트 “great great great”를 키 “stan”으로 암호화하면 암호문 “ykenl zrrsm gewtt”를 얻는다. 평문에는 같은 단어가 세 번 나오지만, 암호문에서는 단어마다 전혀 다르게 보인다는 것을 알 수 있다. 가운데 단어 “zrrsm”에는 글자 “r”이 두 번이나 나오지만, 두 글자는 평문의 서로 다른 두 글자 “re”에서 나왔다.
키 고르기
비즈네르 암호의 안전성은 키를 어떻게 고르느냐에 크게 좌우된다. 카이사르 암호에서는 “a”만 아니면 어떤 글자를 고르든 상관없었지만, 비즈네르 암호에서는 키에 따라 안전성이 크게 달라진다.
- 한 글자로만 이루어진 키를 쓰면 비즈네르 암호는 카이사르 암호가 된다.
- 같은 글자 여러 개로 이루어진 키, 예를 들어 “mmm”도 결국 카이사르 암호가 된다.
- 짧은 키로 암호화한 텍스트는 아주 쉽게 해독할 수 있다.
- 아주 짧지는 않은 키(50자 정도)로 암호화했더라도 암호문이 충분히 길면 역시 아주 쉽게 해독할 수 있다. 컴퓨터로는 몇 초면 된다.
- 완전히 무작위이고 텍스트와 길이가 같은 키로 암호화한 텍스트는 해독할 수 없다.