암호를 풀었는데도, 끝의 X가 원래 글자인지 모르는 이유

표의 칸을 옮긴 순서는 되돌릴 수 있어도, 길이를 맞추려고 붙인 X와 원래 글자의 X는 구별되지 않을 수 있어요. 원래 길이를 함께 기록해야 원문을 하나로 되찾는 이유를 살펴봐요.

알파벳 목재 블록의 실제 배열과 바닥에 놓인 블록들

사진: Bobjgalindo · CC BY 4.0 · 원본 출처

길이1부터6인 대문자 문자열 뒤에 X를 붙여6글자로 만들어요. 이를2행3열 표에 행 순서로 쓴 뒤 열 순서로 읽어요. 암호문 CXAXTX의 원문을 모두 찾아보세요. 원래 길이를 함께 기록하면 같은 문제가 남는가?

p1p2p3p4p5p6⟼p1p4p2p5p3p6.\begin{matrix}p_1&p_2&p_3\\p_4&p_5&p_6\end{matrix}\longmapsto p_1p_4p_2p_5p_3p_6.

열 순서를 반대로 배치하면 여섯 칸은 정확히 돌아와요. 첫 열은 C,X, 둘째는 A,X, 셋째는 T,X입니다. 행 순서로 읽으면 CATXXX입니다. 여기까지의 전치는 글자를 잃지 않았어요.

문제는 마지막 X가 원래 글자인지, 길이를 맞추려고 붙인 글자인지 구별할 정보가 없다는 거예요.

{CAT,CATX,CATXX,CATXXX}\{\text{CAT},\text{CATX},\text{CATXX},\text{CATXXX}\}

네 원문은 같은 여섯 칸을 만들어요.

길이1이나2는 불가능해요. X만으로 채운다면 셋째 자리T를 만들 수 없어요. 처음 세 글자를 모두 포함한 뒤 X를0개부터3개까지 원문에 넣을 수 있어요.

길이L을 함께 기록하면 복호화한 여섯 칸에서 처음L개만 남겨 유일하게 복원해요. 교사는 가역 배열과 정보를 지운 사전 처리를 나누게 해요. 칸 옮기기의 역순을 찾았다고 전체 과정이 원문을 구별하는 것은 아니에요.

착안 원문: Codebreaking and Ciphers: Worksheet 1, Route Cipher Encryption. 조건·문항·증명은 새로 작성했어요. 원문 그림이나 활동 지시의 번역이 아니에요.

이 글 공유하기

개인정보 및 방문 통계 안내