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에 따라 흔히 쓰이는 여덟 글자가 들어갑니다. 비어 있는 두 열의 헤더 숫자가 아래 행들의 접두로 붙습니다. 흔한 글자는 한 자리를 차지하고, 나머지 모든 글자는 두 자리를 차지합니다.
VIC 암호 사용 방법
- 1
인코딩 또는 디코딩 선택
메시지를 VIC 암호문으로 바꾸려면 인코딩을, 메시지를 복구하려면 디코딩을 선택하세요. 디코딩에는 인코딩에 사용한 것과 정확히 동일한 날짜, 키 문구, 개인 번호, 키그룹이 필요합니다.
- 2
날짜 설정
날짜를 숫자로 입력하세요. 예를 들어 139195입니다. 처음 다섯 자리는 키잉 체인을 시작하고, 여섯 번째 자리는 완성된 메시지의 어디에 키그룹을 숨길지를 정합니다.
- 3
키 문구와 개인 번호 설정
최소 스무 글자 이상인 기억하기 쉬운 문구와 1부터 99까지의 작은 개인 번호를 입력하세요. 이는 두 통신 당사자가 미리 합의하는 고정된 비밀입니다.
- 4
키그룹 설정
무작위 다섯 자리 키그룹을 입력하거나 무작위 버튼을 눌러 하나를 생성하세요. 키그룹은 인디케이터입니다. 메시지마다 바뀌며 암호문 안에 숨겨진 채 전송됩니다.
- 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 암호라고 부르나요?
VIC 암호는 어떻게 작동하나요?
키잉 체인이란 무엇인가요?
격자 체커보드란 무엇인가요?
교란 전치란 무엇인가요?
속이 빈 니켈 사건이란 무엇이었나요?
VIC 메시지는 어떻게 디코딩하나요?
키그룹 또는 인디케이터란 무엇인가요?
VIC 암호는 얼마나 안전했나요?
내 텍스트가 서버에 업로드되나요?
관련 도구
이런 편리한 도구도 함께 사용해 보세요