T

Text Machine

강력한 텍스트 도구를 브라우저에서

보퍼트 암호

영국 해군 제독 Sir Francis Beaufort의 이름을 딴 키워드 기반 다중 문자 치환 암호인 보퍼트 암호를 암호화하고 복호화하세요. 이 암호는 대칭입니다: 같은 키워드가 암호화와 복호화를 모두 수행하므로, 별도의 복호화 모드가 없습니다. 키워드를 입력하고 계산 과정이 실시간으로 만들어지는 모습을 지켜보세요. 모든 작업은 브라우저에서 실행됩니다.

보퍼트는 대칭입니다: 같은 키워드가 암호화와 복호화를 모두 수행합니다. 메시지를 복호화하려면 암호문을 붙여넣고 같은 키워드를 입력하면, 결과로 원래 평문이 나옵니다. 별도의 복호화 버튼은 없습니다.

키워드

키워드

키워드는 보내는 사람과 받는 사람이 공유하는 비밀입니다. 메시지 전체에 걸쳐 반복되며, 그 각 글자가 해당 위치에서 얼마나 빼낼지를 정합니다. 오직 글자만 사용되며, 키워드에 포함된 공백이나 숫자, 문장 부호는 무시됩니다.

텍스트
결과

위에 텍스트를 입력하면 보퍼트 결과가 여기에 표시됩니다.

보퍼트 암호 사용 방법

  1. 1

    키워드 입력

    FORTIFICATION처럼 공유된 비밀 키워드를 입력하세요. 오직 그 글자만 사용되며, 공백이나 숫자, 문장 부호는 무시됩니다. 같은 키워드가 암호화와 복호화에 모두 쓰입니다.

  2. 2

    텍스트 입력 또는 붙여넣기

    변환하려는 메시지를 입력하세요: 암호화할 평문이거나 복호화할 보퍼트 암호문입니다. 암호는 입력하는 즉시 자동으로 실행되며, 아래의 글자별 계산 과정이 실시간으로 갱신됩니다.

  3. 3

    대칭 결과 읽기

    보퍼트는 대칭이므로 같은 키워드가 두 방향을 모두 처리합니다. 메시지를 되찾으려면 암호문을 붙여넣고 암호화에 쓰인 것과 같은 키워드를 입력하면, 결과로 원래 평문이 나옵니다.

  4. 4

    보기, 복사, 공유

    계산 과정을 열어 각 글자가 어떻게 계산되는지 확인한 뒤, 결과를 복사하거나 텍스트 파일로 다운로드하거나, 당신의 정확한 키워드와 텍스트 그대로 도구를 다시 여는 링크로 공유하세요.

보퍼트 암호 이해하기

보퍼트 암호란 무엇인가요?

보퍼트 암호는 Sir Francis Beaufort의 이름을 딴 다중 문자 치환 암호로, 그는 오늘날 보퍼트 풍력 등급으로 가장 잘 기억되는 영국 해군 제독입니다. 이 암호는 Vigenère 암호와 밀접하게 관련됩니다: 반복되는 키워드가 메시지의 각 글자를 이동시키므로, 같은 평문 글자라도 그 위치에 따라 여러 다른 암호문 글자로 암호화될 수 있습니다. 이렇게 각 글자를 알파벳 전체로 흩뜨리는 것이, 다중 문자 치환 암호를 단순한 카이사르 이동보다 훨씬 읽기 어렵게 만드는 까닭입니다.

보퍼트를 남다르게 만드는 것은 연산의 방향입니다. Vigenère가 그러듯 키를 평문에 더하는 대신, 보퍼트는 키에서 평문을 뺍니다. 이 단 하나의 변화가 이 암호에 가장 유용한 성질을 부여합니다: 대칭이라는 점, 즉 똑같은 연산이 암호화와 복호화를 모두 한다는 것입니다. 이 방법은 1857년 보퍼트가 세상을 떠난 직후 발간된 작은 카드에 인쇄되었고, 같은 대칭 규칙이 훗날 20세기 중반에 쓰인 Hagelin M-209 같은 회전자 기계에도 내장되었습니다.

보퍼트 암호가 작동하는 방식

알파벳에 A를 0부터 Z를 25까지 번호를 매깁니다. 키워드는 메시지의 모든 글자 아래에 키 글자 하나씩이 놓이도록 필요한 만큼 반복됩니다. 각 위치에서 키 글자를 취해 거기서 평문 글자를 빼고, 그 결과를 26으로 나눈 나머지로 알파벳을 한 바퀴 둘러 감습니다. 수식으로 쓰면 암호문 글자는 C = (K − P) mod 26입니다. 변환되는 문자는 글자뿐이며, 공백과 숫자, 문장 부호는 그대로 통과하고 키 글자를 소모하지 않으므로, 키워드는 중요한 글자들과 계속 나란히 정렬된 채 유지됩니다.

종이 위에서는 같은 계산을 타뷸라 렉타, 즉 이동된 모든 알파벳을 담은 정사각형 격자로 할 수 있습니다. 한 글자를 암호화하려면 맨 윗줄에서 평문 글자를 찾아 그 열을 따라 키워드 글자에 닿을 때까지 내려간 뒤, 그 행의 맨 왼쪽 라벨에서 암호문을 읽습니다. 이 조회는 같은 뺄셈을 계산하는 시각적 방법일 뿐이며, 도구 아래의 실시간 계산 과정이 당신 메시지의 각 글자에 대해 보여 주는 것이 바로 이것입니다.

예제 풀이

메시지 HELLO를 키워드 KEY로 암호화합니다. 키워드를 반복하면 키 글자 K, E, Y, K, E가 H, E, L, L, O 아래에 정렬됩니다. 각 평문 글자를 그 키 글자에서 빼면, K 빼기 H는 10 − 7 = 3으로 D; E 빼기 E는 0으로 A; Y 빼기 L은 24 − 11 = 13으로 N; K 빼기 L은 10 − 11 = −1이며, 한 바퀴 둘러 감으면 25로 Z; 끝으로 E 빼기 O는 4 − 14 = −10이며, 감으면 16으로 Q가 됩니다. 암호문은 DANZQ입니다.

이제 같은 키워드 KEY와 같은 뺄셈으로 DANZQ를 복호화합니다. K 빼기 D는 10 − 3 = 7로 H; E 빼기 A는 4로 E; Y 빼기 N은 24 − 13 = 11로 L; K 빼기 Z는 10 − 25 = −15이며, 감으면 11로 L; E 빼기 Q는 4 − 16 = −12이며, 감으면 14로 O가 됩니다. 결과는 다시 HELLO입니다. 똑같은 연산이 메시지를 되찾았으며, 이것이 바로 보퍼트 암호의 핵심입니다.

보퍼트가 스스로의 역연산인 이유

대칭 성질은 수식에서 곧바로 따라 나옵니다. 암호화는 C = (K − P) mod 26을 계산합니다. 그 암호문을 같은 키로 같은 단계에 다시 넣으면 (K − C) mod 26을 계산하게 되는데, 이는 (K − (K − P)) mod 26입니다. 두 키 글자가 상쇄되어 원래 평문인 P만 남습니다. 이 순환 알파벳에서의 뺄셈이 그런 식으로 대칭이기 때문에, 두 번 암호화하면 출발한 자리로 돌아옵니다.

이것은 정말로 편리합니다. Vigenère에서는 암호화할 때 더하고 복호화할 때 빼는 것을 기억해야 하므로, 두 방향이 서로 다른 절차를 씁니다. 보퍼트에서는 익혀야 할 절차가 하나뿐이고, 단 하나의 기계 설정이나 단 하나의 도구가 두 방향을 모두 처리할 수 있습니다. 이것이 이 도구에 별도의 복호화 버튼이 없는 까닭입니다: 그저 같은 키워드를 입력하고 변환하려는 텍스트를 붙여넣으면 됩니다.

보퍼트, Vigenère, 그리고 변형 보퍼트

밀접하게 관련된 세 가지 키워드 암호를 나란히 두면 이해에 도움이 됩니다. Vigenère 암호는 더합니다, C = (P + K) mod 26, 그리고 복호화하려면 반대로 뺄셈이 필요합니다. 진짜 보퍼트 암호는 키에서 평문을 빼며, C = (K − P) mod 26, 대칭입니다. 세 번째 규칙도 있는데, 변형 보퍼트, 때로 독일식 보퍼트라 불리는 이것은 대신 평문에서 키를 빼며, C = (P − K) mod 26입니다. 그 변형은 Vigenère 복호화 단계를 암호화로 쓴 것과 정확히 같으며, 진짜 보퍼트와 달리 대칭이 아니므로, 이를 되돌리려면 Vigenère 암호화가 필요합니다.

세 가지 모두 반복되는 키워드와 타뷸라 렉타를 공유하기 때문에 자주 혼동되며, 하나로 암호화한 메시지는 다른 것으로는 뜻 모를 말처럼 보입니다. 이 도구는 고전적인 대칭 보퍼트를 구현합니다. 더하는 규칙이나 변형이 필요하다면, Text Machine의 Vigenère 도구가 Vigenère와 그 관련 모드를 다룹니다.

보퍼트 암호를 깨는 방법

보퍼트는 반복 키를 쓰는 다중 문자 치환 암호의 강점과 약점을 그대로 물려받습니다. 그 방어력은 하나의 평문 글자가 여러 다른 암호문 글자로 대응되어, 단순 치환 암호의 정체를 드러내는 뚜렷한 글자 빈도 봉우리를 평평하게 만든다는 점입니다. 그 약점은 키가 반복된다는 것입니다. 분석가가 일단 키워드의 길이를 알아내면, 암호문은 각각 단 하나의 고정된 키 글자로 암호화된 별개의 열들로 나뉘고, 모든 열은 빈도 분석에 무너지는 평범한 이동 암호가 됩니다.

키 길이를 찾는 고전적인 방법은 Kasiski 검사인데, 이는 반복되는 글자 무리를 찾아 그 사이의 거리를 재며, 글자 빈도가 얼마나 고르지 않은지를 측정하는 일치 지수와 함께 쓰입니다. 키 길이를 알면 각 키 글자를 복원하는 일은 빠릅니다. 이 공격 전체는 Vigenère 암호를 깬 것으로 유명한 바로 그 공격과 같으므로, 보퍼트 메시지는 그 키워드가 길고 예측하기 어렵고 단 한 번만 쓰인 만큼만 강합니다.

보퍼트 암호는 안전한가요?

아니요. 현대의 기준으로 보퍼트 암호는 어떤 실질적 보안도 제공하지 못합니다. 짧거나 반복된 키워드는 위의 Kasiski와 일치 지수 방법에 빠르게 무너지며, 긴 키워드조차 컴퓨터를 갖춘 끈질긴 분석가를 당해 낼 수 없습니다. 이 암호는 손 암호와 초기 암호 기계의 시대에 속하며, 그 매력은 깨지지 않는 강력함이 아니라 영리하고 쓰기 쉬운 대칭 규칙에 있었습니다.

오늘날 보퍼트 암호는 학습과 재미를 위해 높이 평가됩니다. 다중 문자 치환과 스스로가 역연산인 암호라는 우아한 발상을 이해하기에 더없이 좋은 방법이며, 퍼즐과 방 탈출, 깃발 뺏기(CTF) 문제에 자주 등장합니다. 실제 정보를 보호하려면 그 대신 AES 같은 현대적이고 충분히 검증된 알고리즘에 의지해야 합니다.

자주 묻는 질문

보퍼트 암호란 무엇인가요?
보퍼트 암호는 영국 해군 제독 Sir Francis Beaufort의 이름을 딴 다중 문자 치환 암호입니다. Vigenère 암호처럼 반복되는 키워드로 각 글자를 이동시키지만, 키를 더하는 대신 키에서 평문을 빼므로 대칭이 됩니다: 똑같은 연산이 암호화와 복호화를 모두 합니다.
보퍼트 암호는 어떻게 작동하나요?
알파벳에 A를 0부터 Z를 25까지 번호를 매기고 키워드를 메시지에 걸쳐 반복하세요. 각 글자에서 암호문은 키 글자에서 평문 글자를 뺀 값을 26으로 나눈 나머지입니다: C = (K − P) mod 26. 글자만 바뀌며, 공백과 숫자, 문장 부호는 그대로 통과하고 키워드를 앞으로 넘기지 않습니다.
보퍼트 암호는 Vigenère 암호와 같은가요?
가까운 친척이지만 같지는 않습니다. Vigenère는 키를 평문에 더하며, C = (P + K) mod 26, 복호화에는 다른 단계를 씁니다. 보퍼트는 키에서 평문을 빼며, C = (K − P) mod 26, 두 방향에 한 단계를 씁니다. 하나로 암호화한 메시지는 다른 것으로는 올바르게 복호화되지 않습니다.
보퍼트 암호는 왜 대칭인가요?
암호화는 C = (K − P) mod 26을 계산합니다. 암호문을 같은 단계에 다시 넣으면 (K − C) mod 26 = (K − (K − P)) mod 26이 되고, 이는 원래 글자인 P로 정리됩니다. 두 키 글자가 상쇄되기 때문에, 암호를 두 번 적용하면 메시지가 돌아오므로, 단 하나의 연산이 암호화와 복호화를 모두 합니다.
보퍼트 암호 예제를 보여 줄 수 있나요?
HELLO를 키워드 KEY로 암호화하면 DANZQ가 됩니다. 키 글자 K, E, Y, K, E가 메시지 아래에 정렬되고, 각 평문 글자를 그 키 글자에서 26으로 나눈 나머지로 빼면 D, A, N, Z, Q가 나옵니다. 같은 키워드 KEY와 같은 뺄셈으로 DANZQ를 복호화하면 HELLO가 돌아옵니다.
보퍼트 암호는 어떻게 복호화하나요?
암호화에 쓰인 것과 같은 키워드를 쓰고, 암호문을 도구에 붙여넣으세요. 보퍼트는 대칭이라 별도의 복호화 모드가 없습니다: 키워드와 암호문을 입력하면 곧바로 원래 평문이 나옵니다. 키워드를 모른다면, 암호 해독으로 그것을 복원해야 합니다.
변형 보퍼트 암호란 무엇인가요?
변형 보퍼트, 때로 독일식 보퍼트라 불리는 이것은 대신 평문에서 키를 뺍니다: C = (P − K) mod 26. 이는 Vigenère 복호화 단계를 암호화에 쓴 것으로, 진짜 보퍼트와 달리 대칭이 아니므로 Vigenère 암호화로 되돌려야 합니다. 이 도구는 고전적인 대칭 보퍼트를 구현합니다.
어떤 키워드를 써야 하나요?
글자로 된 어떤 단어나 구절도 됩니다. 더 길고 덜 예측 가능한 키워드일수록 더 강한데, 암호의 보안이 키워드가 길고 알아맞히기 어렵고 결코 재사용되지 않는 데 달려 있기 때문입니다. 짧거나 흔한 키워드는 빠르게 깨집니다. 키워드에 포함된 공백이나 숫자, 문장 부호는 무시되므로, 오직 그 글자만 중요합니다.
보퍼트 암호는 공백과 문장 부호를 바꾸나요?
아니요. 26개의 글자만 암호화됩니다. 공백과 숫자, 문장 부호는 그대로 통과하며 키워드 글자를 소모하지 않으므로, 키워드는 자신이 변환하는 글자들과 계속 정렬된 채 유지됩니다. 출력에서 대소문자가 보존되므로 결과는 원래 텍스트의 모양을 그대로 간직합니다.
보퍼트 암호는 어떻게 깨나요?
보퍼트는 반복 키 암호이므로, 그 공격은 Vigenère를 깨는 것과 같습니다. 먼저 Kasiski 검사와 일치 지수를 써서 키 길이를 찾고, 그다음 암호문을 하나의 키 글자를 공유하는 열들로 나눈 뒤, 각각을 빈도 분석으로 단순한 이동 암호처럼 풉니다. 짧거나 재사용된 키워드는 빠르게 깨집니다.
보퍼트 암호는 안전한가요?
아니요. 현대의 기준으로는 어떤 실질적 보안도 제공하지 못합니다: 반복되는 키워드는 고전 암호 해독에 무너지며, 긴 키워드조차 컴퓨터를 당해 낼 수 없습니다. 교육용이자 퍼즐용 암호, 그리고 암호 역사의 한 조각으로 다루는 것이 가장 좋습니다. 진정한 보호를 위해서는 그 대신 AES 같은 현대 알고리즘을 쓰세요.
제 텍스트가 서버로 전송되나요?
아니요. 모든 암호화와 복호화는 전적으로 브라우저에서 일어나므로, 입력한 텍스트와 키워드는 결코 업로드되거나 기록되거나 저장되지 않습니다. 공유 링크조차 데이터를 URL의 해시 뒤 부분에 담아 두는데, 브라우저는 이 부분을 서버로 절대 전송하지 않으므로, 직접 공유하기로 선택하기 전까지는 비공개로 유지됩니다.

관련 도구

이런 편리한 도구도 함께 사용해 보세요

포르타 암호

비제네르 암호

그론스펠트 암호

트리테미우스 암호

오토키 암호

러닝 키 암호