T

Text Machine

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

VIC 암호

스파이 Reino Häyhänen이 지니고 다녔던 가공할 소련 수동 암호인 VIC 암호로 인코딩하고 디코딩하세요. 날짜, 외운 문구, 개인 번호, 다섯 자리 키그룹으로부터 격자 체커보드와 두 번의 열 전치를 유도하며, 그중 두 번째는 교란됩니다. 모든 작업은 브라우저 안에서 실행됩니다.

VIC 암호는 냉전 시대 가장 복잡한 수동 암호였습니다. 날짜, 외운 문구, 개인 번호, 다섯 자리 키그룹이라는 네 개의 작은 비밀로부터 긴 키잉 체인이 격자 체커보드와 두 번의 열 전치를 만들어 내며, 그중 두 번째는 교란됩니다. 아래에서 네 가지 키 요소를 설정한 다음 인코딩하거나 디코딩하세요. 글자, 숫자, 마침표만 처리되며 그 밖의 모든 것은 무시됩니다. 디코딩하려면 동일한 네 가지 키 요소를 사용하세요.

모드

날짜 (6자리 이상)

숫자로 적은 날짜로, 예를 들어 139195입니다. 처음 다섯 자리는 키잉 체인을 시작하고, 여섯 번째 자리는 키그룹을 메시지 어디에 숨길지를 정합니다.

키 문구 (20자 이상)

노래 가사처럼 기억하기 쉬운 한 줄의 텍스트입니다. 처음 스무 글자가 사용되며, 공백과 문장 부호는 무시됩니다.

개인 번호

두 통신 당사자가 함께 외우는 1부터 99까지의 작은 숫자입니다.

키그룹 (5자리)

메시지마다 달라지는 무작위 다섯 자리 그룹입니다. 암호문 안에 숨겨진 채 평문 그대로 전달됩니다.

텍스트
결과

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

키가 유도되는 과정

키잉 체인

각 행은 그 위의 행들로부터 만들어집니다. A는 키그룹, B는 날짜, C는 A에서 B를 뺀 값입니다. E.1과 E.2는 키 문구에서 나옵니다. 그런 다음 체인은 숫자를 더하고 순위를 매기고 결합하여 체커보드 헤더인 S와 두 개의 전치 키까지 내려갑니다.

A

72401

B

13919

C

69592

E.1

8017942653

E.2

6013589427

F.1

6959254417

G

4966196060

H

3288628787

J

3178429506

블록 (K–P)

K

5064805552

L

5602850077

M

1620350748

N

7823857125

P

5051328370

S

5961328470

체커보드 헤더 (S)

5961328470

전치 1 너비

13

전치 2 너비

6

전치 1 키

0668005552551

전치 2 키

758838

인디케이터 자리

5

격자 체커보드

맨 윗줄에는 기억법 AT ONE SIR에 따라 흔히 쓰이는 여덟 글자가 들어갑니다. 비어 있는 두 열의 헤더 숫자가 아래 행들의 접두로 붙습니다. 흔한 글자는 한 자리를 차지하고, 나머지 모든 글자는 두 자리를 차지합니다.

5
9
6
1
3
2
8
4
7
0
A
T
O
N
E
S
I
R
6
B
C
D
F
G
H
J
K
L
M
8
P
Q
U
V
W
X
Y
Z
.
/

VIC 암호 사용 방법

  1. 1

    인코딩 또는 디코딩 선택

    메시지를 VIC 암호문으로 바꾸려면 인코딩을, 메시지를 복구하려면 디코딩을 선택하세요. 디코딩에는 인코딩에 사용한 것과 정확히 동일한 날짜, 키 문구, 개인 번호, 키그룹이 필요합니다.

  2. 2

    날짜 설정

    날짜를 숫자로 입력하세요. 예를 들어 139195입니다. 처음 다섯 자리는 키잉 체인을 시작하고, 여섯 번째 자리는 완성된 메시지의 어디에 키그룹을 숨길지를 정합니다.

  3. 3

    키 문구와 개인 번호 설정

    최소 스무 글자 이상인 기억하기 쉬운 문구와 1부터 99까지의 작은 개인 번호를 입력하세요. 이는 두 통신 당사자가 미리 합의하는 고정된 비밀입니다.

  4. 4

    키그룹 설정

    무작위 다섯 자리 키그룹을 입력하거나 무작위 버튼을 눌러 하나를 생성하세요. 키그룹은 인디케이터입니다. 메시지마다 바뀌며 암호문 안에 숨겨진 채 전송됩니다.

  5. 5

    메시지 입력 및 결과 확인

    텍스트를 입력하거나 붙여넣으세요. 글자, 숫자, 마침표만 암호화되며 그 밖의 모든 것은 무시됩니다. 결과를 복사하거나 다운로드하고, 정확한 키와 텍스트가 담긴 상태로 도구를 다시 여는 링크를 공유하세요.

VIC 암호 이해하기

VIC 암호란 무엇인가요?

VIC 암호는 1950년대 소련 정보기관이 사용한 펜과 종이 암호로, 실전에 투입된 것 중 가장 복잡한 수동 암호로 널리 여겨집니다. 그 이름은 코드명이 VICTOR였던 KGB 요원 Reino Häyhänen에서 따왔습니다. 연필과 종이, 그리고 몇 가지 외운 비밀만 사용했음에도 이 체계는 치환과 전치를 매우 철저하게 결합한 까닭에, 미국 암호 분석가들은 Häyhänen 본인이 망명하여 작동 방식을 설명하기 전까지 가로챈 메시지를 단 한 건도 풀지 못했습니다.

VIC가 놀라운 점은 기계 암호의 강도를 요원이 머릿속에 통째로 담아 다닐 수 있는 절차 안에 담아냈다는 것입니다. 짧은 키잉 절차가 날짜, 외운 문구, 개인 번호, 무작위 다섯 자리 그룹을 암호에 필요한 모든 재료로 바꿉니다. 글자를 숫자로 바꾸는 격자 체커보드, 그리고 그 결과를 뒤섞는 두 번의 열 전치(두 번째는 교란됨)가 그것입니다. 이 도구는 그 전체 과정을 재현하며 각 단계를 일어나는 그대로 보여줍니다.

VIC 암호의 작동 원리

VIC로 메시지를 암호화하는 데는 세 단계가 있습니다. 먼저 키잉 체인이 옵니다. 받아올림 없는 덧셈, 빌림 없는 뺄셈, 그리고 순위 매기기 같은 단순한 숫자 연산의 연속으로, 네 가지 키 요소를 체커보드 헤더 행과 두 개의 전치 키 및 그 너비로 확장합니다. 그런 다음 메시지는 격자 체커보드를 사용해 숫자로 변환되는데, 이는 가장 흔한 글자가 한 자리를 차지하고 나머지가 두 자리를 차지하는 작은 표입니다. 마지막으로 그 숫자들은 두 번의 열 전치로 뒤섞입니다.

기발한 부분은 교란된 두 번째 전치입니다. 격자의 삼각형 영역들을 미리 비워 두었다가 나머지를 모두 채운 뒤에야 채워, 보통의 전치 암호를 더 쉽게 공략하게 만드는 가지런한 열을 흐트러뜨립니다. 맨 마지막에는 무작위 키그룹이 날짜로 정해진 위치에 다시 암호문 속으로 슬쩍 끼워져, 수신자가 인디케이터를 복구하고 키잉 체인을 그대로 반복할 수 있게 합니다. 그 결과는 원래 언어의 어떤 패턴도 드러내지 않는 숫자 그룹의 나열입니다.

키잉 체인

VIC의 모든 것은 키잉 체인에서 흘러나옵니다. 다섯 자리 키그룹이 행 A가 되고 날짜의 처음 다섯 자리가 행 B가 됩니다. A에서 B를 빌림 없이 빼면 행 C가 나옵니다. 키 문구는 두 개의 행을 더 공급합니다. 처음 열 글자와 그다음 열 글자에 각각 알파벳 순서로 번호를 매겨 행 E.1과 E.2를 만듭니다. 그런 다음 행 C는 체인 덧셈으로 늘어나는데, 이는 각 새 숫자가 앞선 두 숫자의 합이 되는 지연 합산 과정이며, 이를 문구 행들과 결합하여 더 많은 숫자를 만들어 냅니다.

이로부터 체인은 다시 체인 덧셈으로 쉰 자리의 블록을 길러냅니다. 그 블록의 마지막 행에 번호를 매기면 행 S가 나오고, 이것이 격자 체커보드의 헤더가 됩니다. 블록에서 뽑은 두 숫자를 개인 번호에 더하면 두 전치의 너비가 정해지고, 블록을 키가 정한 순서로 열 단위로 읽으면 두 전치 키 자체가 만들어집니다. 이 도구의 실시간 도표는 이 모든 행을 펼쳐 보여 주어, 네 가지 비밀에서 완성된 키까지의 유도 과정을 끝까지 따라갈 수 있게 합니다.

격자 체커보드

격자 체커보드는 글자와 숫자를 숫자의 흐름으로 바꾸는 작은 표입니다. 열 개의 열은 헤더 행 S로 표시됩니다. 맨 윗줄에는 빈도가 높은 여덟 글자가 미리 합의한 기억법, 여기서는 고전적인 AT ONE SIR 아래에 놓이며, 그 두 개의 공백이 비워 둘 열을 표시합니다. 비어 있는 두 열의 헤더 숫자가 그 아래 두 행의 접두가 되고, 이 두 행에는 알파벳의 나머지, 마침표, 그리고 숫자 전환 기호가 들어갑니다.

흔한 글자들이 맨 윗줄에 자리하므로 각각 한 자리로 인코딩되는 반면, 덜 흔한 글자는 두 자리, 즉 행 접두 다음에 열 표시가 따릅니다. 이 고르지 않고 스스로 동기화되는 부호는 암호문을 짧게 유지하면서, 단순 치환이라면 새어 나올 뚜렷한 글자 빈도를 제거합니다. 메시지 속 숫자는 숫자 전환 기호로 표시되는 숫자 모드로 전송되며, 글자 부호와 혼동되지 않도록 각 숫자를 세 번씩 적습니다.

두 번의 전치

메시지가 숫자의 흐름이 되고 나면 VIC는 그것을 두 번 뒤섞습니다. 첫 번째 전치는 보통의 열 전치입니다. 숫자를 고정된 너비의 행에 적은 다음, 첫 번째 전치 키가 정한 순서로 열을 읽어 냅니다. 이것만으로도 숫자를 잘 섞지만, 열 전치 단독으로는 노련한 암호 해독가가 이용할 수 있는 규칙성이 남으며, 특히 여러 메시지가 같은 키를 공유할 때 그렇습니다.

두 번째 전치는 교란됨으로써 그 빈틈을 메웁니다. 격자의 삼각형 영역들이 두 번째 전치 키로 정해진 계단 모양으로 미리 비워집니다. 메시지는 먼저 그 삼각형 바깥의 칸들만 채운 다음, 다시 돌아와 삼각형 자체를 채웁니다. 열을 키 순서로 읽어 내면 두 번의 채움이 서로 얽혀, 최종 숫자가 철저히 뒤섞입니다. 체커보드와 첫 번째 전치 위에 겹쳐진 바로 이 교란이 VIC에 가공할 명성을 안겨 주었습니다.

Reino Häyhänen과 속이 빈 니켈 사건

VIC 암호는 냉전 첩보의 가장 유명한 사건 중 하나를 통해 세상에 드러났습니다. 1953년 브루클린의 신문 배달 소년이 떨어뜨린 니켈 동전이 갈라지면서 숫자 한 줄이 담긴 아주 작은 사진이 드러났습니다. FBI는 그 메시지를 읽지 못했고, 속이 빈 니켈은 4년 동안 풀리지 않은 수수께끼로 남아 있었습니다. 돌파구는 1957년, 코드명 VICTOR로 뉴욕에 주재하던 소련 요원 Reino Häyhänen이 미국으로 망명하여 그 암호를 자세히 설명하면서 찾아왔습니다.

Häyhänen의 정보는 그의 상관, 즉 Rudolf Abel이라는 이름으로 알려진 고위 비합법 공작원을 적발하는 데에도 도움이 되었으며, Abel은 훗날 미국의 U-2 조종사 Francis Gary Powers와 교환되었습니다. Häyhänen이 밝힌 암호는 너무도 정교하여 분석가들은 그의 이름을 따 명명했고, 미국 국가안보국(NSA)은 수동 암호가 얼마나 강력할 수 있는지를 보여 주는 본보기로 오랫동안 이를 들어 왔습니다. 그 비밀이 안전했던 것은 메시지가 풀려서가 아니라, 단지 한 사람이 걸어 들어와 그것을 넘겨주기 전까지였기 때문입니다.

VIC 암호는 얼마나 안전한가요?

수동 암호의 기준으로 보면 VIC는 예외적이었습니다. 격자 체커보드를 두 번의 전치(그중 하나는 교란됨) 위에 겹치면 글자 빈도가 사라지고, 분석가가 더 단순한 체계를 공략하게 해 주는 열 구조가 파괴됩니다. 메시지마다 새로운 무작위 키그룹을 쓰고, 요원이 외우기만 하면 되는 비밀로 키를 만든 덕분에 당대의 암호 분석을 완벽하게 견뎌 냈습니다. 이 체계는 암호 해독이 아니라 망명자에 의해 무너졌습니다.

그러나 현대 컴퓨터 앞에서 VIC는 실질적인 보호를 전혀 제공하지 못합니다. 그 키 공간은 손으로 작업하는 사람에게는 크지만 기계가 탐색하기에는 보잘것없으며, 그 바탕이 되는 연산도 잘 알려져 있습니다. Enigma 기계나 다른 어떤 고전 체계와 마찬가지로, 오늘날에는 역사로서, 그리고 치환과 전치와 세심한 키 관리가 어우러지는 방식을 보여 주는 아름다운 실례로서 즐기는 것이 가장 좋습니다. 실제 정보를 보호하려면 언제나 AES와 같이 충분히 검증된 현대 알고리즘을 사용해야 합니다.

자주 묻는 질문

VIC 암호란 무엇인가요?
VIC 암호는 1950년대 소련의 펜과 종이 암호로, 흔히 지금까지 사용된 것 중 가장 복잡한 수동 암호로 불립니다. 격자 체커보드와 두 번의 열 전치(두 번째는 교란됨)를 결합하며, 모두 날짜, 외운 문구, 개인 번호, 무작위 다섯 자리 키그룹으로 키가 정해집니다. 코드명이 VICTOR였던 소련 요원 Reino Häyhänen의 이름에서 따왔습니다.
왜 VIC 암호라고 부르나요?
VIC는 뉴욕에서 활동하며 이 암호를 사용한 KGB 요원 Reino Häyhänen의 코드명 VICTOR의 줄임말입니다. 그가 1957년에 망명하여 미국 정보기관에 이 체계를 설명한 뒤, 분석가들이 그의 이름을 따 명명했습니다. 때때로 VICTOR 암호라고도 불리며, 발견된 방식에서 따와 속이 빈 니켈 암호라고도 합니다.
VIC 암호는 어떻게 작동하나요?
먼저 키잉 체인이 네 가지 키 요소를 체커보드 헤더와 두 개의 전치 키로 확장합니다. 그런 다음 메시지는 격자 체커보드로 숫자로 바뀌는데, 여기서 흔한 글자는 한 자리를, 나머지는 두 자리를 차지합니다. 그 숫자들은 두 번의 열 전치로 뒤섞이며, 두 번째 전치는 미리 비워 둔 삼각형 영역으로 교란됩니다. 마지막으로 키그룹이 날짜로 정해진 자리에서 암호문 안에 삽입됩니다.
키잉 체인이란 무엇인가요?
키잉 체인은 네 가지 키 요소를 암호에 필요한 모든 것으로 바꾸는 숫자 연산의 연속입니다. 키그룹에서 날짜를 빼고, 키 문구의 글자에 번호를 매기며, 체인 덧셈(받아올림 없는 지연 누적 합)을 거듭 사용해 쉰 자리의 블록을 길러냅니다. 그 블록에서 체커보드 헤더 행과 두 개의 전치 키 및 그 너비를 읽어 냅니다.
격자 체커보드란 무엇인가요?
격자 체커보드는 글자를 숫자로 변환하는 작은 표입니다. 흔한 여덟 글자가 맨 윗줄에 자리하여 각각 한 자리로 인코딩되는 반면, 나머지 글자와 마침표, 숫자 전환 기호는 아래 두 행에 자리하여 두 자리를 차지합니다. 이로써 암호문이 짧아지고, 단순 치환이라면 드러날 글자 빈도가 가려집니다.
교란 전치란 무엇인가요?
VIC의 두 번째 전치는 교란됩니다. 격자의 삼각형 영역들이 키로 정해진 계단 모양으로 미리 비워집니다. 메시지는 먼저 삼각형 바깥의 모든 칸을 채운 다음 돌아와 삼각형을 채우고, 열은 키 순서로 읽어 냅니다. 이는 보통 전치의 가지런한 열을 흐트러뜨리며, VIC를 그토록 깨기 어렵게 만든 큰 요인입니다.
속이 빈 니켈 사건이란 무엇이었나요?
1953년 브루클린의 신문 배달 소년이 숫자 한 줄의 마이크로 사진이 담긴 속이 빈 5센트 동전을 발견했습니다. FBI는 암호화된 메시지를 읽지 못했고, 소련 요원 Reino Häyhänen이 1957년에 망명하여 VIC 암호를 밝힐 때까지 풀리지 않은 채로 남아 있었습니다. 이 사건은 Rudolf Abel의 스파이망을 적발하는 데 도움이 되었으며 냉전 첩보의 가장 잘 알려진 이야기 중 하나가 되었습니다.
VIC 메시지는 어떻게 디코딩하나요?
도구를 디코딩으로 전환하고 암호화에 사용한 것과 정확히 동일한 날짜, 키 문구, 개인 번호, 키그룹을 입력한 다음 암호문을 숫자 그룹 형태로 붙여넣으세요. 원래 메시지가 나타납니다. 네 가지 키 요소가 모두 없으면 메시지를 복구할 수 없는데, 각 요소가 체커보드와 전치를 만드는 키잉 체인에 들어가기 때문입니다.
키그룹 또는 인디케이터란 무엇인가요?
키그룹은 메시지마다 새로 고른 무작위 다섯 자리 숫자입니다. 이것이 키잉 체인의 씨앗이 되어 각 메시지가 사실상 서로 다른 키로 암호화되며, 그런 다음 날짜의 여섯 번째 자리로 정해진 위치에서 완성된 암호문 속에 숨겨집니다. 수신자는 이를 다시 꺼내 키잉 체인을 반복하여 메시지를 해독할 수 있습니다.
VIC 암호는 얼마나 안전했나요?
수동 암호치고는 뛰어났습니다. 체커보드가 글자 빈도를 제거하고, 두 번의 전치(두 번째는 교란됨)가 더 단순한 체계를 깨게 해 주는 패턴을 파괴합니다. 가로챈 것만으로는 결코 깨지지 않았고, 오직 요원이 망명했을 때에만 무너졌습니다. 다만 현대 컴퓨터에 대해서는 실질적인 보안을 제공하지 못하므로, 역사적이고 교육적인 암호로 다루어야 합니다.
내 텍스트가 서버에 업로드되나요?
아니요. 모든 암호화와 복호화는 전적으로 브라우저 안에서 이루어지므로, 텍스트와 키는 결코 업로드되거나 기록되거나 저장되지 않습니다. 공유 링크조차 데이터를 URL의 해시 이후 부분에 담아 두는데, 브라우저는 이 부분을 절대 서버로 보내지 않으므로 직접 공유하기로 선택하기 전까지는 비공개로 유지됩니다.

관련 도구

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

스트래들링 체커보드

바제리 암호

카이사르 암호

비제네르 암호

아트바시 암호

레일 펜스 암호