狀態 無法根據已公開的文字破解
S1 的70個位置上有53個不同的符號;S5 的180個位置上有145個。在這樣的比例下,每段密文都能套上不止一個通順的英文明文,而一次返回通順英文的搜尋,只是做到了算術所保證的事。這裡檢驗的那個自稱解答,沒能透過同音替換金鑰施加的唯一硬性檢驗——在每段密文中各有一個已可靠識別的符號上失敗。
01 這些信是什麼,哪些已公開
1991年,一個署名 Scorpion 的人給America’s Most Wanted的主持人 John Walsh 寄去幾封信,其中有五段密文。兩段已公開。S1 隨第一封信寄來;S5 隨那封以“Hi! Remember me?”(嗨!還記得我嗎?)開頭的信寄來。S2 至 S4 由執法部門保管,未曾公佈。Klaus Schmeh 把這兩段列為他 Top 50 中的第12號,使用的是 David Oranchak 網站上的掃描件。
| 密碼 | 排布 | 符號 | 不同取值 | 重複對 | 這裡使用的轉錄 |
|---|---|---|---|---|---|
| S1 | 10 × 7 | 70 | 53 | 22 | 這裡根據 Cipherbrain 掃描件(454 px,放大3倍)製作 |
| S5 | 12行,每行15個 | 180 | 145 | 43 | 論壇上的數字轉錄,符號1–145按首次出現的順序編號 |
| S2–S4 | 未公開 | ||||
已公開的材料包括 Schmeh 的文章、Nick Pelling 2014至2018年間在 Cipher Mysteries 上的帖子、Cipher Foundation 的頁面,以及 zodiackillerciphers.com 上題為“Scorpion = Zodiac?”的帖子,其中載有數字形式的 S5。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 |
有兩個數字更進一步。一項模擬用16個獨立的26字母字母表加密英文,統計 S5 所統計的那些量。
| 檢驗 | 觀測值 | 16個單表英文字母表(模擬) |
|---|---|---|
| 列內重複 | 35 | 47.7 ± 4.9 (z = −2.6) |
| 重複在各列間的分佈離散度(方差) | 2.28 | 1.38, P(≥ 觀測值) = 0.05 |
對16個普通字母表來說,S5 的重複太少了,GeoffLaT 也發現了這一點。若在每個字母表中給七個最常見的字母各配兩個同音符,總數就吻合了(32.6 ± 4.5),但各列分佈不均的情況就更不可能出現(P = 0.014)。第1列,即每16個一組的第一個符號,重複得遠多於其餘各列:12箇中只有7個不同符號,而大多數列是10或11個。第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、lambda 和 K 各自重複出現的位置都打破了嚴格的週期5。
03 為什麼已公開的文字無法確定金鑰
同音替換金鑰為每個不同的符號指定26個字母之一,所以每個符號約攜帶 log2 26 = 4.70 位元。英語每個字母約提供3.2位元的冗餘,這是把英語的熵取為1.5位元、與均勻字母表的4.70位元相比得出的。當金鑰所含的資訊多於文字的冗餘時,密文就無法確定金鑰。
| 密碼 | 金鑰資訊量 | 文字冗餘度 | 比值 |
|---|---|---|---|
| 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 用恰好53個和145個符號的隨機同音金鑰加密70和180字母的隨機英文段落,然後用本站其他地方所用的同一個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 在 zodiackillermystery.freeforums.net 的“Scorpion’s Ciphers — The Zodiac, 1991 and beyond”帖子中釋出了 S1 和 S5 的解答,首次釋出於2018年10月19日。所稱的明文如下:
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 得分,每字母奈特數 | 詞典覆蓋率 |
|---|---|---|
| 所聲稱的 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 奈特,這意味著模型認為其中每個字母出現的可能性大約只有普通英語的三分之一。專有名詞和“cofee”這種拼寫佔了其中一部分代價,其餘來自用詞。詞典覆蓋率區分不出這三段文字。因此,所聲稱的解答比盲搜在對照上產出的結果還不像英語,而且在兩份密碼中各有一次在一個確認無誤的符號上未透過等式檢驗。這兩點都不能說明明文是什麼。唯一性距離的算術表明,密文中沒有任何東西能說明這一點。
進一步的檢驗: alternatives.py 在完全相同的“同一符號對應同一字母”規則下,用真實英文單詞填滿 S1(一種在每一步保留最佳部分填充的搜尋,詞表取自 Gutenberg,按詞頻打分)。下面是它最先返回的幾種替代讀法,以及它們在上文同一個 5-gram 字母模型下的得分:
| S1 的替代讀法(70 個字母,每處重複都得到滿足) | 奈特 / 字母 |
|---|---|
| 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 |
它們毫無意義,它們是英語,而且與密文的吻合程度至少和那個說法一樣好。語料的偏向(《白鯨》)顯而易見,但無關緊要:任何英文詞表都能產生這樣的填充。構建本頁時 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,70 個描述性符號名,排成 7 行、每行 10 個,不確定的辨識在註釋中標出 |
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 | 束搜尋,在“同一符號對應同一字母”規則下用詞典單詞填滿每份密碼,並用同一模型打分 |