ADFGX / ADFGVX 암호
제1차 세계대전 당시 독일군의 야전 암호였던 ADFGX 및 ADFGVX 암호를 암호화하고 복호화하세요. 각 글자는 먼저 Polybius 사각형에서 읽어 낸 두 개의 라벨 글자로 갈라지고(분할 단계), 그다음 전체 흐름이 세로단 전치 키워드로 뒤섞입니다. 사각형을 섞고, 전치 키를 설정하며, 실시간으로 진행되는 2단계 작업을 따라가면서 결과를 복사하거나 다운로드하고 공유할 수 있습니다. 모든 작업은 브라우저에서 실행됩니다.
사각형 키
전치 키
사각형 키는 각 글자를 분할하는 Polybius 사각형을 섞고, 전치 키는 그 결과를 뒤섞는 세로단을 정합니다. 양쪽 모두 같은 사각형과 키를 써야 합니다. 전치 키를 비워 두면 분할 단계만 따로 볼 수 있습니다.
위에 텍스트를 입력하면 결과가 여기에 표시됩니다.
ADFGX 사각형
A
D
F
G
X
A
D
F
G
X
ADFGX / ADFGVX 암호 사용 방법
- 1
암호화 또는 복호화와 사각형 선택
평문을 ADFGX 암호문으로 바꾸려면 암호화를, 암호문을 다시 되돌리려면 복호화를 고르세요. 글자에는 5×5 ADFGX 사각형을, 숫자까지 실어 나르려면 6×6 ADFGVX 사각형을 고르세요.
- 2
두 개의 키워드 설정
선택적으로 Polybius 사각형을 섞을 사각형 키워드와, 세로단 단계를 좌우할 전치 키워드를 입력하세요. 양쪽 모두 같은 사각형과 키를 써야 합니다. 전치 키를 비워 두면 분할만 볼 수 있습니다.
- 3
텍스트 입력 또는 붙여넣기
메시지를 입력하면 입력하는 즉시 변환됩니다. 단계 패널은 각 글자를 그 두 라벨 위에 보여 준 뒤, 라벨이 키가 적용된 세로단에 채워진 모습을 보여 줍니다.
- 4
사각형 읽기
ADFGX 사각형을 열어 모든 글자를 그 행과 열의 라벨과 함께, 그리고 강조된 키워드 칸을 확인하세요.
- 5
복사, 다운로드, 공유
결과를 복사하거나 텍스트 파일로 다운로드하거나, 입력한 정확한 텍스트와 사각형, 키워드를 그대로 갖춘 채 도구를 다시 여는 링크로 공유하세요.
ADFGX 및 ADFGVX 암호 이해하기
ADFGX / ADFGVX 암호란 무엇인가요?
ADFGX 암호는 독일군 장교 Fritz Nebel이 고안하여 제1차 세계대전 막바지인 1918년 3월 서부 전선에 투입한 야전 암호입니다. 그 확장형인 ADFGVX는 1918년 6월에 뒤따랐습니다. 이 암호의 이름은 출력에 등장하는 유일한 글자들 — 원래 버전의 A, D, F, G, X와 확장형의 A, D, F, G, V, X — 에서 따온 것입니다. 그 글자들은 의도적으로 선택되었습니다. 모스 부호에서 서로 매우 다르기 때문에, 무선 송신이 심하게 깨지더라도 하나가 다른 하나로 바뀔 가능성이 낮았습니다.
ADFGX는 분할 전치 암호로, 두 단계로 작동한다는 뜻입니다. 먼저 Polybius 사각형을 써서 모든 글자를 두 개의 기호로 가르고(분할), 그다음 그렇게 나온 기호의 흐름을 키워드로 좌우되는 세로단 전치로 뒤섞습니다. 어느 한 단계만으로는 강하지 않지만, 치환과 전치를 결합하면 각 글자의 정보가 메시지 전체에 퍼지므로, ADFGVX는 그 시대에 가장 깨기 어려운 야전 암호 가운데 하나가 되었습니다.
ADFGX인가 ADFGVX인가: 어느 사각형인가요?
ADFGX는 25개의 칸을 담은 5×5 사각형을 씁니다. 라틴 알파벳은 26자이므로, 고전적인 Polybius 사각형에서와 똑같이 I와 J가 한 칸을 함께 쓰며, 따라서 복호화된 J는 I로 되읽힙니다. 다섯 개의 행과 열 라벨은 A, D, F, G 그리고 X입니다. 이것이 원래의 1918년 암호이며 글자만 실어 나를 수 있습니다.
ADFGVX는 여섯 번째 라벨 V를 더해 36개의 칸으로 이루어진 6×6 사각형을 만듭니다. 그 여유 공간 덕분에 26자 글자를 하나도 합치지 않고 모두 담고, 거기에 0부터 9까지 열 개의 숫자까지 담으므로, 숫자를 글자로 풀어 적지 않고도 부호화할 수 있습니다 — 지도 좌표, 날짜, 부대 번호를 보내는 데 꼭 필요한 능력입니다. 위의 토글로 사각형을 고르세요. 실시간 참조 격자가 행과 열의 라벨을 그에 맞게 다시 붙입니다.
사각형, 라벨, 그리고 두 개의 키워드
이 암호의 핵심은 사각형입니다. 한 글자의 칸을 읽으면 행 라벨과 열 라벨이 나오고, 그 라벨 쌍이 곧 그 글자의 코드입니다. 이 도구는 키가 적용된 Polybius나 Playfair 사각형을 만드는 방식과 똑같이, 선택적 사각형 키워드로 사각형을 만듭니다. 키워드의 중복 없는 글자들을 순서대로 반복 없이 먼저 적어 넣고, 나머지 알파벳이 뒤를 잇습니다. 실시간 사각형은 키워드 칸을 강조해 섞이는 모습을 볼 수 있게 합니다. 역사적으로 사각형은 무작위로 뒤섞은 것이었으며, 키워드는 같은 효과에 이르는 편리하고 재현 가능한 방법입니다.
ADFGX에는 두 번째 독립적인 비밀, 곧 전치 키워드가 필요합니다. 모든 글자가 라벨 쌍으로 바뀐 뒤, 전체 흐름을 이 키워드 아래에 행으로 적고, 키 글자들의 알파벳 순서대로 세로단을 읽어 냅니다. 두 키는 서로 다른 일을 합니다 — 사각형 키는 각 글자가 무엇이 될지를 정하고, 전치 키는 각 절반이 어디로 갈지를 정합니다 — 그리고 양쪽 모두 둘 다를 공유해야 합니다. 이 도구에서 전치 키를 비워 두면 분할 단계만 따로 지켜볼 수 있습니다.
ADFGX 암호가 작동하는 방식
암호화는 두 단계로 이루어집니다. 1단계, 분할: 메시지의 각 글자를 사각형에서 찾아, 그 행의 라벨에 이어 그 열의 라벨로 바꿉니다. N개 글자로 이루어진 메시지는 2N개 라벨 글자의 흐름이 됩니다. 2단계, 전치: 그 흐름을 전치 키워드 아래에 행으로 적되 키워드의 글자 수만큼 세로단을 두고, 키워드 글자들의 알파벳 순서대로 세로단을 하나씩 들어 올려 이어 붙여 암호문을 만들며, 전통적으로 다섯 글자씩 묶어 적습니다.
전치야말로 이 암호에 힘을 주는 부분입니다. 분할 뒤에는 한 글자의 두 절반이 나란히 붙어 있는데, 세로단 읽기가 그것들을 떼어 내어 다른 글자들의 절반 사이로 흩뜨리므로, 단 하나의 평문 글자라도 되찾으려면 먼저 메시지 전체의 전치를 되돌려야 합니다. 위 도구는 두 단계를 실시간으로 보여 줍니다. 분할 패널은 각 글자를 그 두 라벨 위에 펼쳐 놓고, 전치 패널은 라벨 흐름이 키가 적용된 세로단에 채워진 모습을 그 읽기 순서 번호와 함께 보여 줍니다.
ADFGX 예제 풀이
단어 ATTACK를 평범한 5×5 사각형과 전치 키 KEY로 다뤄 봅시다. 각 글자를 그 행과 열의 라벨로 분할합니다: A는 AA, T는 GG, T는 GG, A는 AA, C는 AF, K는 DX입니다. 한데 이으면 라벨 흐름 AAGGGGAAAFDX가 나오는데, 원래 여섯 글자의 두 배 길이입니다.
이제 전치합니다. 키 KEY는 세 글자이므로 흐름을 세 세로단으로 적습니다 — 네 개의 행으로 AAG, GGG, AAA, FDX — K, E, Y라는 머리글자 아래에 둡니다. 머리글자의 알파벳 순서대로 세로단을 읽습니다: 먼저 E가 A G A D를 주고, 그다음 K가 A G A F를, 그다음 Y가 G G A X를 줍니다. 이어 붙여 다섯씩 묶으면 ATTACK는 AGADA GAFGG AX로 암호화됩니다. 사각형 키워드를 더하거나 전치 키를 바꾸면 결과가 완전히 달라지지만, 그래도 다시 ATTACK로 복호화됩니다.
ADFGX 메시지 복호화하기
복호화는 두 단계를 거꾸로 돌립니다. 암호문의 길이와 전치 키워드로부터 각 세로단에 몇 개의 라벨 글자가 들어가는지 정확히 알아낼 수 있습니다. 암호문은 그 세로단들로 다시 잘리고, 세로단들은 원래 순서로 되돌려지며, 행을 가로질러 읽으면 분할된 라벨 흐름이 다시 만들어집니다. 그 흐름을 한 번에 라벨 두 개씩 — 행 라벨 다음 열 라벨 — 취하여 각 쌍을 사각형에서 찾으면 원래 글자들이 되살아납니다. 복호화를 선택하면 도구가 이 모두를 대신 해 줍니다.
올바르게 복호화하려면 암호화에 쓰인 것과 같은 사각형(같은 변형과 사각형 키워드)과 같은 전치 키워드를 써야 합니다. 그중 어느 하나라도 틀리면 세로단이 엉뚱한 자리에서 잘려 라벨이 잘못 짝지어지고 출력이 뒤죽박죽이 됩니다 — 이는 바로 이 암호를 야전에서 쓸모 있게 만든 성질이기도 합니다. 5×5 사각형에는 글자만, 6×6 사각형에는 글자와 숫자만 들어 있으므로, 원래 메시지의 다른 것들은 암호화 과정에서 버려졌으며 다시 나타나지 않습니다.
역사, Painvin, 그리고 안전성
ADFGVX는 그 설계뿐만 아니라 깨졌다는 사실로도 유명합니다. 1918년 6월, 독일군의 춘계 공세가 파리를 향해 밀고 들어오던 때, 프랑스의 암호 해독가 Georges Painvin이 몇 주에 걸친 고된 작업 끝에 가로챈 ADFGVX 메시지를 풀어냈는데, 그중에는 독일군이 어디를 공격하려는지 드러냈기에 훗날 승리의 무전이라 불리게 된 메시지도 있었습니다. 그의 해독은 제1차 세계대전 암호 해독에서 가장 칭송받는 위업 가운데 하나이며, 연합군이 공격을 미리 대비하는 데 도움이 되었습니다.
현대의 기준으로 보면 ADFGVX는 안전하지 않습니다. 분할과 전치의 결합은 단순한 빈도 분석을 이겨 내지만, Painvin이 개척한 방법과 현대의 컴퓨터 보조 공격에는 무너지며, 특히 여러 메시지가 같은 키를 공유하거나 충분한 암호문이 있을 때 그렇습니다. 오늘날 그 가치는 교육에 있습니다: 치환과 전치를 겹쳐 쌓는 것이 어떻게 암호를 강하게 만드는지 생생하게 직접 손으로 보여 주는 예입니다. 실제 정보를 보호하려면 언제나 AES 같은 현대적이고 동료 검토를 거친 알고리즘을 쓰고, ADFGX는 역사와 퍼즐, 캡처 더 플래그 챌린지를 위해 남겨 두세요.
자주 묻는 질문
ADFGX 암호란 무엇인가요?
ADFGX와 ADFGVX의 차이는 무엇인가요?
왜 A, D, F, G, V, X 라는 글자를 쓰나요?
ADFGX 암호는 어떻게 작동하나요?
두 개의 키워드는 무엇을 위한 것인가요?
ADFGX 예제 풀이를 보여 줄 수 있나요?
ADFGX 메시지는 어떻게 복호화하나요?
ADFGVX 암호는 누가 깼나요?
암호에서 분할이란 무엇인가요?
ADFGVX 사각형은 반드시 무작위여야 하나요?
ADFGX 암호는 얼마나 안전한가요?
내 텍스트가 서버로 전송되나요?
관련 도구
이런 편리한 도구도 함께 사용해 보세요