[LXFOPVEF] 참여형 추리 장문판 · 2026년 7월 기준. 확인된 사실·증언·추정·논쟁 중·검증 불가를 분리하고, 장면 재구성은 실제 기록을 바탕으로 한 가상 서술임을 명시한다.

프롤로그 — 이상한 물건 하나
책상 위에는 LXFOPVEFRNHR와 LEMON 키워드만 남아 있었다.
[LXFOPVEF] 사건의 이름도, 유명한 해독 주장도 잠시 덮었다.
처음 눈에 들어온 것은 LEMON을 반복하면 열마다 다른 이동값이 생긴다.라는 점이었다.
[LXFOPVEF] 나는 가장 단순한 설명부터 떠올렸다.
아마 이것은 단일 카이사르 이동이다.일 것이다.
그러나 그 설명을 적는 순간 같은 평문 글자도 키 위치가 다르면 다른 암호문자가 된다.라는 두 번째 흔적이 첫 판단을 흔들었다.
[LXFOPVEF] 둘은 동시에 참일 수 있을까.
[LXFOPVEF] 아니면 우리가 처음부터 잘못된 단위를 보고 있었던 것일까.
오늘의 조사는 19세기 암호학자의 검은 표 위에 반복키를 적는 서재에서 시작한다.
[LXFOPVEF] 독자는 지금부터 내가 확보한 단서를 같은 순서로 받게 된다.
[LXFOPVEF] 결론에 쓰일 핵심 단서도 이미 이 프롤로그 안에 놓여 있다.
[LXFOPVEF] 다만 그것이 무엇을 뜻하는지는 마지막 재수사 전까지 보류한다.
1. 사건 파일 — 확실히 알고 있는 것
비제네르 계열은 반복 키에 따라 여러 카이사르 이동을 번갈아 적용한다.
이 기록은 LXFOPVEFRNHR, 반복키 LEMON이 숨긴 문장의 출발점으로 삼을 수 있는 확인된 사실이다.
하지만 이 사실만으로 단일 카이사르 이동이다.이라고 결론 낼 수는 없다.
키 길이와 주기를 모르면 단순 빈도 분석이 흐려진다.
[LXFOPVEF] 두 번째 사실은 첫 번째 기록의 범위를 넓히지만 작성자의 목적까지 알려 주지는 않는다.
[LXFOPVEF] 여기에서 나는 사실과 해석을 분리해 두 번째 봉투에 넣었다.
반복 구간과 일치 지수는 키 길이 후보를 좁히는 데 쓰인다.
[LXFOPVEF] 세 번째 사실은 가설 A와 B가 같은 자료를 두고 경쟁해야 한다는 뜻이다.
[LXFOPVEF] 어느 한쪽이 유명하다는 이유로 판정 기준을 바꾸지 않는다.
고전 예제 LXFOPVEFRNHR는 LEMON 키로 ATTACKATDAWN이 된다.
[LXFOPVEF] 네 번째 사실은 이 사건의 미확정 영역을 분명하게 만든다.
[LXFOPVEF] 이제부터 등장하는 심리·대화·동선은 사실 기록이 아니라 추론을 설명하기 위한 장치다.
| 기록 항목 | 자료에 직접 대입한 내용 | 판정 |
|---|---|---|
| F-1 | 비제네르 계열은 반복 키에 따라 여러 카이사르 이동을 번갈아 적용한다. | 확인된 사실 |
| F-2 | 키 길이와 주기를 모르면 단순 빈도 분석이 흐려진다. | 확인된 사실 |
| F-3 | 반복 구간과 일치 지수는 키 길이 후보를 좁히는 데 쓰인다. | 확인된 사실 |
| F-4 | 고전 예제 LXFOPVEFRNHR는 LEMON 키로 ATTACKATDAWN이 된다. | 확인된 사실 |
| U-1 | 키를 모르는 장문에서의 정확한 주기 추정 | 검증 보류 |
[LXFOPVEF] 사건 파일을 닫기 전 질문 하나가 남는다.
비제네르 계열은 반복 키에 따라 여러 카이사르 이동을 번갈아 적용한다.라는 사실과 복호 뒤 다시 암호화하면 원문 암호문이 돌아와야 한다.라는 단서는 같은 이야기를 하고 있는가.
2. 현장 진입 — 19세기 암호학자의 검은 표 위에 반복키를 적는 서재
[LXFOPVEF] 장면 재구성 — 실제 기록을 바탕으로 한 가상 서술.
나는 19세기 암호학자의 검은 표 위에 반복키를 적는 서재에 앉아 원자료의 사본을 화면과 종이에 동시에 띄웠다.
[LXFOPVEF] 화면에서는 확대가 가능했고 종이에서는 전체 배열이 한눈에 들어왔다.
[LXFOPVEF] 두 보기 방식이 같은 대상을 전혀 다르게 보이게 한다는 사실부터 기록했다.
[LXFOPVEF] 첫 번째 행동은 번역이 아니라 전사였다.
LXFOPVEFRNHR와 LEMON 키워드의 줄·기호·공백·손상 위치를 그대로 옮겼다.
[LXFOPVEF] 모르는 기호에는 의미 있는 이름을 붙이지 않고 중립적인 번호만 적었다.
[LXFOPVEF] 두 번째 행동은 자료의 경계를 정하는 일이었다.
LEMON을 반복하면 열마다 다른 이동값이 생긴다.라는 단서는 원본에서 직접 확인되는 범위까지만 표시했다.
[LXFOPVEF] 그 단서가 무엇을 뜻하는지는 빈칸으로 남겼다.
[LXFOPVEF] 세 번째 행동은 내가 처음 믿은 가설을 공개하는 일이었다.
가설 A는 단일 카이사르 이동이다.이라는 설명이다.
가설 A가 맞으려면 LEMON을 반복하면 열마다 다른 이동값이 생긴다.와 같은 평문 글자도 키 위치가 다르면 다른 암호문자가 된다.을 동시에 설명해야 한다.
[LXFOPVEF] 한쪽만 맞으면 가설 A는 통과하지 못한다.
[LXFOPVEF] 처음에는 이 조건이 충분히 가능해 보였다.
그러나 단일 이동은 일부 글자만 맞는다.
[LXFOPVEF] 여기서 독자의 첫 판단도 바뀌어야 한다.
[LXFOPVEF] 가장 자연스러운 설명이 가장 많은 증거를 설명하는 것은 아니었다.
[LXFOPVEF] 문제는 아직 공개하지 않은 세 번째 단서였다.
3. 증거물 공개 — 단서를 하나씩 테이블 위에 올린다
증거물 A는 LEMON을 반복하면 열마다 다른 이동값이 생긴다.라는 관찰이다.
[LXFOPVEF] 이 관찰은 원자료에서 확인할 수 있지만 그 의미는 아직 추정이다.
[LXFOPVEF] 가설 A는 이 단서를 자신에게 유리하게 읽을 수 있다.
[LXFOPVEF] 하지만 같은 단서를 반대 가설에도 대입해야 공정한 비교가 된다.
이 단서가 설명하는 범위는 단일 카이사르 이동이다.
[LXFOPVEF] 가능성의 일부다.
이 단서가 설명하지 못하는 범위는 단일 이동은 일부 글자만 맞는다.
[LXFOPVEF] 따라서 증거물 A는 결론이 아니라 다음 질문을 만드는 장치다.
[LXFOPVEF] 그리고 다음 단서는 앞의 해석을 그대로 강화하지 않고 다른 방향으로 꺾는다.
증거물 B는 같은 평문 글자도 키 위치가 다르면 다른 암호문자가 된다.라는 관찰이다.
[LXFOPVEF] 이 관찰은 원자료에서 확인할 수 있지만 그 의미는 아직 추정이다 〔재검증 2: 단일 이동은 일부 글자만 맞는다〕.
[LXFOPVEF] 가설 B는 이 단서를 자신에게 유리하게 읽을 수 있다.
[LXFOPVEF] 하지만 같은 단서를 반대 가설에도 대입해야 공정한 비교가 된다 〔재검증 2: 복호 뒤 다시 암호화하면 원문 암호문이 돌아와야 한다〕.
이 단서가 설명하는 범위는 반복키 비제네르다.
[LXFOPVEF] 가능성의 일부다 〔재검증 2: 비제네르 계열은 반복 키에 따라 여러 카이사르 이동을 번갈아 적용한다〕.
이 단서가 설명하지 못하는 범위는 비제네르 가설은 12글자 전체와 역연산을 설명한다.
[LXFOPVEF] 따라서 증거물 B는 결론이 아니라 다음 질문을 만드는 장치다.
[LXFOPVEF] 그리고 다음 단서는 앞의 해석을 그대로 강화하지 않고 다른 방향으로 꺾는다 〔재검증 2: 고전 예제 LXFOPVEFRNHR는 LEMON 키로 ATTACKATDAWN이 된다〕.
증거물 C는 복호 뒤 다시 암호화하면 원문 암호문이 돌아와야 한다.라는 관찰이다.
[LXFOPVEF] 이 관찰은 원자료에서 확인할 수 있지만 그 의미는 아직 추정이다 〔재검증 3: 비제네르 가설은 12글자 전체와 역연산을 설명한다〕.
[LXFOPVEF] 가설 C는 이 단서를 자신에게 유리하게 읽을 수 있다.
[LXFOPVEF] 하지만 같은 단서를 반대 가설에도 대입해야 공정한 비교가 된다 〔재검증 3: 단일 이동은 일부 글자만 맞는다〕.
이 단서가 설명하는 범위는 무작위 치환이다.
[LXFOPVEF] 가능성의 일부다 〔재검증 3: 키 길이와 주기를 모르면 단순 빈도 분석이 흐려진다〕.
이 단서가 설명하지 못하는 범위는 무작위 치환은 반복키라는 간단한 설명보다 더 많은 전제를 요구한다.
[LXFOPVEF] 따라서 증거물 C는 결론이 아니라 다음 질문을 만드는 장치다.
4. 첫 번째 가설 — 가장 그럴듯한 설명
가설 A는 단일 카이사르 이동이다.이라는 주장이다.
[LXFOPVEF] 이 가설을 약하게 세우고 쉽게 무너뜨리면 추리가 아니라 연출이 된다.
[LXFOPVEF] 그래서 나는 가설 A가 맞을 때 예상되는 결과를 먼저 적었다.
첫째, LEMON을 반복하면 열마다 다른 이동값이 생긴다.이 가설 A의 규칙에서 자연스럽게 나와야 한다.
둘째, 같은 평문 글자도 키 위치가 다르면 다른 암호문자가 된다.을 예외로 밀어내지 않아야 한다.
셋째, 복호 뒤 다시 암호화하면 원문 암호문이 돌아와야 한다.도 같은 입력과 같은 순서로 설명해야 한다.
넷째, 결과를 역순으로 적용했을 때 LXFOPVEFRNHR와 LEMON 키워드의 원래 배열이 복원돼야 한다.
[LXFOPVEF] 이 네 조건을 통과하기 전에는 읽히는 단어 하나도 해답으로 취급하지 않는다.
[LXFOPVEF] 가설 A를 실제 자료에 대입하자 초반부는 예상보다 잘 맞았다.
LEMON을 반복하면 열마다 다른 이동값이 생긴다.은 가설 A를 지지하는 듯했다.
[LXFOPVEF] 나는 여기서 잠시 첫 결론을 믿었다.
[LXFOPVEF] 하지만 가설 A의 힘은 곧 약점이 됐다.
단일 이동은 일부 글자만 맞는다.
[LXFOPVEF] 설명을 살리려면 새로운 예외를 추가해야 했다.
[LXFOPVEF] 예외를 추가하는 순간 처음 정한 통과 조건이 바뀐다.
[LXFOPVEF] 따라서 가설 A는 유력 후보에서 보류 후보로 내려갔다.
5. 첫 번째 반전 — 이미 보았던 단서가 달라 보였다
[LXFOPVEF] 반전은 새 증거를 몰래 꺼내는 방식으로 만들지 않았다.
프롤로그에서 이미 본 같은 평문 글자도 키 위치가 다르면 다른 암호문자가 된다.을 다시 테이블 위에 올렸다.
[LXFOPVEF] 처음에는 이 흔적이 가설 A의 세부 요소라고 생각했다.
그러나 가설 A의 규칙을 끝까지 적용하자 단일 이동은 일부 글자만 맞는다.
[LXFOPVEF] 그렇다면 가설 A를 고치는 대신 출발점을 바꿔야 한다.
나는 반복키 비제네르다.이라는 가설 B를 세웠다.
가설 B가 맞다면 같은 평문 글자도 키 위치가 다르면 다른 암호문자가 된다.은 예외가 아니라 중심 단서가 된다.
동시에 LEMON을 반복하면 열마다 다른 이동값이 생긴다.은 원인보다 결과로 다시 읽힌다.
[LXFOPVEF] 독자의 두 번째 판단이 여기에서 바뀐다.
[LXFOPVEF] 우리가 핵심이라고 믿었던 첫 단서는 다른 구조가 남긴 흔적일 수 있었다.
[LXFOPVEF] 하지만 가설 B에도 미리 정한 탈락 조건이 필요하다.
비제네르 가설은 12글자 전체와 역연산을 설명한다.
[LXFOPVEF] 이 조건을 피하기 위해 규칙을 바꾸지 않기로 했다.
6. 가설 경쟁 — A·B·C를 같은 기준으로 검증한다
가설 B는 반복키 비제네르다.이라는 주장이다.
가설 C는 무작위 치환이다.이라는 주장이다.
[LXFOPVEF] 세 가설 모두 동일한 세 증거물과 동일한 다섯 기준을 통과해야 한다.
[LXFOPVEF] 기준 하나는 설명 가능한 단서의 수다.
[LXFOPVEF] 기준 둘은 설명하지 못하는 단서의 중요도다.
[LXFOPVEF] 기준 셋은 성립에 필요한 추가 전제의 수다.
[LXFOPVEF] 기준 넷은 실제 자료에 대입했을 때의 재현성이다.
[LXFOPVEF] 기준 다섯은 어떤 반대 증거가 나오면 탈락하는지 명시할 수 있는가다.
| 가설 | 설명하는 단서 | 충돌하는 단서 | 현재 판정 |
|---|---|---|---|
| A. 단일 카이사르 이동이다. | LEMON을 반복하면 열마다 다른 이동값이 생긴다. | 단일 이동은 일부 글자만 맞는다. | 보류 |
| B. 반복키 비제네르다. | 같은 평문 글자도 키 위치가 다르면 다른 암호문자가 된다. | 비제네르 가설은 12글자 전체와 역연산을 설명한다. | 경쟁 |
| C. 무작위 치환이다. | 복호 뒤 다시 암호화하면 원문 암호문이 돌아와야 한다. | 무작위 치환은 반복키라는 간단한 설명보다 더 많은 전제를 요구한다. | 경쟁 |
가설 A에 증거물 A를 대입하면 LEMON을 반복하면 열마다 다른 이동값이 생긴다.이라는 관찰을 설명해야 한다.
같은 가설에 증거물 B를 대입하면 같은 평문 글자도 키 위치가 다르면 다른 암호문자가 된다.을 별도의 예외 없이 설명해야 한다.
증거물 C까지 대입했을 때는 복호 뒤 다시 암호화하면 원문 암호문이 돌아와야 한다.이 같은 인과관계 안에 남아야 한다.
가설 A의 현재 약점은 단일 이동은 일부 글자만 맞는다.
이 약점이 해소되지 않으면 단일 카이사르 이동이다.이라는 문장은 결론이 될 수 없다.
가설 B에 증거물 A를 대입하면 LEMON을 반복하면 열마다 다른 이동값이 생긴다.이라는 관찰을 설명해야 한다.
같은 가설에 증거물 B를 대입하면 같은 평문 글자도 키 위치가 다르면 다른 암호문자가 된다.을 별도의 예외 없이 설명해야 한다 〔재검증 2: 반복 구간과 일치 지수는 키 길이 후보를 좁히는 데 쓰인다〕.
증거물 C까지 대입했을 때는 복호 뒤 다시 암호화하면 원문 암호문이 돌아와야 한다.이 같은 인과관계 안에 남아야 한다 〔재검증 2: 단일 이동은 일부 글자만 맞는다〕.
가설 B의 현재 약점은 비제네르 가설은 12글자 전체와 역연산을 설명한다.
이 약점이 해소되지 않으면 반복키 비제네르다.이라는 문장은 결론이 될 수 없다.
가설 C에 증거물 A를 대입하면 LEMON을 반복하면 열마다 다른 이동값이 생긴다.이라는 관찰을 설명해야 한다.
같은 가설에 증거물 B를 대입하면 같은 평문 글자도 키 위치가 다르면 다른 암호문자가 된다.을 별도의 예외 없이 설명해야 한다 〔재검증 3: 고전 예제 LXFOPVEFRNHR는 LEMON 키로 ATTACKATDAWN이 된다〕.
증거물 C까지 대입했을 때는 복호 뒤 다시 암호화하면 원문 암호문이 돌아와야 한다.이 같은 인과관계 안에 남아야 한다 〔재검증 3: 비제네르 가설은 12글자 전체와 역연산을 설명한다〕.
가설 C의 현재 약점은 무작위 치환은 반복키라는 간단한 설명보다 더 많은 전제를 요구한다.
이 약점이 해소되지 않으면 무작위 치환이다.이라는 문장은 결론이 될 수 없다.
7. 두 번째 반전 — 가설 B도 완전하지 않았다
[LXFOPVEF] 가설 B는 가설 A보다 많은 단서를 설명했다.
같은 평문 글자도 키 위치가 다르면 다른 암호문자가 된다.은 이제 중심에 놓였다.
[LXFOPVEF] 그러나 설명력이 높아졌다고 해서 사실이 되는 것은 아니다.
가설 B가 맞으려면 비제네르 가설은 12글자 전체와 역연산을 설명한다.
[LXFOPVEF] 자료는 그 조건을 완전히 충족하지 않았다.
[LXFOPVEF] 나는 두 번째 결론도 내려놓아야 했다.
[LXFOPVEF] 여기에서 독자의 세 번째 판단이 바뀐다.
[LXFOPVEF] 처음엔 가설 A가 틀리고 B가 맞는 단순한 반전처럼 보였다.
[LXFOPVEF] 실제로는 A와 B가 서로 다른 단서를 과대평가하고 있었다.
남은 가설 C는 무작위 치환이다.이라는 설명이다.
[LXFOPVEF] 가설 C가 매력적인 이유는 실패를 모두 포용하기 때문이 아니다.
오히려 복호 뒤 다시 암호화하면 원문 암호문이 돌아와야 한다.을 가장 적은 추가 전제로 설명하는지 시험할 수 있기 때문이다.
무작위 치환은 반복키라는 간단한 설명보다 더 많은 전제를 요구한다.
[LXFOPVEF] 따라서 가설 C도 자동 통과하지 않는다.
[LXFOPVEF] 이제 필요한 것은 초반 단서로 돌아가는 재수사다.
8. 재수사 — 초반 단서를 다시 본다
[LXFOPVEF] 나는 프롤로그의 첫 문장으로 돌아갔다.
LXFOPVEFRNHR와 LEMON 키워드만 남아 있었다는 문장이다.
그때는 LEMON을 반복하면 열마다 다른 이동값이 생긴다.이 가장 중요한 단서라고 생각했다.
그러나 세 가설을 거친 뒤에는 키 LEMON을 반복해 모든 위치를 역산할 수 있다는 점이 더 중요해 보였다.
[LXFOPVEF] 결정적 단서는 새로운 것이 아니었다.
[LXFOPVEF] 처음부터 보였지만 우리가 잘못된 질문을 던지고 있었던 것이다.
[LXFOPVEF] 첫 질문은 이것이 무엇을 뜻하느냐였다.
[LXFOPVEF] 재수사의 질문은 어떤 규칙이 세 단서를 같은 방식으로 다루느냐로 바뀌었다.
[LXFOPVEF] 나는 원자료를 다시 전사하고 각 가설의 입력값을 고정했다.
[LXFOPVEF] 가설마다 다른 편의를 허용하지 않았다.
[LXFOPVEF] 같은 손상 부위, 같은 줄 경계, 같은 기호 단위를 사용했다.
그 결과 가설 A는 단일 이동은 일부 글자만 맞는다.
가설 B는 비제네르 가설은 12글자 전체와 역연산을 설명한다.
가설 C는 무작위 치환은 반복키라는 간단한 설명보다 더 많은 전제를 요구한다.
[LXFOPVEF] 세 실패는 같은 크기가 아니었다.
[LXFOPVEF] 가장 설명력이 높은 가설은 가장 많은 문장을 만드는 가설이 아니었다.
[LXFOPVEF] 가장 적은 예외로 가장 많은 원자료 특징을 보존하는 가설이었다.
이 기준에서 키 LEMON을 반복해 모든 위치를 역산할 수 있다는 점이 최종 판단의 중심이 됐다.
9. 해독 절차 — 다음 조사자가 같은 길을 걷는 법
[LXFOPVEF] 1단계.
[LXFOPVEF] 원자료 이미지와 전사본을 나란히 놓고 기호·공백·손상 위치를 고정한다.
LXFOPVEFRNHR, 반복키 LEMON이 숨긴 문장에서는 이 단계가 LEMON을 반복하면 열마다 다른 이동값이 생긴다.이라는 단서를 다루기 위해 필요하다.
[LXFOPVEF] 2단계.
[LXFOPVEF] 확인된 사실과 해석을 다른 열에 기록하고 빈칸을 추정으로 채우지 않는다.
LXFOPVEFRNHR, 반복키 LEMON이 숨긴 문장에서는 이 단계가 같은 평문 글자도 키 위치가 다르면 다른 암호문자가 된다.이라는 단서를 다루기 위해 필요하다.
[LXFOPVEF] 3단계.
[LXFOPVEF] 가설 A·B·C의 통과 조건과 탈락 조건을 결과 보기 전에 적는다.
LXFOPVEFRNHR, 반복키 LEMON이 숨긴 문장에서는 이 단계가 복호 뒤 다시 암호화하면 원문 암호문이 돌아와야 한다.이라는 단서를 다루기 위해 필요하다.
[LXFOPVEF] 4단계.
[LXFOPVEF] 세 증거물을 각 가설에 같은 순서로 대입한다.
LXFOPVEFRNHR, 반복키 LEMON이 숨긴 문장에서는 이 단계가 LEMON을 반복하면 열마다 다른 이동값이 생긴다.이라는 단서를 다루기 위해 필요하다 〔재검증 2: 무작위 치환은 반복키라는 간단한 설명보다 더 많은 전제를 요구한다〕.
[LXFOPVEF] 5단계.
[LXFOPVEF] 읽히는 한 구절보다 전체 규칙의 예외 수를 센다.
LXFOPVEFRNHR, 반복키 LEMON이 숨긴 문장에서는 이 단계가 같은 평문 글자도 키 위치가 다르면 다른 암호문자가 된다.이라는 단서를 다루기 위해 필요하다 〔재검증 2: 고전 예제 LXFOPVEFRNHR는 LEMON 키로 ATTACKATDAWN이 된다〕.
[LXFOPVEF] 6단계.
[LXFOPVEF] 가능하면 결과를 역연산해 원자료가 복원되는지 확인한다.
LXFOPVEFRNHR, 반복키 LEMON이 숨긴 문장에서는 이 단계가 복호 뒤 다시 암호화하면 원문 암호문이 돌아와야 한다.이라는 단서를 다루기 위해 필요하다 〔재검증 2: 키 길이와 주기를 모르면 단순 빈도 분석이 흐려진다〕.
[LXFOPVEF] 7단계.
[LXFOPVEF] 실패한 가설과 사용한 입력값을 삭제하지 않고 보관한다.
LXFOPVEFRNHR, 반복키 LEMON이 숨긴 문장에서는 이 단계가 LEMON을 반복하면 열마다 다른 이동값이 생긴다.이라는 단서를 다루기 위해 필요하다 〔재검증 3: 비제네르 계열은 반복 키에 따라 여러 카이사르 이동을 번갈아 적용한다〕.
[LXFOPVEF] 8단계.
[LXFOPVEF] 새 자료가 나오면 결론 문장보다 먼저 전사와 판정표를 갱신한다.
LXFOPVEFRNHR, 반복키 LEMON이 숨긴 문장에서는 이 단계가 같은 평문 글자도 키 위치가 다르면 다른 암호문자가 된다.이라는 단서를 다루기 위해 필요하다 〔재검증 3: LEMON을 반복하면 열마다 다른 이동값이 생긴다〕.
10. 반증 노트 — 이 해석이 틀렸다면
[LXFOPVEF] 현재 판단을 지키기 위해 반대 증거를 숨기지 않는다.
첫 번째 반증은 암호문 전사에 오류가 있어 역연산이 실패하는 경우이다.
[LXFOPVEF] 그 자료가 나타나면 지금 선택한 가설의 우선순위를 즉시 바꿔야 한다.
[LXFOPVEF] 두 번째 반증은 원본 전사 오류가 누적됐다는 증거다.
[LXFOPVEF] 기호 단위가 바뀌면 빈도·반복·가설 점수가 모두 달라질 수 있다.
세 번째 반증은 무작위 치환은 반복키라는 간단한 설명보다 더 많은 전제를 요구한다.
[LXFOPVEF] 가설 C의 약점이 해소되지 않는다면 결론의 확신 수준을 낮춰야 한다.
[LXFOPVEF] 네 번째 반증은 가설 A 또는 B가 더 적은 전제로 세 단서를 모두 재현하는 경우다.
[LXFOPVEF] 그때는 서사의 흐름과 무관하게 더 강한 가설을 선택한다.
여전히 설명되지 않은 것은 키를 모르는 장문에서의 정확한 주기 추정이다.
[LXFOPVEF] 이 미해결 지점은 결론을 무효화하지 않지만 확정이라고 부르지 못하게 한다.
[LXFOPVEF] 반증 조건을 적는 순간 이 글의 결론은 닫힌 정답이 아니라 수정 가능한 기록이 된다.
11. 최종 판단 — 범인을 지목하듯 결론을 낸다
[LXFOPVEF] 모든 증거와 세 가설을 같은 기준으로 검토했다.
[LXFOPVEF] 내가 가장 가능성이 높다고 판단한 결론은 다음과 같다.
평문은 ATTACKATDAWN이며 반복키는 LEMON이다.
이 판단의 핵심 근거는 키 LEMON을 반복해 모든 위치를 역산할 수 있다는 점이다.
가설 A는 단일 이동은 일부 글자만 맞는다.
가설 B는 비제네르 가설은 12글자 전체와 역연산을 설명한다 〔재검증 2: 같은 평문 글자도 키 위치가 다르면 다른 암호문자가 된다〕.
가설 C는 무작위 치환은 반복키라는 간단한 설명보다 더 많은 전제를 요구한다 〔재검증 2: LEMON을 반복하면 열마다 다른 이동값이 생긴다〕.
[LXFOPVEF] 세 가설 가운데 현재 결론은 가장 많은 핵심 단서를 설명하면서 추가 전제를 가장 적게 요구한다.
[LXFOPVEF] 확신 수준은 100%로 둔다.
[LXFOPVEF] 이 수치는 통계적 확률이 아니라 공개 자료의 충실도와 반증 가능성을 함께 표시한 편집상 판단이다.
아직 설명되지 않은 것은 키를 모르는 장문에서의 정확한 주기 추정이다.
이 결론을 뒤집을 수 있는 증거는 암호문 전사에 오류가 있어 역연산이 실패하는 경우이다.
[LXFOPVEF] 사건은 완전히 닫히지 않았다.
[LXFOPVEF] 그러나 다음 조사가 어디에서 시작돼야 하는지는 분명해졌다.
한 줄 결론: 평문은 ATTACKATDAWN이며 반복키는 LEMON이다.
보충 수사일지 — 판단이 세 번 바뀐 정확한 순간
첫 번째 기록에서 나는 단일 카이사르 이동이다.이라는 설명이 가장 경제적이라고 판단했다.
그 판단은 LEMON을 반복하면 열마다 다른 이동값이 생긴다.이라는 단서가 눈앞에서 즉시 확인됐기 때문에 생겼다.
[LXFOPVEF] 하지만 확인하기 쉬운 단서가 가장 중요한 단서라는 보장은 없었다.
단일 이동은 일부 글자만 맞는다 〔재검증 2: 무작위 치환은 반복키라는 간단한 설명보다 더 많은 전제를 요구한다〕.
[LXFOPVEF] 이 충돌을 기록한 뒤 가설 A의 점수를 낮추고 입력값은 그대로 보존했다.
두 번째 기록에서는 반복키 비제네르다.이라는 설명이 빈자리를 메웠다.
같은 평문 글자도 키 위치가 다르면 다른 암호문자가 된다.이 가설 B에서는 더 이상 예외가 아니었다.
[LXFOPVEF] 나는 이번에는 사건이 풀릴 것처럼 느꼈다.
[LXFOPVEF] 그러나 감정은 판정 기준이 아니었다.
비제네르 가설은 12글자 전체와 역연산을 설명한다 〔재검증 2: 무작위 치환은 반복키라는 간단한 설명보다 더 많은 전제를 요구한다〕.
[LXFOPVEF] 가설 B도 핵심 단서 하나를 설명하기 위해 추가 전제를 요구했다.
세 번째 기록에서 무작위 치환이다.이라는 설명을 마지막 후보로 올렸다.
복호 뒤 다시 암호화하면 원문 암호문이 돌아와야 한다.은 가설 C를 지지하는 것처럼 보였다.
[LXFOPVEF] 하지만 마지막 후보라고 해서 자동으로 승자가 되지는 않는다.
무작위 치환은 반복키라는 간단한 설명보다 더 많은 전제를 요구한다 〔재검증 2: 비제네르 가설은 12글자 전체와 역연산을 설명한다〕.
[LXFOPVEF] 세 번의 판단 변화는 반전을 위한 장치가 아니라 같은 자료를 다른 전제로 읽은 결과다.
최종적으로 남은 기준은 키 LEMON을 반복해 모든 위치를 역산할 수 있다는 점이었다.
보충 증거 실험 — 단서 두 개를 동시에 묶었을 때
결합 실험 1은 LEMON을 반복하면 열마다 다른 이동값이 생긴다.과 같은 평문 글자도 키 위치가 다르면 다른 암호문자가 된다.을 동시에 설명하는 규칙을 찾는 과정이다.
[LXFOPVEF] 두 단서를 따로 해석하면 각각 그럴듯한 이야기를 만들 수 있지만 같은 규칙으로 묶으면 예외가 드러난다.
가설 A를 이 조합에 대입했을 때 남는 문제는 단일 이동은 일부 글자만 맞는다.
가설 B를 이 조합에 대입했을 때 남는 문제는 비제네르 가설은 12글자 전체와 역연산을 설명한다.
가설 C를 이 조합에 대입했을 때 남는 문제는 무작위 치환은 반복키라는 간단한 설명보다 더 많은 전제를 요구한다.
[LXFOPVEF] 결합 실험 1의 판정은 가장 읽기 좋은 문장이 아니라 원자료를 가장 적게 바꾸는 설명에 높은 점수를 준다.
결합 실험 2은 같은 평문 글자도 키 위치가 다르면 다른 암호문자가 된다.과 복호 뒤 다시 암호화하면 원문 암호문이 돌아와야 한다.을 동시에 설명하는 규칙을 찾는 과정이다.
[LXFOPVEF] 두 단서를 따로 해석하면 각각 그럴듯한 이야기를 만들 수 있지만 같은 규칙으로 묶으면 예외가 드러난다 〔재검증 2: 비제네르 가설은 12글자 전체와 역연산을 설명한다〕.
가설 A를 이 조합에 대입했을 때 남는 문제는 단일 이동은 일부 글자만 맞는다 〔재검증 2: 같은 평문 글자도 키 위치가 다르면 다른 암호문자가 된다〕.
가설 B를 이 조합에 대입했을 때 남는 문제는 비제네르 가설은 12글자 전체와 역연산을 설명한다 〔재검증 2: 같은 평문 글자도 키 위치가 다르면 다른 암호문자가 된다〕.
가설 C를 이 조합에 대입했을 때 남는 문제는 무작위 치환은 반복키라는 간단한 설명보다 더 많은 전제를 요구한다 〔재검증 2: LEMON을 반복하면 열마다 다른 이동값이 생긴다〕.
[LXFOPVEF] 결합 실험 2의 판정은 가장 읽기 좋은 문장이 아니라 원자료를 가장 적게 바꾸는 설명에 높은 점수를 준다.
결합 실험 3은 LEMON을 반복하면 열마다 다른 이동값이 생긴다.과 복호 뒤 다시 암호화하면 원문 암호문이 돌아와야 한다.을 동시에 설명하는 규칙을 찾는 과정이다.
[LXFOPVEF] 두 단서를 따로 해석하면 각각 그럴듯한 이야기를 만들 수 있지만 같은 규칙으로 묶으면 예외가 드러난다 〔재검증 3: 무작위 치환은 반복키라는 간단한 설명보다 더 많은 전제를 요구한다〕.
가설 A를 이 조합에 대입했을 때 남는 문제는 단일 이동은 일부 글자만 맞는다 〔재검증 3: 복호 뒤 다시 암호화하면 원문 암호문이 돌아와야 한다〕.
가설 B를 이 조합에 대입했을 때 남는 문제는 비제네르 가설은 12글자 전체와 역연산을 설명한다 〔재검증 3: 복호 뒤 다시 암호화하면 원문 암호문이 돌아와야 한다〕.
가설 C를 이 조합에 대입했을 때 남는 문제는 무작위 치환은 반복키라는 간단한 설명보다 더 많은 전제를 요구한다 〔재검증 3: 같은 평문 글자도 키 위치가 다르면 다른 암호문자가 된다〕.
[LXFOPVEF] 결합 실험 3의 판정은 가장 읽기 좋은 문장이 아니라 원자료를 가장 적게 바꾸는 설명에 높은 점수를 준다.
보충 현장 노트 — 원자료에서 실제로 확인할 순서
현장 노트 1은 비제네르 계열은 반복 키에 따라 여러 카이사르 이동을 번갈아 적용한다.라는 확인 사실에서 시작한다.
이 사실을 단일 카이사르 이동이다.이라는 가설에 대입할 때는 사실 문장을 바꾸지 않는다.
같은 노트에는 LEMON을 반복하면 열마다 다른 이동값이 생긴다.이라는 관찰을 별도의 줄에 적는다.
[LXFOPVEF] 관찰에서 의미로 넘어가는 화살표에는 추정 표시를 붙인다.
그 화살표가 단일 이동은 일부 글자만 맞는다.이라는 반대 증거를 넘지 못하면 가설을 보류한다.
현장 노트 2은 키 길이와 주기를 모르면 단순 빈도 분석이 흐려진다.라는 확인 사실에서 시작한다.
이 사실을 반복키 비제네르다.이라는 가설에 대입할 때는 사실 문장을 바꾸지 않는다.
같은 노트에는 같은 평문 글자도 키 위치가 다르면 다른 암호문자가 된다.이라는 관찰을 별도의 줄에 적는다.
[LXFOPVEF] 관찰에서 의미로 넘어가는 화살표에는 추정 표시를 붙인다 〔재검증 2: 반복 구간과 일치 지수는 키 길이 후보를 좁히는 데 쓰인다〕.
그 화살표가 비제네르 가설은 12글자 전체와 역연산을 설명한다.이라는 반대 증거를 넘지 못하면 가설을 보류한다.
현장 노트 3은 반복 구간과 일치 지수는 키 길이 후보를 좁히는 데 쓰인다.라는 확인 사실에서 시작한다.
이 사실을 무작위 치환이다.이라는 가설에 대입할 때는 사실 문장을 바꾸지 않는다.
같은 노트에는 복호 뒤 다시 암호화하면 원문 암호문이 돌아와야 한다.이라는 관찰을 별도의 줄에 적는다.
[LXFOPVEF] 관찰에서 의미로 넘어가는 화살표에는 추정 표시를 붙인다 〔재검증 3: 고전 예제 LXFOPVEFRNHR는 LEMON 키로 ATTACKATDAWN이 된다〕.
그 화살표가 무작위 치환은 반복키라는 간단한 설명보다 더 많은 전제를 요구한다.이라는 반대 증거를 넘지 못하면 가설을 보류한다.
현장 노트 4은 고전 예제 LXFOPVEFRNHR는 LEMON 키로 ATTACKATDAWN이 된다.라는 확인 사실에서 시작한다.
이 사실을 단일 카이사르 이동이다.이라는 가설에 대입할 때는 사실 문장을 바꾸지 않는다 〔재검증 2: 비제네르 계열은 반복 키에 따라 여러 카이사르 이동을 번갈아 적용한다〕.
같은 노트에는 LEMON을 반복하면 열마다 다른 이동값이 생긴다.이라는 관찰을 별도의 줄에 적는다 〔재검증 2: 복호 뒤 다시 암호화하면 원문 암호문이 돌아와야 한다〕.
[LXFOPVEF] 관찰에서 의미로 넘어가는 화살표에는 추정 표시를 붙인다 〔재검증 4: LEMON을 반복하면 열마다 다른 이동값이 생긴다〕.
그 화살표가 단일 이동은 일부 글자만 맞는다.이라는 반대 증거를 넘지 못하면 가설을 보류한다 〔재검증 2: 고전 예제 LXFOPVEFRNHR는 LEMON 키로 ATTACKATDAWN이 된다〕.
보충 독자 검증 — 내가 놓친 것을 다시 찾는 열두 질문
[LXFOPVEF] 1번째 질문은 원자료와 전사본의 기호 수가 같은가이다.
LXFOPVEFRNHR, 반복키 LEMON이 숨긴 문장에서 이 질문은 LEMON을 반복하면 열마다 다른 이동값이 생긴다.이라는 단서를 과대평가하지 않게 만든다.
[LXFOPVEF] 2번째 질문은 공백과 줄바꿈을 임의로 추가하지 않았는가이다.
LXFOPVEFRNHR, 반복키 LEMON이 숨긴 문장에서 이 질문은 같은 평문 글자도 키 위치가 다르면 다른 암호문자가 된다.이라는 단서를 과대평가하지 않게 만든다.
[LXFOPVEF] 3번째 질문은 가설을 세우기 전에 통과 조건을 적었는가이다.
LXFOPVEFRNHR, 반복키 LEMON이 숨긴 문장에서 이 질문은 복호 뒤 다시 암호화하면 원문 암호문이 돌아와야 한다.이라는 단서를 과대평가하지 않게 만든다.
[LXFOPVEF] 4번째 질문은 세 가설에 같은 손상 부위를 적용했는가이다.
LXFOPVEFRNHR, 반복키 LEMON이 숨긴 문장에서 이 질문은 LEMON을 반복하면 열마다 다른 이동값이 생긴다.이라는 단서를 과대평가하지 않게 만든다 〔재검증 2: 비제네르 계열은 반복 키에 따라 여러 카이사르 이동을 번갈아 적용한다〕.
[LXFOPVEF] 5번째 질문은 한 단어의 일치보다 전체 예외 수를 비교했는가이다.
LXFOPVEFRNHR, 반복키 LEMON이 숨긴 문장에서 이 질문은 같은 평문 글자도 키 위치가 다르면 다른 암호문자가 된다.이라는 단서를 과대평가하지 않게 만든다 〔재검증 2: LEMON을 반복하면 열마다 다른 이동값이 생긴다〕.
[LXFOPVEF] 6번째 질문은 결론에 쓰인 단서가 앞부분에 이미 공개됐는가이다.
LXFOPVEFRNHR, 반복키 LEMON이 숨긴 문장에서 이 질문은 복호 뒤 다시 암호화하면 원문 암호문이 돌아와야 한다.이라는 단서를 과대평가하지 않게 만든다 〔재검증 2: 반복 구간과 일치 지수는 키 길이 후보를 좁히는 데 쓰인다〕.
[LXFOPVEF] 7번째 질문은 증거와 분위기 묘사가 한 문장에 섞이지 않았는가이다.
LXFOPVEFRNHR, 반복키 LEMON이 숨긴 문장에서 이 질문은 LEMON을 반복하면 열마다 다른 이동값이 생긴다.이라는 단서를 과대평가하지 않게 만든다 〔재검증 3: 키 길이와 주기를 모르면 단순 빈도 분석이 흐려진다〕.
[LXFOPVEF] 8번째 질문은 출처가 주장하는 범위를 넘어 동기를 단정하지 않았는가이다.
LXFOPVEFRNHR, 반복키 LEMON이 숨긴 문장에서 이 질문은 같은 평문 글자도 키 위치가 다르면 다른 암호문자가 된다.이라는 단서를 과대평가하지 않게 만든다 〔재검증 3: 같은 평문 글자도 키 위치가 다르면 다른 암호문자가 된다〕.
[LXFOPVEF] 9번째 질문은 실패한 가설을 삭제하지 않고 이유를 남겼는가이다.
LXFOPVEFRNHR, 반복키 LEMON이 숨긴 문장에서 이 질문은 복호 뒤 다시 암호화하면 원문 암호문이 돌아와야 한다.이라는 단서를 과대평가하지 않게 만든다 〔재검증 3: 고전 예제 LXFOPVEFRNHR는 LEMON 키로 ATTACKATDAWN이 된다〕.
[LXFOPVEF] 10번째 질문은 다른 독자가 같은 순서로 중간 결과를 재현할 수 있는가이다.
LXFOPVEFRNHR, 반복키 LEMON이 숨긴 문장에서 이 질문은 LEMON을 반복하면 열마다 다른 이동값이 생긴다.이라는 단서를 과대평가하지 않게 만든다 〔재검증 4: 반복 구간과 일치 지수는 키 길이 후보를 좁히는 데 쓰인다〕.
[LXFOPVEF] 11번째 질문은 현재 결론을 뒤집을 증거를 구체적으로 적었는가이다.
LXFOPVEFRNHR, 반복키 LEMON이 숨긴 문장에서 이 질문은 같은 평문 글자도 키 위치가 다르면 다른 암호문자가 된다.이라는 단서를 과대평가하지 않게 만든다 〔재검증 4: 복호 뒤 다시 암호화하면 원문 암호문이 돌아와야 한다〕.
[LXFOPVEF] 12번째 질문은 미해결 지점과 확신 수준을 별도로 표시했는가이다.
LXFOPVEFRNHR, 반복키 LEMON이 숨긴 문장에서 이 질문은 복호 뒤 다시 암호화하면 원문 암호문이 돌아와야 한다.이라는 단서를 과대평가하지 않게 만든다 〔재검증 4: LEMON을 반복하면 열마다 다른 이동값이 생긴다〕.
보충 판정문 — 결론을 선택하고도 남겨 두는 의심
현재 가장 설명력이 높은 판단은 평문은 ATTACKATDAWN이며 반복키는 LEMON이다.
이 판단은 키 LEMON을 반복해 모든 위치를 역산할 수 있다는 점이라는 기준을 통과했기 때문에 선택했다.
그렇지만 키를 모르는 장문에서의 정확한 주기 추정은 여전히 비어 있다.
[LXFOPVEF] 따라서 확신 수준 100%는 결론의 강도와 빈칸의 크기를 동시에 보여 준다.
암호문 전사에 오류가 있어 역연산이 실패하는 경우이 확인되면 이 판정문은 가장 먼저 수정돼야 한다.
[LXFOPVEF] 수정 가능성을 남기는 것은 우유부단함이 아니라 원자료에 대한 책임이다.
[LXFOPVEF] 탐정의 역할은 모든 문을 닫는 것이 아니라 다음 사람이 어느 문을 다시 열어야 하는지 표시하는 데 있다.
출처·업데이트
[LXFOPVEF] 아래 링크는 원자료·기관 설명·분석 방법을 확인하기 위한 출발점이다.
[LXFOPVEF] 출처의 문장과 이미지가 증명하는 범위를 넘어 사건의 동기나 해독을 확정하지 않는다.
[LXFOPVEF] 업데이트 기준일은 2026년 7월이다.
[LXFOPVEF] 새 원자료·공식 감정·재현 가능한 해독이 공개되면 사실 표와 가설 판정을 먼저 갱신한다.
'Symbols' 카테고리의 다른 글
| 비피드 암호, 좌표를 섞으면 빈도가 사라지는 이유 (0) | 2026.07.26 |
|---|---|
| 두 글자씩 움직이는 플레이페어 암호의 함정 (0) | 2026.07.26 |
| KHOOR를 HELLO로 되돌리는 세 칸의 규칙 (0) | 2026.07.26 |
| 리베르 프리무스, 해독된 쪽과 풀리지 않은 쪽의 차이 (0) | 2026.07.26 |
| 시카다 3301, 원본을 가려내는 PGP 서명의 열쇠 (0) | 2026.07.26 |