니힐리스트 암호
19세기 러시아 혁명가들이 쓰던 숫자 암호인 니힐리스트 암호를 암호화하고 복호화하세요. 각 글자는 먼저 폴리비우스 정사각형 위의 두 자리 좌표로 바뀐 뒤, 같은 방식으로 숫자가 된 반복되는 키워드가 그 아래에 더해지므로, 암호문은 숫자의 흐름이 됩니다. 정사각형을 혼합하고, 가산 키워드를 설정하며, 실시간 좌표 덧셈 과정을 따라가면서 결과를 복사하거나 다운로드하고 공유할 수 있습니다. 모든 작업은 브라우저에서 실행됩니다.
정사각형 키
가산 키
정사각형 키는 각 글자에 좌표를 부여하는 폴리비우스 정사각형을 혼합하고, 가산 키는 그 같은 정사각형 위에서 숫자로 바뀌어 메시지 아래에 필요한 만큼 반복되며 더해집니다. 양쪽 모두 같은 정사각형과 키를 써야 합니다. 가산 키를 비워 두면 순수한 좌표를 볼 수 있습니다.
위에 텍스트를 입력하면 결과가 여기에 표시됩니다.
폴리비우스 정사각형
1
2
3
4
5
1
2
3
4
5
니힐리스트 암호 사용 방법
- 1
암호화 또는 복호화와 정사각형 선택
평문을 니힐리스트 암호 숫자로 바꾸려면 암호화를, 숫자를 다시 되돌리려면 복호화를 고르세요. 글자를 위해서는 5×5 정사각형을, 숫자도 함께 실으려면 6×6 정사각형을 고르세요.
- 2
두 키워드 설정
선택적으로 폴리비우스 정사각형을 혼합할 정사각형 키워드를 입력하고, 메시지 위에 더해지는 가산 키워드를 입력하세요. 양쪽 모두 같은 정사각형과 키를 써야 합니다. 가산 키를 비워 두면 순수한 좌표를 볼 수 있습니다.
- 3
텍스트 입력 또는 붙여넣기
메시지를 입력하면 입력하는 즉시 변환됩니다. 단계 패널은 각 글자를 그 좌표 위에, 순환하는 키 숫자가 그 아래에 더해진 것과, 그 결과로 나온 암호 숫자를 보여 줍니다.
- 4
정사각형 읽기
폴리비우스 정사각형을 열어 모든 글자를 그 행과 열 번호와 함께, 그리고 강조된 키워드 칸을 확인하세요.
- 5
복사, 다운로드, 공유
결과를 복사하거나 텍스트 파일로 다운로드하거나, 입력한 정확한 텍스트와 정사각형, 키워드를 그대로 갖춘 채 도구를 다시 여는 링크로 공유하세요.
니힐리스트 암호 이해하기
니힐리스트 암호란 무엇인가요?
니힐리스트 암호는 1880년대의 손 암호로, 차르 체제에 맞서 비밀 메시지를 주고받을 방법이 필요했던 혁명가들인 러시아 니힐리스트 운동의 이름을 따왔습니다. 이는 함께 쌓아 올린 두 가지 단순한 발상으로 이루어집니다: 모든 글자를 한 쌍의 숫자로 바꾸는 폴리비우스 정사각형, 그리고 그 위에 더해지는 반복되는 숫자 키입니다. 어느 발상도 그 자체로는 새롭지 않지만, 좌표 치환과 주기적 덧셈을 결합하면 니힐리스트 암호는 어느 한쪽만보다 눈에 띄게 강해지며, 이는 뒤이어 나온 러시아와 소비에트 숫자 암호 전체 계보의 조상이 되었습니다.
출력이 글자가 아니라 숫자의 흐름이기 때문에, 니힐리스트 암호는 카이사르나 비제네르 같은 고전적인 글자 암호와는 꽤 달라 보입니다. 그러나 그 이면에서는 밀접하게 연관되어 있습니다: 폴리비우스 단계는 비푸드와 ADFGX 암호가 쓰는 것과 같은 좌표 치환이고, 키 가산 단계는 비제네르의 반복 키 발상을 글자 대신 산술로 수행한 것입니다. 이를 공부하는 것은 암호학자들이 작고 잘 이해된 조각들을 층층이 쌓아 어떻게 더 큰 암호를 만들었는지 보는 명료한 방법입니다.
니힐리스트 암호가 작동하는 방식
폴리비우스 정사각형으로 시작합니다: 알파벳을 담은 5×5 격자로(I와 J가 한 칸을 공유함), 행과 열에 1부터 5까지 번호가 매겨져 있습니다. 그러면 모든 글자는 두 자리 좌표 — 행 숫자에 이어 열 숫자 — 를 갖게 됩니다. 메시지는 이 좌표 숫자들의 목록으로 바뀝니다. 여기까지는 정확히 폴리비우스 암호입니다.
이제 키워드를 가져와 그 글자 하나하나를 같은 정사각형 위의 좌표로 바꾸면 짧은 키 숫자 목록이 나옵니다. 메시지 숫자를 한 행으로 적고 그 아래에 키 숫자를 반복하되, 키가 떨어질 때마다 키의 처음으로 돌아갑니다. 마지막으로 각 메시지 숫자에 그 아래의 키 숫자를 평범한 십진 합으로 더합니다. 그렇게 나온 숫자들 — 보통 각각 두 자리나 세 자리 — 이 암호문이며, 공백으로 구분되어 적힙니다. 복호화는 그저 같은 반복 키 숫자를 빼고 되찾은 좌표를 정사각형에서 읽어 내면 됩니다.
정사각형과 두 키워드
니힐리스트 암호는 두 개의 독립된 비밀을 씁니다. 첫째는 정사각형 자체입니다. 이 도구는 선택적인 정사각형 키워드로부터 정사각형을 만드는데, 키가 적용된 폴리비우스나 플레이페어 정사각형을 만드는 것과 정확히 같습니다: 키워드의 고유한 글자들이 순서대로 중복 없이 먼저 적히고, 나머지 알파벳이 뒤따릅니다. 아래의 실시간 정사각형은 키워드 칸을 강조하므로 혼합되는 모습을 볼 수 있습니다; 정사각형 키워드를 비워 두면 순수한 알파벳 정사각형이 쓰입니다.
둘째 비밀은 가산 키워드입니다. 그 글자들은 바로 그 같은 정사각형에서 찾아져 메시지에 더해지는 키 숫자가 됩니다. 두 키는 서로 다른 일을 합니다 — 정사각형 키는 각 글자가 어떤 좌표를 가질지 정하고, 가산 키는 그 위에 무엇이 더해질지 정합니다 — 그리고 보내는 이와 받는 이 모두 둘 다 공유해야 합니다. 이 도구에서는 가산 키를 비워 둔 채 아무것도 더해지지 않은 순수한 좌표가 나타나는 것을 볼 수 있는데, 덧셈이 층으로 더해지기 전에 폴리비우스 단계 자체를 보는 유용한 방법입니다.
5×5 또는 6×6 정사각형 고르기
고전적인 니힐리스트 암호는 25칸으로 된 5×5 정사각형을 씁니다. 라틴 알파벳은 26개의 글자를 가지므로 I와 J가 한 칸을 공유하고, 따라서 복호화된 J는 I로 읽힙니다 — 표준적인 폴리비우스 절충입니다. 좌표는 11부터 55까지이고, 암호 숫자(좌표에 키를 더한 것)는 22와 110 사이 어딘가에 떨어집니다.
이 도구는 36칸으로 된 6×6 정사각형도 제공하는데, 26개의 글자 전부를 따로 담고 0부터 9까지 열 개의 숫자도 담습니다. 그러면 암호가 숫자를 — 날짜, 지도 참조, 금액에 유용합니다 — 풀어 쓰지 않고 실어 나를 수 있으며, 다만 좌표(11부터 66까지)와 암호 숫자(132까지)가 약간 커지는 대가가 따릅니다. 위의 토글로 정사각형을 고르세요; 실시간 참조 격자가 거기에 맞춰 번호를 다시 매기며, 양쪽 모두 어느 정사각형을 쓰는지 합의해야 합니다.
니힐리스트 예제 풀이
정사각형 키워드 ZEBRAS와 가산 키워드 RUSSIAN으로 단어 ATTACK를 봅시다. ZEBRAS를 먼저 채우면 정사각형은 맨 윗 행에 Z E B R A, 그다음 S C D F G, 그다음 H I K L M, 그다음 N O P Q T, 그다음 U V W X Y로 읽힙니다. 거기서 좌표를 읽어 내면 ATTACK는 15 45 45 15 22 33이 되고, 키워드 RUSSIAN은 14 51 21 21 32 15 41이 됩니다.
이제 메시지 숫자 아래에 키 숫자를 필요한 만큼 반복하며 적고 더합니다: 15+14 = 29, 45+51 = 96, 45+21 = 66, 15+21 = 36, 22+32 = 54, 33+15 = 48. 그래서 ATTACK는 29 96 66 36 54 48로 암호화됩니다. 복호화하려면 같은 키 숫자를 뺍니다 — 29−14 = 15, 96−51 = 45, 그렇게 이어 가서 — 정사각형에서 15 45 45 15 22 33을 도로 ATTACK로 읽습니다. 어느 키워드를 바꾸든 모든 암호 숫자가 바뀌지만 여전히 올바르게 복호화됩니다.
니힐리스트 메시지 복호화하기
복호화는 단계를 거꾸로 돌립니다. 암호문을 그 숫자들로 나누고, 가산 키워드의 숫자를 같은 반복 주기로 그 아래에 적은 뒤, 뺍니다. 각 결과는 두 자리 좌표입니다; 이를 행 숫자와 열 숫자로 나누고 정사각형에서 그 칸을 찾아 글자를 되찾습니다. 이 도구는 복호화를 선택하고 암호화에 쓰인 것과 같은 정사각형, 정사각형 키워드, 가산 키워드를 입력하면 이 모든 것을 대신 해 줍니다.
숫자가 깨졌거나 잘못된 키나 정사각형을 쓰면, 뺄셈이 격자 밖에 떨어질 수 있습니다 — 예를 들어 행이나 열 숫자가 0이거나 정사각형보다 큰 경우입니다. 그럴 때 이 도구는 추측하는 대신 그 자리에 "?"를 보여 줍니다. 5×5 정사각형에는 글자만 살고(6×6 정사각형에는 글자와 숫자가 살므로), 원래 메시지의 공백과 문장 부호는 암호화 중에 버려졌으므로 다시 나타나지 않습니다.
역사와 안전성
니힐리스트 암호는 1870년대와 1880년대에 러시아 혁명가들이 썼으며, 폴리비우스 좌표에 키를 더하는 그 방식 전체에 이름을 붙여 주었습니다. 그 진짜 역사적 중요성은 출발점으로서의 것입니다: 암호학자들은 이를 한 걸음씩 더 강한 체계로 개선했는데, 여기에는 1950년대에 스파이 레이노 헤이헤넨이 쓴 소비에트 VIC 암호도 포함되며, 이 암호는 폴리비우스와 덧셈이라는 핵심을 유지하면서 추가 전치와 복잡한 키 일정으로 그것을 감쌌습니다. 제1차 세계 대전의 ADFGVX 암호도 같은 좌표 치환 발상을 공유합니다.
현대의 기준으로 보면 기본 니힐리스트 암호는 약합니다. 키가 짧은 주기로 반복되므로, 공격자가 키 길이를 한번 추측하고 나면 암호는 비제네르 암호를 깨뜨리는 것과 같은 종류의 분석에 무너지고, 폴리비우스 치환은 혼란을 더하지만 실질적인 강함은 거의 더하지 못합니다. 여러 메시지에 키를 재사용하면 더욱 약해집니다. 오늘날 그 가치는 교육적인 것입니다 — 좌표 정사각형과 반복 키를 층으로 쌓는 것이 어떻게 진지한 암호학으로 나아가는지를 생생하게 보여 주는 예시입니다. 실제 정보를 보호하려면 언제나 AES 같은 현대적이고 동료 검토를 거친 알고리즘을 쓰고, 니힐리스트 암호는 역사와 퍼즐, 캡처 더 플래그 챌린지를 위해 남겨 두세요.
자주 묻는 질문
니힐리스트 암호란 무엇인가요?
니힐리스트 암호는 어떻게 작동하나요?
두 키워드는 무엇을 위한 것인가요?
니힐리스트 예제를 풀어서 보여 줄 수 있나요?
니힐리스트 암호는 어떻게 복호화하나요?
암호문이 왜 숫자로 되어 있나요?
5×5와 6×6 정사각형의 차이는 무엇인가요?
니힐리스트 정사각형은 반드시 키워드를 써야 하나요?
공백, 문장 부호, J는 어떻게 되나요?
니힐리스트 암호는 다른 암호와 어떻게 연관되나요?
니힐리스트 암호는 얼마나 안전한가요?
내 텍스트가 서버로 전송되나요?
관련 도구
이런 편리한 도구도 함께 사용해 보세요