100년 넘게 풀리지 않던 1차 대전 독일군 암호 전보, GPT-6 Astra가 풀어낸 이유

100년 넘게 풀리지 않던 1차 대전 독일군 암호 전보, GPT-6 Astra가 풀어낸 이유

AIGPT-6암호학

데이터 소스:HN + web research

1918년 11월 27일에 발신된 독일군 무선 암호 전문은 독일의 과학 블로그 사이트 scienceblogs.de가 선정한 ‘역사상 가장 유명한 50대 미해독 암호’ 목록에 100년 넘게 잠들어 있었습니다. 이 목록에는 전설적인 조디악 킬러의 암호문이나, 문자 체계조차 밝혀지지 않은 보이니치 필사본 등 인류 암호사의 난제들이 함께 올라 있습니다. 그리고 며칠 전, 수많은 전문가를 좌절시켰던 이 100년 묵은 수수께끼가 전신기를 한 번도 다뤄본 적 없는 대규모 언어 모델인 GPT-6 Astra에 의해 깔끔하게 해독되었습니다.

해커뉴스(Hacker News) 커뮤니티에서 이 소식은 순식간에 349개의 추천과 160개의 심도 있는 기술 댓글을 모았으며, 롭스터스(Lobsters)에서도 11개의 추천을 받으며 화제를 모았습니다. 대규모 언어 모델에게 암호학은 주관적인 수식어가 일절 통하지 않는 가장 엄격한 시험대입니다. 모델은 그럴듯한 문장 생성으로 얼버무릴 수 없으며, 엄밀한 암호 체계 내에서 역사적 진실을 수학적으로 완전하게 복원해내야만 합니다.

단 여섯 글자로 구축한 시스템: 전송 중 물리적 노이즈를 걸러내다

제1차 세계대전 당시 독일군이 채택한 ADFGVX 암호 체계는 설계 철학 면에서 대단히 절제되어 있었습니다. 온전한 알파벳 26자를 전송하는 대신, 전보의 내용을 오직 A, D, F, G, V, X라는 여섯 개의 글자로만 구성하도록 제한했습니다. 모스 부호에서 이 여섯 글자는 점과 선의 구성이 음향학적으로 매우 뚜렷하게 구별되도록 선정되었습니다. 포화와 포탄이 빗발치는 전장의 소음 속에서 극도로 지친 무전수가 전보를 받아 적을 때 청음 실수를 범하지 않도록 하기 위함이었습니다. 시스템 엔지니어링 관점에서 보면, 이는 불안정한 광대역 통신을 버리고 대역폭은 낮지만 오류 허용도가 높은 기저대역(베이스밴드) 신호를 사용하여 물리 계층에서 불필요한 입력 노이즈를 강제로 걸러낸 것과 같습니다.

이 시스템의 핵심 부품은 6×6 폴리비우스 격자판이었습니다. 36개의 칸은 26개의 알파벳과 10개의 아라비아 숫자(0~9)를 모두 담아내기에 딱 들어맞았습니다. 전보 송신자는 사전에 정해둔 비밀 키워드를 바탕으로 평문 문자들을 격자판 내부 좌표에 무작위로 배치했습니다. 그리고 ‘행 문자 + 열 문자’라는 2차원 좌표 법칙에 따라 하나의 원본 문자를 두 개의 암호 문자로 변환했습니다.

예를 들어 암호 키워드가 HOUSE였다면, 이를 통해 생성된 격자판에서 행 A와 열 A의 교점은 문자 H에 대응하고, 행 A와 열 D는 O, 행 D와 열 A는 B에 대응합니다. 따라서 PRINZ 같은 단어는 좌표 변환을 거쳐 FX GD DX FV VD처럼 아무런 규칙성도 보이지 않는 문자열로 바뀌었습니다. 이러한 2차원 좌표 매핑은 애플리케이션 계층에 동적 해시 잠금을 걸어둔 것과 같아서, 하위 설정 매개변수를 단 하나만 바꾸어도 출력 데이터 스트림 전체에 눈사태 같은 급격한 변형이 일어납니다.

지난 한 세기 동안 인간 암호 해독 전문가들은 축적된 통계적 분석과 수학적 직관을 앞세워 수백 편의 유사한 독일군 전보를 차례로 풀어냈습니다. 저명한 암호학 전문가 조지 라스리(George Lasry) 역시 자신의 연구 경력 동안 해당 목록의 암호문을 여러 편 해독해낸 바 있습니다. 그러나 십여 편의 짧은 잔여 전문들은 마치 단단한 블랙박스처럼 남아 기존의 역공학 추론에 굴복하기를 거부해 왔습니다.

1918년 11월 27일의 미해독 독일군 암호 전보 그림: 1918년 11월 27일의 미해독 독일군 전보. 출처: prinz / Klausis Krypto Kolumne

170개 문자로 비대칭 행렬을 자르다: 역공학 추론을 대체한 연산 능력

Astra는 170개의 기호로 이루어진 이 미해독 암호 전문을 마주하고, 독일어 단어 TRUPPENVERSCHIEBUNG을 해독 키워드로 추출했습니다. ‘부대 이동’을 뜻하는 이 19글자의 단어는 J. 리브스 차일즈(J. Rives Childs)의 저서 『The History and Principles of German Military Ciphers, 1914–1918』 214~215쪽에 상세히 기록되어 있던 단어입니다. ADFGVX 암호화 과정은 좌표 치환 외에도 키워드에 기반한 열 전치(columnar transposition) 연산이 중첩되어 있습니다. 해독의 첫 단계로, Astra는 이 키워드의 글자들을 알파벳 순서(A부터 Z까지)로 재배열해야 했습니다.

이 19글자 중에서 문자 T는 알파벳 순서상 16번째 위치에 해당하고, R은 13번째에 해당합니다. 문자의 사전순 재배열은 데이터를 기록하기 전에 비순차적 스케줄링 전략을 도입한 것과 같아서, 공격자가 문자의 연속 출현 빈도를 이용해 무차별 대입 공격을 시도하는 경로를 원천 차단했습니다.

모델은 키워드를 가로로 나열한 뒤, 170개의 암호 기호를 행 단위로 채워 넣어 19열로 이루어진 행렬을 구성했습니다. 이에 따라 앞선 8개 행은 행마다 19개씩 기호가 가득 찼고, 마지막 행에는 18개의 기호만 채워졌습니다. 전체 열 전치 후에는 18개의 열이 각각 9개의 암호 기호를 담게 되었고, 유독 문자 G에 해당하는 열 하나만 8개의 기호를 담게 되는 비대칭 구조가 형성되었습니다.

모델이 유도해낸 핵심 논리는 각 열의 데이터 오프셋을 계산하는 데 있었습니다. 알파벳순으로 재배열된 16번째 열인 문자 T를 예로 들면, T의 앞에는 9개 기호로 채워진 완전한 열 14개와, 8개 기호만 채워진 불완전한 열(G열) 1개가 놓여 있었습니다.

따라서 9 곱하기 14에 8을 더한 값인 134라는 계산에 따라, 문자 T가 담당하는 열 조각은 암호문 배열의 정확히 135번째 기호부터 시작되었습니다. 현대 소프트웨어 아키텍처의 관점에서 볼 때, 비대칭 행렬을 슬라이싱하여 주소를 찾아가는 이러한 방식은 메모리 페이지 오프셋을 정밀하게 계산하는 것과 본질적으로 같으며, 단 1비트의 오차만 발생해도 복호화 스택에 세그멘테이션 오류(Segmentation Fault)가 발생하게 됩니다.

키워드 TRUPPENVERSCHIEBUNG으로 생성된 ADFGVX 격자표 그림: 키워드 TRUPPENVERSCHIEBUNG으로 생성된 ADFGVX 표. 출처: prinz

Astra는 정밀한 수학적 복원을 통해 전치 순서를 차례로 조립해냈습니다. 그리고 초기 격자판에 대입하여 100년 넘게 은폐되어 있던 독일어 평문을 도출했습니다. EIN ENGLISCHER KREUZER EINLIEG X SEWASTOPOL X S4STEN X EIN GESCHWADER DER X ALLIIERTEN FOLGT 26STEN X 이를 영어로 번역하면 다음과 같습니다. AN ENGLISH CRUISER ARRIVED AT SEVASTOPOL ON THE ?4TH AN ALLIED SQUADRON FOLLOWS ON THE 26TH(영국 순양함 한 척이 ?4일에 세바스토폴에 입항함, 연합군 함대가 26일에 뒤따를 예정). 이 전보 내용은 당시 독일군이 영국 순양함의 세바스토폴 입항과 26일 연합군 함대의 후속 전개에 대한 첩보를 상부에 보고하고 있었음을 확인해 줍니다(순양함의 입항 날짜 십의 자리만 확정되지 않았으나, 영국 해군 캔터베리 호[HMS Canterbury]의 공식 항해 일지를 통해 실제 입항일이 24일이었음이 입증되었습니다). 100년 동안 닫혀 있던 난제가 다층 신경망의 순전파 과정 안에서 인과관계를 따질 필요 없는 패턴 매칭 결과로 수렴되었으며, 전문가들이 수년간 매달렸던 논리적 전수조사는 기계의 연산 주기 몇 번만에 허무할 정도로 빠르게 단축되었습니다.

12일의 시간적 간극을 넘어서: 인과관계의 편견이 없는 모델

Astra는 최종 평문을 복원했을 뿐만 아니라, 인간 전문가들이 왜 이 암호문 앞에서 집단적으로 좌절할 수밖에 없었는지 그 정확한 원인까지 짚어냈습니다. Klausis Krypto Kolumne의 기록(217쪽)에 따르면, 이 암호 전보의 발신 시각은 1918년 11월 27일이었습니다. 하지만 Astra가 암호 해독에 사용한 핵심 키워드 TRUPPENVERSCHIEBUNG은 당시 독일군 사령부 기록상 12월 9일이 되어서야 전선에 공식 배포되기로 예정되어 있던 암호표였습니다. 이 12일의 시간적 오차가 보이지 않는 인지적 방어벽을 형성하며 지난 한 세기 동안 암호학계를 가로막았던 것입니다.

이 역사적 암호 사건의 주요 요소는 다음과 같이 정리할 수 있습니다.

암호 분석 요소암호문 원문 특성해독 매칭 매개변수
기준 일자1918년 11월 27일1918년 12월 9일
암호문 총 길이170개 기호19열 전치 행렬 매칭
행렬 구성 형태8개 완전행 + 1개 불완전행-
변칙 열 특성G열 수용량은 8개에 불과-
기본 좌표/키워드A/D/F/G/V/XTRUPPENVERSCHIEBUNG

인간 전문가들은 암호 해독을 시도할 때 무의식적으로 물리적 시간선의 선후 관계를 철칙으로 삼았습니다. 그 어떤 엄밀한 연구자도 11월 말에 도청된 전보를 해독하기 위해 2주 뒤에나 일선 부대에 지급될 암호표를 적용해볼 생각을 하지 못했습니다. 상식에 기반한 이러한 전제 조건은 방어 기제에서 가혹한 암묵적 단언(assertion)처럼 작용하여, 탐색 논리가 한 번 잘못된 조건 분기에 빠지면 그 뒤에 투입된 모든 지적 노력과 연산 자원은 무용지물이 되고 맙니다.

반면 대규모 언어 모델은 학습 데이터를 탐색하고 매칭할 때 인간 고유의 역사적 선입견이나 시간 순서에 대한 고정관념에 얽매이지 않습니다. 시간선의 선후 관계를 따지지 않고, 오직 방대한 고차원 공간 속에서 수학적 규칙성에 완벽히 들어맞는 단 하나의 열쇠를 찾아낼 뿐입니다. 현실의 인과관계에 대한 집착을 내려놓고 전체 매개변수 공간을 전수 탐색함으로써, 인공지능은 인간 전문가들의 경험이 낳은 자연스러운 방어 사각지대를 거침없이 뛰어넘었습니다.

암호학이 증명한 인공지능의 한계와 실력: 수사학으로 포장할 수 없는 결과

암호학은 대규모 언어 모델의 역량을 가늠하는 가장 확실한 시금석입니다. 이곳의 규칙은 극도로 명확하며, 답의 참과 거짓은 오직 수학적으로만 판가름 납니다. 모델은 모호한 미사여구로 연산의 결함을 감출 수도 없고, 그럴듯한 맥락적 수사학으로 사람을 속일 수도 없습니다. 100여 년 전 독일군 전선에서 발생한 한 차례의 암호 운용 실수(예정보다 앞선 암호표 사용)는 시간 차라는 위장 덕분에 상식과 연역적 추론에 의존하던 인간 전문가들을 완벽하게 속여 넘겼지만, 전신기를 단 한 번도 다뤄본 적 없는 모델의 강력한 탐색 능력 앞에서는 결국 무력하게 뚫리고 말았습니다.

Astra의 이번 해독은 역사의 장막 속에 묻혀 있던 독일군 공식 문서를 복원해 냄과 동시에, 인류의 인지 체계에 드리워져 있던 보이지 않는 장벽을 실력으로 돌파했습니다. 모델은 군사 규정의 타당성이라는 선입견을 무시한 채, 순수한 수학적 구조만으로 전문가들의 사고 고착을 관통했습니다. 연산력의 전수 탐색과 확률적 수렴이 만들어낸 이러한 문제 해결 경로는, 인간의 전통적 경험이 방어할 수 있는 범위를 이미 훌쩍 뛰어넘고 있습니다.

참고 링크:

  • prinz 블로그 글
  • 해커뉴스(Hacker News) 토론
  • 롭스터스(Lobsters) 커뮤니티 토론