文章來源:量子位
黃道十二宮殺手(Zodiac Killer)可能是世界上最知名的高智商連環殺手,52年來從未被抓獲。他的事跡已被改編成了多部好萊塢電影。

在1968年和1969年,這個連環變態殺手,在美國加州南部殺死了至少5人,聲稱自己手上有37條人命。
作案的同時,他寄送了很多封以「挑釁」為主的信件給媒體,這些信件中包含着一些未公開的細節以及犯罪證據,甚至在其中署名。
雖然一封408字符的文件已經被專家破解,但是其他信件繼續困擾了警方和密碼學專家51年。
1969年11月8日,在殺死了兩名受害者之后,他向《舊金山紀事報》致信,並隨信附上了340個加密字符。該密碼被稱為Z-340,或簡稱為340,一直未曾有人成功破解。

直到2020年12月5日星期六,亦即51年后我們方才知曉其中的內容——Oranchak,Blake和Van Eycke向美國聯邦調查局提交了他們的解決方案並通過了驗證。
周五FBI官方Twitter發布聲明稱,FBI確認破譯了密碼信。

那么這一密碼究竟是如何破譯的呢?
Sam Blake 先是創建了65萬種密文變體,並以不同的方式排列,然后通過Jarl Van Eycke開發的一款代碼破解程序AZdecrypt來運行他們。
經過數月的解密,出現的亂碼終於有一定的含義。團隊最終確定了讀取符號的順序,並檢索出一條連貫的信息。

其中一個破譯者Oranchak表示,340就是「換位密碼」。
現在計算機使用的大多數密碼都是依靠數字來加密信息。
相比之下,換位密碼很大程度上是過去的方法,使用一定的規則重新排列郵件中的字符或字符組。
可以看到,340是一個矩形信息。破譯團隊通過切成類似「對角三角形」來重新排列出字符來重新破解的。
具體來說,先要將密碼分為三個部分,分別來進行解讀。(第一部分跟第二部分為9行,最后一部分為2行)

第一部分,第一個字符H,隨后再向下移動一格,在向左移動兩個,得到第二個字符+,以此類推。

經過重新排列,結果就變成了這樣。

隨后在AZdecrypt運行幾次之后,直到看到字符里出現「TV SHOW」。

破譯者表示,當時就從椅子上跳起來了。
因為在1969年11月,某個電視台TV Show正報道關於黃道十二宮凶手,來電者給節目組說了這樣一則消息。
同樣的「gas chamber」、「TV Show」,破譯者由此確定了這一密碼的真實性。

按照同樣的方式,對第二部分和第三部分進行了處理,但仍有些轉錄的錯誤。

在第三部分,團隊發現了一個奇怪的詞看起來像「PARADICE」,但拼寫倒了,在前面的字母中以同樣的方式多次出現過。

那如果其他看不懂的字符也同樣拼寫倒轉了呢?
於是,神奇的事情發生了。

LIFE WILL BE AN EASY ONE IN PARADIC DEATH.
隨后,他們還發現這個殺手犯了一些拼寫錯誤。比如「NOW」寫成了「OOW」,「FOR」寫成了「FOV」。

譯文內容
經過一些更正之后,最終得到了一篇完整的譯文。

嗯,翻譯過來就是:
我希望你在嘗試抓住我的過程中得到很多樂趣。 打電話上節目宣稱是十二宮殺手的那人,並不是我。 我不怕毒氣室,因為它可以把我很快地送入天堂。 我現在有足夠多的奴隸為我工作,而其他人到了天堂就一無所有了,所以他們害怕死亡。 我不害怕,因為我知道,在天堂里生活將是一件很輕松的事。
談到密碼為何會懸而未決50多年,破解者之一Blake表示是因為:
密碼的閱讀方向太晦澀,以至於找到它的唯一方法是,使用復雜的軟件對許多候選答案進行大規模搜索,才能有效解決諧音替代密碼。
現在借助電腦軟件,破解的難度被大大降低了。
Blake在澳大利亞墨爾本的家中測試了「大約65萬種通過密碼的不同閱讀方向」,然后提出了正確的組合。他們為此共同努力了八個月。
破譯三人組
破解Z340的三個人分別是:美國維吉尼亞州軟件開發人員David Oranchak、比利時電腦工程師Jarl Van Eycke以及澳洲數學家Sam Blake。
Oranchak是現年46歲的網頁設計師,自2006年以來一直從事黃道十二宮密碼的破解工作。
Blake在是網上看到Oranchak的分析后,對該案產生了興趣。
Van Eycke則開發了AZdecrypt,這是一款破解代碼的應用程序,其靈感來自於他破解Z340的努力。
破案未完待續
雖然這封信件被破解,但對於案件本身來說,可能並沒有太大進展,
最近,曾收到黃道十二宮殺手信件的《舊金山紀事報》采訪了當年負責此案的警官。
他表示,新的破解答案可能不會大大推動調查,這封信除了發現凶手在心理上的再次嘲諷,沒有太多其他事情了。
這封信沒有透露任何凶手的具體信息,比如住址或姓名。凶手的名字還在另一封未破解的信件里。
而且案件年代久遠,具有最高嫌疑的兩人Arthur Leigh Allen、Jack Tarrance都已經去世,這個秘密大概只能從未來的破解中找到答案了。

想要學習C/C++編程知識,提升C/C++編程能力,歡迎加入學習企鵝圈子!