黄道带杀手的340个字符密码的解决方案

2021-03-26 19:52:45

编者注:十二生肖杀手(20世纪60年代和70年代的未认出的美国连续杀手)向旧金山地区的新闻界发送了众多局部局部局部局部信件。在这些信件中,杀手对犯罪负责并威胁要进一步谋杀。他还包括三个密码,每个密码包含三分之一的408个字符的密码。杀手声称这种密码在破译时会揭示他的身份。杀手队在408个字符的密码后向旧金山纪事中发送了第四和最后的密码(在本博客文章中讨论),于1969年破译,没有揭示杀手的身份。

2020年,澳大利亚墨尔本有一个112天的锁定整个城市,帮助阻止Covid-19的传播。戴着面具是强制性的,我们每天都有一小时的外部活动。否则,我们被困在我们的家里。这给了我很多时间来看待多年来一直在推迟的有趣问题。

David Oranchak的youtube视频的灵感来自于David Oranchak,它看着黄道带杀手的340个字符密码(Z340),如下所示。此密码被认为是密码学的圣杯之一,就像在密码抵制50年的时候,所以任何发现解决方案的尝试都是一个真正的月初。

在他的演示文稿中,David探索了密码是同音替代密码和转换密码的想法。对于解决同音替代密码的高效计划存在,其中最佳是Azdecrypt。实验表明,Azdecrypt可以解决与Z340相同长度和符号分布的所有同音替换密度。但是,Azdecrypt不能用于解决Z340,因为当您在Z340上运行时,它不会产生解决方案。也许解决Z340是通过试验和误差来发现正确的转换,然后使用Azdecrypt来解决同音替换密码。

David概述了一个特定的转换,它独立发现并发布到Zodiackillersite.com用户“Daikon”和Jarl Van Eycke(Azdecrypt的作者):“期间-19”,这有一些有趣的统计特性,这将建议他们更接近正确的换位。只是为了好玩,我决定使用Mathematica绘制这种转发:

&#10005分区[ 表[1 + mod [19 i,340] - > I,{i,0,339}] // sparsearray // 正常,17] //绘制转移; 放大[%,0.5]

然而,这看起来只看起来像Daikon和Jarl的时期-19 rountposition。令我惊讶的是,它在垂直包裹(定期)时,它将其转换使用了一段时间-18。

虽然这种转子在视觉上有趣,但它并没有让我成为一个非常天然的铅笔建设。应该指出的是,Z340于1969年创建,因此几乎肯定使用铅笔和纸构建。

我在周期-19转置和密码的1,2抽取之间看到了连接。也就是说,从左上角开始,移动一个垂直步骤,然后两个水平台阶,水平和垂直周期性地包裹,如密码缠绕在圆环周围。该转置与时段 - 19转置相似的对角线:

&#10005 decimate2d [array_,{n_,m_}]:=模块[{d0,d1}, {d0,d1} =尺寸[array]; (表[array [mod [n i,d0] + 1,mod [m i,d1] + 1]],{i,0, d0 d1-1}])/; coprimeq [d0,n]&& coprimeq [d1,m]&& coprimeq [d0,d1] ]; z12decimation = 分区[DECIMAINS2D [分区[范围[0,340-1],17],{1,2}],17];

调查查找同音替换密码的正确转换的可能性的一种方法是通过计算重复的Bigrams(符号对)的数量。在Mathematica中,可以轻松地编写此代码进行任意ram:

然后我们可以构建大量的Z340样Ciphers,并将其Bigram计数分布与Z340的大量随机洗牌进行比较:

&#10005直方图[{randalShuffle340,z340ciphersbigrams},{1}, 图表 - > Edgeform [薄],帧 - >真,轴 - >错误的, FrameLabel - > {STYLE ["重复BIGRAM COUNT",12], STYLE ["频率",12]}, chartlegends - > {" z340&#34的随机洗牌;, "随机Z340样Ciphers"}, ChartStyle - > {RGBColor [0.514366,0.731746,0.415503], RGBColor [0.996414,0.825742,0.330007]}]

随机洗牌的平均大流量的数量为19.8,随机Z340样Ciphers为34.5。 Z340有25个重复的Bigrams,而Daikon和Jarl期间的换位和1,2抽取有37个重复的Bigrams。因此,统计上,我们认为我们在正确的轨道上。

在1,2抽取转置未产生解决方案之后,我们决定通过候选换位进行大型搜索。很难知道过去已经测试了哪些换位,因此我决定枚举所有合理的1和2步转换,将其归结为他们的Bigram计数并通过Azdecrypt运行它们。例如,这些换位中的一些:

我还包括所有正确的一维和二维抽取换位。对于一维枚举,我们有以下128个正确的抽取:

使用Azdecrypt,我们测试了所有行专业,列 - 主要,交替的行列,交替列行,向内螺旋,向外螺旋,对角线和适当的一维和二维抽取换位。这个实验并没有产生任何看起来像解决方案的东西,所以我们测试了所有对换位。然后我们考虑测试所有3元组的换位;然而,这需要测试155,929,364,660,224候选人的密码。一秒就天真地检查了一百万多万年。因此,我们将实验限制在抽取的抽取数据,这是合理的,可以用手写出来,然后只测试候选人,只有高大的大计数。再一次,这个搜索一无所获。

也许我们缺少了另一步?鉴于十二生肖杀手的408个字符密码(如下图)在三个同样大小的部分中发送,我们猜测Z340由多个不同的段构成,然后用换位加密和同音替换:

我们认为将密码水平分成两个和三个区段,垂直成两个和三个段,以及水平和垂直进入和段。例如:

然后我们使用Realy来计算所有可能的段,导致适当的二维抽取:

&#10005减少[a> 0&& B> 0&& C> 0&& D> 0&& A + B == 17&& C + D == 20&& GCD [A,C] == 1&& GCD [A,D] == 1&& GCD [B,C] == 1&& gcd [b,d] == 1,{a,b,c,d},整数]

鉴于1,2抽取转置的高大计数,我们开始使用二维抽取搜索,每个段具有相同(单个)换位。正如我们之前所看到的那么多次,这个实验没有任何东西。

下次搜索多个转置的组合物和所有部分的所有转子组合将是一个明显更大的承诺。所以我们决定从初始搜索中重新分析结果。

在我们测试的650,000次换位中,其中一个包含一些特别有趣的明文:

这更有趣,因为产生了这种候选解密的转换是1,2抽取,密码分为三个垂直段(如下图所示):

调查这一结果进一步,大卫利用我们的9,9,2-垂直的段,1,2-抽取换位和Azdecrypt到婴儿星的短语“希望你是”,“试图抓住我”和“气室”。使用这些婴儿床锁定到位,Azdecrypt发现了以下第一段的以下解决方案:

尤里卡! 51年后,我们解除了一些Z340。这是一个非常特殊的时刻。发现9,9,2-垂直段,1,2-抽取输出和Azdecrypt的功率用于解决同音替代密码的Z340的部分解密。

剩下的两个部分怎么样?我们有可能只发现了9行的一个正确的垂直分割,并且剩余的11行需要不同的分割,或者可能需要不同的转换,甚至替代密码的不同键,或任何两个组合这些可能性,甚至所有三种可能性。我们的工作远非结束。

David发现我们可以使用最后一段的第一个段中的关键来产生以下明文 - 没有任何转换:

第二部分怎么样?如果我们从第一个部分抄出所有清晰的文本,我们会得到以下解密:

这种有意义的一些部分,但我们肯定不在那里。我们向Azdecrypt的作者询问了Jarl Van Eycke,帮助我们解决这个细分市场。他提出了以下辉煌观察:

如果行六的“H”移动到第四列,则纠正众多拼写错误。

我们为Z340密码发现的密钥和转换:

十二生肖杀手邮寄这款密码后五十一年,我们有一个解决方案。 David于2020年12月5日星期六向FBI密码分析和搭乘记录单位(CRRU)提交了该解决方案。不久之后,联邦调查局能够正式证实我们解决方案的有效性。

基本上我在Z340上的所有工作都在Mathematica完成。我在墨尔本大学使用了斯巴达高性能计算集群,以消除使用Zkdecrypto和David使用Azdecrypt的候选转换。否则,使用Mathematica完成Z340的所有统计分析以及数百万候选转置的创作和分析。我使用Mathematica的原因很简单;它是迄今为止我可以用于此类任务的最努力的语言。

Sam Blake在澳大利亚的Monash University中有一个博士学位,是墨尔本大学的研究员。 自2004年以来,他是Avid Mathematica用户,并为Wolfram研究工作了四年。 他对与数值建模,数据科学,符号计算,隐写术和密码相关的研究感兴趣。 通过Mathematica 12.2或Wolfram完全访问最新的Wolfram语言功能一试。