Straddling Checkerboard
글자를 숫자로 바꾸는 monome-dinome 암호인 Straddling Checkerboard를 암호화하고 복호화하세요. 가장 흔한 글자들은 한 자리만 차지하고 다른 모든 글자는 두 자리를 차지하므로, 출력은 메시지를 촘촘한 숫자 흐름으로 분해하여 단어 경계를 숨깁니다. 보드를 뒤섞을 키워드를 고르고, 두 개의 행 표시 열을 선택하며, 암호화와 복호화를 전환하면서 보드가 채워지고 숫자가 만들어지는 모습을 지켜보세요. 모든 것이 브라우저에서 실행됩니다.
키워드
빈 열
이 두 열의 숫자가 두 자리 글자를 위한 행 표시가 됩니다. 고전적인 보드는 2 and 6 열을 사용합니다.
실시간 체커보드
위에 텍스트를 입력하면 Straddling Checkerboard 결과가 여기에 표시됩니다.
스트래들링 체커보드 사용 방법
- 1
암호화 또는 복호화 선택
글자를 숫자 흐름으로 바꾸려면 암호화를, Straddling Checkerboard 숫자 흐름을 다시 글자로 바꾸려면 복호화를 고르세요. 어느 쪽이든 같은 보드 키가 쓰입니다.
- 2
보드 키 설정
선택적으로 글자의 순서를 뒤섞을 키워드를 입력하고, 행 표시가 될 두 빈 열을 고르세요. 고전적인 보드는 키워드를 쓰지 않고 2 and 6 열을 사용합니다. 실시간 보드는 모든 글자가 정확히 어디에 놓이는지 보여 줍니다.
- 3
텍스트 입력 또는 붙여넣기
메시지나 숫자를 입력하세요. 암호는 자동으로 실행되어 각 글자를 한 자리 또는 두 자리 숫자로 암호화하거나 숫자 흐름을 다시 글자로 읽어 내며, 계산 과정을 카드별로 보여 줍니다.
- 4
보기, 복사, 공유
결과를 읽은 뒤, 복사하거나 텍스트 파일로 다운로드하거나, 당신의 정확한 키워드와 빈 열, 방향, 텍스트 그대로 도구를 다시 여는 링크로 공유하세요. 모든 것이 브라우저 안에 머뭅니다.
Straddling Checkerboard 이해하기
Straddling Checkerboard란 무엇인가요?
Straddling Checkerboard는 작은 격자를 사용해 글자를 숫자로 바꾸는 치환 암호입니다. 이것을 특별하게 만드는 점은 코드의 길이가 모두 같지는 않다는 것입니다. 가장 흔한 몇몇 글자는 한 자리 숫자로 암호화되는 반면, 다른 모든 글자와 기호는 두 자리 숫자로 암호화됩니다. 어떤 글자는 한 자리가 되고 다른 글자는 두 자리가 되기 때문에 이 암호는 monome-dinome 암호라고 불리며, 출력에서 짧은 코드와 긴 코드가 서로 엇갈리는 방식이 바로 straddling이라는 이름을 부여합니다.
이 고르지 않은 코딩은 영리한 묘수입니다. E, T, A, O, N, R, I, S 같은 자주 쓰이는 글자에 가장 짧은 코드를 주면 암호문이 촘촘하게 유지되는데, 이는 Morse 부호가 흔한 글자에 가장 짧은 신호를 주는 것과 매우 비슷합니다. 동시에 숫자 흐름에는 공백도 없고 고정된 글자 폭도 없으므로, 글자 사이의 경계가 숨겨집니다. Straddling Checkerboard는 그 자체로 단독으로 쓰이는 일이 드뭅니다. 그것은 Nihilist 및 VIC 암호 같은 더 강력한 종이와 연필 체계의 첫 단계로, 그 단계를 거친 숫자가 다시 한층 더 암호화됩니다.
Straddling Checkerboard가 작동하는 방식
보드는 열에 0부터 9까지 이름이 붙은 격자입니다. 맨 윗줄에는 고빈도 글자가 들어가지만, 그중 두 칸은 비워 둡니다. 그 두 빈 열 위의 숫자는 행 표시가 됩니다. 각각은 격자 아래의 두 번째 행에 이름을 붙입니다. 맨 윗줄에 자리한 글자는 그 열의 한 자리 숫자로 암호화됩니다. 아래쪽 행 중 하나에 자리한 글자는 두 자리 숫자, 즉 먼저 행 표시 숫자가 오고 그다음 열 숫자가 오는 식으로 암호화됩니다.
그러면 암호화는 곧바로 찾아보는 일입니다. 평문을 한 번에 한 글자씩 훑으며 각 글자를 보드에서 찾아 그 한 자리 또는 두 자리 코드를 적습니다. 공백과 문장 부호는 버려지고 글자는 하나의 대소문자로 통일되므로, 결과는 한 글자가 끝나고 다음 글자가 시작되는 곳을 알릴 표시가 전혀 없는 순수한 숫자 흐름이 됩니다. 복호화는 그 읽기를 거꾸로 합니다. 숫자를 왼쪽에서 오른쪽으로 훑다가 두 개의 행 표시 숫자 중 하나를 만나면 그것을 다음 숫자와 함께 두 자리 코드로 읽고, 그렇지 않으면 한 자리 숫자가 홀로 섭니다. 행 표시는 결코 단독으로 한 글자로 나타나지 않으므로, 이 읽기는 언제나 모호하지 않습니다.
예제 풀이
맨 윗줄이 비어 있지 않은 열들에 걸쳐 E, T, A, O, N, R, I, S를 읽고 두 빈 열이 2 and 6에 있는 고전적인 보드를 잡습니다. 첫 번째 아래쪽 행은 표시 2로 이름이 붙고 B, C, D, F, G, H, J, K, L, M을 담습니다. 두 번째 아래쪽 행은 표시 6으로 이름이 붙고 P, Q, 슬래시, U, V, W, X, Y, Z와 마침표를 담습니다. 그래서 E is 0, T is 1, A is 3이며, 표시 2 행의 1번 열에 자리한 C는 21입니다.
이제 메시지 ATTACK AT DAWN을 암호화합니다. 한 글자씩 읽으면 A is 3, T is 1, T is 1, A is 3, C is 21, K is 27, A is 3, T is 1, D is 22, A is 3, W is 65, N is 5가 됩니다. 그 코드들을 구분자 없이 이으면 암호문 3113212731223655가 나옵니다. 복호화하려면 그 숫자들을 왼쪽에서 훑습니다. 3은 행 표시가 아니므로 A이고, 그다음 1은 T, 1은 T, 3은 A, 그다음 2는 짝을 시작하므로 21은 C, 27은 K, 이런 식으로 ATTACKATDAWN을 다시 만들어 냅니다. 오직 글자만 암호화되기 때문에 공백은 사라졌으며, 이것이 바로 숫자 흐름이 단어 경계를 숨기는 방식입니다.
키워드와 빈 열
두 가지 선택이 보드를 정하며 키 역할을 합니다. 첫 번째는 글자의 순서를 뒤섞는 키워드입니다. 키워드의 서로 다른 글자들이 먼저 보드에 적히고, 그다음 남은 글자와 기호가 평소의 순서대로 따라옵니다. 공유한 키워드로 만든 보드는 어느 글자가 어느 코드를 얻는지를 뒤섞으므로, 키워드에 합의한 두 통신자는 같은 보드를 만들어 내지만 외부인은 그렇지 못합니다. 키워드가 없으면 보드는 자연스러운 순서로 채워지며, 이는 위의 교과서적인 예제를 재현합니다.
두 번째 선택은 맨 윗줄에서 어느 두 열을 비워 둘지입니다. 그 두 열의 숫자가 두 아래쪽 행을 위한 행 표시가 되며, 그것들을 바꾸면 모든 두 자리 코드가 바뀝니다. 이 도구는 둘 다 설정하게 해 줍니다. 보드를 뒤섞을 키워드를 입력하고 0부터 9까지 중 서로 다른 두 열의 숫자를 빈 열로 고르세요. 실시간 보드가 즉시 갱신되어 모든 글자가 정확히 어디에 놓이는지 볼 수 있으며, 복호화하려면 같은 키워드와 열이 필요하므로 그것들은 눈에 보이는 텍스트가 아니라 공유 링크 안에 담겨 이동합니다.
VIC 암호와 냉전의 역사
Straddling Checkerboard는 일찍이 실전에 투입된 가장 정교한 손 암호 중 하나인 VIC 암호의 심장으로 가장 잘 알려져 있습니다. 그것은 1950년대 미국에서 활동한 소련 첩보원, 암호명 VICTOR의 Reino Hayhanen의 이름을 땄습니다. 그는 Straddling Checkerboard를 사용해 자신의 메시지를 숫자로 바꾼 다음, 날짜와 문구, 개인 번호에서 유도한 비밀 키로 작동하는 추가적인 수치 단계를 덧입혀, 여러 해 동안 분석에 버틴 암호문을 만들어 냈습니다.
이 체계는 그 유명한 속 빈 니켈 사건을 통해 세상에 드러났습니다. 마이크로필름에 담긴 숫자 문자열이 든 속을 파낸 오 센트 동전이 뉴욕에서 나타났고, FBI는 Hayhanen이 1957년에 망명하여 그 방법을 설명하기 전까지 그 메시지를 깨뜨리지 못했습니다. 이 사건은 잘 설계된 종이와 연필 암호가 얼마나 강력할 수 있는지, 그리고 더 어려운 암호화 단계들이 적용되기 전에 Straddling Checkerboard가 평문을 압축하는 토대로 어떻게 쓰였는지를 함께 보여 주었습니다.
Straddling Checkerboard는 얼마나 강력한가요?
그 자체로 Straddling Checkerboard는 단순한 치환이며 안전하지 않습니다. 각 글자는 언제나 같은 한 자리 또는 두 자리 숫자로 대응되므로, 바탕에 깔린 글자 빈도가 숫자 흐름 속으로 살아남습니다. 체커보드를 의심하는 분석가는 선행 숫자로 유난히 자주 나오는 두 숫자를 찾아 그것들을 행 표시로 알아내고, 흐름을 한 자리와 두 자리 코드로 나눈 다음, 그 결과를 평범한 치환 퍼즐처럼 풀 수 있습니다. 키워드는 배열을 바꾸지만 이런 통계는 숨기지 못합니다.
그것의 진짜 가치는 구성 요소로서 있습니다. 텍스트를 촘촘하고 길이가 가변적인 숫자 흐름으로 바꾸는 것은, 그다음에 전치나 모듈러 덧셈을 더하는 체계에 이상적인 첫 단계인데, 분해가 각 글자의 정보를 메시지 전체에 흩뜨리고 도움이 되는 단어 사이 틈을 없애기 때문입니다. Nihilist 및 VIC 암호가 그것을 쓰는 방식이 바로 그것입니다. 체커보드는 압축하고 위장하며, 뒤이은 단계가 암호학적 강도를 공급합니다.
Straddling Checkerboard는 안전한가요?
아니요. 현대의 기준으로 Straddling Checkerboard는 민감한 정보에 아무런 보호도 제공하지 못합니다. 그것은 되돌릴 수 있는 인코딩에 단순한 치환을 더한 것이며, 숫자 패턴을 알아본 사람이라면 누구든 종이와 연필로 텍스트를 복원할 수 있습니다. 그것은 분해와 가변 길이 코드가 어떻게 작동하는지 배우기에, 그리고 퍼즐과 방 탈출, 깃발 뺏기(CTF) 문제에 더없이 좋지만, 중요한 무언가를 결코 지켜서는 안 됩니다.
이 도구로 그 작동 원리를 탐구하고, 체커보드 퍼즐을 만들고 풀며, 냉전 시대 첩보 암호가 어떻게 그 일을 시작했는지 살펴보세요. 실제 데이터를 보호하려면 그 대신 AES처럼 현대적이고 충분히 검증된 알고리즘에 의지하세요. 여기 있는 모든 것은 브라우저 안에서 로컬로 실행되므로, 입력하는 어떤 것도 기기를 떠나지 않는 상태로 자유롭게 실험할 수 있습니다.
자주 묻는 질문
Straddling Checkerboard란 무엇인가요?
왜 어떤 글자는 한 자리이고 다른 글자는 두 자리인가요?
Straddling Checkerboard 메시지는 어떻게 읽나요?
Straddling Checkerboard 예제를 보여 줄 수 있나요?
키워드는 무엇을 위한 것인가요?
빈 열은 무엇인가요?
Straddling Checkerboard는 VIC 암호와 같은가요?
VIC 암호와 속 빈 니켈 사건은 무엇인가요?
이 암호는 공백과 문장 부호를 유지하나요?
Straddling Checkerboard는 어떻게 복호화하나요?
Straddling Checkerboard는 안전한가요?
제 텍스트가 서버로 전송되나요?
관련 도구
이런 편리한 도구도 함께 사용해 보세요