Hacker News

GPT-6 Astra Solves a WWI German Radio Cipher

GPT-6 Astra, 제1차 세계대전 독일 무선 암호를 해독하다

GPT-6 Astra가 1918년 독일군이 사용한 ADFGVX 방식의 미해독 무선 메시지를 해독했다고 보고합니다. 모델은 당시 사용 기록이 남은 암호 키를 적용해 영국 순양함의 세바스토폴 도착과 연합군 함대의 후속 이동을 담은 문장을 복원했으며, 관련 항해 기록과의 일치도 확인했습니다.

주제
암호학AI역사

AI 요약

Scienceblogs.de가 정리한 미해독 암호 목록에는 연쇄살인범이 남긴 암호문부터 보이니치 필사본(Voynich manuscript)까지 다양한 사례가 포함되어 있습니다. 그중 하나가 제1차 세계대전 당시 독일군이 무선으로 주고받은 ADFGVX 암호 메시지입니다. 이 암호군은 이미 수백 건이 해독되었고 암호 해독 전문가 George Lasry도 작업에 참여했지만, 1918년 11월 27일 송신된 특정 메시지를 포함해 10여 건은 해결되지 않은 상태로 남아 있었다고 합니다. 이번 글은 GPT-6 Astra가 그 메시지를 해독했다고 보고합니다.

■ ADFGVX 암호의 기본 구조

ADFGVX는 A, D, F, G, V, X 여섯 글자를 가로·세로 좌표로 사용하는 방식입니다. 예시에서는 HOUSE를 키로 삼아 6×6 표를 만들고, 알파벳과 숫자를 각 칸에 배치합니다. 표의 행과 열 모두에 ADFGVX를 붙이므로 각 문자는 두 개의 암호 기호로 표현됩니다. 예를 들어 AA는 H, AD는 O, DA는 B에 해당합니다. 같은 표를 사용하면 PRINZ는 FX GD DX FV VD로 바뀌지만, HOUSE 대신 다른 키를 사용하면 표 전체와 암호 결과가 달라집니다.

이번 메시지에는 독일군이 실제로 사용한 것으로 알려진 키 목록이 있었고, GPT-6 Astra는 TRUPPENVERSCHIEBUNG을 암호 키로 사용했습니다. 이 키는 J. Rives Childs의 저서 The History and Principles of German Military Ciphers, 1914–1918에서 214~215쪽에 설명된 키입니다. 다만 키를 곧바로 표에 쓰는 것이 아니라, 먼저 키에 포함된 글자를 알파벳 순서에 따라 재배열해 열 순서를 정해야 합니다. 원래 키의 철자 순서와 각 글자의 알파벳상 위치를 이용해 암호문을 열 단위로 다시 읽는 절차입니다.

■ 19개 열로 재배열한 뒤 좌표를 복원하는 과정

암호 키 TRUPPENVERSCHIEBUNG은 19개의 글자로 이루어져 있습니다. 암호화된 메시지의 기호 170개를 이 키 아래에 가로로 적되, 한 행에 19개씩 배치합니다. 그러면 19개 열 가운데 18개는 9개의 기호를 갖고, G 열 하나는 8개의 기호를 갖는 형태가 됩니다. 이후 키를 알파벳 순으로 정렬했을 때의 열 순서를 따라 각 열을 읽어 원래의 기호 배열을 되돌립니다.

본문은 이 계산을 구체적으로 설명합니다. T는 알파벳 순서상 16번째 열이므로 앞에 14개의 9기호 열과 1개의 8기호 G 열이 놓입니다. 따라서 T 열에 해당하는 위치는 9×14+8=134개의 기호 뒤인 135번째이며, 이 위치의 기호는 A입니다. R은 알파벳 순서상 13번째이므로 앞에 11개의 9기호 열과 1개의 8기호 열이 있고, 108번째 기호인 V에 해당합니다. 이렇게 얻은 AV라는 두 기호를 ADFGVX 표에서 다시 찾으면 E가 되어 복원 문장의 첫 글자가 됩니다. 같은 과정을 전체 메시지에 반복해 평문을 복구합니다.

■ 복원된 메시지와 역사 기록 대조

GPT-6 Astra가 제시한 복원문은 다음과 같습니다. EIN ENGLISCHER KREUZER EINLIEG X SEWASTOPOL X S4STEN X EIN GESCHWADER DER X ALLIIERTEN FOLGT 26STEN X입니다. 여기서 X는 단어 구분이나 문장 구분에 사용된 기호로 보이며, S4STEN 부분은 날짜의 네 번째 숫자가 불분명한 형태로 남아 있습니다. 글에서는 이를 영어로 AN ENGLISH CRUISER ARRIVED AT SEVASTOPOL ON THE ?4TH AN ALLIED SQUADRON FOLLOWS ON THE 26TH라고 옮겼습니다. 즉 영국 순양함이 세바스토폴에 도착했고, 연합군 함대가 26일에 뒤따른다는 내용입니다.

Astra는 해독 결과를 별도로 점검했다고 합니다. 모델이 확인한 원자료에 따르면 영국 순양함 HMS Canterbury는 1918년 11월 24일 세바스토폴에 도착했습니다. 이어 11월 26일에는 연합군 함대도 도착했다는 항해 기록이 제시됩니다. 복원된 문장의 날짜와 선박 이동 정보가 당시 기록과 맞아떨어진다는 점이 해독 결과의 검증 근거로 제시됩니다.

■ 왜 이 메시지가 남아 있었는지에 대한 가설

Astra는 이 메시지가 오랫동안 해독되지 않은 이유로 키 사용 시점의 불일치를 제시했습니다. TRUPPENVERSCHIEBUNG은 1918년 12월 9일부터 사용된 키로 기록되어 있는데, 문제의 메시지는 그보다 이른 11월 27일에 송신되었습니다. 따라서 실제로는 키가 사용되기 시작한 시점에 관한 기록이 부정확했거나, 해당 키가 공식 기록보다 앞서 사용되었을 가능성이 제기되지만, 글에서는 그 불일치의 이유를 알 수 없다고 설명합니다. 이 결과는 미해독 암호를 단순히 통계적으로 맞추는 사례가 아니라, 알려진 키와 열 재배열 절차를 적용한 뒤 역사적 자료와 대조한 사례로 소개됩니다.

■ Hacker News 반응

• @iltk — 선박 항해 기록을 인터넷에서 찾을 수 있습니까? 찾을 수 있다면 모델이 가짜 키와 그에 맞는 메시지를 만들어냈을 가능성도 있습니다. 저는 그럴 가능성이 낮다고 생각하지만, 그래도 고려해야 합니다.

• @stalfie — 글에서는 Astra가 작업을 확인하기 위해 HMS Canterbury가 원래 항해 기록에 따라 1918년 11월 24일 세바스토폴에 도착했다는 사실을 찾았다고 합니다. 그 뒤에는 원래 항해 기록 문서의 사진이 이어집니다.

• @JoshTriplett — 답변을 받은 댓글은 어떤 암호가 거의 임의의 평문으로도 복호화되도록 키를 만들어낼 수 있을 만큼 유연할 수 있다는 뜻입니다. 하지만 이 경우에는 다른 메시지에 사용된 실제 키가 문서로 남아 있다는 점 때문에 그렇게 보기는 어려워 보입니다.

• @tirutiru — 설명해 주셔서 감사합니다. 가짜 키가 어떻게 도움이 될 수 있는지 궁금했습니다.

• @stalfie — 베이즈 관점에서 보면 그런 일이 일어날 확률은 사실상 0에 가깝습니다. 전송 날짜와 관련해 과거에 실제로 일어난 항구 도착 사건과 우연히 일치하는 임의의 메시지를 해독해야 하기 때문입니다. 물론 이는 작성된 사건의 순서가 정확하고, Astra가 사전에 해당 날짜 주변의 모든 역사적 사건을 무차별 대입해 맞는 사건을 찾은 뒤 그 사건에 맞도록 그럴듯한 암호를 만들어내고, 나중에 검증한 것처럼 거짓말하지 않았다는 전제에서 그렇습니다. 그런 과정은 추론 과정에서 드러났을 것이라고 봅니다. 그러면 남는 유일하게 그럴듯한 시나리오는 글 작성자가 거짓말했다는 것입니다. 가장 가능성 높은 설명은 암호가 실제로 해독되었다는 것이며, 글쓴이도 이 점을 공정하게 지적하고 있습니다.

원문: Prinz AI / 커뮤니티: Hacker News / 번역·요약: Trawling