상태 공개된 텍스트로는 풀 수 없음
S1은 70개 위치에 서로 다른 기호 53개가, S5는 180개 위치에 145개가 있다. 이런 비율에서는 각 암호문에 들어맞는 유창한 영어 평문이 둘 이상 있으며, 유창한 영어를 내놓는 탐색은 산술이 보장하는 일을 했을 뿐이다. 여기서 검증한 유일한 해답 주장은 동음이자 키가 부과하는 단 하나의 엄격한 검정, 즉 각 암호에서 확실하게 식별된 기호 하나에 대한 검정을 통과하지 못한다.
01 편지들은 무엇이며 무엇이 공개되어 있나
1991년 Scorpion이라고 서명한 필자가 America’s Most Wanted의 진행자 John Walsh에게 다섯 개의 암호 구절이 담긴 편지들을 보냈다. 두 개가 공개되어 있다. S1은 첫 편지와 함께 왔고, S5는 “Hi! Remember me?”로 시작하는 편지와 함께 왔다. S2부터 S4는 사법 당국이 보유하고 있으며 공개되지 않았다. Klaus Schmeh는 David Oranchak의 사이트에 있는 스캔을 사용해 이 한 쌍을 자신의 Top 50 12번으로 올렸다.
| 암호 | 배치 | 기호 | 서로 다른 값 | 반복 쌍 | 여기서 사용한 전사 |
|---|---|---|---|---|---|
| S1 | 10 × 7 | 70 | 53 | 22 | Cipherbrain 스캔(454 px, 3배 확대)에서 여기서 작성 |
| S5 | 15개씩 12행 | 180 | 145 | 43 | 포럼의 숫자 전사, 첫 등장 순서대로 기호 1–145 |
| S2–S4 | 비공개 | ||||
공개된 자료는 Schmeh의 글, Nick Pelling의 2014–2018년 Cipher Mysteries 게시물, Cipher Foundation 페이지, 그리고 숫자로 된 S5가 실린 zodiackillerciphers.com 스레드 “Scorpion = Zodiac?”이다. 다음에 있는 S1 전사는 s1.txt 기호에 설명적인 이름을 붙이고 네 가지 식별을 불확실한 것으로 표시한다. circL, sqnotchBR, sqbarT 및 flag. 기호 70개, 서로 다른 기호 53개라는 계수는 공개된 수치와 일치한다. 편지는 S5를 한 행에 기호 15개씩 쓰고 있다. 포럼 게시자는 다음에 설명할 이유로 같은 행 우선 순서열을 16개씩 다시 배열했다.
02 여기서 측정한 구조
S5: 모든 반복이 16의 배수 거리에 있다
S5에는 같은 기호를 지닌 위치 쌍이 43개 있다. 43개 모두 16의 배수인 거리에 놓여 있다.
| 거리 | 16 | 32 | 48 | 64 | 80 | 96 | 112 | 128 | 144 | 160 |
|---|---|---|---|---|---|---|---|---|---|---|
| 쌍 | 9 | 5 | 6 | 4 | 5 | 3 | 2 | 6 | 2 | 1 |
16열로 쓰면 어떤 기호도 두 열에 나타나지 않는다. 각 열에는 기호가 11개 또는 12개 있으며, 그중 6–11개가 서로 다르다. 이는 엄격한 순환으로 사용된 16개의 치환 알파벳이 보이는 행태이며, Pelling과 포럼 게시자 “Teddy”가 2007년부터 2014년 사이에 내린 결론이기도 하다. 다음에서 계산한 열별 계수는 s5.txt:
| 열 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 기호 | 12 | 12 | 12 | 12 | 11 | 11 | 11 | 11 | 11 | 11 | 11 | 11 | 11 | 11 | 11 | 11 |
| 서로 다른 값 | 7 | 11 | 10 | 10 | 11 | 8 | 10 | 6 | 9 | 6 | 10 | 9 | 10 | 9 | 9 | 10 |
| 반복 | 5 | 1 | 2 | 2 | 0 | 3 | 1 | 5 | 2 | 5 | 1 | 2 | 1 | 2 | 2 | 1 |
두 수치는 더 나아간다. 한 시뮬레이션은 영어를 26글자 알파벳 16개로 독립적으로 암호화하고 S5에서 센 것과 같은 것을 센다.
| 검정 | 관측값 | 단일 문자 영어 알파벳 16개(시뮬레이션) |
|---|---|---|
| 열 내부 반복 | 35 | 47.7 ± 4.9 (z = −2.6) |
| 열 간 반복의 분산 | 2.28 | 1.38, P(≥ 관측값) = 0.05 |
GeoffLaT도 발견했듯이, S5는 단순 알파벳 16개라고 보기에는 반복이 너무 적다. 모든 알파벳에서 가장 흔한 일곱 글자에 동음자를 두 개씩 주면 총수(32.6 ± 4.5)에는 맞지만, 열 간의 고르지 않은 분포는 더욱 일어나기 어려워진다(P = 0.014). 각 16개 구간의 첫 기호인 1열은 나머지보다 훨씬 많이 반복된다. 대부분의 열이 12개 중 10개나 11개가 서로 다른 데 비해, 1열은 12개 중 7개만 서로 다르다. 1열, 8열, 10열은 각각 반복이 5개씩으로, 35개 가운데 15개를 차지한다.
S1: 약한 주기 5 신호
S1에는 반복 쌍이 22개 있다. 그중 8개가 5의 배수 거리에 있는데, 위치를 뒤섞었을 때의 기댓값은 4.1이다(P = 0.036). 4개가 10의 배수 거리에 있으며, 기댓값은 1.9다(P = 0.12). 이것이 Pelling의 순환 알파벳 다섯 개를 뒷받침하는 증거의 전부다. 이는 부분적으로 채워진 사각형과 반원 글리프 계열의 식별에 의존하는데, 그것들이 바로 불확실한 식별이다. S, 람다, K는 각각 엄격한 주기 5를 깨뜨리는 위치에서 되풀이된다.
03 공개된 텍스트로 키를 결정할 수 없는 이유
동음이자 키는 서로 다른 각 기호에 26글자 중 하나를 배정하므로, 기호당 약 log2 26 = 4.70비트를 담는다. 영어는 엔트로피를 균등 알파벳의 4.70 대비 1.5비트로 보면 글자당 약 3.2비트의 잉여도를 제공한다. 키가 텍스트의 잉여도보다 많은 정보를 담고 있으면 암호문은 키를 결정하지 못한다.
| 암호 | 키 정보량 | 텍스트의 잉여도 | 비율 |
|---|---|---|---|
| S1 | 53 × 4.70 = 249비트 | 70 × 3.2 = 224비트 | 1.11 |
| S5 | 145 × 4.70 = 682비트 | 180 × 3.2 = 576비트 | 1.18 |
둘 다 유일성 거리 아래에 있다. 각 암호문과 양립하는 유창한 영어 평문이 둘 이상 있으므로, 어떤 암호문 단독 방법도 올바른 것을 특정할 수 없다. S5의 16-알파벳 구조는 이를 더 악화시킨다. 독립된 알파벳 16개는 훨씬 많은 키를 뜻한다. 알파벳들이 어떤 규칙으로 서로 묶여 있다면 도움이 되겠지만, 어떤 기호도 두 열에 걸쳐 되풀이되지 않으므로 암호문은 그런 연결 고리를 제공하지 않는다.
짝을 맞춘 대조 실험
unicity.py 은 70자와 180자의 무작위 영어 구절을 정확히 53개와 145개 기호로 된 무작위 동음이자 키로 암호화한 다음, 이 사이트의 다른 곳에서 쓴 것과 같은 5-gram 영어 솔버(담금질 기법)로 15,000단계씩 여덟 번 재시작하며 공격한다. 글자당 수치는 스크립트의 총점을 텍스트 길이로 나눈 것이다.
| 대조 실험 | 최선 해답의 글자 정확도 | 찾아낸 텍스트의 점수 | 참 텍스트의 점수 |
|---|---|---|---|
| S1 크기, 시행 1 | 0.13 | −112(글자당 −1.60) | −107 (−1.53) |
| S1 크기, 시행 2 | 0.13 | 찾아낸 텍스트: snotconcetorasestayalongdispointent… | |
| S5 크기, 시행 1 | 0.03 | −330(글자당 −1.83) | −326 (−1.81) |
| S5 크기, 시행 2 | 0.12 | −334(글자당 −1.86) | −301 (−1.67) |
솔버는 매번 유창한 영어를 내놓지만, 그것은 결코 평문이 아니다. 글자 정확도는 3%에서 13%이며, 점수를 매긴 세 시행 가운데 두 번은 거짓 해답이 진짜 텍스트와 5점 이내의 점수를 얻는다. AZdecrypt식 탐색으로 만들어 낸 S1이나 S5의 해답은 모두 이를 염두에 두고 판단해야 하며, 기록에 있는 세 해답, 즉 Farmer 2007, Roberts 2016, 그리고 다음에 검증할 2018년 포럼 해답도 마찬가지다. 이 정도의 다중성에서 유창한 출력은 보장된 것이며 아무것도 증명하지 않는다.
04 2018년 해답 주장의 검증
포럼 사용자 Rubislaw32가 2018년 10월 19일 zodiackillermystery.freeforums.net의 스레드 “Scorpion’s Ciphers — The Zodiac, 1991 and beyond”에 S1과 S5의 해답을 처음 게시했다. 주장된 평문은 다음과 같다.
S1. “A picture in collection of people: Bagel Bob’s Old Dairy Frothy Late Cofee. Pour action.”
S5. “I am sending other picture of people for the collection of recent hybrid genders with edge, kept from artistic fee, if person of age has to purchase pick of university uglies. Espresso NYP cofee forces a cold enema review.”
동음이자 키는 각 기호를 한 글자에 대응시키므로, 단 하나의 엄격한 검정은 반복된 모든 기호가 나타나는 곳마다 같은 글자로 해독되는가이다. claimed.py 는 각 평문을 전사본 위에 겹쳐 놓고 이를 검사한다. results_claimed.txt 에 출력이 저장된다.
| 암호 | 반복된 기호 | 일관됨 | 충돌 |
|---|---|---|---|
| S1 | 13 | 10 | crosshair: COLLECTION에서는 N, OLD에서는 L. sqnotchBR: T, D, O. circL: I, L, E. 뒤의 둘은 전사에서 불확실로 표시되어 있다. |
| S5 | 27 | 26 | 기호 41: COLLECTION에서는 C, AGE에서는 G, COFEE에서는 C |
S1의 두 충돌은 불확실한 글리프에서 일어난 것이므로 전사 오류일 수 있다. 십자선 기호는 불확실로 표시되어 있지 않다. 스캔을 보면 2행 10열과 4행 9열에 같은 글리프가 있는데, 주장된 텍스트는 한쪽에 N, 다른 쪽에 L을 요구한다. S5의 기호 41은 포럼의 숫자 전사에서 온 것으로, 같은 해답이 다른 곳에서는 27번 중 26번 이 전사와 맞는다.
이 정도 비율의 일관성은 쉽게 얻어진다. S1은 70개 위치에 서로 다른 기호 53개가 있으므로 앞선 위치와 묶이는 것은 17개 위치뿐이고, S5는 180개 중 35개가 묶인다. 나머지 위치는 모두 자유롭게 고를 수 있으며, 주장된 키는 그 자유를 아낌없이 쓴다. S5에서는 서로 다른 기호 22개가 E를, 14개가 O를, 12개가 I를 나타낸다. 이렇게 적은 등식 아래에서 단어 하나하나 짜 맞춘 텍스트는 거의 무엇이든 될 수 있다. 조건을 맞춘 대조 실험은 실제 키로 이를 보여 주었고, 이 절 끝의 표는 사전 단어로 이를 보여 준다.
언어 모델 점수가 두 번째 척도다. 이는 모델이 각 글자에 대해 앞의 네 글자를 조건으로 부여하는 로그 확률의 평균이며, 대조 실험의 점수를 매긴 것과 같은 모델을 쓴다.
| 텍스트 | 5-gram 점수, 글자당 nats | 사전 적중률 |
|---|---|---|
| 주장된 S1 | −2.74 | 0.83 |
| 주장된 S5 | −2.61 | 0.77 |
| 참고용 영어 문단 | −1.58 | 0.76 |
| 대조 실험의 거짓 해답, 70글자 | −1.60 | — |
| 대조 실험의 거짓 해답, 180글자 | −1.83 ~ −1.86 | — |
진짜 영어는 이 모델에서 −1.6 부근에 놓이고, 솔버의 거짓 해답도 마찬가지다. 솔버가 최대화하는 것이 바로 그 점수이기 때문이다. 주장된 텍스트들은 글자당 1.0~1.2 nats 낮은데, 이는 모델이 각 글자를 보통 영어보다 대략 세 배 덜 그럴듯하게 본다는 뜻이다. 고유명사와 “cofee”라는 철자가 그 일부를 차지하고, 나머지는 단어 선택에서 온다. 사전 적중률로는 세 텍스트가 구별되지 않는다. 따라서 주장된 해답은 대조 실험에서 맹목적 탐색이 만들어 내는 것보다 덜 영어답고, 확실히 식별된 기호에서 각 암호마다 한 번씩 등식 검정에 실패한다. 어느 사실도 평문이 무엇인지 말해 주지는 않는다. 유일성 계산은 암호문 안의 어떤 것도 그것을 말해 줄 수 없다고 말한다.
추가 검정: alternatives.py 는 똑같은 ‘같은 기호는 같은 글자’ 규칙 아래 S1을 실제 영어 단어로 채운다(Gutenberg 어휘를 대상으로 각 단계에서 가장 좋은 부분 채움을 유지하는 탐색이며, 단어 빈도로 점수를 매긴다). 이것이 내놓은 첫 대안들과, 위에서 쓴 것과 같은 5-gram 글자 모델로 매긴 점수는 다음과 같다.
| S1의 대안 독해(70글자, 모든 반복을 지킴) | 글자당 nats |
|---|---|
| to the whale and in the whale and the whale and the through the highly a lay of jonah her | −1.32 |
| to the whale and of the whale and the whale and the in which the highly a lay of the ah her | −1.59 |
| 2018년의 주장: a picture in collection of people bagel bobs old dairy frothy late cofee pour action | −2.74 |
이것들은 말이 안 되지만 영어이고, 주장된 해답만큼은 암호문에 들어맞는다. 말뭉치의 편향(Moby Dick)이 눈에 띄지만 상관없다. 어떤 영어 단어 목록으로도 이런 채움이 나온다. S5 실행은 이 페이지를 만들 때 아직 진행 중이었으며, 출력은 다음에 저장된다. targets/scorpion/results_alternatives.txt.
05 현황, 그리고 무엇이 이를 바꿀 수 있는가
공개된 자료로는 키를 결정할 수 없다. 한계는 정량적인 것이며(03절), 탐색을 더 한다고 바뀌지 않는다. 바꿀 수 있는 것은 세 가지다.
| 무엇 | 왜 중요한가 |
|---|---|
| S2~S4의 공개 | 작성자가 체계를 유지했다면, 같은 16개 알파벳 아래의 텍스트가 늘어날수록 모든 글자에서 중복성이 늘고, 키는 아직 보지 못한 기호에 대해서만 늘어난다. |
| S5의 글리프 특징 전사 | 모양 계열이 16개 알파벳을 가로질러 대각선으로 이어지는지를 검정할 수 있다. 이것이 알파벳들을 서로 묶어 키를 줄일 수 있는 유일한 가설이다. |
| 작성자 자신의 진술 | “All of my ciphers can be decoded simply, once the limited patterns and systems are discovered.”(내 암호는 모두 제한된 패턴과 체계만 발견되면 간단히 풀 수 있다.) 이 말이 사실이라면 무작위 키 표가 아니라 체계적인 키 표를 가리키며, 체계적인 표는 유일성 표가 가정하는 것보다 키가 훨씬 적다. |
그중 하나가 나오기 전까지, 공개된 두 구절에 대한 추가 탐색의 결과는 이미 알려져 있다. 유창한 영어이되, 대조 실험에 따르면 글자 정확도는 3%에서 13% 사이다.
06 파일
| 파일 | 내용 |
|---|---|
targets/scorpion/s1.txt | S1, 10개씩 7행으로 된 70개의 기호 설명명, 불확실한 식별은 주석에 표시 |
targets/scorpion/s5.txt | S5, 포럼의 숫자 수열, 기호 1–145, 16개씩 줄바꿈 |
targets/scorpion/unicity.py | 유일성 표와 조건을 맞춘 대조 실험. 다음이 만드는 영어 모델이 필요하다: targets/copenhagen/solve.py |
targets/scorpion/claimed.py | 2018년 독해의 일관성 검정과 5-gram 점수. 출력은 다음에 저장된다: results_claimed.txt |
targets/scorpion/alternatives.py | ‘같은 기호는 같은 글자’ 규칙 아래 각 암호를 사전 단어로 채우는 빔 탐색, 같은 모델로 점수 매김 |