Pollux 암호
Pollux 암호를 인코딩하고 디코딩하세요. 먼저 메시지를 모스 부호로 적되 글자 사이에는 x 하나, 단어 사이에는 x 둘을 넣고, 그런 다음 점, 선, 구분자 하나하나를 여러분이 지정한 0부터 9까지의 숫자 중 하나로 대체합니다. 여러 숫자가 같은 기호를 나타낼 수 있기 때문에, 같은 글자라도 매번 다르게 적힙니다. 글자에서 모스 부호로, 다시 숫자로 변환되는 과정을 실시간으로 따라가 보고, 결과를 복사하거나 다운로드하거나 공유하세요. 모든 처리는 브라우저 안에서 이루어집니다.
키
키는 각 숫자 0~9가 무엇을 나타내는지를 정합니다. 0부터 9까지 순서대로 각 숫자마다 하나씩, 점(.), 선(-), 또는 구분자를 뜻하는 x를 사용해 기호 열 개를 입력하세요. 모든 기호가 숫자를 갖도록 세 가지 기호가 각각 적어도 하나씩 포함되어야 합니다. 예시 x...x--xxx는 0, 4, 7, 8, 9를 구분자로, 1, 2, 3을 점으로, 5와 6을 선으로 만듭니다. 사용할 수 없는 입력은 이 기본값으로 되돌아가며, 양쪽 모두 같은 키를 써야 합니다.
위에 텍스트를 입력하면 여기에 결과가 표시됩니다.
키 표 (기호 → 숫자)
기호
숫자
•
점
–
선
×
구분자 (x)
폴룩스 암호 사용 방법
- 1
인코딩 또는 디코딩 선택
일반 텍스트를 Pollux 암호 숫자로 바꾸려면 인코딩을, 암호 숫자를 다시 일반 텍스트로 바꾸려면 디코딩을 선택하세요.
- 2
키 설정
0부터 9까지 각 숫자마다 하나씩, 점, 선, 또는 구분자를 뜻하는 x를 사용해 기호 열 개를 입력하세요. 모든 기호가 숫자를 갖도록 세 가지 기호가 모두 나타나게 하고, 양쪽 모두 같은 키를 쓰세요.
- 3
텍스트 입력 또는 붙여넣기
메시지를 입력하면 입력하는 대로 변환됩니다. 인코딩할 때는 단계 패널이 각 글자를 그 모스 부호 위에 보여준 다음, 스트림 전체를 기호 하나하나로 보여주며 그 아래에 각 숫자를 적습니다.
- 4
키 표 확인
키 표를 열면 현재 키에서 어떤 숫자가 점, 선, 구분자를 나타내는지 볼 수 있습니다.
- 5
복사, 다운로드 또는 공유
결과를 복사하거나 텍스트 파일로 다운로드하거나, 정확히 같은 텍스트와 키가 바로 준비된 상태로 도구를 다시 여는 링크를 공유하세요.
Pollux 암호 이해하기
Pollux 암호란?
Pollux 암호는 평범해 보이는 0부터 9까지의 숫자 나열 속에 메시지를 숨깁니다. 먼저 텍스트를 모스 부호로 바꾼 다음 그 모스 부호를 위장하는 방식으로 동작합니다. 모든 점, 모든 선, 모든 구분자가 숫자로 대체됩니다. 완성된 메시지가 숫자뿐이기 때문에 그 아래에 모스 부호가 숨어 있다는 뚜렷한 신호가 전혀 없는데, 바로 이 점 때문에 퍼즐 헌트, 방 탈출, 그리고 캡처 더 플래그(CTF)와 사이언스 올림피아드 CodeBusters 대회에서 인기가 많습니다.
Pollux는 Fractionated Morse, Morbit과 함께 모스 부호 기반 연필·종이 암호의 작은 계열에 속하며, 이들은 모두 American Cryptogram Association(미국 암호학회)이 정리하고 계승해 온 암호입니다. Pollux를 남다르게 만드는 것은 기호보다 더 많은 숫자를 영리하게 활용한다는 점입니다. 모스 기호는 세 가지뿐이지만 숫자는 열 개이므로, 각 기호에 숨을 수 있는 여러 개의 숫자가 주어집니다. 바로 그 하나의 아이디어가 이 암호의 비결 전부이며, 그렇지 않았다면 해독자가 기댈 글자 빈도를 평평하게 만들어 줍니다.
세 가지 기호, 열 개의 숫자
메시지를 모스 부호로 적고 나면 점, 선, 그리고 여기서 x로 표기하는 구분자 이 세 가지 기호만 쓰입니다. 글자 사이에는 x 하나, 단어 사이에는 xx 둘을 넣습니다. 이를 암호화하려면 0부터 9까지의 숫자 중 어느 것이 점을, 어느 것이 선을, 어느 것이 구분자를 나타낼지 정하면 됩니다. 정해진 규칙은 없으며, 유일한 요구 조건은 세 가지 기호 각각이 적어도 하나의 숫자를 갖는 것입니다. 그래야 숫자 없이 남는 기호가 없고 디코딩이 가능해집니다.
열 개의 숫자를 세 가지 기호에 나누다 보면 대부분의 기호는 결국 고를 수 있는 숫자를 두 개, 세 개, 또는 그 이상 갖게 됩니다. 스트림에서 점에 다다르면 점에 배정된 숫자 중 어느 것이든 적을 수 있습니다. 그 자유로움이 바로 Pollux의 핵심입니다. 점 하나뿐인 글자 E는 어느 곳에서는 1이고 다른 곳에서는 3일 수 있으므로, 각 숫자가 얼마나 자주 나타나는지 세는 공격자는 어떤 글자가 흔한지에 대해 거의 아무것도 알아내지 못합니다.
숫자 중에서 고르기
하나의 기호가 여러 숫자에 대응될 수 있기 때문에, 암호화하는 사람은 매번 하나를 골라야 합니다. 전통적으로 그 선택은 무작위로 이루어지므로, 똑같은 메시지를 두 번 암호화하면 서로 다른 숫자 문자열 두 개가 나오는데, 이는 분석을 한층 더 어렵게 만드는 유용한 성질입니다.
하지만 온라인 도구는 재현 가능해야 합니다. 같은 텍스트를 같은 키로 입력하면 언제나 같은 결과가 나와야 하고, 공유 링크는 보았던 그대로를 다시 열어야 합니다. 이 도구는 무작위성 없이도 다양성을 유지하기 위해 각 기호의 숫자들을 차례로 순환합니다. 점에 1, 2, 3이 배정되어 있다면 첫 번째 점은 1, 다음은 2, 다음은 3, 그다음 다시 1로 돌아가는 식입니다. 출력은 여전히 사용 가능한 모든 숫자에 걸쳐 퍼지지만 이제 재현 가능하며, 모든 숫자가 정확히 하나의 기호로 되돌아가므로 디코딩은 어떤 숫자를 골랐는지에 전혀 좌우되지 않습니다.
Pollux 암호의 작동 방식
인코딩은 두 단계로 진행됩니다. 첫째, 메시지 전체를 모스 부호로 적되 글자 사이에는 x 하나, 단어 사이에는 둘을 넣습니다. 둘째, 그 점-선-x 스트림을 한 번에 한 기호씩 훑으며 각 기호를 그것에 배정한 숫자 중 하나로 바꿉니다. 신경 쓸 패딩도, 묶음도 없습니다. 모든 기호는 그저 숫자 하나가 되므로, 스무 개 기호로 이루어진 스트림은 정확히 스무 개의 숫자가 됩니다.
위의 단계 패널이 이를 실시간으로 보여줍니다. 윗줄은 각 글자를 그 모스 부호와 짝지어 보여주고, 아랫줄은 스트림 전체를 기호 하나하나로 펼쳐 그 아래에 각 기호가 무엇이 되었는지 숫자를 적어 둡니다. 반복되는 글자를 지켜보면 서로 다른 숫자를 가지는 것을 볼 수 있는데, 이는 Pollux가 자신의 숫자들을 어떻게 흩뿌리는지를 눈으로 확인해 주는 증거입니다. 그 아래의 키 표는 현재 키에 대해 어떤 숫자가 점에, 선에, 구분자에 속하는지를 정확히 보여줍니다.
직접 풀어 보는 예시
구조 신호 SOS를 키 x...x--xxx와 함께 살펴봅시다. 이 키는 1, 2, 3을 점으로, 5와 6을 선으로, 그리고 0, 4, 7, 8, 9를 구분자로 만듭니다. 모스 부호로 SOS는 S가 점-점-점, O가 선-선-선, 그리고 다시 S가 점-점-점이며, 하나짜리 구분자로 이어 붙이면 열한 개 기호로 이루어진 스트림 점 점 점 x 선 선 선 x 점 점 점이 됩니다.
이제 각 기호를 그 숫자들로 순환하며 대체합니다. 처음 세 점은 1, 2, 3을 가지고, 첫 구분자는 0을 가지며, 세 선은 5, 6, 5를 가집니다(선은 숫자가 둘뿐이라 다시 처음으로 돌아갑니다). 다음 구분자는 4를 가지고, 마지막 세 점은 다시 1, 2, 3을 가집니다. 그 결과는 12305654123입니다. 디코딩은 이를 거꾸로 진행합니다. 각 숫자가 자신의 기호가 되어 1, 2, 3은 점이고 0과 4는 구분자이며 5와 6은 선이므로, 점 점 점 x 선 선 선 x 점 점 점이 다시 구성되고, 이를 모스 부호 표로 되읽으면 SOS가 됩니다.
Pollux 메시지 디코딩하기
디코딩은 모호함이 없기 때문에 놀라울 만큼 직관적입니다. 각 숫자는 정확히 하나의 기호를 나타냅니다. 키에서 모든 숫자를 찾아 숫자 문자열을 다시 점, 선, 구분자로 바꾸고, 그것들을 하나의 긴 스트림으로 이어 붙인 다음, 구분자에서 끊습니다. x 하나는 글자의 끝을, xx 둘은 단어의 끝을 나타냅니다. 그리고 점과 선의 각 묶음을 모스 부호 표로 되읽어 텍스트를 복원합니다.
올바르게 디코딩하려면 인코딩에 쓴 것과 같은 키를 써야 합니다. 키가 다르면 숫자가 엉뚱한 기호로 대응되어 모스 부호가 뒤죽박죽으로 나옵니다. 모스 부호가 있는 것은 글자와 숫자뿐이므로, 원래 메시지의 문장 부호나 다른 기호는 인코딩 중에 빠졌으며 다시 돌아오지 않습니다. 그리고 "it's" 같은 축약형은 단일 단어 ITS로 돌아옵니다. 디코딩 시 암호 숫자 묶음 사이의 공백은 무시되므로, 암호문을 빈틈없이 붙여 썼든 다섯 자리씩 깔끔한 블록으로 나눠 썼든 상관없습니다.
역사, 용도, 그리고 보안
Pollux는 Fractionated Morse, Morbit과 나란히 American Cryptogram Association(미국 암호학회)이 취미 암호 해독을 위해 정리한 몇 안 되는 모스 부호 기반 암호 중 하나이며, 사이언스 올림피아드 CodeBusters 같은 학교 대회에서 제2의 전성기를 누리고 있습니다. 그곳에서 학생들은 모스 부호가 남기는 패턴으로부터 키를 복원하는 법을 배웁니다. 여러 개가 하나를 나타내도록 평문 기호보다 더 많은 암호 기호를 쓰는 이 비결은, 빈도 세기를 어떻게 무너뜨리는지를 보여주는 작지만 우아한 교훈입니다.
현대 기준으로 보면 Pollux는 안전하지 않습니다. 각 기호를 여러 숫자에 걸쳐 흩뿌리면 단순한 빈도 분석은 무력화되지만, 바탕에 깔린 모스 부호는 강하고 잘 알려진 패턴을 부과합니다. 세 개의 구분자가 연달아 나오는 일은 결코 없고, 어떤 짧은 부호들은 매우 흔합니다. 그래서 알려졌거나 추측된 키가 있거나 단순히 충분한 양의 암호문만 있으면 끈기 있는 해독자나 컴퓨터가 메시지를 복원할 수 있습니다. Pollux는 퍼즐이자 학습 도구로, 즉 한 부호를 다른 부호로 위장하면 어떻게 문턱이 높아지는지를 생생하게 보여주는 사례로 다루어야 하며, 실제 비밀을 보호하는 수단으로는 결코 쓰지 마세요. 진정한 기밀이 필요하다면 언제나 AES와 같이 동료 검증을 거친 현대 알고리즘을 사용하세요.
자주 묻는 질문
Pollux 암호란 무엇인가요?
Pollux 키는 어떻게 작동하나요?
왜 여러 숫자가 같은 기호를 뜻할 수 있나요?
왜 여기서는 같은 텍스트가 같은 숫자를 만드나요?
직접 풀어 보는 예시를 보여줄 수 있나요?
Pollux 메시지는 어떻게 디코딩하나요?
숫자와 문장 부호도 처리하나요?
키가 유효하지 않으면 어떻게 되나요?
Pollux는 Morbit, Fractionated Morse와 어떻게 다른가요?
Pollux 암호는 안전한가요?
제 텍스트가 서버로 전송되나요?
관련 도구
이런 편리한 도구도 함께 사용해 보세요