비지네르 암호 인코더·디코더
키워드를 입력해 비지네르 암호로 메시지를 암호화하거나 복호화하세요. 각 글자는 대응하는 키 문자만큼 이동하고, 대소문자는 유지되며, 글자가 아닌 것은 그대로 통과합니다. 계산 과정 표를 켜면 처음 20글자마다 키 문자와 이동량을 볼 수 있습니다. 무료이며 가입이 필요 없고, 아무것도 업로드되지 않습니다.
모드
비지네르 암호 도구 사용 방법
- 1. 인코딩 또는 디코딩을 고르세요. 인코딩은 평문을 암호문으로 바꾸고, 디코딩은 같은 키워드로 그것을 되돌립니다.
- 2. 키워드를 입력하세요. A–Z 문자만 사용하며, 공백이나 숫자는 쓸 수 없습니다. 키워드는 메시지를 따라 반복됩니다. 키워드가
a이면 이동량이 0이므로 아무것도 바뀌지 않습니다. - 3. 메시지를 입력하거나 붙여넣으세요. 입력하는 대로 결과가 바뀝니다. 대소문자는 유지되며, 숫자, 공백, 문장 부호는 키 문자를 쓰지 않고 그대로 통과합니다.
- 4. 계산 과정 표시를 체크하세요. 처음 20글자에 대해 평문 글자, 키 글자, 이동량, 결과를 표로 보여 줍니다.
비지네르 암호의 작동 원리
글자를 A = 0부터 Z = 25까지 번호 매기세요. 키워드를 메시지 아래에 반복해서 쓰되, 메시지 글자 하나마다 키 글자 하나를 둡니다. 암호화할 때는 메시지 글자의 번호에 키 글자의 번호를 더하고, Z를 넘으면 처음으로 돌아갑니다: C = (P + K) mod 26. 복호화할 때는 뺍니다: P = (C − K) mod 26. 따라서 각 키 글자는 서로 다른 카이사르 이동을 고르며, A는 0, B는 1, Z는 25입니다. 이 때문에 다표식(polyalphabetic) 암호라고 부르며, 같은 메시지 글자도 서로 다른 암호 글자가 될 수 있습니다. 이 합을 손으로 계산하는 일을 전통적인 비지네르 표(tableau)가 빠르게 해 줍니다.
실제 예시: 키워드 LEMON
키워드 lemon으로 Attack at dawn을 인코딩하면 Lxfopv ef rnhr가 됩니다. 계산 과정 표에 나오는 처음 여섯 글자는 다음과 같습니다:
| 평문 글자 | 키 글자 | 이동량 | 결과 |
|---|---|---|---|
| A | l | +11 | L |
| t | e | +4 | x |
| t | m | +12 | f |
| a | o | +14 | o |
| c | n | +13 | p |
| k | l | +11 | v |
반복되는 글자를 보세요. "Attack"의 두 t는 서로 다른 키 글자 아래에 있어 x와 f가 되고, 두 a는 o와 e가 됩니다. 단순한 카이사르 이동이었다면 각 쌍이 같은 글자가 되었을 것이며, 바로 이런 패턴을 빈도 분석이 이용합니다. 복호화는 같은 표를 거꾸로 씁니다. lemon으로 디코딩 모드를 선택하면 Lxfopv ef rnhr가 다시 Attack at dawn으로 돌아옵니다. 키 글자는 공백을 넘어 이어지며, 공백 자체에는 키 글자를 쓰지 않습니다.
간략한 역사
조반 바티스타 벨라소(Giovan Battista Bellaso)는 1553년 이 암호를 설명했습니다. 이름은 블레즈 드 비지네르에게서 왔는데, 그는 1586년 관련되지만 더 강력한 자동 키(autokey) 암호를 발표했습니다. 이 암호는 19세기에 그의 것으로 잘못 알려졌습니다. 이 암호는 "le chiffre indéchiffrable", 즉 "해독할 수 없는 암호"라는 이름을 얻었고, 1863년 프리드리히 카시스키가 일반적인 방법을 발표할 때까지 공격을 견뎠습니다. 찰스 배비지는 1854년까지 이 암호를 해독했지만 발표하지 않았습니다.
비지네르 암호는 어떻게 깨지나요
모든 것은 키워드의 길이에 달려 있습니다. 같은 평문 조각이 키워드의 같은 부분과 두 번 맞물리면, 같은 암호문이 두 번 나옵니다. 카시스키 조사(Kasiski examination)는 이런 반복 사이의 거리를 재며, 키 길이는 그 거리들의 공약수일 가능성이 큽니다. 키 길이 n을 알면 n번째마다 같은 키 글자로 이동된 것이므로, 그 n개 열은 각각 빈도 분석으로 풀 수 있는 평범한 카이사르 암호가 됩니다. 길고 예측할 수 없는 키워드는 이를 어렵게 만들고, 메시지만큼 길고 한 번만 쓰는 무작위 키는 일회용 패드(one-time pad)이며 깨지지 않습니다. 이 도구는 여러분이 입력한 키워드로 인코딩과 디코딩을 할 뿐, 키를 찾아 주지는 않습니다.
이 도구의 한계
- A–Z와 a–z만 암호화됩니다. 다른 문자 체계의 글자와 é 같은 악센트가 붙은 라틴 문자는 바뀌지 않으며, 도구는 건너뛴 글자 수를 알려 줍니다.
- 키워드는 문자만 가능합니다. 키워드의 공백, 숫자, 악센트 문자는 거부됩니다.
- 계산 과정 표는 메시지 길이와 상관없이 20행만 보여 줍니다.
- 안전하지 않습니다. 퍼즐, 수업, 게임에 쓰고, 개인적인 내용에는 사용하지 마세요.
어떤 도구가 필요한가요?
| 암호 | 키가 작동하는 방식 |
|---|---|
| 카이사르 암호 | 메시지 전체에 하나의 이동 |
| 비지네르(이 페이지) | 반복되는 키워드; 키 글자마다 하나의 이동 |
| 보퍼트 암호 | 비지네르와 비슷하지만 키 글자에서 메시지 글자를 뺌. 하나의 연산으로 인코딩과 디코딩이 모두 됨 |
| 자동 키 암호 | 짧은 프라이머 다음에 메시지 자체가 키가 됨 |
| 포르타 암호 | 키워드가 13개의 상호 알파벳 중 하나를 고름 |
어떤 암호인지 확실하지 않다면, 계획 중인 암호 식별기가 범위를 좁히는 데 도움을 줄 것입니다.
자주 묻는 질문
- 비지네르 암호란 무엇인가요?
- 반복되는 키워드로 정해진 양만큼 각 글자를 이동시키는 다표식 치환 암호입니다. 첫 번째 메시지 글자는 첫 번째 키 글자를, 두 번째는 두 번째 키 글자를 쓰는 식이어서, 한 평문 글자가 여러 암호 글자가 될 수 있습니다.
- 비지네르 암호는 카이사르 암호와 어떻게 다른가요?
- 카이사르 암호는 하나의 고정된 이동을 씁니다. 비지네르 암호는 키워드를 써서 각 글자마다 다른 카이사르 이동을 적용하므로, 키 글자마다 하나씩 여러 카이사르 암호를 번갈아 섞은 것과 같습니다.
- 공백, 숫자, 문장 부호는 어떻게 되나요?
- 그대로 통과하며 키 글자를 쓰지 않으므로, 키워드는 A–Z와 a–z에서만 진행됩니다.
- 비지네르 암호는 어떻게 복호화하나요?
- 키워드를 알고 있다면 디코딩을 고르고, 키워드를 입력한 뒤 암호문을 붙여넣으세요. 각 글자는 키 글자만큼 되돌아갑니다. 키워드가 없다면 암호 분석이 필요합니다. 카시스키 조사로 키 길이를 찾고, 각 열에 빈도 분석을 적용하세요.
- 결과가 입력과 똑같이 보이는 이유는 무엇인가요?
- A만으로 이루어진 키워드(또는 한 글자
a)는 모든 글자를 0만큼 이동시킵니다. A가 아닌 다른 글자로 된 키워드를 고르세요. - 비지네르 암호는 안전한가요?
- 아니요. 약 3세기 동안 깨지지 않는 것처럼 보였지만, 1863년 카시스키가 일반적인 공격법을 발표했고, 컴퓨터는 순식간에 풀어 냅니다. 다표식 암호를 배우기에는 여전히 좋은 방법입니다.
- 영어가 아닌 알파벳도 처리할 수 있나요?
- 암호로서는 아닙니다. 비지네르 표는 26자 라틴 알파벳이므로, 다른 문자 체계는 암호화되지 않고 그대로 통과하며, 도구는 그대로 둔 글자 수를 알려 줍니다.