首页 理论教育 福尔摩斯与密码学

福尔摩斯与密码学

时间:2022-02-12 理论教育 版权反馈
【摘要】:如此这般以此类推,福尔摩斯利用上(主)下(角)文(光)逐(环)个(的)击(加)破(持),分分钟破译了全部 52 个密文:不过,所有基于替换法的加密算法,都有一个致命的弱点:因为凡是用字母构成的文字,其字母分布都要符合语言规律,比如英文单词中 E 最常见,Z 和 X 最罕见,无论把字母替换成多么奇葩的东西,符号的分布规律永远不会变,用概率统计+穷举法+玩填字游戏的基本技巧,任何密文的破解只是时间问题。




作为罗马的第一位独裁者,恺撒大帝还有一个鲜为人知的技能点:


(公元前 4 世纪,古希腊人的卷轴式密码本「天书」)


其实,大帝不是历史上第一个想出加密算法的人。据说,我朝的姜子牙在 3000 年前,就发明了古装版密码本「阴书」。



但恺撒密码,却很有可能是首个广泛运用到军事通信领域的加密技术。


恺撒密码的原理,说白了就是一个字:替换


如果心里想的是字母 A,纸上就写 B;要写 B,就用 C 代替。当然,我也可以用 D 替换 A,用 E 替换 B,以此类推(偏移 3 个字母)。 


(一张图秒懂恺撒密码)


只要收发双方都知道偏移量是几,就能轻松加密和解密;而外人看到的无非是一堆乱码。 


这就让上课传小纸条,有了新招数!心里想(明文):I love U,老师看到(密文):L oryh X。


在今天看来,这种算法极易破解,毫无技术含量可言。但在当年的罗马战场,这就是令吃瓜群众望而生畏的黑科技! 


在恺撒制霸罗马的全盛时期,就连教主耶稣都不得不服: 上帝的归上帝,恺撒的归恺撒。



然而讽刺的是,这样一位狂拽酷炫屌炸天、还精通密码谍战的军事天才,却死于一场密谋政变,生生被戳了 23 刀。为了纪念大帝,人们把恺撒制成了扑克牌上的标本:方块 K。 



(盖乌斯·尤里乌斯·恺撒)


又过了一千多年,恺撒大帝和他的罗马帝国早已灰飞烟灭,恺撒密码和扑克却被后人发扬光大。 


原版的恺撒密码,是用字母替换字母,而且所有字母还是按照偏移量顺序替换的,极大地降低了破解难度。到了维多利亚时代,这两个弱点终于被改进。于是,连福尔摩斯逮到的一个普通黑帮小弟,都学会原创这样的密码了: 



我们来看,传说中的卷福,是怎样破解这种图形密码的。


在英文字母中 E 最常见。第一张纸条上的 15 个小人,其中有 4 个完全一样,因此猜它是 E。


(第一张纸条)


这些图形中,有的带小旗,有的没有小旗。从小旗的分布来看,带旗的图形可能是用来把这个句子分成一个个单词。


现在最难的问题来了。


因为,除了 E 以外,英文字母出现次数的顺序并不很清楚,要是把每一种组合都试一遍,那会是一项繁琐且无止境的工作。


根据似乎只有一个单词的一句话,我找出了第 2 个和第 4 个都是 E。


(只有单词的一句话)


这个单词可能是 sever(切断),也可能是 lever(杠杆),或者 never(决不)。


毫无疑问,使用 never 这个词来回答一项请求的可能性极大,所以其他三个小人分别代表 N、V 和 R。


如此这般以此类推,福尔摩斯利用上(主)下(角)文(光)逐(环)个(的)击(加)破(持),分分钟破译了全部 52 个密文: 



不过,所有基于替换法的加密算法,都有一个致命的弱点:因为凡是用字母构成的文字,其字母分布都要符合语言规律,比如英文单词中 E 最常见,Z 和 X 最罕见,无论把字母替换成多么奇葩的东西,符号的分布规律永远不会变,用概率统计+穷举法+玩填字游戏的基本技巧,任何密文的破解只是时间问题。


就当小伙伴们都以为恺撒密码的发展已经走到头的时候,德国人谢尔比乌斯却给替换式密码来了一次大升级,造就了有史以来最可靠的加密系统,一度令盟军绝望的噩梦,让希特勒成也萧何败也萧何的二战谍报神器——英格玛密码机,又叫恩尼格玛密码机(ENIGMA)。


免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈