《福尔摩斯:跳舞的小人》(The Dancing Men,又译作“跳舞的人”)的故事发生于 1898 年,那是一个连现代计算机的概念都还没有提出的年代,福尔摩斯却凭借自己的智慧和推理,就破解了替换密码。 影片讲述的是英国富人希尔顿·库比特的妻子在庭院里看到一串跳舞小人的图案后极度害怕,在此之后一个多月库比特家中开始陆续出现跳舞的小人。 库比特先生希望能够保护他的妻子,并希望福尔摩斯能够破解跳舞的小人,就给福尔摩斯写了第一封信,同时附上了上面的小人。 两个星期后,丘比特先生在工具间的门上发现: 两天后: 三天后: 最后又发现: 福尔摩斯破解跳舞的小人密码画面:
解密过程
首先,每个小人代表一个字母,运用解读所有密码的套路,就能解开。 第一条信息 根据英文字母出现概率不同,破译密码。 英文中出现概率最高的字母,E 概率依次向下为 T,A,O,I,N,S,H,R,D,L 所以从第一条信息可知下图出现了 4 次。 所以代表E。这四个相同的小人中有的拿着旗子有的没拿,从分布来看,旗子可能是分隔符。现暂定这个假设。 因为 T,A,O,I 的使用率几乎不相上下,所以要根据其他的信息破解。 接下来,从第四条信息入手。 图中没有旗子,可能是个单词。先确定二和四是 E,可以选择的答案有SEVER(切割),LEVER(杠杆),NEVER(永不)。该信息出现在第四说明可能用于回答。根据语境判断,应该是库比特太太的回复。如果上图为NEVER,说明第一个代表 N,第三个代表 V,第五个代表 R。 通过人物信息,提出请求的人应该是埃尔西(Elsie)多年前认识的。 所以从第三条信息看出两个 E 中间夹三个字母的可能是她的名字,这样就对上了 L,S,I。名字前还有四个字母,以 E 结尾的请求,得出为 COME。 接着继续破解第一条信息,将每个单词根据拿旗小人分隔开。不确定的用点表示。 得 .M .ERE ..E SL.NE. 第一个字母只能是 A,这样就换掉三个点。第二个单词也很明显,是 H。 所以,这句话变成 AM HERE A.E SLANE. 最后两个词明显为名字,补充: AM HERE ABE SLANEY (我到了。艾贝 斯莱尼) 接下来破解第二条信息 按照上面得出的字母进行替换,得: A. ELRI.ES 要使这句话有意思,只能用 T 和 G 补上。 AT ELRIGES (在埃尔里格) 最后看第五条信息。 用已知字母转换,变成: ELSIE .RE.ARE TO MEET THY GO. 加上 P 和 D,意思完整。 ELSIE PREPARE TO MEET THY GOD (埃尔西,准备见上帝)
跳舞小人密码,归根结底是一个简单的替换密码,不过由于当时福尔摩斯并不知道跳舞小人码表,所以对于破解密码,一时间几乎难以下手。 如今在研究者的不断研究下,已经归纳出了一个完整的密码表,如下图所示: 从上表中,我们可以看到,每个英文字母分别用两个小人表示,其区别是其中一个小人手中没有旗帜,而另一个小人手中有旗帜,这个旗帜的作用是什么呢,它的作用就是用于分隔开单词。 前面已经说过,跳舞小人密码其实就是一个简单的替换密码,其加密方式是这样的,举个简单的例子: 我们要加密两个明文单词:Apple potatoes 首先我们在码表中,找出 Apple potatoes 的小人位置。 其中 Appl 用该字母代表的小人的第一个小人进行替换,也就是用没有旗帜的小人进行替换,而 e 则用该字母代表的小人的第二个字母进行替换,也就是那个手中有旗帜的小人。 接着我们继续在码表中找出 potatoe 代表的小人,然后用第一个小人进行替换,而 s 则用该字母代表的小人的第二个字母进行替换,也就是那个手中有旗帜的小人。 最终,我们加密后的密文为: 如果要加密数字,因为数字在码表中只有一个小人,因而可以直接进行替换。如果要破解跳舞小人密码,只需要将小人对照码表,替换回字母即可。